Skip to content

Slice 5: agent-picker order patch + titlebar posture indicator/switcher #297

Description

@aarontrowbridge

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    afkImplement + merge unattended

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions