a73x

f1027928

docs: publish application mouse demo and review notes

a73x   2026-09-06 11:33

Commit message
docs: publish application mouse demo and review notes

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 &amp; 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 &amp; 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.