ultraworkers-claw-code/rust/crates/runtime/src
YeonGyu-Kim 6e301c8bb3 fix(runtime): prevent orphaned tool-result at compaction boundary; /cost JSON
Two fixes:

1. compact.rs: When the compaction boundary falls at the start of a
   tool-result turn, the preceding assistant turn with ToolUse would be
   removed — leaving an orphaned role:tool message with no preceding
   assistant tool_calls. OpenAI-compat backends reject this with 400.

   Fix: after computing raw_keep_from, walk the boundary back until the
   first preserved message is not a ToolResult (or its preceding assistant
   has been included). Regression test added:
   compaction_does_not_split_tool_use_tool_result_pair.

   Source: gaebal-gajae multi-turn tool-call 400 repro 2026-04-09.

2. /cost resume: add JSON output:
   {kind:cost, input_tokens, output_tokens, cache_creation_input_tokens,
    cache_read_input_tokens, total_tokens}

159 CLI + 431 runtime tests pass. Fmt clean.
2026-04-10 00:13:45 +09:00
..
bash_validation.rs feat: bash validation module + output truncation parity 2026-04-03 19:31:49 +09:00
bash.rs docs: describe the runtime public API surface 2026-04-04 15:23:29 +00: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 fix(runtime): prevent orphaned tool-result at compaction boundary; /cost JSON 2026-04-10 00:13:45 +09:00
config_validate.rs feat(config): add trustedRoots to RuntimeConfig 2026-04-08 02:35:19 +09:00
config.rs style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09:00
conversation.rs feat(cli): wire --reasoning-effort flag end-to-end — closes ROADMAP #34 2026-04-09 11:08:00 +09:00
file_ops.rs fix: suppress dead_code warnings for unused file_ops functions 2026-04-05 03:23:51 +00: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 feat(hooks): add PostToolUseFailure propagation, validation, and tests 2026-04-02 18:24:12 +09:00
json.rs fix: auto compaction threshold default 200k tokens 2026-04-01 03:55:00 +00:00
lane_events.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +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_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
mcp.rs feat(mcp): add toolCallTimeoutMs, timeout/reconnect/error handling 2026-04-02 18:24:30 +09:00
oauth.rs docs: describe the runtime public API surface 2026-04-04 15:23:29 +00:00
permission_enforcer.rs Restore a fully green workspace verification baseline 2026-04-05 18:46:06 +00: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_control.rs feat: plugin-level max_output_tokens override via session_control 2026-04-07 15:55:38 +09:00
session.rs style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09: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 style: cargo fmt — fix CI formatting failures 2026-04-08 11:21:13 +09:00