| @@ -25,10 +25,30 @@ Gruvbox, Rosé Pine, Solarized and Dracula. |
| 25 | 25 | |
| 26 | 26 | ## Features |
| 27 | 27 | |
| 28 | | - - A searchable thread list across all projects, newest activity first. Each card shows the |
| 29 | | - project, its git branch, how long ago it was active, the agent, and a status light. |
| 28 | + - A sidebar laid out like T3 Code's inbox: unsent drafts, pinned and active threads, then |
| 29 | + the **Working**, **Snoozed** and **Settled** shelves. Each card shows the project, its |
| 30 | + branch or worktree, running processes, the pull request, the agent, and a status |
| 31 | + (Working with a timer, Approval, Input, Limited, Failed, Woke, Done) or how long ago it |
| 32 | + was active; hovering swaps that for **Snooze** and **Settle**, and a hover card sums |
| 33 | + the thread up. Search covers titles and conversations (↑ ↓ Enter, Esc clears), and the |
| 34 | + folder button filters the sidebar to one project. Drag the sidebar's edge to resize it. |
| 30 | 35 | - Settle a thread to stop its process and file it under **Settled**. Its transcript stays, |
| 31 | | - and the next message resumes the conversation. |
| 36 | + and the next message resumes the conversation. Settling, snoozing, unpinning, archiving |
| 37 | + and discarding a draft leave a "Settled 1 thread, Ctrl+Z to undo" notice for 5 seconds. |
| 38 | + - T3 Code's thread menu, on a right click in the sidebar or a click on the title in the |
| 39 | + chat header: New thread on *branch*, Pin, Settle, Snooze (in 1 or 3 hours, this |
| 40 | + evening, tomorrow, next week, or a custom date, time or duration), Wake, Rename, |
| 41 | + Regenerate title, Mark unread, Filter by *project*, Auto-settle behavior, Copy (path, |
| 42 | + branch, thread ID), Project settings, Archive and Delete. Ctrl+click or Shift+click picks |
| 43 | + several threads for one menu; a double-click renames in place. |
| 44 | + - A command palette (Ctrl+K) with T3 Code's actions (new thread in a project or without |
| 45 | + one, copy the thread ID or PR link, restart the agent, add a project, change the theme or |
| 46 | + appearance, usage, settings) and recent threads; typing also finds projects, settings |
| 47 | + and threads, and a leading `>` searches actions only. |
| 48 | + - The legacy sidebar (Settings → *Legacy sidebar*): threads in per-project trees, with |
| 49 | + T3's sort menu (projects by last message, creation or by hand, threads by last message |
| 50 | + or creation, how many show) and project menu (Rename, Group into..., Copy Path, Project |
| 51 | + settings, Remove). |
| 32 | 52 | - A new thread opens on a start screen, "What should we build in *project*?", with the |
| 33 | 53 | project as a switcher, a way to start without a project, and the branch it starts from. |
| 34 | 54 | - A model picker across providers: Claude's models (current ones, plus legacy models |
| @@ -81,9 +101,8 @@ Gruvbox, Rosé Pine, Solarized and Dracula. |
| 81 | 101 | origin has it, with submodules filled in. Pick Local or New worktree per thread on the |
| 82 | 102 | start screen. |
| 83 | 103 | - Thread titles written by a small model from the first message (Settings → Text generation). |
| 84 | | - - Pin threads to the top, snooze them until later, rename them (right-click a thread card). |
| 85 | | - The sidebar can group threads by project, fold working threads into a Working section, and |
| 86 | | - order projects by last message, name or date added. |
| 104 | + - Pin threads to the top, snooze them until later, rename them, archive them to Settings → |
| 105 | + Archive. Working threads can fold into a Working shelf until they need you. |
| 87 | 106 | - When a usage limit stops a thread, it can snooze until the limit resets and continue then. |
| 88 | 107 | Idle threads, and worktree threads whose pull request merged, can settle on their own. |
| 89 | 108 | - Send while the agent works to steer it, or queue the message for after the turn (and |
| @@ -138,16 +157,29 @@ Gruvbox, Rosé Pine, Solarized and Dracula. |
| 138 | 157 | cargo run --release -- /path/to/project # defaults to the current directory |
| 139 | 158 | ``` |
| 140 | 159 | |
| 160 | + The shortcuts follow T3 Code's default keymap. |
| 161 | + |
| 141 | 162 | | Shortcut | Action | |
| 142 | 163 | | --- | --- | |
| 143 | 164 | | Enter / Shift+Enter | Send / new line | |
| 144 | 165 | | Esc | Interrupt Claude | |
| 145 | | - | Ctrl+N | New thread in the current project | |
| 166 | + | Ctrl+K | Command palette | |
| 167 | + | Ctrl+N (or Ctrl+Shift+O) | New thread (picks the project when there are several) | |
| 168 | + | Ctrl+Shift+N | New thread in the current project | |
| 169 | + | Ctrl+Alt+N | New thread without a project | |
| 170 | + | Ctrl+Shift+[ / Ctrl+Shift+] | Previous / next thread | |
| 171 | + | Ctrl+1–9 | Jump to a sidebar thread (hold Ctrl to see the numbers) | |
| 172 | + | Ctrl+Shift+S | Settle the thread, or un-settle it | |
| 173 | + | Ctrl+Shift+P | Pin or unpin the thread | |
| 174 | + | Ctrl+Z | Undo the last settle, snooze, unpin or archive (while the notice shows) | |
| 175 | + | Ctrl+Shift+C | Copy the thread's PR link, or its ID | |
| 176 | + | Ctrl+U | Usage | |
| 177 | + | Ctrl+Alt+A / Ctrl+Alt+Shift+A | Change the theme / cycle System, Light and Dark | |
| 178 | + | Ctrl+B | Show or hide the sidebar | |
| 179 | + | Ctrl+Alt+B | Show or hide the right panel (the browser) | |
| 180 | + | Ctrl+Shift+B | Show or hide the thread details (project panel) | |
| 146 | 181 | | Ctrl+O | Add a project folder | |
| 147 | | - | Ctrl+K | Search threads | |
| 148 | 182 | | Ctrl+, | Open or close settings | |
| 149 | | - | Ctrl+B | Show or hide the sidebar | |
| 150 | | - | Ctrl+Shift+B | Show or hide the project panel | |
| 151 | 183 | | Ctrl+Q | Quit | |
| 152 | 184 | |
| 153 | 185 | ### Environment |
| @@ -181,7 +213,9 @@ in its `scratch` folder. |
| 181 | 213 | - `src/ui/settings.rs`: the settings view and its pages. |
| 182 | 214 | - `src/ui/changes.rs`: the per-turn change overview and the diff view. |
| 183 | 215 | - `src/ui/workspace.rs`: window root: thread sidebar, top bar and project panel, plus the |
| 184 | | - git and editor helpers behind it. |
| 216 | + git and editor helpers behind it. Its submodules hold the sidebar (`sidebar.rs`, and the |
| 217 | + legacy layout in `sidebar/legacy.rs`), the thread menus, snoozing, confirmations and undo |
| 218 | + (`actions.rs`), the chat header (`header.rs`) and the command palette (`palette.rs`). |
| 185 | 219 | - `src/ui/icons.rs`: the extra Lucide icons the app embeds. |
| 186 | 220 | - `src/ui/metal.rs`: the MetalUI layer. Colorway tokens and shadow recipes copied from |
| 187 | 221 | MetalUI's CSS, the theme mapping for the stock widgets, and the primitives (caps, wells, |