Trim the tool roster, guard runaway tool calls, and release 0.3.4 - #18
Merged
Merged
Conversation
Shorter tool descriptions and round-trip persona guidance; remove the todo_write, workflow, ralph, present, and subagent_fork tools, the webhook and workspace packages, and unmounted packages (retired event types kept so released sessions open); abort tool calls that stream runaway whitespace and add opt-in strict tool schemas; dedupe core helpers and split ToolRuntime; eval runner gains a pi arm, stream timing, and EVAL_GATEWAY. Eval records under versions/unreleased.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
todo_write(and the TUI task list, Ctrl+T, compaction<todo-list>),workflowandralph,present, andsubagent_fork.subagent,send_message,list_agents,interrupt_agent, andlist_subagent_modelsare unchanged.tool_help/details, and subagent parent-history seeding.llm-pi-ainow aborts once more than 2,000 whitespace characters follow outside JSON strings and fails the step with retryableTRANSPORT. New opt-instrictToolsroute setting sends strict tool schemas on OpenAI wires.util-values,ToolRuntimesplit (schemas byte-identical), dead launcher-identity code removed, stale ACP/web-client wording fixed.@effortsuffix,EVAL_GATEWAY, per-request stream timing and tool-argument capture, deep-mergedEVAL_SETTINGS_<ARM>.evals/agent-loop/versions/v0.3.4.Session format
No version bump and no persistence digest moved. Event types of removed plugins (
todo/write,tool-workflow/*,deliverables/presented,feedback/message-*, webhook sources) moved to the retired vocabulary, so released sessions still open.bun scripts/persistence-changes.ts --check: 63 roots match 5 history records.Eval
Records in
evals/agent-loop/versions/v0.3.4/:2026-10-03-trim-and-removals(base: pre-change tree, 4 models, 3 trials): total tokens −42% Opus 5.5, −39% DeepSeek V4 Pro, −67% Gemini 3.8 Flash, −42% GPT 6.1 Sol, with fewer requests and no tool errors. Flagged: GPT failures 1 → 4. Accepted: follow-up probes with stream capture showed all of them are GPT's whitespace runaway in an unclosed tool call, which also happens on the base tree. It is fixed by the next record.2026-10-04-runaway-guard(base: tree just before the guard, every arm one retry): no regressions. GPT failures 11 → 1 of 40; Opus, Gemini and DeepSeek unchanged and the guard never fired.steps/strict-tools: GPT 40/40, with no runaways. Flagged: +6.3% tokens vs the guard arm, from the larger strict schemas. Accepted:strictToolsis off by default.2026-10-03-trim-and-batch(with attribution steps),2026-10-03-bake-vs-pi,2026-10-02-text-block-parts.Checks
bun run preflight: 27 passed, 1 skipped (actionlint not installed); includes runtime, integration, and e2e PTY.bun run release:preflight: ready to release 0.3.4.