[GH-ISSUE #1503] fix(native): keep interface-builder trace coverage partial when decode is partial #509

Closed
opened 2026-10-15 18:25:42 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @cursor[bot] on GitHub (Oct 10, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/1503

TL;DR: trace_native_ui_action marks interface_builder_archives complete whenever any document was decoded, including when archive decode already reported a budget omission.

Area

Native UI traces and Interface Builder

Observed behavior

traceNativeUiAction in src/application/native/NativeUiActionTrace.ts pushes:

{
  facet: "interface_builder_archives",
  status: decoded.data.documents.length > 0 ? "complete" : "unsupported",
  examined: decoded.data.documents.length,
  omitted: 0,
}

InterfaceBuilderAnalysis can already set the graph facet archive_decode to partial with a non-zero omitted count, for aggregate_decode_budget_exhausted, document_limit_reached, or archive_decode_budget_exhausted. Those documents still make documents.length > 0.

The trace coverage then says the archive facet is complete and nothing was omitted. The graph's own archive_decode facet can say the opposite in the same result. Callers that read the trace facet rather than archive_decode treat the Interface Builder inventory as fully examined.

Expected behavior

The trace facet should copy the archive-decode status and omitted count. A partial decode stays partial, with the same reason the graph already recorded.

Where

  • src/application/native/NativeUiActionTrace.ts — traceNativeUiAction
  • src/artifacts/apple/InterfaceBuilderAnalysis.ts — archive_decode facet
Originally created by @cursor[bot] on GitHub (Oct 10, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/1503 **TL;DR:** `trace_native_ui_action` marks `interface_builder_archives` `complete` whenever any document was decoded, including when archive decode already reported a budget omission. ### Area Native UI traces and Interface Builder ### Observed behavior `traceNativeUiAction` in `src/application/native/NativeUiActionTrace.ts` pushes: ```ts { facet: "interface_builder_archives", status: decoded.data.documents.length > 0 ? "complete" : "unsupported", examined: decoded.data.documents.length, omitted: 0, } ``` `InterfaceBuilderAnalysis` can already set the graph facet `archive_decode` to `partial` with a non-zero `omitted` count, for `aggregate_decode_budget_exhausted`, `document_limit_reached`, or `archive_decode_budget_exhausted`. Those documents still make `documents.length > 0`. The trace coverage then says the archive facet is complete and nothing was omitted. The graph's own `archive_decode` facet can say the opposite in the same result. Callers that read the trace facet rather than `archive_decode` treat the Interface Builder inventory as fully examined. ### Expected behavior The trace facet should copy the archive-decode status and omitted count. A partial decode stays `partial`, with the same reason the graph already recorded. ### Where - `src/application/native/NativeUiActionTrace.ts` — `traceNativeUiAction` - `src/artifacts/apple/InterfaceBuilderAnalysis.ts` — `archive_decode` facet
bsakaguchi 2026-10-15 18:25:42 +00:00
Author
Owner

@morluto commented on GitHub (Oct 10, 2026):

Thanks for reporting this. Closing as resolved on main. The native UI trace now derives its Interface Builder status, reason and omitted count from the archive_decode facet, preserving partial decode coverage.

Merged fix. I checked the current source against this report; no tests or real-provider workflows were run for this closure pass.

<!-- gh-comment-id:6099799632 --> @morluto commented on GitHub (Oct 10, 2026): Thanks for reporting this. Closing as resolved on main. The native UI trace now derives its Interface Builder status, reason and omitted count from the archive_decode facet, preserving partial decode coverage. [Merged fix](https://github.com/morluto/rea/commit/b4db35f092d7166aebdf4387b48f7652b1d1c3b6). I checked the current source against this report; no tests or real-provider workflows were run for this closure pass.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#509
No description provided.