claw-code/rust/crates/runtime/src
Yeachan-Heo e874bc6a44 Improve malformed hook failures so operators can diagnose broken JSON
Malformed hook stdout that looks like JSON was collapsing into low-signal failure text during hook execution. This change preserves plain-text hook feedback for normal text hooks, but upgrades malformed JSON-like output into an explicit hook_invalid_json diagnostic that includes phase, tool, command, and bounded stdout/stderr previews. It also adds a regression test for malformed-but-nonempty output.

Constraint: User scoped the implementation to rust/crates/runtime/src/hooks.rs and tests only
Constraint: Existing plain-text hook feedback must remain intact for non-JSON hook output
Rejected: Treat every non-JSON stdout payload as invalid JSON | would break legitimate plain-text hook feedback
Confidence: high
Scope-risk: narrow
Directive: Keep malformed-hook diagnostics bounded and preserve the plain-text fallback for hooks that intentionally emit text
Tested: cargo test --manifest-path rust/Cargo.toml -p runtime hooks::tests:: -- --nocapture
Tested: cargo test --manifest-path rust/Cargo.toml -p runtime -- --nocapture
Tested: cargo clippy --manifest-path rust/Cargo.toml -p runtime --all-targets -- -D warnings
Not-tested: Full workspace clippy/test sweep outside runtime crate
2026-04-13 12:44:52 +00:00
..
bash.rs docs: describe the runtime public API surface 2026-04-04 15:23:29 +00:00
bash_validation.rs feat: bash validation module + output truncation parity 2026-04-03 19:31:49 +09:00
bootstrap.rs feat(runtime): add tests and improve error handling across runtime crate 2026-04-02 18:10:12 +09:00
branch_lock.rs Close the clawability backlog with deterministic CLI output and lane lineage 2026-04-05 18:41:02 +00:00
compact.rs Remove the deprecated Claude subscription login path and restore a green Rust workspace 2026-04-11 17:24:44 +00:00
config.rs style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09:00
config_validate.rs feat(config): add trustedRoots to RuntimeConfig 2026-04-08 02:35:19 +09:00
conversation.rs Retire the stale dead-session opacity backlog item with regression proof 2026-04-11 18:47:37 +00:00
file_ops.rs fix(tools): support brace expansion in glob_search patterns 2026-04-10 11:22:38 +09:00
git_context.rs feat: b5-git-aware — batch 5 wave 2 2026-04-07 15:19:45 +09:00
green_contract.rs feat(runtime): green-ness contract 2026-04-04 00:42:41 +09:00
hooks.rs Improve malformed hook failures so operators can diagnose broken JSON 2026-04-13 12:44:52 +00:00
json.rs fix: auto compaction threshold default 200k tokens 2026-04-01 03:55:00 +00:00
lane_events.rs Prevent cross-worktree session bleed during managed session resume/load 2026-04-11 16:08:28 +00:00
lib.rs style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09:00
lsp_client.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
mcp.rs feat(mcp): add toolCallTimeoutMs, timeout/reconnect/error handling 2026-04-02 18:24:30 +09:00
mcp_client.rs feat(mcp): add toolCallTimeoutMs, timeout/reconnect/error handling 2026-04-02 18:24:30 +09:00
mcp_lifecycle_hardened.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
mcp_server.rs style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09:00
mcp_stdio.rs Close the clawability backlog with deterministic CLI output and lane lineage 2026-04-05 18:41:02 +00:00
mcp_tool_bridge.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
oauth.rs fix(startup): fall back to USERPROFILE when HOME is not set (Windows) 2026-04-10 08:33:35 +09:00
permission_enforcer.rs feat: ultraclaw droid batch — ROADMAP #41 test isolation + #50 PowerShell permissions 2026-04-12 03:06:24 +09:00
permissions.rs docs: describe the runtime public API surface 2026-04-04 15:23:29 +00:00
plugin_lifecycle.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
policy_engine.rs feat(policy): add lane reconciliation events and policy support 2026-04-04 16:12:06 +09:00
prompt.rs style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09:00
recovery_recipes.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
remote.rs fix: auto compaction threshold default 200k tokens 2026-04-01 03:55:00 +00:00
sandbox.rs fix(sandbox): probe unshare capability instead of binary existence 2026-04-03 16:24:02 +09:00
session.rs Keep latest-session timestamps increasing under tight loops 2026-04-12 10:51:19 +00:00
session_control.rs Keep latest session selection tied to real session recency 2026-04-12 07:49:32 +00:00
sse.rs feat(runtime): add tests and improve error handling across runtime crate 2026-04-02 18:10:12 +09:00
stale_base.rs feat: bridge directory metadata + stale-base preflight check 2026-04-07 15:55:38 +09:00
stale_branch.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
summary_compression.rs feat(runtime): actionable summary compression for lane event streams 2026-04-04 00:43:30 +09:00
task_packet.rs style: cargo fmt 2026-04-05 16:56:48 +00:00
task_registry.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
team_cron_registry.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00:00
trust_resolver.rs feat(runtime): trust prompt resolver 2026-04-04 00:44:08 +09:00
usage.rs docs: describe the runtime public API surface 2026-04-04 15:23:29 +00:00
worker_boot.rs Stop repo lanes from executing the wrong task payload 2026-04-12 07:00:07 +00:00