Commit Graph

  • 27ffd75f03 fix: #140 isolate test cwd + env in punctuation_bearing_single_token test YeonGyu-Kim 2026-04-21 16:34:58 +09:00
  • 0cf8241978 ROADMAP #140: deprecated permissionMode migration silently downgrades DangerFullAccess to WorkspaceWrite — 1 test failure on main HEAD 36b3a09 YeonGyu-Kim 2026-04-21 16:23:00 +09:00
  • 36b3a09818 ROADMAP #139: claw state error references undocumented 'worker' concept (unactionable for claws) YeonGyu-Kim 2026-04-21 16:01:54 +09:00
  • f3f6643fb9 feat: #108 add did-you-mean guard for subcommand typos (prevents silent LLM dispatch) YeonGyu-Kim 2026-04-21 15:37:58 +09:00
  • 883cef1a26 docs: #138 add concrete evidence — feat/134-135 branch pushed but no PR (closure-state gap) YeonGyu-Kim 2026-04-21 15:02:33 +09:00
  • 768c1abc78 ROADMAP #138: dogfood cycle report-gate opacity — nudge surface needs explicit closure state YeonGyu-Kim 2026-04-21 14:49:36 +09:00
  • a8beca1463 fix: #136 support --output-format json with --compact flag YeonGyu-Kim 2026-04-21 14:47:15 +09:00
  • 21adae9570 fix: #137 update test fixtures to use canonical 'opus' alias for main branch consistency YeonGyu-Kim 2026-04-21 14:32:49 +09:00
  • 7235260c61 fix: preserve session path in /status text output when resuming (regression from #135) feat/134-135-session-identity YeonGyu-Kim 2026-04-21 14:05:22 +09:00
  • 230d97a8fa fix: #137 update test fixtures to use canonical 'opus' alias after #124 validation tightening YeonGyu-Kim 2026-04-21 13:36:09 +09:00
  • 724a78604d ROADMAP #137: model-alias shorthand regression in test suite — bare alias parsing broken on feat/134-135-session-identity; 3 tests fail with invalid model syntax error after #134/#135 validation tightening YeonGyu-Kim 2026-04-21 13:27:10 +09:00
  • 2b7095e4ae feat: surface active session status and session id YeonGyu-Kim 2026-04-21 12:55:06 +09:00
  • f55612ea47 feat: emit boot-scoped session id in lane events YeonGyu-Kim 2026-04-21 12:51:13 +09:00
  • 91ba54d39f ROADMAP #136: --compact flag silently overrides --output-format json — compact turn always emits plain text even when JSON requested; unreachable Json arm in run_with_output() match; joins output-format completeness cluster #90/#91/#92/#127/#130 and CLI/REPL parity §7.1 YeonGyu-Kim 2026-04-21 12:27:06 +09:00
  • 8b52e77f23 ROADMAP #135: claw status --json missing active_session bool and session.id cross-reference — status query side of #134 round-trip; joins session identity completeness §4.7 and status surface completeness cluster #80/#83/#114/#122; natural bundle #134+#135 closes session-identity round-trip YeonGyu-Kim 2026-04-21 06:55:09 +09:00
  • 2c42f8bcc8 docs: remove duplicate ROADMAP #134 entry YeonGyu-Kim 2026-04-21 04:50:43 +09:00
  • f266505546 ROADMAP #134: no run/correlation ID at session boundary — session.id missing from startup event and status JSON; observer must infer session identity from timing YeonGyu-Kim 2026-04-21 01:55:42 +09:00
  • 50e3fa3a83 docs: add --output-format to diagnostic verb help text YeonGyu-Kim 2026-04-20 21:32:02 +09:00
  • a51b2105ed docs: add JSON output example for diagnostic verbs post-#127 YeonGyu-Kim 2026-04-20 21:01:10 +09:00
  • a3270db602 fix: #127 reject unrecognized suffix args for diagnostic verbs YeonGyu-Kim 2026-04-20 19:23:35 +09:00
  • 12f1f9a74e feat: wire ship.prepared provenance emission at bash execution boundary YeonGyu-Kim 2026-04-20 17:03:28 +09:00
  • 2678fa0af5 fix: #124 --model validation rejects malformed syntax at parse time YeonGyu-Kim 2026-04-20 16:32:17 +09:00
  • b9990bb27c fix: #122 + #125 doctor consistency and git_state clarity YeonGyu-Kim 2026-04-20 16:13:43 +09:00
  • f33c315c93 fix: #122 doctor invocation now checks stale-base condition YeonGyu-Kim 2026-04-20 15:49:56 +09:00
  • 5c579e4a09 §4.44.5.1: file ship event wiring pinpoint (schema landed, wiring missing) YeonGyu-Kim 2026-04-20 15:30:34 +09:00
  • 8a8ca8a355 ROADMAP #4.44.5: Ship/provenance events — implement §4.44.5 YeonGyu-Kim 2026-04-20 15:06:50 +09:00
  • b0b579ebe9 ROADMAP #133: Blocked-state subphase contract — implement §6.5 YeonGyu-Kim 2026-04-20 15:04:08 +09:00
  • c956f78e8a ROADMAP #4.44.5: Ship/provenance opacity — filed from dogfood YeonGyu-Kim 2026-04-20 14:35:07 +09:00
  • f079b7b616 ROADMAP #132: --output-format json global error renderer flattens every typed error variant into {type:"error",error:<prose>}, erasing §4.44 envelope structure at the final serialization boundary — runtime has 5 typed error enums (SessionError/ConfigError/McpServerManagerError/PromptBuildError/SessionControlError) but ~11 CLI emission sites call error.to_string() and wrap in flat {type,error} shape; kind/operation/target/errno/hint/retryable all discarded. #130 fix lands typed envelope in text mode but JSON mode still emits flat string. Commit d305178 body self-declares this debt. Closes the renderer-side half of §4.44. Joins JSON-envelope asymmetry family #90/#91/#92/#110/#115/#116 as 7th; joins silent-state inventory #102/#127/#129/#130/#131 as 6th. Bundle: #130+#132 export-surface typed errors text+json parity. feat/jobdori-130-export-error-envelope YeonGyu-Kim 2026-04-20 14:14:41 +09:00
  • 93da4f14ab ROADMAP #131: claw export positional arg silently treated as output PATH not session reference — operator types 'claw export <session-id> --output /tmp/x.md' expecting to export <session-id>, but parser puts <session-id> in output_path slot and session_reference defaults to LATEST. Result: wrong session exported with no warning. Discovered while auditing #130 export error path during scope-truth pass on 2026-04-20 dogfood cycle. Joins silent-state inventory family (#102 + #127 + #129 + #130) and parser-level trust gap quintet (#108 + #117 + #119 + #122 + #127). YeonGyu-Kim 2026-04-20 14:07:27 +09:00
  • d305178591 fix(cli): #130 export error envelope — wrap fs::write() in run_export() with structured ExportError per Phase 2 §4.44 typed-error envelope contract; eliminates zero-context errno output. ExportError struct includes kind/operation/target/errno/hint/retryable fields with serde::Serialize and Display impls. wrap_export_io_error() classifies io::ErrorKind into filesystem/permission/invalid_path categories and synthesizes actionable hints (e.g. 'intermediate directory does not exist; try mkdir -p X first'). Verified end-to-end: ENOENT, EPERM, IsADirectory, empty path, trailing slash all emit structured envelope; success case unchanged (backward-compat anchor preserved). JSON mode still uses string error rendering — separate concern requiring global error renderer refactor (tracked for follow-up cycle). YeonGyu-Kim 2026-04-20 14:02:15 +09:00
  • 0cbff5dc76 prep(cli): #130 structured ExportError type design ready — conforms to §4.44 typed-error envelope contract; includes kind/operation/target/errno/hint/retryable fields, Display + serde::Serialize impl, wrap_export_io_error helper; ready for integration into run_export handler YeonGyu-Kim 2026-04-20 13:42:57 +09:00
  • dd73962d0b ROADMAP #122: doctor invocation does not check stale-base condition — run_stale_base_preflight() only invoked in Prompt + REPL paths, missing in doctor action handler; inconsistency: doctor says 'ok' but prompt warns 'stale base'; joins boot preflight / doctor contract family (#80-#83/#114) and silent-state inventory (#102/#127/#129/#245) YeonGyu-Kim 2026-04-20 13:11:12 +09:00
  • 027efb2f9f ROADMAP §4.44: Typed-error envelope contract (Silent-state inventory roll-up) — locks in structured error.kind/operation/target/errno/hint/retryable contract that closes the family of pinpoints currently scattered across #102 + #121 + #127 + #129 + #130 + #245; backward-compat additive; regression locked via golden-fixture; gates 'Run claw --help for usage' trailer on error.kind == usage; drafted jointly with gaebal-gajae during 2026-04-20 dogfood cycle YeonGyu-Kim 2026-04-20 13:03:50 +09:00
  • 866f030713 ROADMAP #130: claw export --output filesystem errors surface raw OS errno strings with zero context — 5 distinct failure modes all produce different errno strings but the same zero-context shape; no path echoed, no operation named, no io::ErrorKind classification, no actionable hint; JSON envelope flattens to {error, type} losing all structure; Run claw --help for usage trailer misleads on non-usage errors; joins JSON-envelope asymmetry family #90/#91/#92/#110/#115/#116 and truth-audit #80-#127/#129 YeonGyu-Kim 2026-04-20 12:52:22 +09:00
  • d2a83415dc ROADMAP #129: MCP server startup blocks credential validation in Prompt path — cred check ordered AFTER MCP child handshake await; misbehaved/slow MCP wedges every claw <prompt> invocation indefinitely; npx restart loop wastes resources; runtime-side companion to #102's config-time MCP gap; PARITY.md Lane 7 acceptance gap YeonGyu-Kim 2026-04-20 12:43:11 +09:00
  • 8122029eba ROADMAP #128: claw --model <malformed> (spaces, empty string, invalid syntax) silently accepted at parse time, falls through to cred-error misdirection; joins parser-level trust gap family #108/#117/#119/#122/#127; joins token-burn family #99/#127 YeonGyu-Kim 2026-04-20 12:32:56 +09:00
  • d284ef774e ROADMAP #127: claw <subcommand> --json silently falls through to LLM Prompt dispatch — diagnostic verbs (doctor, status, sandbox, skills, version, help) reject --json with cred-error misdirection; valid verb + unrecognized suffix arg = Prompt fall-through; 18th silent-flag, 5th parser-level trust gap, joins #108 + #117 + #119 + #122 YeonGyu-Kim 2026-04-20 12:05:05 +09:00
  • 7370546c1c ROADMAP #126: /config [env|hooks|model|plugins] ignores section argument — all 4 subcommands return bit-identical file-list envelope; 4-way dispatch collapse YeonGyu-Kim 2026-04-18 20:32:52 +09:00
  • b56841c5f4 ROADMAP #125: git_state 'clean' emitted for non-git directories; GitWorkspaceSummary default all-zeros → is_clean() → 'clean' even when in_git_repo: false; contradictory doctor fields YeonGyu-Kim 2026-04-18 20:03:32 +09:00
  • debbcbe7fb ROADMAP #124: --model accepts any string with zero validation; typos silently pass through; empty string accepted; status JSON has no model provenance YeonGyu-Kim 2026-04-18 19:03:02 +09:00
  • bb76ec9730 ROADMAP #123: --allowedTools tool-name normalization asymmetric; snake_case canonicals accept variants, PascalCase canonicals reject snake_case; whitespace+comma split undocumented; allowed_tools not surfaced in JSON YeonGyu-Kim 2026-04-18 18:38:24 +09:00
  • 2bf2a11943 ROADMAP #122: --base-commit greedy-consumes next arg with zero validation; subcommand/flag swallow; stale-base signal missing from status/doctor JSON surfaces YeonGyu-Kim 2026-04-18 18:03:35 +09:00
  • d1608aede4 ROADMAP #121: hooks schema incompatible with Claude Code; error message misleading; doctor JSON emits 2 objects on failure breaking single-doc parsing; doctor has duplicate message+report fields YeonGyu-Kim 2026-04-18 17:03:14 +09:00
  • b81e6422b4 ROADMAP #120: .claw.json custom JSON5-partial parser accepts trailing commas but silently drops comments/unquoted/BOM; combined with alias table 'default'→ReadOnly + no-config→DangerFullAccess creates security-critical user-intent inversion YeonGyu-Kim 2026-04-18 16:34:19 +09:00
  • 78592221ec ROADMAP #119: claw <slash-only verb> + any arg silently falls through to Prompt; bare_slash_command_guidance gated by rest.len() != 1; 9 known verbs affected YeonGyu-Kim 2026-04-18 16:03:37 +09:00
  • 3848ea64e3 ROADMAP #118: /stats, /tokens, /cache all collapse to SlashCommand::Stats; 3-way dispatch collapse with 3 distinct help descriptions YeonGyu-Kim 2026-04-18 15:32:30 +09:00
  • b9331ae61b ROADMAP #117: -p flag is super-greedy, swallows all subsequent args into prompt; --help/--version/--model after -p silently consumed; flag-like prompts bypass emptiness check YeonGyu-Kim 2026-04-18 15:01:47 +09:00
  • f2d653896d ROADMAP #116: unknown keys in .claw.json hard-fail startup with exit 1; Claude Code migration parity broken (apiKeyHelper rejected); forward-compat impossible; only first error surfaces YeonGyu-Kim 2026-04-18 14:03:20 +09:00
  • ad02761918 ROADMAP #115: claw init hardcodes 'defaultMode: dontAsk' alias for danger-full-access; init output zero security signal; JSON wraps prose YeonGyu-Kim 2026-04-18 13:32:46 +09:00
  • ca09b6b374 ROADMAP #114: /session list and --resume disagree after /clear; reported session_id unresumable; .bak files invisible; 0-byte files fabricate phantoms YeonGyu-Kim 2026-04-18 12:09:31 +09:00
  • 43eac4d94b ROADMAP #113: /session switch/fork/delete unsupported from --resume; no claw session CLI subcommand; REPL-only programmatic gap YeonGyu-Kim 2026-04-18 11:33:10 +09:00
  • 8b25daf915 ROADMAP #112: concurrent /compact and /clear race with raw 'No such file or directory (os error 2)' on session file YeonGyu-Kim 2026-04-18 11:03:12 +09:00
  • a049bd29b1 ROADMAP #111: /providers documented as 'List available model providers' but dispatches to Doctor YeonGyu-Kim 2026-04-18 10:34:25 +09:00
  • b2366d113a ROADMAP #110: ConfigLoader only checks cwd paths; .claw.json at project_root invisible from subdirectories YeonGyu-Kim 2026-04-18 10:05:31 +09:00
  • 16244cec34 ROADMAP #109: config validation warnings stderr-only; structured ConfigDiagnostic flattened to prose, JSON-invisible YeonGyu-Kim 2026-04-18 09:34:05 +09:00
  • 21b2773233 ROADMAP #108: subcommand typos silently fall through to LLM prompt dispatch, burning billed tokens YeonGyu-Kim 2026-04-18 09:05:32 +09:00
  • 91c79baf20 ROADMAP #107: hooks subsystem fully invisible to JSON diagnostic surfaces; doctor no hook check, /hooks is stub, progress events stderr-only YeonGyu-Kim 2026-04-18 08:05:20 +09:00
  • a436f9e2d6 ROADMAP #106: config merge deep_merge_objects REPLACES arrays; permission deny rules can be silently erased by downstream config layer YeonGyu-Kim 2026-04-18 07:33:47 +09:00
  • 71e77290b9 ROADMAP #105: claw status ignores .claw.json model, doctor mislabels alias as Resolved, 4 surfaces disagree YeonGyu-Kim 2026-04-18 07:08:25 +09:00
  • 6580903d20 ROADMAP #104: /export and claw export are two paths with incompatible filename semantics; slash silently .txt-rewrites YeonGyu-Kim 2026-04-18 06:34:38 +09:00
  • 7447232688 ROADMAP #103: claw agents silently drops every non-.toml file; claude-code convention .md files ignored, no content validation YeonGyu-Kim 2026-04-18 06:03:22 +09:00
  • 6a16f0824d ROADMAP #102: mcp list/show/doctor surface MCP config-time only; no preflight, no liveness, not even command-exists check YeonGyu-Kim 2026-04-18 05:34:30 +09:00
  • eabd257968 ROADMAP #101: RUSTY_CLAUDE_PERMISSION_MODE env var silently fails OPEN to danger-full-access on any invalid value YeonGyu-Kim 2026-04-18 05:04:28 +09:00
  • d63d58f3d0 ROADMAP #100: claw status/doctor JSON expose no commit identity; stale-base subsystem unplumbed YeonGyu-Kim 2026-04-18 04:36:47 +09:00
  • 63a0d30f57 ROADMAP #99: claw system-prompt --cwd/--date unvalidated, prompt-injection via newline YeonGyu-Kim 2026-04-18 04:03:29 +09:00
  • 0e263bee42 ROADMAP #98: --compact silently ignored in 9 dispatch paths + stdin-piped Prompt hardcodes compact=false YeonGyu-Kim 2026-04-18 03:32:57 +09:00
  • 7a172a2534 ROADMAP #97: --allowedTools empty-string silently blocks all tools, no observable signal YeonGyu-Kim 2026-04-18 03:04:08 +09:00
  • 3ab920ac30 ROADMAP #96: claw --help Resume-safe summary leaks 62 STUB_COMMANDS entries YeonGyu-Kim 2026-04-18 02:35:06 +09:00
  • 8db8e4902b ROADMAP #95: skills install is user-scope only, no uninstall, leaks across workspaces YeonGyu-Kim 2026-04-18 02:03:10 +09:00
  • b7539e679e ROADMAP #94: permission rules accept typos, case-sensitive match disagrees with ecosystem convention, invisible in all diagnostic surfaces YeonGyu-Kim 2026-04-18 01:34:15 +09:00
  • 7f76e6bbd6 ROADMAP #93: --resume reference heuristic forks silently; no workspace scoping YeonGyu-Kim 2026-04-18 01:04:37 +09:00
  • bab66bb226 ROADMAP #92: MCP config does not expand ${VAR} or ~/ — standard configs fail silently YeonGyu-Kim 2026-04-18 00:35:44 +09:00
  • d0de86e8bc ROADMAP #91: permission-mode parsers disagree; dontAsk silently means danger-full-access YeonGyu-Kim 2026-04-18 00:05:13 +09:00
  • 478ba55063 ROADMAP #90: claw mcp surface redacts env but dumps args/url/headersHelper YeonGyu-Kim 2026-04-17 23:32:40 +09:00
  • 64b29f16d5 ROADMAP #89: claw blind to mid-rebase/merge/cherry-pick git states YeonGyu-Kim 2026-04-17 23:03:53 +09:00
  • 9882f07e7d ROADMAP #88: unbounded CLAUDE.md ancestor walk = prompt injection via /tmp YeonGyu-Kim 2026-04-17 22:33:13 +09:00
  • 82bd8bbf77 ROADMAP #87: fresh-workspace permission default is danger-full-access, doctor silent YeonGyu-Kim 2026-04-17 22:06:49 +09:00
  • d6003be373 ROADMAP #86: corrupt .claw.json silently dropped, doctor says config ok YeonGyu-Kim 2026-04-17 21:33:44 +09:00
  • 586a92ba79 ROADMAP #85: unbounded ancestor walk enumerates attacker-placed skills YeonGyu-Kim 2026-04-17 21:07:10 +09:00
  • 2eb6e0c1ee ROADMAP #84: dump-manifests bakes build machine's absolute path into binary YeonGyu-Kim 2026-04-17 20:36:51 +09:00
  • 70a0f0cf44 ROADMAP #83: DEFAULT_DATE injects build date as 'today' in live system prompt YeonGyu-Kim 2026-04-17 20:02:37 +09:00
  • e58c1947c1 ROADMAP #82: macOS sandbox filesystem_active=true is a lie YeonGyu-Kim 2026-04-17 19:33:06 +09:00
  • 1743e600e1 ROADMAP #81: claw status Project root lies about session scope YeonGyu-Kim 2026-04-17 19:05:12 +09:00
  • a48575fd83 ROADMAP #80: session-lookup error copy lies about on-disk layout Jobdori 2026-04-17 17:33:05 +09:00
  • 688295ea6c ROADMAP #79: claw --output-format json init discards structured InitReport Jobdori 2026-04-17 17:02:58 +09:00
  • 9deaa29710 ROADMAP #78: claw plugins CLI route is a dead constructor Jobdori 2026-04-17 16:33:09 +09:00
  • d05c8686b8 ROADMAP #77: typed error-kind contract for --output-format json errors Jobdori 2026-04-17 16:08:41 +09:00
  • 00d0eb61d4 US-024: Add token limit metadata for kimi models Yeachan-Heo 2026-04-17 04:15:38 +00:00
  • 8d8e2c3afd Mark prd.json status as completed Yeachan-Heo 2026-04-16 20:05:13 +00:00
  • d037f9faa8 Fix strip_routing_prefix to handle kimi provider prefix (US-023) Yeachan-Heo 2026-04-16 19:50:15 +00:00
  • 330dc28fc2 Mark US-023 as complete in prd.json Yeachan-Heo 2026-04-16 19:45:56 +00:00
  • cec8d17ca8 Implement US-023: Add automatic routing for kimi models to DashScope Yeachan-Heo 2026-04-16 19:44:21 +00:00
  • 4cb1db9faa Implement US-022: Enhanced error context for API failures Yeachan-Heo 2026-04-16 19:15:00 +00:00
  • 5e65b33042 US-021: Add request body size pre-flight check for OpenAI-compatible provider Yeachan-Heo 2026-04-16 17:41:57 +00:00
  • 87b982ece5 US-011: Performance optimization for API request serialization Yeachan-Heo 2026-04-16 11:11:45 +00:00
  • f65d15fb2f US-010: Add model compatibility documentation Yeachan-Heo 2026-04-16 10:55:58 +00:00
  • 3e4e1585b5 US-009: Add comprehensive unit tests for kimi model compatibility fix Yeachan-Heo 2026-04-16 10:54:48 +00:00
  • 110d568bcf Mark US-008 complete: kimi-k2.5 API compatibility fix Yeachan-Heo 2026-04-16 10:12:36 +00:00
  • 866ae7562c Fix formatting in task_packet.rs for CI Yeachan-Heo 2026-04-16 09:35:18 +00:00