Commit 2a8de44
feat: Claude Code CLI provider and Conductor-style sidebar redesign (#3)
* feat: add Claude Code CLI as built-in provider
Spawn claude CLI subprocess for claude-code/* models instead of AI SDK path.
Supports text streaming, tool calls, thinking, multi-turn via --resume,
session cleanup, timeout, and plugin hooks.
Includes unit/integration/e2e tests (11 passing) and design specs.
* fix: skip API key prompt for already-connected providers in web UI
* feat: redesign sidebar with Conductor-style status groups, PR integration, and continue-on-new-branch
- Sidebar shows 5 status groups: In progress / In review / Done / Backlog / Cancelled
- 3-line session rows: title+diff / branch / provider·PR·time·shortcut
- PR integration: open PR → In review, merged → Done (event-driven + 2min fallback)
- Backend GET /experimental/pr: per-branch gh pr list with --head flag
- Archive confirmation dialog before archiving sessions
- Continue on new branch: fork Done sessions to new worktree with clean context
- Fork strips snapshot refs and inits empty summary (no stale file changes)
- Replaced History header with repo name + worktree path tooltip
- Removed dummy All repos button and ReviewReadiness badge
- SDK regenerated with Pr.list and Git.remote
* fix: archive original session after continue-on-new-branch and remove 2min polling fallback
- continueOnNewBranch now archives the original Done session after forking
- Removed the session from the sidebar store to match archive behavior
- Removed unnecessary 2-minute setInterval polling for PR detection
- visibilitychange only fires fetchPrs when tab becomes visible
* fix: add cwd, permission bypass, and AskUserQuestion routing for Claude Code CLI
- Set cwd to Instance.directory so CLI runs in project dir
- Add --permission-mode bypassPermissions for non-interactive tool execution
- Remove release_date to fix model visibility in web UI
- Route AskUserQuestion through OpenCode Question system:
detect tool_use in stream, show in UI, pass answer on next --resume turn
- Set finish to tool-calls on question so session loop continues
* feat: show spinner on sidebar session row when agent is actively working
* fix: refetch session diffs when cache is stale after fork
* fix: add SessionSummary.summarize() to Claude Code CLI provider for real-time diff updates
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
* fix: apply agent tint color to sidebar spinner indicator
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
* fix: guard Snapshot.patch() call against undefined snap in Claude Code provider
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
---------
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>1 parent 296250f commit 2a8de44
26 files changed
Lines changed: 2978 additions & 294 deletions
File tree
- packages
- app/src
- components
- context
- i18n
- pages
- layout
- session
- opencode
- src
- provider
- server/routes
- session
- test/provider
- sdk/js/src/v2/gen
- specs
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| 176 | + | |
| 177 | + | |
176 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
177 | 183 | | |
178 | 184 | | |
179 | 185 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
279 | | - | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
280 | 287 | | |
281 | 288 | | |
282 | 289 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
496 | 496 | | |
497 | 497 | | |
498 | 498 | | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
499 | 502 | | |
500 | 503 | | |
501 | 504 | | |
| |||
795 | 798 | | |
796 | 799 | | |
797 | 800 | | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
798 | 804 | | |
799 | 805 | | |
800 | 806 | | |
| |||
809 | 815 | | |
810 | 816 | | |
811 | 817 | | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
812 | 827 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
445 | 445 | | |
446 | 446 | | |
447 | 447 | | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
448 | 451 | | |
449 | 452 | | |
450 | 453 | | |
| |||
714 | 717 | | |
715 | 718 | | |
716 | 719 | | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
717 | 723 | | |
718 | 724 | | |
719 | 725 | | |
| |||
728 | 734 | | |
729 | 735 | | |
730 | 736 | | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
731 | 746 | | |
0 commit comments