Name the host class and its origin, so a silent fail-safe stops reading as a correct converge #985
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/infrastructure!985
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/ee98-hostclass"
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 the diagnosis half of
coilyco-flight-deck/agent-compose#379.What was measured
agent-compose's own sidecar (
~/.config/agent-compose/skill-mounts.json) records 78 mounted skills on this Mac: 42 from the rendered personality library, 36 fromagentic-os. Zero fromagentic-os-kai,voice-corpus, orlore. That matches the two independent session reports on #379.Why
skillmount.discoverlinks.agents/skillsfor each repository inrepository-plan.yamlresidency, plus each hydrated catalogue. Live residency holds exactly one entry,coilyco-flight-deck/agentic-os, and the catalogue manifest is an empty array. 36 plus 42 is therefore the whole reachable surface.Residency follows the host class. The rendered
agent-compose.yamlcarries one source and oneoperating_contextentry, which ishostclass_baseoutput.hostclass_personalhas carried the AOSK source sincee7e138e(2026-06-12), and AOSK's.agents/roles.kdlis what declaresvoice-corpus,lore, and the rest of the private graph.AOS_HOST_CLASS=personalis present in~/.shellrc.localand has been since 2026-08-04. So a converge ran without it in its environment and the Darwin fail-safe took over.What this changes
Nothing about the policy.
basestays the fail-safe and stays the safe direction.What it stops being is invisible. The fail-safe is reached by a variable being absent rather than by a decision, and it renders a public-only config that reads exactly like a correct one. Three separate sessions read that file this week and none could tell which class produced it.
sync.ymlrecords the resolved class and whether it came from inventory,$AOS_HOST_CLASS, or the fail-safe.os-failsafe.agent-compose.yamlheader states the class and its origin, and says plainly when the class was never declared.Verified
All three resolution paths, against localhost, mutating nothing:
And the template renders the warning block only on
os-failsafe.ansible-playbook --syntax-checkand the full pre-commit suite pass.This restores no skills on its own
The overlay returns when the host re-converges from a terminal that sources
~/.shellrc.local. I could not run that:ansible-synccorrectly refuses inside a native session shadow, because HOME here is a temporary directory and every~-rooted path would render into it.Not established
Which converge run dropped the variable. The rendered file is dated 2026-08-28 and
~/.shellrc.localpredates it by three weeks, so the environment was missing at that run rather than the config. I did not find the invocation, and this change makes the next occurrence say so rather than requiring the same archaeology.