Problem — The onset router offered a first-run option set (application entry cards, "start from a system") regardless of who was asking. A returning researcher with an active problem, a campaign ledger, and a fleet got the same menu as a fresh install — so the greeting defaulted to pulse-design framing instead of reflecting the studio's actual state.
Approach — Make the router state-aware by instruction: the options are composed from the live stack state (active problem, campaign ledger under the personal vault's sessions/, fleet line) — resume options appear ONLY when the state supports them; first-run entry cards appear only when no profile is recorded. A specific opening ask still skips the question entirely.
Acceptance Criteria
Source
Follow-up observed live while tuning the onset greeting (hand-applied to the canonical server's staged prompt first; this lands the same text in the repo).
Notes
Router text is pure (buildRouterSection(visible)); golden router-section.md regenerated. Verification: router tests updated and green, golden parity 5/5, extension suite 1209 passed / 5 skipped / 100 files, typecheck clean.
Problem — The onset router offered a first-run option set (application entry cards, "start from a system") regardless of who was asking. A returning researcher with an active problem, a campaign ledger, and a fleet got the same menu as a fresh install — so the greeting defaulted to pulse-design framing instead of reflecting the studio's actual state.
Approach — Make the router state-aware by instruction: the options are composed from the live stack state (active problem, campaign ledger under the personal vault's
sessions/, fleet line) — resume options appear ONLY when the state supports them; first-run entry cards appear only when no profile is recorded. A specific opening ask still skips the question entirely.Acceptance Criteria
question-tool ask ("What do you want to do today?") for openers without a specific request.Source
Follow-up observed live while tuning the onset greeting (hand-applied to the canonical server's staged prompt first; this lands the same text in the repo).
Notes
Router text is pure (
buildRouterSection(visible)); goldenrouter-section.mdregenerated. Verification: router tests updated and green, golden parity 5/5, extension suite 1209 passed / 5 skipped / 100 files, typecheck clean.