Extracted from #39. Gate on the listSessions capability from initialize; SessionManager keeps an in-memory list from session/list sorted by updatedAt; sessionStorage shrinks to an active-session pointer; client-side title generation is removed (titles come from goose).
This is the only type-breaking slice (SessionEntry.updatedAt, SessionStorageData drops the sessions array, AgentCapabilities.listSessions). The issue must include the migration story #39 lacks: clean up the legacy goose.sessions.v1 globalState key, decide fallback persistence for agents without session/list (as written they regress to memory-only history), and bump/handle schemaVersion.
Size: M-L | Depends on: #60 (or hand-rolled types) | Tier: 2
Extracted from #39. Gate on the
listSessionscapability from initialize; SessionManager keeps an in-memory list fromsession/listsorted by updatedAt; sessionStorage shrinks to an active-session pointer; client-side title generation is removed (titles come from goose).This is the only type-breaking slice (SessionEntry.updatedAt, SessionStorageData drops the sessions array, AgentCapabilities.listSessions). The issue must include the migration story #39 lacks: clean up the legacy
goose.sessions.v1globalState key, decide fallback persistence for agents withoutsession/list(as written they regress to memory-only history), and bump/handle schemaVersion.Size: M-L | Depends on: #60 (or hand-rolled types) | Tier: 2