Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 35 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,46 @@ By [21st.dev](https://21st.dev) team

Enhancements added in this fork on top of upstream:

### Workflow & UI

- **Split View with Drag-to-Split** - Drag a sub-chat from the sidebar to create or extend a split-view layout; per-pane close button in the title bar
- **Cmd+Shift+T: New Sub-Chat in Split** - Dedicated shortcut (and tooltip) that opens a new sub-chat directly into split view
- **Sortable Sidebar** - Reorder chats in the sidebar via drag-and-drop (@dnd-kit), with a grab-cursor + grip-handle hint on hover
- **Draggable Tab Bar** - Native HTML5 drag-and-drop on tabs with an insertion marker; split pairs stay locked
- **Queue Reorder** - Drag to reorder queued messages before they're sent
- **Text-Selection Copy Popover** - Copy button appears when you highlight text inside a chat message
- **Optimistic Sub-Chat Creation** - New sub-chats appear instantly and roll back on RPC failure
- **Per-Mode Thinking Effort** - Set Claude's thinking budget independently for Plan and Agent modes
- **Per-Mode Default Models** - Configure a default model per mode with automatic switching on mode change
- **Usage Statistics** - Built-in page showing Claude + Codex token and cost tracking
- **Per-Mode Default Models** - Configure default model per mode with automatic switching on mode change
- **Latest Claude Models** - Opus 4.7 and updated model list including latest Claude releases
- **Wider Chat Column** - Expanded chat area (max-w-4xl) for better readability
- **Windows Git Path Fix** - POSIX-normalized git paths so the sidebar tree view works on Windows
- **Enter / Shift+Enter Swap** - Enter submits, Shift+Enter inserts a newline (matches common conventions)

### Git, PRs & Worktrees

- **PR Widget with Comments** - Inline PR status, comments, and details alongside the chat
- **Branch Switcher Popover** - Switch branches from a popover in the changes panel; PR chip refreshes immediately on switch (no more 30-second polling wait)
- **PR Auto-Refresh on Commit/Push** - PR status updates automatically when you commit or push from the app
- **Two-Column Commit Diff** - Side-by-side diff view for commit contents
- **Pull & Push Recovery Dialog** - When `git push` fails because the remote is ahead, a one-click dialog auto-stashes, rebases, and re-pushes instead of surfacing a raw "non-fast-forward" error
- **Worktree Deletion Safety** - Worktrees are only removed when you explicitly opt in via the archive flow with the "Delete worktree" checkbox; project delete and app startup no longer auto-remove worktrees

### Models

- **Latest Claude Models** - Opus 4.7 and updated model list including the latest Claude releases
- **Sonnet 4.6 1M Context** - Full 1M-token context for Sonnet (`sonnet[1m]`) alongside the existing Opus 1M, with an amber "1M · higher cost" badge in the selector
- **One-Click 1M Recovery** - On rate-limit or context errors against a 1M model, the toast action becomes "Switch to \<base model\>" — one click moves the sub-chat back to the 200K variant
- **GPT-5.4 & GPT-5.4 Mini** - Latest Codex models registered as the default; gpt-5.3-codex remains available

### Stability & Polish

- **Rich Tool Rendering** - Proper icons and labels for `Skill`, `ScheduleWakeup`, `EnterPlanMode`, `Cron*`, `Monitor`, `PushNotification`, `TaskOutput`/`TaskStop`, `EnterWorktree`/`ExitWorktree`, `RemoteTrigger`, and `ToolSearch` (previously rendered as plain text)
- **Stream Wedge Timeout** - 90-second first-chunk timeout aborts and surfaces a `STREAM_WEDGE` error instead of hanging the UI indefinitely
- **Crash Auto-Recovery** - App-root error boundary + one-shot auto-reload (10s debounce) for IPC race crashes, so you get a visible error state instead of a black screen
- **Session Abort on Delete** - In-flight Claude sessions are aborted before their workspace is removed on project/chat/sub-chat delete
- **Lazy Archive Popover** - Archive queries no longer fire until the popover opens, reducing startup network chatter
- **Windows Git Path Fix** - POSIX-normalized git paths so the sidebar tree view works on Windows

---

## Highlights
Expand Down
3 changes: 3 additions & 0 deletions drizzle/0009_wise_rumiko_fujikawa.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CREATE INDEX `chats_project_id_idx` ON `chats` (`project_id`);--> statement-breakpoint
CREATE INDEX `sub_chats_chat_id_idx` ON `sub_chats` (`chat_id`);--> statement-breakpoint
CREATE INDEX `sub_chats_stream_id_idx` ON `sub_chats` (`stream_id`);
Loading