Cut Dispatch -> Boot: drop HookReading use in Admission and Settlement #1168
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1168
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The Dispatch concept calls into the Boot concept in two places.
Dispatch::Admission.subagent_startcallsBoot::HookReading.arrival(event)(dispatch/admission.rb:7). That method only callsevent.arrivaland rescuesKeyErrorandEvent::UnknownAgentError.Admissionalready has the same rescue with the sameLoud::Exitmessage.Dispatch::Settlement.subagent_stop_from_stdinparses stdin throughBoot::HookReading(dispatch/settlement.rb:7). Onlytests/dispatch/settlement_repo_test.rbcalls it. Production goesBoot::Inputs.subagent_stop->Dispatch::Completion->Settlement.subagent_stop. The edge Dispatch -> Boot lies on 48 concept cycles.Reproduce
n/a: structure-wave cut, nothing to reproduce
Approach
Required work:
plugins/os-sdlc/lib/os_sdlc/dispatch/admission.rb, callevent.arrivaldirectly:Dispatch::SubagentStart.call(event.cwd, event.arrival). Keep the existingrescue KeyError, Event::UnknownAgentError. TheLoud::Exittext stays the same.plugins/os-sdlc/lib/os_sdlc/dispatch/settlement.rb, deleteSettlement.subagent_stop_from_stdin— check: absentBootinplugins/os-sdlc/lib/os_sdlc/dispatch/**/*.rbplugins/os-sdlc/tests/dispatch/settlement_repo_test.rb, callDispatch::Settlement.subagent_stop(@dir, dispatch_id: id, content: ...)in place ofsubagent_stop_from_stdin.Acceptance criteria
bin/crc-cycle-edgesruns, then no edge Dispatch -> Boot listsdispatch/admission.rb:7. The same holds fordispatch/settlement.rb:7.Admission.subagent_startruns, then it exits loudly withsubagent-startand the same message as before.Settlement.subagent_stopreceives its id and content, then the dispatch settles in the root's store.Owner sketch
Boot::HookReading.arrivalstays:Boot::Inputs(boot/inputs.rb:27) still calls it. Pinning tests:tests/pipeline/cli_subagent_start_test.rb,tests/controller/hook_envelope_bytes_test.rb,tests/dispatch/briefing_test.rb,tests/dispatch/completion_test.rb,tests/dispatch/settlement_repo_test.rb.Non-goals
The tests are already in place on branch crc-os-sdlc-run-3:
tests/dispatch/settlement_repo_test.rbcallsSettlement.subagent_stop, andtests/dispatch/admission_test.rbpins the loud exit. Change no test.S8 lands before S4. S8 and S4 share
lib/os_sdlc/dispatch/settlement.rb. S2 lands only after S4.Origin
049a7820)VERDICT: CREATE
Work started on branch crc-os-sdlc-run-3 (os-sdlc CRC run 3, structure wave step 1).
Dropped follow-up (ticket-skeptic DROP): the structure-change unchanged gate failed 2248 -> 2249 runs because the orchestrator committed the green tests (
8f4d1499) and rerouted. The escalation procedure says to hand-finish green work; that path avoids the defect. The orchestrator then hand-finished (03a37f8c) and abandoned implementation 85.Resolution
Done: Cut the Dispatch -> Boot cycle edge: Admission calls event.arrival and keeps its rescue; Settlement.subagent_stop_from_stdin is deleted; settlement_repo_test calls Settlement.subagent_stop; admission_test pins the loud exit.
Evidence:
8f4d1499(tests),03a37f8c(change), merged to main; suite 2249 runs, 0 failures; eager load exit 0; rubocop on changed files clean; inward delta exit 1 only from the #1174 rename false positive, real change: the admission.rb Boot::HookReading offense is gone; cycle edges 11 -> 8. Hand-finished; implementation 85 abandoned after the unchanged gate counted the pre-committed test.Follow-ups: none (unchanged-baseline follow-up dropped by ticket-skeptic; reason posted on this ticket)