Skip to content

v0.12.0

Latest

Choose a tag to compare

@guanyilun guanyilun released this 25 Apr 04:50
· 660 commits to main since this release

Highlights

Reasoning-mode model support

  • Preserve reasoning / reasoning_content / reasoning_details across turns so reasoning-mode models (e.g. DeepSeek v4-flash) no longer collapse into malformed text-shaped tool calls.
  • Merge streamed reasoning_details fragments by index to avoid duplicated/partial blocks.
  • Normalize reasoning_content across assistant messages at send time, including post-compaction history.
  • Refactored to an opaque extras dict so future provider-specific fields (Anthropic thinking blocks, etc.) can be added without signature churn.

New extension surfaces

  • llm:request and llm:chunk events for wire-level observability (see examples/extensions/wire-log.ts).
  • tool-protocol:extract-calls advisable hook for custom tool-call extraction.

TUI fixes

  • Render orphaned grouped-tool completions under a (cont.) header.
  • Eagerly finalize tool groups when all members complete.
  • Stop the spinner before rendering group aggregates / cont. headers (fixes overlap).
  • ⎿ labels prefer displayDetail (path / pattern) over the raw tool name.

Subagents

  • Budget subagents by completion tokens instead of prompt+completion (fixes premature exhaustion after a few iterations).

Terminal passthrough & startup (#84)

  • Parse OSC responses in stdin so tmux queries don't leak into bash.
  • Extend string-sequence passthrough to DCS / APC / PM.
  • Keep the startup banner in sync with the persisted default model.
  • Preserve active mode when a provider re-registration drops it.
  • Surface a warning when a saved model is missing from a provider's refreshed catalog.

Robustness

  • Recover from tool throws and tighten the auth-error classifier (#82).
  • Hard-fail at startup when no agent backend is available, instead of silently degrading (#83).
  • Drop ctrl+t thinking label and simplify the OpenRouter default.

Docs

  • Reframe README intro as a personal, complementary tool; drop upfront Claude Code name-drop.
  • agent-sh -e ... instead of dev-only npm start -- in extension docs; fix stale ExtensionContext import path.
  • Add an "Updating" section to the usage guide.

Updating: npm install -g github:guanyilun/agent-sh