Skip to content

v1.3.128

Choose a tag to compare

@topcheer topcheer released this 05 Jul 07:49
· 3947 commits to main since this release

v1.3.128

Highlights

  • Go-native browser tool — Full SPA/JavaScript browser automation via Chrome DevTools Protocol (chromedp). No Node.js or Playwright dependency. Supports navigate, click, type, extract, screenshot, evaluate (run JS), wait, links, scroll, back, content, close. Multi-profile cookie persistence, lazy Chrome startup, cross-platform Chrome discovery.
  • Context engineering: tool-use input clearing — When a cleared tool_result's corresponding tool_use Input is large (>200 chars, e.g. edit_file/write_file arguments), it is now mechanically trimmed to a minimal placeholder. Saves thousands of tokens with zero LLM calls. Extends the existing tool-result clearing mechanism.
  • Streaming lifecycle fix — Fixed text accumulation across LLM turns in the TUI (streamBuffer not reset at turn boundary). Verified desktop, mobile tunnel, and IM paths are unaffected.

New Features

  • mobile_device tool — Control native mobile apps on iOS Simulator or Android Emulator/Device (tap, type, swipe, snapshot, screenshot, launch, install, logs)
  • browser status action for session/profile management
  • web_fetch now includes response body for non-200 HTTP responses
  • Context budget warning at 80% utilization
  • /diff prepends diffstat summary when output is truncated
  • Human-readable tool labels and result summaries for browser, screenshot, and mobile_device tools
  • Streaming range reads for files >10MB (read_file no longer blocks on large files)

Bug Fixes

  • TUI streaming: Reset streamBuffer at agentTurnDoneMsg — text from turn N no longer leaks into turn N+1
  • TUI streaming: Correct reasoning start/done lifecycle per LLM turn — one assistant item per turn, no more text fragmentation or reasoning duplication
  • TUI streaming: Renamed agentReasoningDoneMsg to agentTurnDoneMsg for clarity
  • Tool registration: MobileDeviceTool was implemented but never registered in builtin.go — now fixed
  • Auth: Atomic write for A2A token cache to prevent corruption on crash
  • Concurrency: Data race fixes in MCP and skill disabled-state caches, Discord interaction timeout
  • Browser: Fixed JS evaluation double-wrapping, added Chrome process leak prevention with tool lifecycle cleanup
  • run_command: Keep head+tail when truncating output (was keeping only tail)
  • CI: Exclude integration tests from CI to prevent OOM, added GOMEMLIMIT
  • E2E tests: Added integration build tag to harness e2e tests to prevent OOM in make test
  • WebUI: Fixed race condition in WebSocket handler — SendUserMessage now called before sending ack to prevent test flakiness

Refactoring

  • Removed built-in Playwright MCP preset (replaced by native browser tool)
  • Promoted chromedp from indirect to direct dependency
  • Use shared context.EstimateTokens in /context command for consistency

Upgrade Notes

  • The browser tool requires Chrome/Chromium installed on the system. It auto-discovers Chrome on macOS, Linux, and Windows.
  • The Playwright MCP preset has been removed. If you relied on it, use the built-in browser tool instead.