Skip to content

Reliable Claude approvals

Choose a tag to compare

@github-actions github-actions released this 02 Sep 23:19
· 48 commits to main since this release

What's Changed

All changes since v10.10.0:

v10.10.1-dev: Harden self-update recovery across release channels

  • Treat web-only Dev-to-Stable PTY suffix changes as the same runtime while retaining Full updates for real PTY version advances
  • Recognize current and wrapped Codex resume instructions without relying on one exact upstream sentence
  • Fall back to the official Codex session picker instead of launching an empty session when an authoritative resume ID remains ambiguous
  • Add regression coverage for the failed 10.9.9-dev to 10.10.0 update path and skipped-runtime safety

v10.10.2-dev: Honor signed PTY compatibility for web-only updates

  • Preserve installed terminal hosts for signed web-only releases whenever they satisfy the signed minCompatiblePty floor, even if upstream PTY labels differ
  • Keep protocol changes and hosts below the compatibility floor on the safe Full-update path
  • Retain tolerant Codex resume parsing and session-picker recovery for future upstream CLI wording changes
  • Cover the original 10.9.9-dev to 10.10.0 failure plus compatible and incompatible mismatched-runtime cases

v10.10.3-dev: Honor confirmed full updates despite recovery failures

  • Continue an explicitly requested Full update when best-effort terminal session capture or Codex resume extraction fails
  • Log the failed recovery and warn that active terminals may close without automatic recovery instead of canceling the verified update
  • Keep signature, manifest, protocol, payload integrity, and compatibility checks as hard safety gates
  • Add regression coverage proving upstream resume-format failures cannot block requested Full or Web-only updates

v10.10.4-dev: Reclaim session memory on close

  • Reclaims terminal relay queues, per-session buffers, prompt history, path allowlists, file metadata, and Git watchers before a user-triggered close completes.
  • Bounds terminal relay queues by item count and bytes, cancels active replay, and prevents late output or Git refresh work from restoring closed-session state.
  • Runs a blocking compacting GC only after explicit user close cleanup; automatic process exits do not force a collection.
  • Adds close-race coverage and verifies stable warm-process memory across repeated browser session stress cycles.

v10.10.5-dev: Fix terminal replay desynchronization

  • Align retained and capped terminal replay tails to complete ANSI control-string and UTF-8 boundaries without per-write allocations while preserving exact incremental cursors.
  • Trim overlapping browser output at the exact xterm receive cursor so reconnects cannot duplicate printable or control-sequence bytes.
  • Reassemble fragmented inbound mux WebSocket messages before parsing and filtering, including Hub remote output, with the existing bounded frame limit.
  • Verify a real Windows ConPTY btop session through a two-megabyte ring overrun and repeated browser recoveries; Linux and macOS mthost targets also compile successfully.

v10.10.6-dev: Stop terminal cursor control corruption

  • Prevented browser cursor helpers from inserting synthetic DECTCEM controls between native terminal output chunks.
  • Fixed immediate ANSI color escape leakage and background loss in high-frequency TUIs such as btop when app cursor preservation is disabled.
  • Added a regression test proving cursor helpers never write out-of-band VT controls into xterm parser state.

v10.10.7-dev: Restore complete TUI screens after replay

  • Forces a deterministic foreground redraw before resetting an alternate-screen terminal when its requested replay start has aged out or was capped.
  • Preserves normal shell and cursor-exact replay behavior, while falling back to the existing parser-safe snapshot if a foreground application cannot be redrawn.
  • Adds regression coverage plus two cold-browser btop ring-overrun campaigns with complete backgrounds after fresh attach and repeated session switching.

v10.10.8-dev: Reliable terminal restore after hard refresh

  • Replays deferred terminal renderer refreshes once xterm is open and visible, even when the presentation snapshot itself is unchanged.
  • Prevents alternate-screen sessions such as btop from remaining blank after a hard browser refresh until another session is selected.
  • Adds a regression test for the initial-selection-before-terminal-open race.

v10.10.9-dev: Prevent terminal output overflow resyncs

  • Coalesce contiguous tiny PTY frames across server, client, and browser queues so item counts no longer trip before byte capacities.
  • Use cancellable mthost IPC backpressure and transfer live WebSocket frame ownership so stalled sends cannot block terminal ingestion.
  • Bound outstanding xterm parse work with timeout safety and identify the affected session and cause in overflow warnings.
  • Cover tiny-frame bursts, blocked sends, cancellation, ordering, buffer cleanup, and xterm parse stalls with regression tests.

v10.10.10-dev: Self-heal blank bookmark terminals

  • Replace a browser-local xterm instance when its startup replay barrier stalls while preserving the running server session.
  • Bound recovery to one session-local recreation and replay the retained terminal buffer without re-entering the stale parse barrier.
  • Harden the bookmark startup performance gate so the typed codex command is not mistaken for the rendered Codex interface.

v10.10.11-dev: Reliable multi-browser terminal attach

  • Prevented live PTY output from overtaking the initial replay when a second browser attaches.
  • Added regression coverage for startup output suspension and verified 20 consecutive concurrent browser attaches without sequence gaps.

v10.11.0-dev: Claude provider and compact session launcher

  • Added a dedicated Claude Code provider backed by the embedded Anthropic Claude Agent SDK bridge, with streaming, multi-turn continuation, resume, steering, interrupt, permissions, approvals, questions, models, usage, and image input.
  • Generalized ACP image prompts for capable clients while preserving path fallback for providers that do not advertise image support.
  • Replaced the session launcher provider card grid with one compact provider selector that remembers the last choice and returns the reclaimed space to folder browsing.
  • Expanded fake and live provider coverage across Codex, Claude Code, Gemini CLI, GitHub Copilot CLI, Grok Build, OpenCode, and custom ACP clients.

v10.11.1-dev: Keep session Git watches host-owned

  • Route every session Git watch read and mutation through the owning mthost or mtagenthost before updating the server-side watcher projection.
  • Preserve multi-repository watch sets across tlbx restarts and full runtime updates, including migration of legacy Agent Controller metadata into mtagenthost.
  • Restore Git subscriptions for every visible session after frontend reloads.
  • Refresh vulnerable transitive frontend tooling dependencies in the application and screenshot automation lockfiles.

v10.11.2-dev: Make tool history projection deterministic

  • Project Codex, Claude, and ACP tool events into one typed canonical presentation instead of parsing provider prose in history and the browser.
  • Bound streamed tool output with reusable head-tail ring buffers, split-safe ANSI filtering, explicit omission counts, and immediate terminal-state cleanup.
  • Stop retaining raw provider payload strings and render semantic subjects, paths, outcomes, failures, and bounded evidence consistently across history, recovery, screen logs, and the web UI.

v10.11.3-dev: Fix Claude approval handoff

  • Wait for the Claude Agent SDK bridge to acknowledge the exact pending callback before resolving approvals and questions.
  • Replace raw tool-call JSON in approval prompts with a compact action summary, tool label, collapsed technical details, and concise controls.
  • Cover successful multi-turn approval continuation and rejection of stale duplicate decisions.

v10.12.0-dev: Reliable Claude approvals

  • Claude approval decisions now complete only after the matching pending Claude SDK callback acknowledges the decision, preventing false acceptance and stalled turns.
  • The approval prompt now emphasizes the human-readable action and tool, keeps raw command payloads behind a collapsed technical-details disclosure, and uses compact localized actions.

Release integrity

Native archives have matching platform-specific SPDX SBOM assets plus GitHub build-provenance and SBOM attestations. Installers and the built-in updater additionally verify a signed manifest and all packaged-file hashes.

Verification guide · Security policy