Skip to content

Keep bus append and capability queries with their declared owners - #2631

Merged
trissim merged 1 commit into
integration/installer-report-lifetimefrom
fix/capability-record-ownership
Oct 23, 2026
Merged

trissim merged 1 commit into
integration/installer-report-lifetimefrom
fix/capability-record-ownership

Conversation

@trissim

@trissim trissim commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

BusCapability represents partial record fields, but its append method assumed every capability had a sequence. Generated table annotations also discarded both sequence identity and the declared claim payload, forcing consumers to rely on attributes their contracts did not promise.

Move append_to to the existing complete BusRecord owner; BusRow.kind already requires that family. CapabilityRow owns the generated sequence field once, and every generated table inherits it. HeldResources reads through the existing Claimed projection and takes the sequence from its original claim transition. TypedTable select/stream overloads preserve the actual requested projection. Delete the redundant inner declared_fields cache; its two consumers already memoize their declaration-derived results.

The user-identity contention fixture now constructs its clients through Comms(root).messaging, supplying the existing goals owner instead of calling the obsolete constructor.

Validation:

  • 36 focused checks passed in 12.55s: actual claim append/read/rollback, history sequence/page/snapshot paths, committed-message completion failures, and TypedTable queries.
  • Generated bus DDL is exactly unchanged across 36 schema objects.
  • NRA original-source census: 463 production modules, no parse omissions. Before/after class bases, moved method, descriptor, query consumers and append callers are retained in the existing MI evidence file. These authored edits are source-backed; AST resolution is not a runtime-equivalence proof.
  • Ruff import/undefined-name checks and git diff --check passed.
  • Focused mypy is explicitly not clean. It retains the class-object/cache Hashable limitation, ambiguity when arbitrary dictionary keys are forwarded through select overloads, and preexisting TypedTable/Delivered diagnostics. No Any, cast, ignore or replacement cache was added to hide those results.
  • No full suite, local debt ratchet, native build or original user data. The integration owner retains the combined installed native/UI qualification.

This follows the integrated probe/cutover/completion/activity work from #2628 and CoordinatorRow checkpoint 7bd42ed (integrated as 8325507). Base is integration/installer-report-lifetime. Remaining hosted screening findings are being dispositioned against their actual source; they are not all demonstrated defects or claimed fixed by this PR.

Hosted finding dispositions (workflow 39894026668, candidate 13f9c35; not a fresh measurement):

Finding Disposition
Activity, carry/probe, completion/message, private guard/schema, coordinator row type growth Repaired in integrated #2628/7bd42edfc; scoped results above and existing MI source receipt.
Generated sequence/claim payload and append contracts Repaired here; class-object/cache typing limitation remains explicit.
cohort_foreground delivery contract Still owned by the response-policy worker in independent #2630; not included here.
installer/upgrade type growth Root-owned dbba9e2 repair.
todos type growth Hosted aggregate was not diagnosed here; request-authority/P421 owner remains responsible.
BroadSwallow in launch and sent_message Retained deliberately: original launch failure is rethrown after report failure; missing sent original remains unqualified rather than fabricated publication proof.
FamilyFlattened in messages/read_basis; cutover semantic report reads and tool type/lint/format Repaired in the preceding integrated checkpoints.
Selected-interpreter imports and lazy private declaration imports Retained at their actual runtime/registration boundary. One redundant local error import was removed. Other local-import counts are leads, not claimed eliminated.
Optional timestamps, open query bounds, absent context peers Retained as meaningful optional boundaries. Live/historical source carriage remains a wider Core/Toad lead.
Other size, lint/format, vocabulary and None/import screening Explicitly not claimed fixed or fully diagnosed. No counter-driven source expansion during final installer qualification.
UncarriedRecordFormat +1 Unresolved hosted warning: the log emits no changed record identity. Neither these tests nor this PR establish that it is cleared. The installer integration owner retains this disposition.

All 98 hosted growth rows have individual status, owner and limits in the existing /home/ts/.cache/agent-scratch/mi-owner-withdrawal-trace.json under combined_owner_debt.hosted_dispositions. This preserves actual source judgments separately from unchecked screening leads. No local ratchet, full suite or new build was run.

@trissim
trissim merged commit d890e6c into integration/installer-report-lifetime Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant