Skip to content

Separate owner requests from agent goals on the SQL bus - #2621

Closed
trissim wants to merge 37 commits into
integration/bus-current-mainfrom
integration/owner-requests-current-bus
Closed

trissim wants to merge 37 commits into
integration/bus-current-mainfrom
integration/owner-requests-current-bus

Conversation

@trissim

@trissim trissim commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Owner requests now have independent identities and lifetimes in the existing TodoStore. Orders bind one selected request; completing a request preserves other requests and the commander's execution goal. Connector directives carry selected request IDs on the committed message and use the existing committed-publication completion, including notification failure.

Ports the semantic delta of #2560 onto the current SQL bus. The port retains one indexed OwedAnswer read, exact answer references and UnitState ownership. GoalHistoryEntry inherits its public revision fields rather than redeclaring them. The installer carries legacy requests before BusHistory, including archived roots and existing catalogue seals; CarryChain derives this order from declaration-owned dependencies. This PR is stacked on #2616's branch for review of that delta alone.

The check exposed two additional defects. PiPayload ignored missing required fields and leaked SessionEntry constructor errors past Unreadable source handling; it now uses the existing FieldPlan rules. HumanSendRefusedError now retains the original typed cause, while programming failures propagate after rollback.

Validation at ca156d2:

  • Retained copied-root migration preserved 49 requests, 296 directives, 454 todos, 2,030 history entries and 194 threads; repeat application changed nothing. All 643 historical request endpoints validated. The exact previous 27 commander debts survived, read in 1.05 seconds.
  • Five actual commander CLI subprocess commands on that retained copy created two requests, listed them, completed each independently and preserved the execution goal. No agent inputs were sent.
  • Real predecessor publisher to current live and archived roots passed conversion, history/ledger preservation, archive validation, idempotence and the installer's declared changed-file check.
  • Consumer batch: 73 passed, with two failures repaired and verified in a subsequent 10-case carry/boundary batch. Request/order checks: 29 initially passed; shared fixture and old schema-ownership expectations were repaired, with 22 affected cases and the schema case passing afterward.
  • 103 payload/codec controls passed; nine existing malformed-record controls now specifically require MalformedRecord. Fifteen send/completion failure controls plus a real inserted-row rollback/programming-error control passed. Undefined-name and whitespace checks pass. These are separate focused batches, not a full-suite claim.

Source evidence: NRA parsed 1,240 Core/tools/tests/Toad modules and built the 6,875-class family, with no parse omissions. Request state moved from Goal into OwnerRequest/TodoStore; task attachment and the existing publication origin own directive recording. The only retired RequestGoalOrder use is the isolated predecessor fixture executed under old source. Lexical/inheritance coverage does not prove dynamic binding or native/UI behavior. Detailed commands and before/after evidence are retained in the existing installer-fork integration evidence directory.

Integration obligations: combine CarryChain ordering with #2620, include Toad's migrated typed-cause call, rehearse the combined pair, and qualify the installed native/ACP/UI path with a fresh copied-agent DM, reply and tab return. No paired installation or live UI qualification claimed here.

ExternalBoundariesPhase's blanket regex remains unresolved: necessary all-failure committed-state preservation stays in Messaging and WAL retirement. RuntimeError-after-commit and simultaneous notification/completion failure controls remain intact. No ratchet exemption or phase-closure claim. #2469 remains a separate source-reviewed delta; its second review-status writer and retired bus reader must not be merged over current owners.

@trissim
trissim changed the base branch from main to integration/bus-current-main October 23, 2026 02:17
@github-actions

Copy link
Copy Markdown

debt-tools at 8d990c8, every finding:

grew BannedVocabulary:tools/cutover/carry_bus_history.py +1
grew ForeignFieldSpellings:tools/cutover/carry_bus_history.py +1
grew LintFindings:tools/cutover/carry_owner_requests.py +4
grew StringSubscript +1
grew TypeErrors:tools/cutover/carry_bus_history.py +2
grew Unformatted:tools/cutover/carry_bus_history.py +1
grew Unformatted:tools/cutover/carry_owner_requests.py +1
introduced BannedVocabulary:tools/cutover/carry_bus_history.py at lines [711]

@github-actions

Copy link
Copy Markdown

debt-src at 8d990c8, every finding:

grew BannedVocabulary:src/agent_comms/maintenance_barrier.py +1
grew BannedVocabulary:src/agent_comms/restart_queue.py +1
grew BroadSwallow:src/agent_comms/sent_message.py +1
grew FamilyFlattened:src/agent_comms/messages.py +1
grew FamilyFlattened:src/agent_comms/read_basis.py +1
grew FunctionLocalImport:src/agent_comms/commander/questions.py +1
grew FunctionLocalImport:src/agent_comms/coordination_database.py +1
grew FunctionLocalImport:src/agent_comms/history_views.py +3
grew FunctionLocalImport:src/agent_comms/installer/installed_packages.py +4
grew FunctionLocalImport:src/agent_comms/locked_store.py +1
grew FunctionLocalImport:src/agent_comms/messages.py +1
grew FunctionLocalImport:src/agent_comms/private_nk_entrypoint.py +6
grew FunctionLocalImport:src/agent_comms/private_registry_guard.py +13
grew FunctionLocalImport:src/agent_comms/private_runtime_schema.py +2
grew FunctionLocalImport:src/agent_comms/queued_input.py +1
grew FunctionLocalImport:src/agent_comms/read_basis.py +2
grew FunctionLocalImport:src/agent_comms/registry_store.py +1
grew FunctionLocalImport:src/agent_comms/selected_participant.py +1
grew FunctionLocalImport:src/agent_comms/task_sources.py +1
grew FunctionLocalImport:src/agent_comms/thread_status.py +2
grew GodClassExcess:src/agent_comms/goal_attempts.py::GoalAttemptStore +1
grew GodClassExcess:src/agent_comms/typed_table.py::TypedTable +20
grew LintFindings:src/agent_comms/bus.py +2
grew LintFindings:src/agent_comms/bus_publication.py +1
grew LintFindings:src/agent_comms/bus_tables.py +2
grew LintFindings:src/agent_comms/cli_commands.py +2
grew LintFindings:src/agent_comms/cohort_schema.py +1
grew LintFindings:src/agent_comms/commander/order.py +2
grew LintFindings:src/agent_comms/commander/vibe_check.py +2
grew LintFindings:src/agent_comms/connector.py +2
grew LintFindings:src/agent_comms/coordination_cohort.py +2
grew LintFindings:src/agent_comms/coordination_response.py +2
grew LintFindings:src/agent_comms/coordination_tables/publications.py +1
grew LintFindings:src/agent_comms/goal_attempts.py +1
grew LintFindings:src/agent_comms/input_origin.py +1
grew LintFindings:src/agent_comms/installer/installed_packages.py +2
grew LintFindings:src/agent_comms/locked_store.py +1
grew LintFindings:src/agent_comms/message_bus.py +2
grew LintFindings:src/agent_comms/messaging.py +2
grew LintFindings:src/agent_comms/native_runtime_input.py +3
grew LintFindings:src/agent_comms/notification_assignment.py +1
grew LintFindings:src/agent_comms/owner_lifecycle.py +1
grew LintFindings:src/agent_comms/owner_requests.py +1
grew LintFindings:src/agent_comms/page_traversal.py +1
grew LintFindings:src/agent_comms/private_runtime_schema.py +2
grew LintFindings:src/agent_comms/registry_document.py +1
grew LintFindings:src/agent_comms/restart_queue.py +3
grew LintFindings:src/agent_comms/runtime.py +1
grew LintFindings:src/agent_comms/runtime_requests.py +1
grew LintFindings:src/agent_comms/selected_claim.py +1
grew LintFindings:src/agent_comms/selected_participant.py +1
grew LintFindings:src/agent_comms/selected_write_plan.py +1
grew LintFindings:src/agent_comms/standing_rules.py +2
grew LintFindings:src/agent_comms/thread_status.py +5
grew LintFindings:src/agent_comms/todos.py +1
grew LintFindings:src/agent_comms/tools.py +10
grew LintFindings:src/agent_comms/typed_table.py +1
grew NoneAbsence:src/agent_comms/bus.py +7
grew NoneAbsence:src/agent_comms/coordination_tables/publications.py +1
grew NoneAbsence:src/agent_comms/messages.py +1
grew NoneAbsence:src/agent_comms/messaging.py +2
grew NoneAbsence:src/agent_comms/read_basis.py +1
grew NoneAbsence:src/agent_comms/registry_document.py +2
grew NoneAbsence:src/agent_comms/registry_provenance.py +2
grew NoneAbsence:src/agent_comms/response_policy.py +1
grew NoneAbsence:src/agent_comms/thread_identity.py +6
grew TypeErrors:src/agent_comms/bus_activity_index.py +2
grew TypeErrors:src/agent_comms/bus_tables.py +4
grew TypeErrors:src/agent_comms/cohort_foreground.py +1
grew TypeErrors:src/agent_comms/coordination_schema.py +1
grew TypeErrors:src/agent_comms/installer/carry.py +2
grew TypeErrors:src/agent_comms/installer/installed_packages.py +5
grew TypeErrors:src/agent_comms/messages.py +3
grew TypeErrors:src/agent_comms/messaging.py +4
grew TypeErrors:src/agent_comms/private_registry_guard.py +2
grew TypeErrors:src/agent_comms/private_runtime_schema.py +2
grew TypeErrors:src/agent_comms/todos.py +1
grew UncarriedRecordFormat +1
grew Unformatted:src/agent_comms/commander/questions.py +1
grew Unformatted:src/agent_comms/installer/installed_packages.py +1
grew Unformatted:src/agent_comms/page_traversal.py +1
grew Unformatted:src/agent_comms/private_runtime_schema.py +1
introduced BannedVocabulary:src/agent_comms/maintenance_barrier.py at lines [358]
introduced BannedVocabulary:src/agent_comms/restart_queue.py at lines [403]
introduced BroadSwallow:src/agent_comms/sent_message.py at lines [59]
introduced NoneAbsence:src/agent_comms/bus.py at lines [201, 206, 253, 257, 271, 282, 291]
introduced NoneAbsence:src/agent_comms/channel_management.py at lines [271]
introduced NoneAbsence:src/agent_comms/coordination_cohort.py at lines [136]
introduced NoneAbsence:src/agent_comms/coordination_tables/publications.py at lines [64]
introduced NoneAbsence:src/agent_comms/input_drain.py at lines [411]
introduced NoneAbsence:src/agent_comms/messages.py at lines [530]
introduced NoneAbsence:src/agent_comms/messaging.py at lines [50, 58]
introduced NoneAbsence:src/agent_comms/page_traversal.py at lines [29, 38, 126]
introduced NoneAbsence:src/agent_comms/read_basis.py at lines [813]
introduced NoneAbsence:src/agent_comms/registry_document.py at lines [792, 793]
introduced NoneAbsence:src/agent_comms/registry_provenance.py at lines [192, 193]
introduced NoneAbsence:src/agent_comms/response_policy.py at lines [60]
introduced NoneAbsence:src/agent_comms/thread_identity.py at lines [536, 536, 603, 603, 674, 674]
introduced NoneAbsence:src/agent_comms/transcript_sources.py at lines [488]

@trissim

trissim commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this branch has no commit ahead of main, so it holds no work. Found by the fleet check 2026-10-23. Reopen if that is wrong.

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