Commit 0e869a8
Yogthos
feat(ui): ov2 Phase B — Ctrl-N/P chat switching, /tasks slash, Alt+X for drop-interjection
Second milestone of dirge-ov2. Adds the keyboard surface for the
multi-chat model that Phase A wired into the Renderer.
## New keybinds
- **Ctrl-N**: next chat (cycles through Renderer.chats with wrap)
- **Ctrl-P**: previous chat (wraps)
- **Ctrl-X**: cycle forward to next chat (matches maki's TASKS
keybinding; will become a proper picker overlay when subagent
chats actually exist post-Phase E)
- **Alt-X**: drop last queued interjection (was Ctrl-X)
All chat-switch bindings no-op when only the main chat exists,
so single-session usage is unchanged.
## Ctrl-X collision
Per the user's pre-coding decision: dirge's previous Ctrl-X
binding (drop the most-recently-queued interjection) moves to
Alt-X. Ctrl-X is reclaimed for the maki-style task switcher.
Updated the inline hint that prints when the user queues a
message during an active run ("Alt+X drops" instead of "Ctrl+X
drops") and the `/help` listing.
## `/tasks` slash command
Lists the current chat windows with an arrow on the active one
and switches forward by one slot. Same effect as Ctrl-X /
Ctrl-N for users who prefer slash commands. When only the main
chat exists prints a friendly hint pointing at the `task` tool.
## Verified
- `cargo check` clean
- `cargo test chat_snapshot` still passes (Phase A foundation
intact)
- single-chat sessions behave identically — Ctrl-N/P/X no-op,
Alt-X works for interjection drop, /tasks shows the hint
## Next
- Phase C: per-chat UI state (response_buf, last_tool_name, etc.)
moves into a per-chat struct in ui/mod.rs so chat switches
preserve the streaming context
- Phase D: refactor `task` tool to spawn full agent + events
- Phase E: event router → chat buffer1 parent 2c3bada commit 0e869a8
2 files changed
Lines changed: 109 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1294 | 1294 | | |
1295 | 1295 | | |
1296 | 1296 | | |
1297 | | - | |
1298 | | - | |
1299 | | - | |
1300 | | - | |
1301 | | - | |
1302 | | - | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
1303 | 1307 | | |
1304 | 1308 | | |
1305 | 1309 | | |
| |||
1319 | 1323 | | |
1320 | 1324 | | |
1321 | 1325 | | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
| 1369 | + | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
1322 | 1388 | | |
1323 | 1389 | | |
1324 | 1390 | | |
| |||
1937 | 2003 | | |
1938 | 2004 | | |
1939 | 2005 | | |
1940 | | - | |
| 2006 | + | |
1941 | 2007 | | |
1942 | 2008 | | |
1943 | 2009 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1145 | 1145 | | |
1146 | 1146 | | |
1147 | 1147 | | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
1148 | 1175 | | |
1149 | 1176 | | |
1150 | 1177 | | |
| |||
1767 | 1794 | | |
1768 | 1795 | | |
1769 | 1796 | | |
1770 | | - | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
1771 | 1806 | | |
1772 | 1807 | | |
1773 | 1808 | | |
| |||
0 commit comments