13ff6638
docs: record web copy/paste acceptance
a73x 2026-08-18 12:27
Commit message
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 | ||