subagent-start brief composition raises on an unmapped code file; ADR-0202 widened only the gate side #614
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#614
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?
Context
Codebase#tests_forraisesHarnessErrorwhen a changed code file has no mapped test. ADR-0202 added a rescue on the gate side only (GateCommands#diff_test_commandwidens to the suite). The brief side has no rescue:BriefFacts#test_changescallsModel::Project::Changes#test_paths, which callstests_forfor every changed code file.subagent-startbuilds the brief before it inserts the dispatch row, so the raise leaves no dispatch and nothing to settle.Observed on #607 implementation 3 (session 4974deff-0140-4813-8cd1-e96c6356a214): the first refactorer round removed a
require_relativeline from the manifestplugins/os/lib/worktree.rb. The os tests live inplugins/os/tests/worktree/, so the manifest maps to nothing. The second refactorer'ssubagent-startraised:gate 26answeredgate no dispatch 26;subagent-stopansweredno pending dispatch; the run never reachedimplementation_completeand was hand-finished.Change
Changesbecomes the one place that knows which code files have no mapped test. Both the brief and the gate read that fact.tests_forstill raises;Changescatches it once.The
rescue HarnessErrorindiff_test_commandgoes away.BriefFacts#test_changesappends one line whenunmapped_code_pathsis not empty:Tasks
Changes#unmapped_code_paths;test_pathsno longer raises for an unmapped code file.GateCommands#diff_test_commandwidens to the suite whenunmapped_code_pathsis not empty; remove itsrescue HarnessError.BriefFacts#test_changesappends the unmapped-code-files line when the list is not empty.ruby plugins/os-sdlc/tests/all.rb; green.Acceptance criteria
subagent-startcomposes a brief for a diff that contains an unmapped code file.Retired tests
plugins/os-sdlc/tests/model/project/changes_test.rb#test_code_file_with_no_candidate_test_raises_harness_error
plugins/os-sdlc/tests/model/project/changes_test.rb#test_code_file_with_single_candidate_and_no_test_raises_harness_error
Owner sketch
Cases
Changes#test_pathsis called, then it returns the changed test paths without raising, andunmapped_code_pathsnames that file.GateCommands#diff_test_commandis called, then it returns the suite command.unmapped_code_pathsis called, then it is empty anddiff_test_commandreturns the require-list command.BriefFacts#test_changesrenders, then the fact containsunmapped code files (diff-test widens to the suite): <path>.Origin
Work started via os-sdlc pipeline on branch ticket-614 (session 4974deff).
Deviation (impl 4): two pre-existing tests in changes_test.rb asserted the raising behavior this ticket retires and were not listed under Retired tests, so programmer-repair looped (dispatches 30-32). Main loop deleted both methods by hand and added the Retired tests section.
Resolution
Done: Changes#unmapped_code_paths added; test_paths rescues tests_for once; diff_test_command widens to the suite via that fact and lost its rescue; BriefFacts#test_changes appends the unmapped-code-files line.
Evidence: Branch ticket-614, pipeline implementation 4 reached implementation_complete (14 dispatches, 3 retries); suite-check dispatch 38 green; two new tests changes_unmapped_code_paths_test.rb and brief_facts_unmapped_code_files_test.rb; two retired raise-asserting tests removed from changes_test.rb.
Follow-ups: none: the flaky lsp-probe socket suite red (dispatch 35) is #611's territory, already open.
jared referenced this issue2026-09-22 19:17:06 +00:00