Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
822 commits
Select commit Hold shift + click to select a range
aedfd09
feat(ui-tui): permission flow, edit diffs, WebFetch, slash menu, stat…
ericleepi314 Jun 27, 2026
3b5cedd
fix(ui-tui): stream dup, diff indent, and persistent welcome banner (…
ericleepi314 Jun 27, 2026
6c52610
fix(ui-tui): diff wrap long lines + true file line numbers + tight gu…
ericleepi314 Jun 27, 2026
efcf438
fix(tui): talk to the local backend over stdio, not WebSocket (idle d…
ericleepi314 Jun 27, 2026
0a276ef
feat(ui-tui): live tool-progress — collapsed activity spinner + compa…
ericleepi314 Jun 27, 2026
4e0977e
feat(ui-tui): standalone live tool-progress block (collapse repeated …
ericleepi314 Jun 27, 2026
ae72c33
fix(tui): prefer the built node dist over bun to launch the Ink TUI (…
ericleepi314 Jun 27, 2026
1b27b30
feat(install): build the Ink TUI so `clawcodex tui` works after curl|…
ericleepi314 Jun 27, 2026
7c6ba41
feat(ui-tui): syntax-highlighted diffs with tight tint + context line…
ericleepi314 Jun 27, 2026
9929e29
fix(install): self-heal the update so re-running curl|bash actually u…
ericleepi314 Jun 27, 2026
08689dc
fix(ui-tui): diff highlighting (force color) + cap tint width on wide…
ericleepi314 Jun 27, 2026
4fde743
fix(ui-tui): render diffs via openclaude's exact ColorDiff (faithful,…
ericleepi314 Jun 27, 2026
48b5bd5
feat(ui-tui): faithful spinner — oscillating glyph + verb list + glim…
ericleepi314 Jun 27, 2026
316ffab
feat(ui-tui): tool-aware permission dialog with diff/command previews…
ericleepi314 Jun 27, 2026
49eccc1
feat(ui-tui): render markdown tables (box-drawing, aligned, wrapped) …
ericleepi314 Jun 27, 2026
b97354a
feat(ui-tui): @-mention file autocomplete (#417)
ericleepi314 Jun 27, 2026
94810f4
fix(ui-tui): drop "\ No newline at end of file" markers from diffs (#…
ericleepi314 Jun 27, 2026
8f724f4
feat(ui-tui): render tool-result errors in red (#419)
ericleepi314 Jun 27, 2026
374f5a2
feat(tui+server): live context-window usage in the status bar (#420)
ericleepi314 Jun 27, 2026
5a05cf0
feat(ui-tui): render TodoWrite as a checklist (TaskListV2 look) (#421)
ericleepi314 Jun 27, 2026
cfa8427
feat(ui-tui): /context command — context-window breakdown (#422)
ericleepi314 Jun 27, 2026
1fee05b
feat(ui-tui): render Agent/Task (subagent) as a Task card (#423)
ericleepi314 Jun 27, 2026
bd5b9a9
feat(tui+server): live subagent progress (AgentProgressLine) (#424)
ericleepi314 Jun 27, 2026
87ab05d
feat(ui-tui): ↑/↓ input history recall (#425)
ericleepi314 Jun 27, 2026
ba7f8dc
feat(ui-tui): queue prompts typed while the agent is busy (#426)
ericleepi314 Jun 27, 2026
57e9ebf
feat(ui-tui): Ctrl+R reverse history search (#427)
ericleepi314 Jun 27, 2026
8a005ea
feat(tui+server): /compact conversation compaction (#428)
ericleepi314 Jun 27, 2026
12a9ad5
feat(tui+server): USD cost in result line + status bar (#429)
ericleepi314 Jun 27, 2026
27efac6
feat(ui-tui): render thinking blocks (∴ Thinking) (#430)
ericleepi314 Jun 27, 2026
f04a90d
feat(ui-tui): theme support (dark/light) + /theme (#431)
ericleepi314 Jun 27, 2026
3225ca4
docs(ui-tui): refresh /help with all commands + shortcuts (#432)
ericleepi314 Jun 27, 2026
cd0bbfd
feat(ui-tui): interactive select picker for /mode and /theme (#433)
ericleepi314 Jun 27, 2026
f712664
feat(tui+server): /model interactive picker (provider model list) (#434)
ericleepi314 Jun 27, 2026
29dcd06
feat(ui-tui): collapse large pastes to [Pasted text #N] (#435)
ericleepi314 Jun 27, 2026
5e2db3a
feat(ui-tui): /export transcript to markdown (#436)
ericleepi314 Jun 27, 2026
64a7d50
feat(ui-tui): /copy last response to clipboard (OSC 52) (#437)
ericleepi314 Jun 27, 2026
d55a483
feat(ui-tui): /doctor diagnostics command (#438)
ericleepi314 Jun 27, 2026
28e2756
feat(tui+server): /rewind — undo the last turn(s) (#439)
ericleepi314 Jun 27, 2026
66adc4a
fix(tui+server): /clear resets the backend conversation, not just the…
ericleepi314 Jun 27, 2026
736ecf5
feat(tui+server): session persistence + /resume (#441)
ericleepi314 Jun 27, 2026
5e8eefd
feat(tui+server): /rename session label (#442)
ericleepi314 Jun 27, 2026
5adc7da
feat(ui-tui): context-low warning (TokenWarning) (#443)
ericleepi314 Jun 27, 2026
3bf273c
feat(ui-tui): fullscreen/virtualized transcript v1 (gated) (#444)
ericleepi314 Jun 27, 2026
51cdc3c
feat(ui-tui): fullscreen sticky prompt header (#445)
ericleepi314 Jun 27, 2026
a983a5f
feat(ui-tui): fullscreen in-transcript find (Ctrl+F) (#446)
ericleepi314 Jun 27, 2026
25ea49c
feat(ui-tui): vim modal input (/vim) (#447)
ericleepi314 Jun 27, 2026
dbb4e39
feat(tui+server): /branch — fork the current session (#448)
ericleepi314 Jun 27, 2026
1c4d36e
feat(server): McpRuntime — loop-correct MCP connection runtime (#449)
ericleepi314 Jun 27, 2026
4cbef4e
feat(server): wire MCP servers into the agent-server (functional MCP)…
ericleepi314 Jun 27, 2026
21278bc
feat(tui+server): /mcp — list connected MCP servers + tools (#451)
ericleepi314 Jun 27, 2026
3471269
feat(ui-tui): ! bash mode (run shell commands from the prompt) (#452)
ericleepi314 Jun 27, 2026
b7b6fea
feat(ui-tui): /cost + /usage session summary (#453)
ericleepi314 Jun 27, 2026
d7009fb
feat(ui-tui): /init — scaffold CLAUDE.md (#454)
ericleepi314 Jun 27, 2026
c2c1c65
feat(tui+server): /permissions — show active mode + rules (#455)
ericleepi314 Jun 27, 2026
6b755ad
feat(ui-tui): /memory — show loaded CLAUDE.md files (#456)
ericleepi314 Jun 27, 2026
c450ae9
feat(tui+server): /agents — list available subagent types (#457)
ericleepi314 Jun 27, 2026
1fff3ce
feat(ui-tui): /review, /security-review, /commit-message (prompt comm…
ericleepi314 Jun 27, 2026
3692540
feat(ui-tui): /config — show model, mode, available models (#459)
ericleepi314 Jun 27, 2026
32af123
feat(ui-tui): /diff and /stats (#460)
ericleepi314 Jun 27, 2026
b9e9fb5
feat(ui-tui): unified ControlledInput with readline editing (#461)
ericleepi314 Jun 28, 2026
6d26ef9
feat(ui-tui): readline word-motion + kill-ring yank (#462)
ericleepi314 Jun 28, 2026
1770d4d
feat(tui+server): /skills — list available skills (#463)
ericleepi314 Jun 28, 2026
deaba1a
feat(ui-tui): /files — list working-directory files (#464)
ericleepi314 Jun 28, 2026
451fa0a
feat(ui-tui): /keybindings — show keyboard shortcuts (#465)
ericleepi314 Jun 28, 2026
4776936
feat(ui-tui): /color, /tag, /session command aliases (#466)
ericleepi314 Jun 28, 2026
4e3a08d
feat(ui-tui): /statusline — configurable status line via shell comman…
ericleepi314 Jun 28, 2026
15da2c1
feat(ui-tui): /logo — re-show the startup banner (#468)
ericleepi314 Jun 28, 2026
963dcb4
feat(ui-tui): /release-notes and /feedback (#469)
ericleepi314 Jun 28, 2026
bcb2355
feat(tui+server): /add-dir — add a working directory (#470)
ericleepi314 Jun 28, 2026
8e0eeaa
feat(tui+server): /hooks and /upgrade (#471)
ericleepi314 Jun 28, 2026
9a28e7b
feat(tui+server): /provider — switch LLM provider mid-session (#472)
ericleepi314 Jun 28, 2026
5cc62ec
feat(tui+server): /effort — set reasoning effort (#473)
ericleepi314 Jun 28, 2026
4638de0
feat(tui+server): /plugin — list installed plugins (#474)
ericleepi314 Jun 28, 2026
2237872
feat(tui+server): /reload-plugins (#475)
ericleepi314 Jun 28, 2026
8d0ac77
feat(ui-tui): Ctrl+O — expand collapsed tool results / thinking (#476)
ericleepi314 Jun 28, 2026
cae8a9a
feat(ui-tui): grouped-read collapse (Reading N files) (#477)
ericleepi314 Jun 28, 2026
b31319e
feat(ui-tui): Ctrl+L redraw (#478)
ericleepi314 Jun 28, 2026
614272c
feat(ui-tui): /buddy — animated companion sprite (#479)
ericleepi314 Jun 28, 2026
ac15efe
feat(ui-tui): /stickers (#480)
ericleepi314 Jun 28, 2026
56357d4
feat(ui-tui): /search — content search (ripgrep) (#481)
ericleepi314 Jun 28, 2026
e6b6444
feat(ui-tui): OSC 8 clickable refs (file paths + URLs) (#482)
ericleepi314 Jun 28, 2026
90713f9
feat(ui-tui): /rewind restore-point picker (MessageSelector) (#483)
ericleepi314 Jun 28, 2026
ea4a159
feat(ui-tui): /history — recall a past prompt (HistorySearchDialog) (…
ericleepi314 Jun 28, 2026
9d2a840
feat(ui-tui): /settings — settings hub menu (#485)
ericleepi314 Jun 28, 2026
6a76188
feat(ui-tui): multiline input (trailing-backslash continuation) (#486)
ericleepi314 Jun 28, 2026
28077aa
feat(ui-tui): Shift+Tab cycles permission mode (#487)
ericleepi314 Jun 28, 2026
279fae7
feat(ui-tui): permission "don't ask again" (session allow-list) (#488)
ericleepi314 Jun 28, 2026
d3fdd22
feat(ui-tui): permission Tab-to-amend feedback field (#489)
ericleepi314 Jun 28, 2026
78033b1
feat(ui-tui): CompactSummary boundary marker (#490)
ericleepi314 Jun 28, 2026
9ed9d8a
feat(ui-tui): /diff multi-file browser (DiffDialog) (#491)
ericleepi314 Jun 28, 2026
b54508c
feat(ui-tui): /tasks — current turn + queued prompts (#492)
ericleepi314 Jun 28, 2026
640d511
feat(ui-tui): input undo (Ctrl+_) (#493)
ericleepi314 Jun 28, 2026
c591aa1
feat(ui-tui): readline transpose (Ctrl+T) + kill-word-forward (Alt+D)…
ericleepi314 Jun 28, 2026
2d8aee6
feat(ui-tui): external editor (Ctrl+G) (#495)
ericleepi314 Jun 28, 2026
a1ecbfd
feat(ui-tui): more vim normal-mode commands (e/^/G/~/C/s/p/P) (#496)
ericleepi314 Jun 28, 2026
aa5b970
feat(ui-tui): vim operators d/c/y with motions (#497)
ericleepi314 Jun 28, 2026
11c75d5
feat(ui-tui): vim f/F/t/T (find char) + r (replace char) (#498)
ericleepi314 Jun 28, 2026
ae94e3e
feat(ui-tui): vim text objects (diw, ci", da(, …) (#499)
ericleepi314 Jun 28, 2026
d58548f
feat(ui-tui): vim numeric count prefix (3w, 5l, 3x) (#500)
ericleepi314 Jun 28, 2026
06d2b8e
feat(ui-tui): inline ghost-text slash completion (#501)
ericleepi314 Jun 28, 2026
32b505f
feat(tui+backend): functional output styles (/output-style) (#502)
ericleepi314 Jun 28, 2026
319a230
feat(ui-tui): vim . repeat (last change) (#503)
ericleepi314 Jun 28, 2026
be84e0a
feat(ui-tui): vim . repeat for insert-changes (ciw/c/s/i…) (#504)
ericleepi314 Jun 28, 2026
3dffc75
feat(ui-tui): Meta+Y kill-ring cycle (#505)
ericleepi314 Jun 28, 2026
0d3c7fb
feat(tui+backend): knowledge graph (/knowledge), functional first ver…
ericleepi314 Jun 28, 2026
f499afb
feat(tui+backend): project wiki (/wiki init|status|ingest) (#507)
ericleepi314 Jun 28, 2026
5cd0959
feat(tui+backend): semantic knowledge extraction (/knowledge semantic…
ericleepi314 Jun 28, 2026
832dce5
feat(tui+backend): background tasks (/bg, /tasks) — the §9 Ctrl+B run…
ericleepi314 Jun 28, 2026
f4ce0a7
feat(tui+backend): multimodal image input (/image <path>) (#510)
ericleepi314 Jun 28, 2026
03a6082
feat(tui+backend): /bg-agent — background agent runs (§9 async-agent)…
ericleepi314 Jun 28, 2026
504a696
feat(tui+backend): /insights — model-based session analysis (#512)
ericleepi314 Jun 28, 2026
b4703ce
feat(tui+backend): /plan — a plan the agent follows (#513)
ericleepi314 Jun 28, 2026
a70f061
feat(ui-tui): /fast — toggle a faster model (#514)
ericleepi314 Jun 28, 2026
e0e0ed2
feat(ui-tui): Ctrl+E jump-to-oldest + scroll anchoring (§8) (#515)
ericleepi314 Jun 28, 2026
cae753a
feat(ui-tui): /open — fuzzy file finder (QuickOpen) (#516)
ericleepi314 Jun 28, 2026
be744ab
feat(ui-tui): terminal completion notifications (§8) (#517)
ericleepi314 Jun 28, 2026
0f083ba
feat(ui-tui): folder trust (/trust + first-run notice) — §6 TrustDial…
ericleepi314 Jun 28, 2026
2294db9
feat(ui-tui): terminal focus tracking (§8) — notify when unfocused (#…
ericleepi314 Jun 28, 2026
c45bbe4
feat(ui-tui): queued-prompt priorities now/next/later (§1) (#520)
ericleepi314 Jun 28, 2026
e9cc0bb
feat(ui-tui): destructive-command warning in Bash permission prompt (…
ericleepi314 Jun 28, 2026
e5524dd
feat(ui-tui): prefix-granular "don't ask again" for Bash (§5) (#522)
ericleepi314 Jun 28, 2026
ac23c2d
feat(ui-tui): idle-return welcome-back (§9 IdleReturnDialog) (#523)
ericleepi314 Jun 28, 2026
f094135
feat(ui-tui): configurable keybindings (§8) (#524)
ericleepi314 Jun 28, 2026
64fb0c3
feat(ui-tui): MCP server approval/trust (§6) (#525)
ericleepi314 Jun 28, 2026
aca6073
feat(mcp): handle incoming server→client requests (elicitation) in Mc…
ericleepi314 Jun 28, 2026
ccdb510
feat(mcp): bridge MCP elicitation to the TUI (agent-server round-trip…
ericleepi314 Jun 28, 2026
eb808fa
feat(ui-tui): MCP elicitation form (§6) — completes functional elicit…
ericleepi314 Jun 28, 2026
94c72f7
feat(ui-tui): right-to-left text shaping (§8 bidi) (#529)
ericleepi314 Jun 28, 2026
56068d2
feat: /lang — preferred response language (§6 LanguagePicker) (#530)
ericleepi314 Jun 28, 2026
d977682
feat: live-streaming thinking (§3) — surface reasoning deltas end-to-…
ericleepi314 Jun 28, 2026
291f0da
feat(ui-tui): LogoPicker — selectable logo gradient palette (§6/§7) (…
ericleepi314 Jun 28, 2026
aba2661
feat: /btw — side question without polluting history (§1/§2) (#533)
ericleepi314 Jun 28, 2026
b1b5e54
feat(ui-tui): /pr-comments — show the branch's PR comments via gh (§2…
ericleepi314 Jun 28, 2026
be6f458
docs(ui-tui): screenshot-verification gallery for ported features (#535)
ericleepi314 Jun 28, 2026
0f3769e
feat: /thinking — toggle extended thinking (§1 ThinkingToggle) (#536)
ericleepi314 Jun 28, 2026
298d454
feat(ui-tui): cost-threshold warning (§7 CostThresholdDialog) (#537)
ericleepi314 Jun 28, 2026
b30d904
feat(ui-tui): message timestamps (§3 MessageTimestamp) (#538)
ericleepi314 Jun 28, 2026
4763e56
feat(ui-tui): bypass-permissions confirm (§5 BypassPermissionsModeDia…
ericleepi314 Jun 28, 2026
e015171
feat(ui-tui): memory usage in /doctor (§7 MemoryUsageIndicator) (#540)
ericleepi314 Jun 28, 2026
4e09b8b
feat(ui-tui): keybinding-conflict warnings (§8 KeybindingWarnings) (#…
ericleepi314 Jun 28, 2026
2bdf190
feat(ui-tui): config validation (§6 InvalidConfigDialog/ValidationErr…
ericleepi314 Jun 28, 2026
c62cccb
feat(ui-tui): auto-mode opt-in confirm (§5 AutoModeOptInDialog) (#543)
ericleepi314 Jun 28, 2026
487a028
feat: MCP server multiselect (§6 MCPServerMultiselectDialog) — enable…
ericleepi314 Jun 28, 2026
c0887e0
feat: external CLAUDE.md imports dialog (§6 ClaudeMdExternalIncludesD…
ericleepi314 Jun 28, 2026
28a48ab
docs(ui-tui): verify rendering sub-components in the screenshot galle…
ericleepi314 Jun 28, 2026
a10d938
feat(ui-tui): FastIcon + EffortCallout footer indicators (§7) (#547)
ericleepi314 Jun 28, 2026
734f120
feat: TagTabs — resume picker project filter (§6) (#548)
ericleepi314 Jun 28, 2026
51ed0c4
feat(ui-tui): session search in the resume picker (§6 LogSelector) (#…
ericleepi314 Jun 28, 2026
4013fae
feat(ui-tui): PrBadge — current branch's PR in the footer (§7) (#550)
ericleepi314 Jun 28, 2026
fbd3b75
feat(ui-tui): CoordinatorAgentStatus — multi-agent summary (§9) (#551)
ericleepi314 Jun 28, 2026
d9e6416
feat(ui-tui): /diagnostics — project typecheck/lint (§3 DiagnosticsDi…
ericleepi314 Jun 28, 2026
7b074a5
test(ui-tui): committed, re-runnable feature test suite (npm test) (#…
ericleepi314 Jun 28, 2026
f36d251
feat(ui-tui): /env — curated runtime environment (adapts the original…
ericleepi314 Jun 28, 2026
7eeaa6d
feat(ui-tui): /summary — summarize the conversation (adapts the disab…
ericleepi314 Jun 28, 2026
1848a6c
feat(ui-tui): /debug-tool-call — inspect the last tool call (adapts d…
ericleepi314 Jun 28, 2026
626e45b
feat(ui-tui): DevBar — env-gated internal-state overlay (§7) (#557)
ericleepi314 Jun 28, 2026
f399a59
fix(context): deepseek-v4 & glm-5.2 report their 1M context window (#…
ericleepi314 Jun 28, 2026
92dbff5
fix(ui-tui): collapse web-search results to a one-line summary (#559)
ericleepi314 Jun 28, 2026
221e380
fix(ui-tui): window the slash-command menu so it can't pin to the scr…
ericleepi314 Jun 28, 2026
3689200
feat(ui-tui): add /exit as an alias of /quit (#561)
ericleepi314 Jun 28, 2026
3eccc66
fix(ui-tui): redraw cleanly on terminal resize (no stacked input boxe…
ericleepi314 Jun 28, 2026
7ce95df
fix(ui-tui): pre-warm the file index so @/open never freezes input (#…
ericleepi314 Jun 28, 2026
90e382e
feat(ui-tui): arrow-key navigation + Enter in the permission dialog (…
ericleepi314 Jun 28, 2026
28571db
perf(backend): defer the openai import to cut agent-server cold-start…
ericleepi314 Jun 28, 2026
86b5a23
refactor(ui): make the TypeScript Ink TUI the sole interactive UI (#566)
ericleepi314 Jun 28, 2026
bb241ad
diag(ui-tui): opt-in event-loop stall logger to locate the input free…
ericleepi314 Jun 28, 2026
bb0568b
diag(ui-tui): add CLAWCODEX_DEBUG_PERF=2 trace mode (per-event timeli…
ericleepi314 Jun 29, 2026
bf8ee54
fix(ui-tui): throttle live-stream renders (fixes post-turn input lag)…
ericleepi314 Jun 29, 2026
6836b29
feat(ui-tui): collapse thinking display (OpenClaude-style) + decouple…
ericleepi314 Jun 29, 2026
e86c256
fix(ui-tui): replace ink@5 with a cell-diff renderer (fixes per-keyst…
ericleepi314 Jun 29, 2026
53a23ae
Port hermes-agent TUI to clawcodex + Claude Code theme (fix Terminal.…
ericleepi314 Jun 29, 2026
4ab2d58
fix(ui-tui): don't clear the screen on inline startup (true inline li…
ericleepi314 Jun 29, 2026
13f655d
fix(ui-tui): Claude-style tool-trail labels (relative paths, search p…
ericleepi314 Jun 30, 2026
079a95f
fix(ui-tui): stop inline TUI overlapping terminal scrollback on start…
ericleepi314 Jun 30, 2026
854c418
feat(ui-tui): lobster mascot, v0.6.0 banner, brighter dark-theme seco…
ericleepi314 Jun 30, 2026
fe50f37
feat(ui-tui): auto-detect terminal background via OSC 11 to pick the …
ericleepi314 Jun 30, 2026
f874633
chore(ui-tui): standardize naming on clawcodex (#578)
ericleepi314 Jun 30, 2026
131940d
chore: release v0.7.0 (#579)
ericleepi314 Jun 30, 2026
31a1670
docs: refresh the README hero screenshot (v0.7.0 TUI) (#580)
ericleepi314 Jul 1, 2026
4473694
fix(deepseek): keep the live workspace/git context out of the prefix …
ericleepi314 Jul 1, 2026
1664eb2
fix(workflows): restore workflow surfaces on the agent-server + Ink T…
ericleepi314 Jul 2, 2026
aad9a2a
feat(ch01/round4): bootstrap the Hooks abstraction — configured hooks…
ericleepi314 Jul 2, 2026
3916259
feat(ch02/round4): cwd-scoped trust reads, interactive prefetch, fast…
ericleepi314 Jul 2, 2026
9c9c545
feat(ch03/round4): re-home the two-tier state bridge, live cost persi…
ericleepi314 Jul 2, 2026
6fe1966
feat(ch04/round4): message-history caching, full retry lane + model f…
ericleepi314 Jul 2, 2026
a7acddb
feat(ch05/round4): wire the production compaction pipeline, +500k bud…
ericleepi314 Jul 2, 2026
56355a0
fix(ch06/round4-A): close the fail-open hook-ask permission branch + …
ericleepi314 Jul 2, 2026
c11c16e
feat(ch06/round4-B): the auto-mode LLM security classifier lane (flag…
ericleepi314 Jul 2, 2026
c22b35f
feat(ch07/round4): parallel Agent fan-out + concurrency-cap deadlock …
ericleepi314 Jul 2, 2026
a7bbcc6
feat(ch08/round4): per-subagent model resolution + query_source parit…
ericleepi314 Jul 2, 2026
c42fb36
feat(ch09/round4): wire Layer 1 system-prompt threading so fork hits …
ericleepi314 Jul 2, 2026
517ca45
feat(ch10/round4): deliver queued SendMessages + reclaim terminal bac…
ericleepi314 Jul 2, 2026
646bcfa
feat(ch11/round4): wire the LLM memory-relevance recall (gated defaul…
ericleepi314 Jul 2, 2026
4b325f8
feat(ch12/round4): make configured skills + hooks actually work (skil…
ericleepi314 Jul 2, 2026
9520dd4
feat(ch13/round4): reconnect the severed ui-tui <-> agent-server cont…
ericleepi314 Jul 2, 2026
7e8d00c
feat(ch14/round4): wire the UserPromptSubmit hook (executor + agent-s…
ericleepi314 Jul 2, 2026
2e6330b
feat(ch15/round4): make MCP tools/list_changed refresh tools live (#598)
ericleepi314 Jul 2, 2026
212e2cc
feat(ch16/round4): apply ANTHROPIC_CUSTOM_HEADERS on the live API pat…
ericleepi314 Jul 2, 2026
2627a91
perf(ch17/round4): memoize the # Environment date so it stops busting…
ericleepi314 Jul 2, 2026
57dc292
feat(r5-1/ch11): fix the memory-recall enable-blockers (#601)
ericleepi314 Jul 3, 2026
c6fa45d
feat(r5-2/ch17): port getDateChangeAttachments (midnight-rollover com…
ericleepi314 Jul 3, 2026
173c4df
feat(r5-3/ch13): terminal agent_progress for async + failed-sync suba…
ericleepi314 Jul 3, 2026
334c14b
feat(r5-4/ch15): MCP tools/list_changed refresh correctness (m1/m2/m3…
ericleepi314 Jul 3, 2026
467da97
fix(r5-6): round-5 final-verdict polish (effort-mode recall pin, kill…
ericleepi314 Jul 3, 2026
d3d6317
fix(r6-1): killing a background agent actually stops the run (#606)
ericleepi314 Jul 3, 2026
f385bf9
fix(r6-4): auto-compact pipeline now APPLIES the compaction (was disc…
ericleepi314 Jul 3, 2026
efa6f0b
fix(perm-ux): readable approval box + broadenable session grants (mat…
ericleepi314 Jul 3, 2026
ea92d2b
fix(perm-ux): restore non-Bash persist option + preserve grant scope …
ericleepi314 Jul 3, 2026
a7716b8
fix(perm-ux): accurate per-tool wording for the persist option (#610)
ericleepi314 Jul 3, 2026
b237151
test(perm-ux): guard the persist-option gating (approvalOptions) (#611)
ericleepi314 Jul 3, 2026
8d7b784
chore(ui-tui): eslint --fix gatewayClient.ts (mechanical, no behavior…
ericleepi314 Jul 3, 2026
c63c672
feat(tui): faithful Claude Code diff rendering for Edit/Write results
ericleepi314 Jul 3, 2026
56263ce
feat(tui): original-CC tool-call transcript + theme tokens (look&feel…
ericleepi314 Jul 3, 2026
35bfee1
feat(tui): original-CC task list (look&feel PR-B)
ericleepi314 Jul 3, 2026
fad0284
feat(tui): original-CC composer + permission-mode badge (look&feel PR-C)
ericleepi314 Jul 3, 2026
33e0ebe
feat(tui): original-CC busy line + CC-clean idle chrome (look&feel PR-D)
ericleepi314 Jul 3, 2026
abc9c20
fix(perm): wire --dangerously-skip-permissions through the TUI/agent-…
ericleepi314 Jul 3, 2026
3db7066
fix(tui): make backslash+Enter multi-line input fully editable (#621)
ericleepi314 Jul 3, 2026
b1ecfda
fix(perm): compound-command permission parity (split + per-sub match/…
ericleepi314 Jul 3, 2026
9601530
feat(tui): real expand-result affordance + honest ctrl+o hints (look&…
ericleepi314 Jul 3, 2026
e0e8637
fix(tui): head-truncate expandable tool blocks (look&feel E, Finding B)
ericleepi314 Jul 3, 2026
793c7ce
feat(tui): Esc interrupts the turn, Ctrl+C defanged, /exit in the sla…
ericleepi314 Jul 3, 2026
d3c3efc
fix(perm): harden Bash permission normalization (substitution guard +…
ericleepi314 Jul 3, 2026
af063e4
feat(cost): restore session cost/duration/token display (/cost + exit…
ericleepi314 Jul 3, 2026
2cd44e1
fix(tui): render WebSearch results as CC's one-line summary, not the …
ericleepi314 Jul 3, 2026
0e2c99e
fix(tui): /model switch reported "invalid response" and corrupted the…
ericleepi314 Jul 3, 2026
2103189
feat(tui+server): restore /skills — slash-menu entry + backend wiring…
agentforce314 Jul 4, 2026
9c1232f
feat(tui): argument hints for slash commands — menu grammar + inline …
agentforce314 Jul 4, 2026
875541b
fix(tui): revert stray file-mention hunk that broke main (missing mod…
agentforce314 Jul 4, 2026
ca03844
fix(tui): inline-mode cursor drift — typing landed one row below the …
agentforce314 Jul 4, 2026
43a1e43
feat(coordinator): wire coordinator mode end-to-end on the live paths…
ericleepi314 Jul 4, 2026
fdecb22
feat(entrypoints): mcp serve — re-expose clawcodex tools as an MCP st…
ericleepi314 Jul 4, 2026
140591b
feat(entrypoints): startup provider validation across all three entry…
ericleepi314 Jul 4, 2026
534d55c
feat(hooks): execute PermissionRequest hooks at the ask seam; TS reje…
ericleepi314 Jul 4, 2026
e19725d
feat(providers): live model discovery for dynamic-catalog providers (…
ericleepi314 Jul 4, 2026
c8272ef
feat(memdir): port the Searching-past-context prompt section; keybind…
ericleepi314 Jul 4, 2026
de7e39e
feat(outputStyles): wire the feature end-to-end — startup, persistenc…
ericleepi314 Jul 4, 2026
be2cfff
feat(plugins): karpathy-guidelines builtin plugin — registry live end…
ericleepi314 Jul 4, 2026
1ff7a07
feat(query): teammate TaskCompleted + TeammateIdle stop hooks (QUERY-…
ericleepi314 Jul 4, 2026
91ac5ce
feat(hooks): enforce the `if` hook pre-filter — was registered-but-in…
ericleepi314 Jul 4, 2026
0510ed4
feat(services): tool-use summary generator (SERVICES-1; wiring deferr…
ericleepi314 Jul 4, 2026
27d0973
feat(services): autoFix — lint/test-on-edit → model self-fix (SERVICE…
ericleepi314 Jul 4, 2026
22b4ed1
feat(services): wiki completion — structured ingest + index rebuild (…
ericleepi314 Jul 4, 2026
2822bfc
feat(skills): port the /batch bundled skill (SKILLS-1) (#647)
ericleepi314 Jul 4, 2026
f830650
feat(skills): port the /update-config bundled skill (SKILLS-2, adapte…
ericleepi314 Jul 4, 2026
01dbcbd
feat(tasks): reap a sub-agent's background bash on exit (TASKS-1) (#649)
ericleepi314 Jul 4, 2026
d7926b3
feat(utils): subprocess secret-scrub (UTILS-2) + MCP-instructions ren…
ericleepi314 Jul 5, 2026
af8d086
fix(server): raise default max_turns from 20 to 50 (#651)
ericleepi314 Jul 5, 2026
85a85fe
feat(providers): add MiniMax-M3 to the Minimax provider
octo-patch Jul 5, 2026
8346fc3
Fix MiniMax-M3 standard pricing
octo-patch Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 26 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ downloads/
eggs/
.eggs/
lib/
# ui-tui/src/lib is TypeScript source, not Python build output — keep tracking it
# (the bare `lib/` above is from the Python template and would otherwise drop it).
!ui-tui/src/lib/
lib64/
parts/
sdist/
Expand Down Expand Up @@ -87,8 +90,9 @@ CLAUDE.local.md
/reference_projects/
/my-prompts/

# Demos
/demos/
# Demos - source committed; build output and dependencies covered by node_modules/ and dist/ above
demos/*/node_modules/
demos/*/dist/

#typescript sources
/typescript/
Expand Down Expand Up @@ -120,9 +124,26 @@ out/
.svelte-kit/

#random files
/assets/
/my-docs/
/screenshots_work/
/claude-code-from-source/

# SWE-bench eval — sibling repos cloned next to clawcodex for the eval harness;
# kept untracked because they are separate projects with their own histories.
/SWE-bench-dev/
/openclaude/

# SWE-bench eval — generated data (predictions, traces, harness logs, charts);
# the scripts under eval/ are tracked, but eval/runs/ contains per-run output
# that can be GBs and is reproducible.
/eval/runs/
/eval/__pycache__/

# Stray *.patch / *.diff artifacts the agent occasionally writes via its
# Write tool during SWE-bench eval (we disable Write/Edit in the wrapper
# now but old artifacts may persist).
/*.patch
/*.diff

# Logs
npm-debug.log*
Expand All @@ -144,4 +165,5 @@ coverage/
# Local env files (in addition to Python section above)
.env.development.local
.env.test.local
.env.production.local
.env.production.local
.gstack/
718 changes: 235 additions & 483 deletions README.md

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions TODOS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# TODOS

## Server / Agent Loop

### Advisor tool violates default is_read_only / is_concurrency_safe

**What:** The `advisor` tool reports `is_read_only({}) == True` and `is_concurrency_safe({}) == True`, but the tool-property-parity suite expects tools not in the override list to fall back to the registry default (`False` for both). Also breaks two advisor smoke-test flows.

**Why:** Silently-wrong tool properties can change scheduling/concurrency behavior for a tool in ways nothing else guards against (e.g. a tool assumed read-only being allowed to run concurrently with a write).

**Context:** Discovered pre-existing on 2026-07-04 while shipping an unrelated `max_turns` default change (branch `chore/max-turns-default-50`) — verified these fail identically on `main` with that branch's changes stashed, so this predates and is unrelated to that PR. Failing tests:
- `tests/parity/test_tool_parity.py::TestToolPropertyParity::test_default_is_concurrency_safe_false`
- `tests/parity/test_tool_parity.py::TestToolPropertyParity::test_default_is_read_only_false`
- `tests/integration/test_advisor_smoke.py::TestAdvisorHappyPath::test_advisor_pair_preserved_in_history`
- `tests/integration/test_advisor_smoke.py::TestAdvisorInterruptPath::test_orphan_stripped_even_with_beta_active`

Start by checking whether `advisor` is missing from `tool_overrides` (if `True`/`True` is actually correct for this tool) or whether its `is_read_only`/`is_concurrency_safe` implementation is wrong (if `False`/`False` is correct and it should behave like other tools).

**Effort:** S
**Priority:** P0
**Depends on:** None

### Workspace-boundary blocking not enforced in write/read e2e flows

**What:** Writes and reads outside the workspace root are not being blocked in the e2e flow tests.

**Why:** Workspace-boundary enforcement is a safety boundary — if it's silently not firing, a tool call could read or write outside the intended sandboxed directory.

**Context:** Discovered pre-existing on 2026-07-04, same session as above — verified identical failures on `main` with the unrelated branch's changes stashed. Failing tests:
- `tests/parity/test_e2e_edit_flow.py::TestE2EWriteFlow::test_write_outside_workspace_blocked`
- `tests/parity/test_e2e_file_read.py::TestE2EFileRead::test_read_outside_workspace_blocked`

**Effort:** M
**Priority:** P0
**Depends on:** None

### Wire up max_cost_usd / settings.max_turns, and let the TUI override --max-turns per launch

**What:** `SettingsSchema.max_cost_usd` and `SettingsSchema.max_turns` are both defined and validated but never actually read/enforced anywhere in the query loop or agent-server (confirmed: `agent_server.py`'s only `load_settings()` call reads `.hooks` only). Separately, `clawcodex tui` spawns the backend without ever forwarding a `--max-turns` flag, so a running interactive session has no way to raise or lower its own turn ceiling.

**Why:** `AgentServerConfig.max_turns` / `--max-turns` is currently the *only* enforced ceiling on a single prompt's wall-clock time, token spend, $ cost, and tool side effects. Independently flagged by both a Claude adversarial-review subagent and a Codex adversarial pass while shipping the `max_turns` default bump (20→50, branch `chore/max-turns-default-50`) — raising that default widens the blast radius of this pre-existing gap by 2.5x with nothing else to catch a model that keeps calling tools "successfully" forever.

**Context:** Two independent fixes bundled here since they're the same root gap: (1) actually enforce `max_cost_usd`/`settings.max_turns` as a real backstop, not just a validated-but-unused setting; (2) add a per-launch (or in-session) `--max-turns` override path for `clawcodex tui`, mirroring the flag `clawcodex agent-server`/`clawcodex -p` already accept directly.

**Effort:** M
**Priority:** P2
**Depends on:** None

## Completed
</content>
Binary file added assets/clawcodex-screenshot-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/swebench-verified-gemini.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions demos/adopt-me-app/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Adopt Me!</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading