f1027928
docs: publish application mouse demo and review notes
a73x 2026-09-06 11:33
Commit message
RETRO.md
| Old | New | ||
|---|---|---|---|
| @@ -1493,3 +1493,15 @@ artifacts. Renderer owner follow-up: resolve the existing NVIDIA presentation | |||
| 1493 | budget variability using this same isolated fixture; do not widen the budget | 1493 | budget variability using this same isolated fixture; do not widen the budget |
| 1494 | or rerun until green. The new mouse feature is handed off for functional review | 1494 | or rerun until green. The new mouse feature is handed off for functional review |
| 1495 | with this limitation explicit. | 1495 | with this limitation explicit. |
| 1496 | |||
| 1497 | |||
| 1498 | Application-mouse demo follow-up: user explicitly requested recording and | ||
| 1499 | publication after the hands-on handoff. Created the maintained review page and | ||
| 1500 | a 32.4-second continuous actual GUI recording, with input automation disclosed. | ||
| 1501 | Independent page review caught primary-selection coverage described as part of | ||
| 1502 | the video; corrected it to separate automated coverage. Both clients in the | ||
| 1503 | recording are muxg panes; foot remains separate acceptance evidence. Published | ||
| 1504 | only `/application-mouse` on the existing private host, preserving the older | ||
| 1505 | route. HTTPS page and byte ranges verified; recording fixtures stopped. Server | ||
| 1506 | PID 99795 remains pending acceptance, with exact ownership and targeted teardown | ||
| 1507 | in `dist/application-mouse/server.json` and the sprint plan. | ||
docs/demos/native-application-mouse.html
| Old | New | ||
|---|---|---|---|
| @@ -0,0 +1,43 @@ | |||
| 1 | <!doctype html> | ||
| 2 | <html lang="en"> | ||
| 3 | <head> | ||
| 4 | <meta charset="utf-8"> | ||
| 5 | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| 6 | <title>Application mouse & clipboard</title> | ||
| 7 | <style> | ||
| 8 | :root { color-scheme: dark; --bg:#101318; --panel:#181d25; --ink:#edf2f7; --muted:#aab5c2; --accent:#7dd3fc; --line:#303947; } | ||
| 9 | * { box-sizing:border-box; } body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.55 system-ui,sans-serif; } | ||
| 10 | main { max-width:1000px; margin:auto; padding:3rem 1.25rem 5rem; } h1 { margin:0 0 .5rem; font-size:clamp(2rem,5vw,3.5rem); line-height:1.05; } h2 { margin-top:2rem; font-size:1.25rem; color:var(--accent); } p { color:var(--muted); } .lede { font-size:1.15rem; max-width:70ch; } | ||
| 11 | .card { margin-top:2rem; padding:1rem; background:var(--panel); border:1px solid var(--line); border-radius:12px; } video { display:block; width:100%; max-height:70vh; background:#080a0d; border-radius:8px; } a { color:var(--accent); } ul { color:var(--muted); padding-left:1.25rem; } li+li { margin-top:.4rem; } code { color:var(--ink); } | ||
| 12 | .status { display:inline-block; padding:.2rem .55rem; border:1px solid #a87927; border-radius:999px; color:#ffd580; font-size:.85rem; } | ||
| 13 | </style> | ||
| 14 | </head> | ||
| 15 | <body> | ||
| 16 | <main> | ||
| 17 | <span class="status">Hands-on demo acceptance pending</span> | ||
| 18 | <h1>Application mouse & clipboard</h1> | ||
| 19 | <p class="lede">Native mux panes now forward application mouse gestures and desktop clipboard writes while keeping Shift-drag local for text selection.</p> | ||
| 20 | <section class="card"> | ||
| 21 | <video src="demo.mp4" poster="preview.png" controls playsinline preload="metadata"></video> | ||
| 22 | <p><a href="demo.mp4" download>Download the recording</a> · 32.4 seconds · 1100 × 700 · no audio</p> | ||
| 23 | </section> | ||
| 24 | <h2>What the recording shows</h2> | ||
| 25 | <ul> | ||
| 26 | <li>Normal drag forwarding in both directions to applications and tmux, across two mux sessions attached to the same tmux server.</li> | ||
| 27 | <li>Shift held at press keeps the gesture local through release.</li> | ||
| 28 | <li>An application OSC 52 write reaches the desktop clipboard, read independently with <code>wl-paste</code>.</li> | ||
| 29 | <li>Two separate mux daemon sessions attached to the same tmux server, checked with independent <code>wl-paste</code> and <code>tmux show-buffer</code> observations.</li> | ||
| 30 | </ul> | ||
| 31 | <h2>Evidence</h2> | ||
| 32 | <p>Source <code>03138bb</code>; no daemon update. Separate automated checks verify desktop and primary-selection writes (<code>c</code>, <code>p</code>/<code>s</code>). CI, 117 e2e cases, agent and throughput checks, native unit/e2e checks, and real NVIDIA Wayland validation passed. The existing 20 ms stress budget measured 20.6/21.4 ms; the previous wheel run measured 23.1 ms, so this page makes no stress improvement claim.</p> | ||
| 33 | <h2>Input disclosure</h2> | ||
| 34 | <p>Ordinary drags use genuine Wayland pointer input. The Shift modifier and pointer sequence use the ordinary SDL test hook with visible Wayland cursor motion. Fixture shell commands are entered through SDL keys.</p> | ||
| 35 | <h2>Limits</h2> | ||
| 36 | <ul> | ||
| 37 | <li>Local selection following text through scrolling and reflow remains open. Paste, IME, and ligatures remain separate work.</li> | ||
| 38 | <li>macOS behavior is unverified.</li> | ||
| 39 | <li>Recording metadata: continuous capture, no cuts, no audio, 5 fps, NVIDIA at 200% scale.</li> | ||
| 40 | </ul> | ||
| 41 | </main> | ||
| 42 | </body> | ||
| 43 | </html> | ||
docs/superpowers/plans/2026-09-06-native-application-mouse.md
| Old | New | ||
|---|---|---|---|
| @@ -118,3 +118,30 @@ with the usual connection arguments; no remote daemon update is required. | |||
| 118 | The owned compositor PID 49292 was stopped and verified (`cleanup.json`); | 118 | The owned compositor PID 49292 was stopped and verified (`cleanup.json`); |
| 119 | all test rigs closed their sessions/daemons. Existing pending demos remain. | 119 | all test rigs closed their sessions/daemons. Existing pending demos remain. |
| 120 | No new recording, publication, or user acceptance is claimed. | 120 | No new recording, publication, or user acceptance is claimed. |
| 121 | |||
| 122 | ## Requested recording and publication | ||
| 123 | |||
| 124 | The user subsequently requested a demo and publication. A 32.4-second continuous | ||
| 125 | recording now demonstrates two mux sessions attached to one tmux server: shared | ||
| 126 | normal dragging in both directions, Shift-local copying, independent tmux buffer | ||
| 127 | and desktop clipboard reads, and an application OSC52 desktop write. Primary | ||
| 128 | selection remains separate automated coverage, not a claim about the recording. | ||
| 129 | |||
| 130 | The actual NVIDIA Wayland GUI was captured at 1100×700, 5 fps, without audio or | ||
| 131 | restart cuts. Ordinary drags use real Wayland pointer events; Shift and its | ||
| 132 | pointer sequence use the ordinary SDL hook with visible cursor motion. The | ||
| 133 | page discloses this. A mistyped base64 fixture in the first attempt produced the | ||
| 134 | wrong expected word; the corrected complete recording is the published asset. | ||
| 135 | |||
| 136 | Review page source: `docs/demos/native-application-mouse.html`. Retained assets: | ||
| 137 | `dist/application-mouse/demo/`. Private publication (explicitly requested): | ||
| 138 | https://charizard.folk-amberjack.ts.net/application-mouse/ . HTTPS page and video | ||
| 139 | byte-range seeking were verified (200/206). Review server PID 99795 listens on | ||
| 140 | 127.0.0.1:18777. `dist/application-mouse/server.json` records ownership and route. | ||
| 141 | |||
| 142 | Recording compositor PID 95465 and fixture processes were stopped. The review | ||
| 143 | server and route remain until acceptance; the existing text-selection route was | ||
| 144 | preserved. On acceptance remove only this route with | ||
| 145 | `tailscale serve --https=443 --set-path /application-mouse off`, then stop the | ||
| 146 | server identified in its metadata after verifying ownership. Retain artifacts. | ||
| 147 | Acceptance is pending. | ||