Reliable Claude approvals
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.