Skip to content

feat: Add chat session subchannels#305

Open
0xroylee wants to merge 5 commits into
mainfrom
codex/session-subchannels
Open

feat: Add chat session subchannels#305
0xroylee wants to merge 5 commits into
mainfrom
codex/session-subchannels

Conversation

@0xroylee

@0xroylee 0xroylee commented Jun 7, 2026

Copy link
Copy Markdown
Owner

What Changed

  • Added shared chat session subchannel helpers and route parsing for /session/:id/chat and /session/:id/task-info.
  • Rendered selectable Chat and Task Info child links under each active session in the left sidebar.
  • Replaced the chat task-details side sheet with a main-panel Task Info channel that reuses existing React Query task, token usage, and activity hooks.

Why

  • Session task details should behave like Slack-style subchannels under each session, with Task Info as an actual selectable channel instead of a separate details panel.
  • Durable subchannel URLs make session context linkable and preserve the chatroom mental model.

How to Test

  • bun test packages/web/tests/chat-session-subchannels.test.ts packages/web/tests/operator-chat-sidebar-route.test.ts packages/web/tests/chat-room-sidebar-utils.test.ts
  • bun run --filter web typecheck
  • bun run check
  • bun run --filter web build
  • bun run typecheck
  • bun test
  • Browser QA: started web on localhost:3002 and API on 3001 with PGlite, created a session, verified Session -> Chat / Task Info in desktop and mobile sidebar, switched between /chat and /task-info, confirmed the old Details button is gone, and confirmed no browser console warnings/errors.

Additional Notes

  • The first sandboxed web build hit the known Turbopack port-binding panic; rerunning the same build outside the sandbox passed.
  • The legacy /session/:sessionId route still renders the Chat channel.

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