Skip to content

feat: integrate session scope tracking into frontend state management#187

Closed
bbsngg wants to merge 1 commit intosplit/a-foundation-typesfrom
split/d-frontend-scope
Closed

feat: integrate session scope tracking into frontend state management#187
bbsngg wants to merge 1 commit intosplit/a-foundation-typesfrom
split/d-frontend-scope

Conversation

@bbsngg
Copy link
Copy Markdown
Contributor

@bbsngg bbsngg commented Apr 15, 2026

Summary

  • chatStorage: add provider-scoped storage functions (persistScopedPendingSessionId, buildChatMessagesStorageKey, etc.)
  • useSessionProtection: tracking callbacks now accept (sessionId, provider, projectName) and use scope keys internally
  • projectsSessionSync (new): provider-to-session-array mapping, upsertProviderSessionList for optimistic UI updates
  • useProjectsState: integrate projectsSessionSync, listen for optimistic-session-created custom events

Part of the session lifecycle PR split (5/6). Depends on #184 (foundation types). PR E (chat hooks) depends on this.

Test plan

  • npx tsc --noEmit passes
  • npx vitest run src/hooks/__tests__/projectsSessionSync.test.ts passes
  • Session protection correctly tracks multi-provider sessions

🤖 Generated with Claude Code

Upgrade frontend session tracking from plain sessionId to composite
project::provider::session scope keys for multi-provider correctness.

- chatStorage: add provider-scoped storage functions
  (persistScopedPendingSessionId, buildChatMessagesStorageKey, etc.)
- useSessionProtection: tracking callbacks now accept (sessionId,
  provider, projectName) and use scope keys internally
- projectsSessionSync (new): provider-to-session-array mapping,
  upsertProviderSessionList for optimistic UI updates
- useProjectsState: integrate projectsSessionSync, listen for
  optimistic-session-created custom events

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@bbsngg
Copy link
Copy Markdown
Contributor Author

bbsngg commented Apr 15, 2026

Split from #170 (5/6). Depends on #184 (foundation types). #188 depends on this. See #170 for full split plan.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant