a73x

13ff6638

docs: record web copy/paste acceptance

a73x   2026-08-18 12:27

Commit message
docs: record web copy/paste acceptance

The gate rerun that b0d6972's hardening left owed has happened, and the
Firefox interaction matrix was walked by hand against a live daemon. Both
records said the opposite, so they were stale rather than merely incomplete.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

docs/decisions.md
Old New
@@ -3728,16 +3728,23 @@ completion ordering. The UI still converges on the latest action, but the
3728 external clipboard ordering needs real-browser validation and is not claimed 3728 external clipboard ordering needs real-browser validation and is not claimed
3729 from the deterministic harness. 3729 from the deterministic harness.
3730 3730
3731 **Validation is split honestly.** At commit `6bf0466`, the full `make test` 3731 **Validation completed 2026-08-18.** The rerun that `b0d6972`'s hardening
3732 and `make build` gates were green. After the final snapshot, request-liveness, 3732 left owed has now happened at `8164ce9`: `make build` and `make test` both
3733 and reply-lease hardening at `b0d6972`, the browser verifier reports 671/671 3733 exit 0, and `web/verify.js` reports 671/671 against `zig-out/bin/mux_core.wasm`.
3734 checks passing. The full make gates could not be rerun after those changes 3734 The verifier was run directly as well as through the build graph, because
3735 because the approval usage limit 3735 `build.zig` skips it silently when `node` is absent — a skipped check reads
3736 blocked the shared Zig cache required by the sandbox; that is an unavailable 3736 identically to a passing one.
3737 rerun, not a failed gate. The earlier Firefox OSC 52 permission/fallback and 3737
3738 DEC 2004 paste checks remain outstanding, as does the ten-case mouse-selection 3738 The Firefox matrix was then exercised by hand against a live `muxd` and
3739 matrix — including soft wraps, hard breaks, wide characters, history 3739 `muxweb`, on a session seeded with 120 scrollback lines, a wide-cell CJK line,
3740 auto-scroll, clipboard permissions, and Inspector-shortcut preservation. 3740 and a 300-column soft-wrapped line. All nine cases passed: drag selection with
3741 reply-gated copyability; soft-wrap joining; hard-break preservation; wide-cell
3742 integrity; edge auto-scroll advancing only through painted rows; the
3743 selection-sensitive `Ctrl+C` / `Ctrl+Shift+C` split with Web Inspector still
3744 reachable; OSC 52 clipboard write; DEC 2004-sensitive paste inside and outside
3745 `vim`; and zoom-gated clipboard authority. That is human observation of the
3746 real browser, not a harness result, and it is the evidence this feature's
3747 acceptance always depended on.
3741 3748
3742 **Tracker mapping, without tracker mutation.** `063cec67` now has concrete 3749 **Tracker mapping, without tracker mutation.** `063cec67` now has concrete
3743 implementation evidence for muxweb mouse-drag selection and scrollback copy, 3750 implementation evidence for muxweb mouse-drag selection and scrollback copy,
docs/roadmap.md
Old New
@@ -417,15 +417,16 @@ state and bells rode the same delivery mechanisms.
417 What remains banked is intentionally narrower: terminal mouse-mode mirroring, 417 What remains banked is intentionally narrower: terminal mouse-mode mirroring,
418 whose reporting would take away native drag selection until the CLI has its 418 whose reporting would take away native drag selection until the CLI has its
419 own copy mode; that native CLI copy mode itself; and OSC 10/11 colour queries. 419 own copy mode; that native CLI copy mode itself; and OSC 10/11 colour queries.
420 Browser copy/paste and mouse selection were implemented on the feature branch 420 Browser copy/paste and mouse selection shipped on 2026-08-18: the CLI and
421 on 2026-08-16: the CLI and
422 web/WASM consume one shared semantic decoder, browser paste follows the 421 web/WASM consume one shared semantic decoder, browser paste follows the
423 sampled DEC mode 2004 state, accepted OSC 52 payloads reach a guarded 422 sampled DEC mode 2004 state, accepted OSC 52 payloads reach a guarded
424 Clipboard API path, and mouse dragging paints immediately while daemon-owned 423 Clipboard API path, and mouse dragging paints immediately while daemon-owned
425 selection extraction decides what is copyable across live rows and 424 selection extraction decides what is copyable across live rows and
426 scrollback. Only the zoomed tile may act on either clipboard path. Automated 425 scrollback. Only the zoomed tile may act on either clipboard path. Automated
427 coverage pins those semantics; final build/e2e reruns and the real Firefox 426 coverage pins those semantics, and the nine-case Firefox interaction matrix —
428 interaction matrix remain release-acceptance work. The cross-version gate also 427 soft wraps, hard breaks, wide cells, history auto-scroll, clipboard
428 permissions, and Inspector-shortcut preservation — was walked by hand against
429 a live daemon. The cross-version gate also
429 proves, over socket and QUIC, that a real 430 proves, over socket and QUIC, that a real
430 v0.0.1-5 client ignores the new daemon-to-client frames and keeps parsing. 431 v0.0.1-5 client ignores the new daemon-to-client frames and keeps parsing.
431 432