Warning
Packaging for this stable release failed before platform binaries and npm 9.19.0 were published. The native installers and npm launcher therefore cannot install v9.19.0 through releases/latest.
The verified prerelease v9.19.6-dev is available for development-channel users. If you require the stable channel, wait for the corrected stable promotion.
What's Changed
All changes since v9.18.0:
v9.18.1-dev: Fix Dev Browser upstream previews
- Fixed Dev Browser upstream connection handling so mixed IPv6/IPv4 dynamic DNS targets fall back to a reachable address instead of surfacing MidTerm's timeout page.
- Dev Browser previews now proceed through upstream HTTPS certificate validation errors for explicitly targeted preview URLs, so expired-cert share pages can render their real upstream error page.
- Added WebPreviewService regression coverage and documented upstream TLS/DNS behavior.
v9.18.2-dev: Browser perf diagnostics
- Adds an opt-in browser performance recorder under mmDebug.perf for capturing RAF frame pacing, long tasks, browser state, and terminal/WebGL summaries from the affected MidTerm window.
v9.18.3-dev: Harden degraded mux transport
- Detect slow mux WebSocket clients and temporarily prioritize active or visible terminal sessions over hidden background output.
- Add browser-side backoff for transport-loss buffer refreshes so repeated data loss cannot trigger tight replay loops.
- Cover the degraded mux delivery policy and transport-loss refresh backoff with targeted tests.
v9.18.4-dev: Keep dev macOS release artifacts when Apple notarization is blocked
- Allow dev prerelease macOS artifacts to continue when Apple notarization is blocked by an expired or missing Developer agreement.
- Keep stable release notarization strict while preserving signed macOS dev artifacts for test distribution.
v9.18.5-dev: Restore strict dev macOS notarization
- Restore strict Apple notarization for dev prerelease macOS artifacts now that the Apple Developer agreement has been renewed.
v9.18.6-dev: Prune Lens history measurement cache
- Prune stale Lens history measurement caches outside the active history window.
- Add regression coverage for AppServerControl measurement cache pruning.
v9.18.7-dev: Fix terminal corruption after mux data loss
- Mux resync now fully resets the terminal parser state, so buffer replays recover sessions whose dropped bytes left a stuck charset or half-parsed escape sequence (all characters rendering as symbols until page refresh)
- Degraded-transport suppression of hidden session output is now an accounted loss: the client receives a data-loss frame when delivery resumes and requests a resync instead of continuing silently on a holed byte stream
v9.18.8-dev: Mobile UX, WebGL renderer, and git chip fixes; refreshed GitHub landing
- Compact mobile sidebar rows with a touch dropdown action menu - roughly twice as many sessions visible per screen, close action stays neutral until pressed
- Mobile Dev Browser dock becomes a real phone layout: full-viewport overlay, 44px touch chrome, two-row URL bar, and opening the dock reuses an existing named preview target instead of adding an empty default tab
- Sidebar git chip shows the repo label and real branch instead of 'repo - HEAD +0 -0': status is refreshed before repos are announced, explicit labels apply to the primary repo, and bare statuses no longer synthesize placeholder chips
- Shared WebGL glyph atlas hardening: per-renderer invalidation generations and page-identity tracking remove the permanent every-frame model rebuild after atlas merges and a latent stale-texture aliasing path; session-switch churn no longer clears the shared atlas
- GitHub landing refreshed with a banner built from the real product logo and three current screenshots; frontend codegen now runs project-local binaries so dev builds cannot lint-drift
v9.18.9-dev: Atomic terminal recovery
- Atomic per-session terminal recovery with sequence cursors and explicit gap detection.
- Bounded priority WebSocket writer prevents slow-client memory growth while preserving active-terminal latency.
- Recovery telemetry, lifecycle and WebGL trigger cleanup, and mobile CPU/memory regression coverage.
v9.18.10-dev: Remote-first Mobile Device Lab
- Adds an optional local Chrome MV3 bridge for real top-level Pixel 8 emulation even when MidTerm runs remotely.
- Separates fast responsive-frame sizing from Chromium touch, UA, DPR, rotation, lifecycle, keyboard-viewport, screenshot, and DOM automation behavior.
- Adds mt_mobile controls and ships the bridge as a downloadable no-runtime-dependency ZIP.
v9.18.11-dev: Surface embedded Chrome bridge download
- Shows the embedded Chrome bridge download directly in the Dev Browser toolbar whenever no local bridge is connected.
- Switches the same control to the Pixel 8 device action after the extension handshake succeeds.
- Keeps the overflow download as a fallback and verifies the ZIP remains embedded in published MidTerm binaries.
v9.18.12-dev: Serve embedded Chrome bridge archive
- Fixes published single-binary MidTerm builds so the embedded Chrome bridge ZIP resolves at its UI download path.
- Adds ZIP-aware embedded-resource path mapping, an explicit application/zip content type, and an assembly-level regression test.
- Includes the direct toolbar download introduced in v9.18.11-dev.
v9.18.13-dev: Chrome Web Store device bridge install
- Install the Mobile Device Bridge from its Chrome Web Store listing when the local bridge is not connected.
- Keep the embedded ZIP download available in the Dev Browser overflow menu as a manual fallback.
- Add reproducible store assets, privacy disclosures, packaging, and future Chrome Web Store publishing automation for extension mipkpmmedaoighaadeedfedimiaaekcn.
v9.18.14-dev: Deterministic agent operator workflow
- Adds durable Terminal prompt, paste, image, and file history with replay in the browser and generated mt CLI helpers.
- Adds the agent-written control plane and dense Operator view for exact session facts, work items, published status, and checkpoints across Hub machines.
- Adds explicit multi-session dispatch, runtime capability discovery, and ordered control-plane events without PTY-text or timing inference.
v9.18.15-dev: Restore sidebar and expose input history
- Restore the original Bookmarks label, star, behavior, and inherited sidebar colors.
- Expose Terminal prompt, paste, image, and file history through a direct Prompt & Paste sidebar entry and Alt+H.
- Remove the parallel History tab and input-kind color treatment so the new surface reuses MidTerm styling.
v9.18.16-dev: Session-owned prompt and paste history
- Moved Prompt & Paste from global navigation into each session top bar while preserving the existing theme and Bookmarks surface.
- Required session-scoped input-history queries and locked UI replay to the menu owner; generated mt helpers now reject sessionless listing.
- Added mobile access and verified 50 open/close cycles with zero retained menu DOM nodes.
v9.18.17-dev: Simplify the session history label
- Renamed the per-session Prompt & Paste action to History across all supported UI languages.
- Kept the existing session ownership, styling, shortcut, and deterministic capture behavior unchanged.
v9.18.18-dev: Per-session terminal input timeline
- Captures browser-authored terminal submissions per session when plain Enter actually sends them.
- Keeps Shift/Ctrl/Alt/Meta+Enter, Codex multiline bursts, and pasted newlines inside one history item.
- Renders History as a timestamped vertical timeline with text and pasted-image thumbnails.
v9.18.19-dev: Polish the session History menu
- Tightens the per-session History menu to a compact 360px layout with aligned timeline rows.
- Uses full 36px replay and delete targets with clear SVG icons instead of legacy 18px font glyphs.
- Keeps keyboard actions isolated so delete/replay controls cannot trigger the parent row action.
v9.18.20-dev: Restore mobile PWA installation
- Make the root MidTerm URL installable with a root-scoped manifest and service worker.
- Keep Install as App usable after a dismissed or unavailable native browser prompt.
- Show localized manual install steps on Android, iOS, and other browsers.
v9.18.21-dev: Keep mobile terminal above keyboard
- Make mobile layout content-resizing explicit so browser and PWA terminals end above the on-screen keyboard.
- Track visual viewport panning even when only its offset changes.
- Reveal the exact terminal cursor row on input instead of scrolling the entire terminal canvas to its bottom.
v9.18.22-dev: Stabilize mobile keyboard viewport
- Keep content-resized Chromium layouts anchored while keyboard focus emits transient visual viewport offsets.
- Retain the visual viewport offset fallback for iOS and browsers that keep a larger layout viewport.
- Preserve the zero-overlap keyboard boundary without whole-shell movement during terminal input.
v9.18.23-dev: Stop mobile terminal input reshuffling
- Keep the app shell fixed while focused terminal or prompt input emits offset-only mobile viewport panning.
- Stop direct xterm keystrokes from forcing a cursor-scroll cycle before terminal output is rendered.
- Coalesce cursor reveals after rendering and write scroll position only when the cursor is actually outside the visible terminal.
v9.18.24-dev: Restore dark sidebar contrast
- Start new browser origins in the tuned dark theme without cross-port theme leakage
- Keep high-contrast sidebar colors when switching away from Solarized themes
- Store UI theme per origin so stable and source instances stay isolated
v9.18.25-dev: Keep browser sessions securely alive
- Keep active browser sessions alive with an eight-day sliding window and background renewal, while requiring the password again after more than eight days away.
- Enforce the same session lifetime across HTTP APIs and every full-user control WebSocket, including immediate revocation on logout or password change.
- Recover expired authentication through one login flow instead of leaving terminal steering active while uploads or History fail independently.
- Preserve one logical session identity across renewals and migrate existing cookies without forcing an upgrade-time login.
v9.18.26-dev: Fix History dropdown reliability
- Keep session History open during internal scrolling and scrollbar gestures.
- Distinguish connection or certificate failures from a genuinely empty timeline and provide an inline refresh action.
- Refine the History dropdown layout, placement, timeline density, and touch targets without changing global theme colors.
v9.18.27-dev: Attach History to its top-bar action
- Remove the redundant History heading inside the session timeline dropdown.
- Align the dropdown with the History tab and reduce the vertical gap to two pixels.
- Preserve internal scrolling, existing theme colors, and established action sizing.
v9.18.28-dev: Shelve the unfinished Operator surface
- Remove Operator from the sidebar until its product requirements are reassessed.
- Stop the dormant Operator notification poll from reopening the withdrawn surface.
- Keep the deterministic control-plane API and mt CLI contracts intact for agents and future redesign.