Skip to content

v1.3.143

Choose a tag to compare

@topcheer topcheer released this 11 Jul 15:24
· 3555 commits to main since this release

v1.3.143

Release date: 2026-07-12

New Features

MCP Server Read-Only Mode

  • New read_only: true config flag for MCP servers. When enabled, blocks write-type tool calls (write/edit/delete/create/update/execute/run/shell/move/rename/upload/install/deploy and more) while allowing read operations.
  • 20 write keywords enforced via ReadOnlyAdapter.
  • Applied consistently at both ACP bridge and plugin loader paths.

Token Estimation Self-Calibration

  • New TokenCalibrator in internal/context/token_calibrator.go auto-calibrates char-per-token ratios using API RecordUsage feedback.
  • Warmup phase (5 samples) before adjusting, then incremental averaging every 3 samples.
  • Clamped ratios: ASCII [3.0–5.0], CJK [1.0–2.0]. Prevents the systematic 10–15% underestimation from the old len/4 heuristic.
  • Improves accuracy of budget guard, context clearing tiers, tool output guard, and compaction thresholds.

TUI i18n: 8 New Languages

  • Added: Japanese (ja), Korean (ko), Spanish (es), French (fr), German (de), Russian (ru), Portuguese (pt), Vietnamese (vi).
  • Desktop frontend: 11 new languages added (13 total with en/zh), each with 630 translation keys.
  • All missing keys fall back to English.

Ratchet Rule TTL & Staleness Detection

  • Rules now weighted by recency in TopRulesForPrompt — recent hits rank higher.
  • New CleanStale() method removes rules not hit in 30+ days with fewer than 3 total hits.
  • Prevents rule accumulation from one-off errors.

Improvements

Sub-agent & Swarm Cancellation

  • CancelAll() now waits up to 5s for agents/teammates to actually terminate (via done channel), preventing goroutine leaks.
  • Daemon mode now supports cascade cancel: IM/mobile interrupts propagate to sub-agents via SetCascadeCancel callback.

Desktop Frontend i18n Migration

  • ~20 components migrated from hardcoded English strings to t('key') calls.
  • Language dropdown in Settings dynamically renders from locale registry.
  • SettingsPage mode descriptions refactored to use i18n keys.

Homebrew Install Instructions

  • Fixed across all surfaces (docs, website, npm/python READMEs) to correct 3-step form: brew tapbrew trustbrew install.

Bug Fixes

  • OpenAI provider: Removed no-op StreamOptions{IncludeUsage: true} from non-streaming Chat method (it was never sent in non-streaming requests).
  • web_fetch proxy: When HTTP_PROXY/HTTPS_PROXY is configured, the custom DialContext (SSRF protection) is now bypassed — necessary because the dial receives the proxy address, not the target host. URL-level and redirect-level SSRF protection still active.
  • Provider retry: Fixed TUI provider retry messages reusing the same system item incorrectly.

Internal

  • verify-ci.sh: Relaxed memory limits (main module 1GiB → 8GiB, desktop 256MiB → 2GiB) and split tests into 2 batches to prevent OOM kills.
  • Cron job guardrails: Research rotation (cron-1) and implementation coordinator (cron-2) hardened with gap analysis requirements, independent review steps, and verify-ci gate enforcement.