Skip to content

Releases: topcheer/ggcode

v1.3.137

Choose a tag to compare

@topcheer topcheer released this 06 Jul 23:11

v1.3.137

Released: 2026-07-07

Agent Improvements

  • Budget Guard (BAGEN-inspired): Per-step token cost trend monitoring — detects when recent steps cost significantly more than earlier ones (backtracking pattern) and warns the agent before tokens are wasted on doomed trajectories
  • Superseded File Result Compaction: Automatically compacts stale re-reads of the same file in context — if the agent reads a file, edits it, then reads it again, the older content is replaced with a placeholder, recovering context space
  • KV Cache Optimization: System prompt now uses selective cache_control breakpoints to optimize KV cache hit rates across turns
  • Checkpoint Pointer Fix: Fixed a bug where checkpoint pointers could alias into the backing array, causing data corruption during session restore

IM Provider Reliability

  • Context-aware delays across all adapters: All IM adapters (QQ, Telegram, Discord, Slack, DingTalk, Feishu, Matrix, Mattermost, WeChat, WeCom, IRC, Twitch, Signal, WhatsApp) now use select+ctx.Done() for inter-message delays and rate-limit backoffs, aborting immediately when the agent is cancelled
  • Signal sendText: HTTP POST now uses http.NewRequestWithContext (was ignoring cancellation), and 429 rate-limit backoff is context-aware
  • Image download: HTTP requests for image downloads now propagate context for cancellation
  • Slack: Rate limit delay, markdown link/header conversion improvements
  • Matrix: M_LIMIT_EXCEEDED retry with inter-message delay
  • WeChat: Markdown stripping for outbound messages, inter-message delay
  • WeCom: Wired inter-message delay, fixed markdown stripping

Desktop UX

  • Auto-expanding textarea: Replaced single-line input with auto-resizing textarea
  • Welcome screen: Quick-start prompts for empty sessions with keyboard shortcut hint
  • Drag-and-drop images: Drag image files into the chat area for attachment
  • Date separators: Visual separators between messages from different days
  • Message timestamps: Displayed on all messages (removed duplicate timestamp)
  • Enhanced ToolMessage: Copy button on expanded tool results, line count indicator on collapsed bars, content truncation at 200 lines with full output via Copy button
  • Copy buttons: Hover copy on user messages, copy button on error messages
  • GFM task list CSS: Styled checkboxes, table zebra striping and hover highlight
  • Copy conversation: Export entire conversation as markdown to clipboard
  • Unread message badge: Shows count of new messages when scrolled up on scroll-to-bottom button
  • Accessibility: aria-live="polite" and role="log" on message container for screen readers
  • Context panel: Token formatting improvements, progress bar color gradient (green→amber→red)
  • CSS completeness: Added h4-h6 headers, inline code distinct color

Provider & Integration Fixes

  • Provider retry cap: Retry-After header delay now capped at providerRetryBackoffCap to prevent excessive backoff
  • A2A RequestInput: Closes done channel and execute respects input-required state, preventing stuck tasks

v1.3.136

Choose a tag to compare

@topcheer topcheer released this 06 Jul 20:05

Release v1.3.136

Date: 2026-07-07

Summary

42 commits since v1.3.135. This release includes significant IM adapter improvements, desktop GUI enhancements, i18n work, agent optimization, and data safety fixes.

IM Adapter Improvements

  • Rate limit retry (429): Added HTTP 429 rate-limit retry with Retry-After backoff for Slack, Discord, Mattermost, DingTalk, and Feishu adapters
  • Message splitting: Added proper message splitting for QQ, WeCom, DingTalk, and WeChat adapters (previously truncated)
  • API response validation: Fixed DingTalk, Feishu, and WeChat to check error codes in response body on HTTP 200
  • Markdown handling: Strip markdown syntax for plain text fallbacks in QQ, Feishu; convert GFM tables to plain text for non-table platforms
  • Slack: Fixed bold→italic collision in markdownToMrkdwn conversion
  • Mattermost: Fixed Send to handle all event types
  • Twitch: Handle newlines in PRIVMSG messages
  • Telegram: Add inter-message delay for multi-chunk sends
  • WhatsApp: Added missing Close() method (resource leak fix)
  • i18n: Localized unauthorized user messages and team/swarm labels across IM adapters
  • Consolidation: Consolidated duplicated message splitters into shared splitForOutbound

Desktop GUI Enhancements

  • Code blocks: Copy button + language label per code block in ChatView
  • Scroll-to-bottom: Floating button when scrolled away from bottom
  • Context progress bar: Visual context usage indicator with hover copy
  • Command palette: Enhanced with icons, view navigation, recently-used tracking
  • Smart diff preview: Approval dialog now shows diff preview
  • Keyboard shortcuts: Help dialog (Cmd+/), session context menu, inline rename
  • Markdown: Open external links in system browser; added missing CSS for hr/strong/em/del/img
  • Skeleton loading: Loading screens for list views

TUI / i18n

  • Replaced hardcoded English strings with translatable keys throughout TUI
  • Localized follow strip, status bar, reasoning effort labels

Agent & Context Optimization

  • Parallel tool execution: Concurrent read-only tool execution per LLM batch (LLMCompiler/W&D-inspired)
  • Speculative execution: Pattern-aware tool pre-execution during LLM generation (PASTE-inspired)
  • Strategy playbook: Learns successful tool patterns and injects strategy hints
  • Trajectory confidence scorer: Holistic trajectory quality scoring with early intervention (HTC-inspired)
  • Smart verify hint: Resets edit counter when agent proactively builds; context-aware messages
  • Reactive ratchet rules: Matches known error patterns in tool results in real-time
  • Tool memoization: Cache for repeated read-only tool results with mtime/TTL invalidation

Data Safety & Concurrency Fixes

  • Stream manager: Fixed concurrent map read/write panic when StopTarget called during streaming (m.targets access without mutex)
  • Swarm manager: Clean up m.results entries on team deletion to prevent memory leak
  • A2A client: Drain push response body and fix misleading log on error status
  • WeChat: Validate iLink ret/errcode in sendmessage response

Bug Fixes

  • Desktop: Rules of Hooks violation fix, sidebar keyboard nav guard
  • Desktop: i18n hardcoded English strings for reasoning effort and follow view
  • Agent: gofmt parallel_tools.go

v1.3.135

Choose a tag to compare

@topcheer topcheer released this 06 Jul 16:07

v1.3.135

Release date: 2026-07-06

Agent Intelligence

  • Trajectory Confidence Scorer (HTC-inspired): New holistic trajectory quality metric that detects deteriorating agent runs early. Combines 6 signals (tool diversity, edit success rate, error clustering, momentum, overall success rate, trajectory length) to compute a 0-100 confidence score. Intervenes at score < 30 before error-streak triggers.
  • Efficiency-Weighted Playbook Ranking: Strategy hints now rank by composite score (frequency × efficiency) instead of pure frequency. Patterns that complete tasks faster are prioritized over frequently-seen but slow patterns. Inspired by SICA's utility function.
  • Overseer Drift Reset Fix: Reset driftLevel in overseer.reset() to prevent stale drift levels from suppressing detection in subsequent runs.
  • Monitoring Reset Timing: Moved all monitoring system resets (error streak, overseer, repetition tracker) to run start to prevent false-positive matching from previous runs.
  • Semantic Importance Contains Matching: Fixed tool result semantic importance detection to use Contains matching with comment-line exclusion for more accurate preservation during context clearing.

Network and Integration

  • Timeout-Aware HTTP Client: Replaced http.DefaultClient with timeout-aware client in DingTalk and PC adapters to prevent indefinite hangs.
  • Daemon Bridge Context Cancel: Fixed missing context.Cancel() in finishRunSlot and Close to prevent goroutine leaks in daemon mode.

Desktop (Wails)

  • Command Palette: Fully functional command palette with keyboard navigation. Supports new session, search, share, context toggle, theme toggle, settings, and sidebar toggle.
  • Session Sidebar: Enhanced with keyboard navigation, date grouping, and model badge display.
  • Animated Typing Indicator: Better streaming feedback with animated typing indicator.

IM (Instant Messaging)

  • WhatsApp Markdown Converter: Native WhatsApp formatting support — converts markdown to WhatsApp's *bold*, _italic_, ~strike~, `code` syntax instead of stripping all formatting.
  • Markdown Stripping: Added stripMarkdown() utility for platforms without markdown support (IRC, Signal, WhatsApp, WeCom).
  • Message Length Limits: Corrected per-platform message length limits based on official documentation.

Data Safety

  • Atomic Playbook Save: Playbook persistence now uses temp file + rename pattern to prevent corruption if the process is interrupted mid-write.
  • Bubble Sort Replacement: Replaced O(n²) bubble sort with sort.Slice in playbook eviction and hint ranking.

v1.3.134

Choose a tag to compare

@topcheer topcheer released this 06 Jul 11:56

v1.3.134

Released: 2026-07-06

Features

  • Strategy Playbook (feat(agent)): Learn from successful runs to complement ratchet's failure-based learning. Records task-type/tool-sequence/file-type fingerprints from successful agent runs and injects strategy hints at run start. ACE-inspired (Agentic Context Engineering, ICLR 2026).

  • Tool-Aware Observation Compression (context): Compress tool call observations during context summarization to preserve token budget. ACON-inspired approach that selectively compresses verbose tool outputs while preserving semantically important results (errors, warnings).

Bug Fixes

  • TUI: Missing panels in isAnyPanelOpen (fix(tui)): 15 newer panels (WeChat, WeCom, Matrix, Mattermost, Signal, IRC, Nostr, Twitch, WhatsApp, Stream, Inspector, Harness, LanChat, Skills) were missing from isAnyPanelOpen(), causing the "Save target: [instance/global]" scope indicator to not appear when those panels were open.

  • TUI: Missing panels in hasActivePanel (fix(tui)): knightPanel and statsPanel were missing from hasActivePanel(), causing Esc/Ctrl+C to not close those panels when they were active.

  • Agent: CommandsRun unbounded growth (fix(agent)): The CommandsRun slice on agent run summaries could grow without bound during long sessions, increasing memory usage. Now bounded to a maximum of 200 entries.

  • Agent: Playbook fingerprint staleness (fix(agent)): File type fingerprints in the playbook were not sorted, causing identical patterns to create duplicate entries. Also fixed glob memoization staleness by using directory mtime for invalidation.

  • Lanchat: Crash-safe Store write (fix(lanchat)): Store.writeLocked now uses atomic write (write to temp file + rename) to prevent corruption if the process is killed mid-write.

  • Tunnel: Relay dial error body cap (fix(tunnel)): Relay dial error response bodies are now capped at 4KB to prevent memory exhaustion from large error pages.

v1.3.133

Choose a tag to compare

@topcheer topcheer released this 06 Jul 06:55

v1.3.133

Released: 2026-07-06

Summary

Major agent optimization release: three new execution acceleration features
(speculative execution, parallel pre-execution, tool result memoization),
progressive drift detection, and 8 bug fixes across agent, provider, TUI, IM,
and context management.

Features

Agent Execution Acceleration (3 new optimizations)

  • Pattern-aware speculative tool execution (PASTE-inspired): While the LLM
    generates its response, predict likely next read-only tool calls and
    pre-execute them in background goroutines. When the LLM's response arrives,
    if predictions match, results are ready instantly — zero tool latency.
    Bigram pattern model with argument-linked predictions and TTL cache.
    (internal/agent/speculate.go)

  • Speculator production hardening: Bounded LRU cache (max 50 entries),
    adaptive prediction threshold (self-tunes based on cache hit rate), and
    max concurrent speculations (3). Prevents unbounded memory growth and
    goroutine explosion.
    (internal/agent/speculate.go)

  • Parallel pre-execution of read-only tools (LLMCompiler/W&D-inspired):
    Before the sequential tool execution loop, identifies read-only tool calls
    in the LLM batch response that are NOT in the speculative cache, and
    executes them concurrently with goroutines. Max 3 concurrent, with full
    permission check safety.
    (internal/agent/parallel_tools.go)

  • Tool result memoization (ToolCaching-inspired): Lightweight cache that
    serves repeated read-only tool calls from memory instead of re-executing.
    File-based tools use mtime invalidation; search/grep uses 30s TTL; LSP
    tools use 15s TTL. Bounded LRU (50 entries), per-run reset.
    (internal/agent/memoize.go)

Agent Intelligence

  • Progressive drift detection (SICA-inspired): 3 escalating levels of
    guidance when the agent appears stuck (20/40/60 iterations). Each level
    fires at most once per stall episode, resets on productive action.
    (internal/agent/overseer.go)

  • Task-aware tool result preservation: ClearOldToolResults now skips
    results containing semantic error markers (error:, fail:, panic:, etc.).
    Prevents "context collapse" during debugging — error context survives
    clearing.
    (internal/context/manager.go)

Bug Fixes

  • fix(im): bound approvals map growth — The IM Manager.approvals map
    never had entries deleted, causing unbounded memory growth. Added
    pruneApprovalsLocked() and fixed snapshot to exclude resolved entries.

  • fix: double-Shutdown panic — Swarm and subagent managers could panic
    on double Shutdown calls. Added sync.Once protection.

  • fix(tui): Esc dismisses exit/cancel confirmation — Esc key now
    properly dismisses exit and cancel confirmation prompts.

  • fix: readline shortcuts cursor jump — Ctrl+K/U/W caused cursor to
    jump to wrong position after editing.

  • fix(stt): check HTTP status before decoding — STT adapter tried to
    decode response body without checking HTTP status code first, causing
    confusing error messages.

  • fix(provider): stop retrying 400 Bad Request — 400 errors are
    permanent (not retriable), but the retry loop would retry them
    indefinitely.

  • fix(agent): add completed tool results on mid-loop cancel — When the
    agent loop is cancelled mid-execution, completed tool results were not
    added to context, losing work.

  • fix(agent): failed run_command not productive — Failed run_command
    calls were incorrectly counted as "productive" in the overseer, preventing
    stall detection from triggering.

Complete Agent Optimization Stack

Layer File Purpose
Tool result memoization memoize.go Serve repeated read-only calls from cache (NEW)
Parallel execution parallel_tools.go Concurrent read-only tools per LLM batch
Speculative execution speculate.go Pre-execute during LLM generation
Tool-result clearing agent_precompact.go Mechanical context space recovery
Tool-use input clearing agent_precompact.go Extended context trimming
Progressive error streak loop_detect.go 4/7/10 errors with escalating guidance
Progressive drift overseer.go 20/40/60 iterations with escalating guidance
Overseer (5 modes) overseer.go Deterministic trajectory analysis
Repetition tracker repetition_tracker.go Failed-edit cluster detection
Smart verify hint verify_hint.go Post-edit build reminders
Reactive ratchet rules ratchet_reactive.go Error pattern matching in results

v1.3.132

Choose a tag to compare

@topcheer topcheer released this 05 Jul 23:47

v1.3.132

Agent Intelligence Improvements

  • Progressive error-streak guidance — When the agent hits consecutive tool errors, guidance now escalates across 3 levels (4, 7, 10 errors) instead of firing once. Level 1 suggests reconsidering strategy, level 2 focuses on technical debugging, level 3 recommends escalation. (SICA-inspired)

  • Reactive ratchet rule matching — When a tool result contains an error matching an existing ratchet rule's pattern, the FixHint is now injected immediately. Previously, ratchet rules only matched tool arguments (preventive), not tool result content (reactive).

  • Smart verify hint reset — The post-edit verify hint counter now resets when the agent proactively runs a build/test command, avoiding redundant "run go build" reminders. Hint messages are also context-aware: if the last build failed, the hint adds urgency.

  • Justfile and Taskfile support — The verify hint build detection now recognizes Justfile and Taskfile.yml projects, suggesting just verify-ci or task build instead of falling through to language-specific defaults.

Bug Fixes

  • Fix: nil slice panic in LAN chat autocomplete — Typing @query in chat mode when no LAN chat participants are online would panic with "slice bounds out of range". The filtering loop now guards against nil slices.

  • Fix: concurrent WebSocket readers in WebUI — The legacy chat WebSocket handler could spawn a second concurrent reader on the same connection, violating gorilla/websocket's contract and risking panics or corrupted reads. The readPump goroutine is now properly drained before the outer loop resumes.

  • Fix: nil dereference on late IM ask_user reply — When an IM reply for an ask_user questionnaire arrived after the questionnaire was already completed, the nil pointer dereference would crash.

  • Fix: lock-before-close in mattermost, wecom, and nostr adapters — Three IM adapters called ws.Close() while holding a write lock, causing potential deadlock. The lock is now released before closing.

v1.3.131

Choose a tag to compare

@topcheer topcheer released this 05 Jul 17:13

v1.3.131

Released: 2026-07-06

Bug Fixes

  • iOS App Store Review submission — Fixed invalid API endpoint that prevented automatic review submission. The Fastfile was using a non-existent POST v1/reviewSubmissions/{id}/actions/submit endpoint. Replaced with the correct spaceship method patch_review_submission (PATCH v1/reviewSubmissions/{id} with {submitted: true}), matching Apple's App Store Connect API specification. Previous versions built and uploaded correctly but required manual submission through App Store Connect web UI.

All changes from v1.3.130

See v1.3.130 for the complete list of changes included in this release cycle.

v1.3.130

Choose a tag to compare

@topcheer topcheer released this 05 Jul 16:42

v1.3.130

Released: 2026-07-06

Mobile

  • Image sending — Mobile app can now attach and send images to the desktop agent via tunnel. Images are base64-encoded, persisted to $TMPDIR/ggcode-images/ on the host, and accessible to the agent via sourcePath. Includes image picker (gallery + camera), image preview in chat bubbles, and InputBar integration.
  • InputBar stop/send mutual exclusion — When agent is running, only the stop button is shown (not both stop and send).

Tunnel Protocol

  • ImageData type — Added tunnel.ImageData struct and Images []ImageData field on MessageData for carrying base64-encoded image attachments.
  • Tunnel routing — Messages with images but empty text are now accepted (previously rejected).

TUI

  • Provider panel endpoint creation — Users can now create new endpoints directly from the provider panel via the "new endpoint name" flow.
  • Provider panel focus management — Input blur on panel open, focus restoration on close.

Data Safety

  • Session index fsyncsaveIndex() now uses Create+Write+Sync+Close+Rename (matching Save()) for crash durability.
  • Temp image cleanupcleanupOldTempImages() removes files older than 24h from $TMPDIR/ggcode-images/ on startup.

Test Infrastructure

  • Removed stale test files (debug_drain_test.go, parts of im_runtime_test.go and program_harness_test.go) that referenced moved/renamed APIs.
  • Added tunnel image handling tests.
  • Added tunnel protocol ImageData tests.

v1.3.129

Choose a tag to compare

@topcheer topcheer released this 05 Jul 16:33

v1.3.129

Released: 2026-07-06

Agent Improvements

  • Progressive context clearing tiers — Three-tier context management: tool-result clearing at 75% threshold, tool-use input clearing for large arguments, and LLM-based compaction at 88%. Purely mechanical clearing operations run without LLM calls, saving tokens cost-effectively.
  • Semantic repetition detection — New repetitionTracker detects failed edit clusters on the same file (3/5/7 failure escalation) and read-edit-fail cycles. Prevents infinite near-miss loops that exact-match loop detection misses.
  • Deterministic overseer — Trajectory analysis agent that monitors for tool spam, read-only stalls, file-stuck patterns, error escalation, and task drift. Injects targeted guidance messages when pathological patterns are detected.
  • Async auto-verify — Build verification now runs asynchronously instead of blocking the agent loop, allowing continued work during compilation.
  • Makefile-aware build detection — Auto-verify now detects build systems (Makefile, npm scripts, cargo, etc.) and suggests appropriate verification commands.
  • Incomplete todo check — Agent checks for incomplete todos before finishing and prompts to complete them.

TUI & UX

  • Model panel: context window and max tokens editing — Users can now directly edit context window and max tokens values in the model panel with K/M/G suffix support (e.g., 256k, 1M, 2G).
  • Model panel field overwrite fix — Fixed a bug where editing context window would silently drop the value due to premature field clearing.
  • Model panel focus management — Input blur on panel open, focus restoration on close for smoother UX.

Tools

  • mobile_device multi-platform listingdevices action now lists both iOS and Android when platform=auto, instead of only showing one platform.
  • mobile_device multi-device support — Transport ID targeting for operations on specific Android devices, with stale cache cleanup.
  • read_file line count — Reports total line count in truncation messages and large-file errors.
  • glob result sorting — Results are now sorted alphabetically and capped at 500 matches.
  • run_command line-aware truncation — Output truncation preserves line boundaries.
  • edit_file fuzzy diagnostics — Shows nearest-match suggestions when exact text matching fails.
  • web_fetch content-aware extraction — Improved HTML-to-text extraction.

Data Safety

  • Session index fsyncsaveIndex() now uses Create+Write+Sync+Close+Rename pattern (matching Save()) for crash durability. Previously used WriteFile without fsync, risking empty/partial index on crash.
  • Session Save fsync — Added f.Sync() before atomic rename in Save() for crash durability.
  • Temp image cleanupcleanupOldTempImages() removes files older than 24h from $TMPDIR/ggcode-images/ on TUI startup, preventing unbounded disk usage.
  • Tunnel image persistence — Mobile-sent images are now persisted to temp directory with proper sourcePath, fixing a bug where the agent couldn't locate image files.

Provider & Integration

  • Anthropic prompt caching — System prompt and tools are now cached using Anthropic's prompt caching feature, reducing latency and token costs for Anthropic models.
  • A2A push notification timeout — Added 10s timeout to push notification HTTP requests to prevent hanging.
  • Session-scoped model/vendor persistence — Model and vendor changes are now saved per-session instead of globally, matching the existing permission mode pattern.

CI & Testing

  • OOM prevention — CI and verify-ci now use -p 1 sequential execution and memory limits to prevent OOM kills.
  • Integration test tagging — Heavy external-dependency tests tagged with integration_local to exclude from default CI runs.
  • LSP test resilience — Tests now skip gracefully when external language servers fail to initialize.
  • safego.Go fixes — Replaced bare goroutines with safego.Go() for panic recovery.

Mobile

  • Image sending — Mobile app can now send images to the desktop agent. Images are properly persisted to temp directory for agent access.

v1.3.128

Choose a tag to compare

@topcheer topcheer released this 05 Jul 07:49

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.