refactor: state the native harness set once, and the launch profiles once #1249
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1249
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/vk48-harness-set"
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?
Closes #1247.
The launchable harness set was written out in six places with nothing holding
them in step. A missed one failed differently at each site: the shadow refused,
the roster filter hid the seat, or
acomposesilently converged instead oflaunching. Two error messages also spelled the set out in prose, so they could
drift from the set they described.
Six down to two, and the two cannot drift
aos-clistates it once. The membership test and thewant claude, codex, goose, or opencodeprose both derive from that one slice, so the message cannotdescribe a set it no longer matches.
The shell carries no copy at all.
acomposedecides launch-vs-converge onwhether a non-flag second positional is present, and hands the seat on
unchecked.
agent-composealready owns the launchable set and refuses anunsupported seat by name, so the shell pre-filtering it was pure duplication.
That removes the copy most able to drift, and not hypothetically:
shell/common.shupdates through the canonical checkout while the binariesupdate through brew, and those two were four commits apart earlier today.
atermkeeps its set, which cannot drift because it ships from the samecommit as
aos-cli. A test pins the two equal and also fails if the shellregrows a list. I verified both guards by breaking them rather than trusting
they would fire:
The second parser is gone
atermhad a hand-rolled line reader forharness-launch-profiles.yaml,carried over from the retired
agent-terminal, next toaos-cli's strict YAMLparser of the same file. They agree on today's schema and could disagree on an
edit neither anticipated, which matters on a file that is about to be edited to
point a role at a deepseek-backed harness.
It now asks
aos _launch-agent, which costs nothing becauseatermalreadyhard-requires
aos, and falls back to the catalogue's frontier seat when theverb is absent. That deletes the file and drops the
compiledHarnessLaunchProfilesldflag from the aterm release build.Verification
The build script changed, which is what broke the train in #1242, so I ran the
whole thing locally first:
aos-release-buildacross four targets,aos-release-package, andaos-release-check, which reportsverified aos, aoscompose, aosward, aosguard, and aterm release aos-v0.229.0with 24checksums, unchanged.
On the built
aterm-darwin-arm64: a stubaosreportingcodexyields seatcodex, and anaoswithout the verb falls back toclaude.Nine
acomposeforms across bash and zsh, unchanged from #1246 plus explicitcodexnow passing through. 720 pytest, both Go suites, full pre-commit.🤖 Generated with Claude Code