Skip to content

feat: add interactive sessions with terminal and PR tracking#93

Merged
jonwiggins merged 3 commits intomainfrom
optio/task-f51bb0bb-27e5-4dd8-8996-f7e06206950e
Mar 25, 2026
Merged

feat: add interactive sessions with terminal and PR tracking#93
jonwiggins merged 3 commits intomainfrom
optio/task-f51bb0bb-27e5-4dd8-8996-f7e06206950e

Conversation

@jonwiggins
Copy link
Owner

@jonwiggins jonwiggins commented Mar 25, 2026

Summary

  • PR URL detection in terminal: The session terminal WebSocket handler now automatically scans stdout/stderr for GitHub PR URLs (e.g., https://github.com/owner/repo/pull/123) and registers them in session_prs, so users don't need to manually add PRs opened during a session
  • Session PR watching: Extended the PR watcher worker to also poll session PRs in active sessions — updates CI check status, review status, and merge state every 30s, keeping the session detail page's PR sidebar current
  • Active sessions on overview page: The dashboard now shows an "Active Sessions" section with quick-connect cards when sessions are running, plus a session count in the subtitle bar
  • Sessions on repo detail page: Added a sessions section showing recent sessions for the repo with a "New Session" button in the header for easy session creation from the repo config page

Test plan

  • All existing tests pass (290 tests across 3 packages)
  • TypeScript typecheck passes for all 6 packages
  • Prettier formatting passes
  • Verify PR detection by opening a PR from a session terminal and confirming it appears in the PR sidebar
  • Verify session PR status updates by watching CI/review badges update after PR events
  • Verify active sessions appear on the overview dashboard
  • Verify sessions section appears on repo detail page with "New Session" button

🤖 Generated with Claude Code

Optio Agent and others added 3 commits March 25, 2026 16:14
Add a first-class Session concept to Optio — persistent, interactive workspaces
scoped to a repository pod. Sessions give users direct access to repo pods via
a web terminal with full PR lifecycle tracking.

Changes:
- Database: interactive_sessions and session_prs tables with migration
- Shared: InteractiveSession types and WebSocket events (session:created, session:ended)
- API: CRUD routes for sessions (/api/sessions), session PR tracking
- WebSocket: /ws/sessions/:id/terminal endpoint for xterm.js terminal
- Web UI: sessions list page (/sessions) with filtering and new session creation
- Web UI: session detail page (/sessions/[id]) with terminal and PR sidebar
- Sidebar: Sessions nav link with Terminal icon

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…I integration

- Add automatic PR URL detection in session terminal WebSocket handler
  (scans stdout/stderr for GitHub PR URLs and registers them to session_prs)
- Add session PR watching to pr-watcher worker (polls CI checks, review
  status, and merge state for PRs opened during active sessions)
- Add active sessions section to the overview dashboard page with live
  session count and quick-connect cards
- Add sessions section and "New Session" button to repo detail page,
  showing recent sessions for the repository

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Integrate main branch changes (schedules, task comments, activity feed)
with the interactive sessions feature branch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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