Repository navigation
Slice 5: agent-picker order patch + titlebar posture indicator/switcher #297
Description
Important
Problem — The agent picker's order is stock-alphabetical while the product config has named plan → build → autodev → autoresearch as the intended order for weeks, and there is no posture indicator or mid-session posture switch in the titlebar — the "interim Tab-switch" the director cards call interim.
Approach — Two patch-stack fork changes riding ONLY the committed message/event contract: (a) the agent-list sort patch (picker order plan → build → autodev → autoresearch — a rendering constant); (b) a posture indicator with mid-session switching composed on the existing agent-switched message/event plumbing (the ledger-persists model the cards claim). Display metadata is generic-over-agents — no mode-name branch in fork logic.
Scope — in: the sort patch + the indicator/switcher + the vendoring pin bump + overlay regen · out: any agent-payload widening (amendment-gated by the spec — never silent), any new engine contract.
Acceptance Criteria
- Agent list order is plan → build → autodev → autoresearch, measured against the PINNED release binary (not dev)
- A headless mid-session agent-switch round-trip: prompt → switch → next prompt carries the new posture's card; the campaign ledger file is untouched on disk
- The indicator renders on the titlebar surface the pinned binary actually ships (the v2 titlebar dependency is named — this slice sequences after its landing, rendering on the existing titlebar until then)
- The fork patch stack entry is recorded in the patches log
- The vendoring pin is bumped and the overlay regenerated in-slice; the product repo's picker-order sentence stays softened (names the patch as pending) until the fork fixtures are green on the pinned binary
Testing Decisions
Fork fixtures (list order + switch round-trip) against the pinned binary; the product side keeps its existing config tests.
Key Decisions
Sequencing: lands immediately after the harness-agnostic campaign's next vendoring pin — with a BREAKER: if no pin lands within 14 days of this slice's start, this slice may bump the pin itself under the shared-checkout discipline (a breaker-fired bump is recorded in the harness-agnostic session ledger and the checkouts registry). The shared fork checkout is three-way (this campaign, harness-agnostic, session-device-lifecycle): every fork-touching cast claims it in the checkouts registry and checks the branch before every commit.
Constraints & Invariants
Fork-minimal and patch-stack-native: composes only on the message/event contract the harness campaign is committed to preserve; no new engine contract; any widening requires the amendment path named in the spec.
Prior Art
Spec decision D5; the harness-agnostic campaign's session ledger (the release-train counterpart); the session-device-lifecycle campaign (the v2 titlebar dependency and the shared checkout discipline).
Source
Spec spec-20260905-063000-modes-first-class (campaign of record: the amicode product repo's campaign ledger) · Blocked by the mode-registry slice landing (what this renders) and the harness-agnostic campaign's next pin (or the 14-day breaker). Published with Aaron's standing approval to execute (autodev, 2026-09-05).
Activity