feat(aterm): decode the whole identity overlay contract (#1251) #1267
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/devrel
role/eval
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/sysadmin
role/tpm
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!1267
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/mu55-overlay-contract"
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 #1251. Tier 1 of the #1245 dispatch, and the precondition for #1255 and #1256.
What changed
aterm/overlay.godeclared 3 of the 11 fields a personality ships and 3 of the 5 a seat ships. Everything else was dropped by a struct that never named it, which JSON decoding does in silence. The struct now names every leafagent-compose overlay --jsonships:seat- addskeyandtiermotifemblem- addsnameandemojiform- new,silhouette/geometry/motionsound_mark- new,timbre/contour/pulseNo behavior change.
buildTitlestill readsemblem.glyph,buildBrandstill readsfavorite_color, andaterm --dry-runoutput is byte-identical.On the dead
ColorThe issue asked to drop it or use it. Declaring the full contract makes the second option the real one:
TestOverlayDecodesEveryShippedFieldre-encodes each fixture through the struct and compares leaf paths and values against the raw JSON, socoloris now a checked contract field rather than decoration, and so is every field added here.That test was verified against a negative control. Retagging
sound_marktojson:\"-\"fails it with six named paths per fixture, so it detects a silent drop rather than only passing.Why docs/aterm.md is reflowed
docs/aterm.mdsat at 120 of 120 lines withdocs/at 40 of 40 files, so no paragraph could land and the documentation-layout hook names splitting as trading one cap for the other. Normalized it to one paragraph per line, the same move agentic-os#1089 made on AGENTS.md. Content is byte-identical under whitespace normalization, asserted before committing: 120 lines to 73, 6,975 of 8,000 chars, and room for the tiers that consume these fields.Verification
just aterm-fmt,just aterm-lint,just aterm-testcleanpre-commit runclean on every touched file