a73x

5f6c40b6

docs: tear down sprint demos after acceptance

a73x   2026-09-06 07:59

Commit message
docs: tear down sprint demos after acceptance

RETRO.md
Old New
@@ -1168,3 +1168,21 @@ its first pane click. Offscreen selection was rechecked after the Wayland driver
1168 addition. Browser and compositor fixtures are stopped; only the allowlisted 1168 addition. Browser and compositor fixtures are stopped; only the allowlisted
1169 loopback page server (PID 3384909, port 18774) remains. The main checkout's staged 1169 loopback page server (PID 3384909, port 18774) remains. The main checkout's staged
1170 `RETRO.pre-native-merge.md` remains byte-for-byte unchanged. 1170 `RETRO.pre-native-merge.md` remains byte-for-byte unchanged.
1171
1172 ### Acceptance teardown and application scrolling follow-up
1173
1174 The user requested teardown after demo acceptance. Removed the three accepted
1175 appearance routes and stopped their verified page-server processes; retained
1176 their recordings and page sources. Only the text-selection route remains pending
1177 review, and its page still responds successfully. The maintained sprint skill
1178 and native guide now require this cleanup on acceptance, including verification
1179 and preservation of unrelated services. Evidence:
1180 `dist/text-selection/accepted-demo-teardown.json`.
1181
1182 A focused probe ran real Vim and less in isolated daemon PTYs with the native
1183 offscreen GUI. In both apps, keyboard scrolling clears the GUI highlight while
1184 preserving text already copied on release. Scrolling during a held drag cancels
1185 it without overwriting the clipboard. Framebuffer and clipboard observations
1186 passed; all probe processes were closed. This does not add wheel scrolling or
1187 application mouse forwarding. Evidence and the rerunnable probe remain under
1188 `dist/text-selection/app-scroll*` and `check-app-selection.py`.
docs/demos/native-text-selection.html
Old New
@@ -27,6 +27,7 @@ video{width:100%;display:block;background:#101114;border-radius:10px;margin:22px
27 <p>Separately measured NVIDIA responsiveness: frame p99 <strong>19.267 ms</strong> (20 ms limit); sampled input-to-painted upper bound <strong>65.3 ms</strong> (250 ms limit, up to 5 ms polling overhead). Earlier unexplained frame-budget misses remain a renderer follow-up; this pass is not a speedup claim.</p> 27 <p>Separately measured NVIDIA responsiveness: frame p99 <strong>19.267 ms</strong> (20 ms limit); sampled input-to-painted upper bound <strong>65.3 ms</strong> (250 ms limit, up to 5 ms polling overhead). Earlier unexplained frame-budget misses remain a renderer follow-up; this pass is not a speedup claim.</p>
28 <h2>Scope and limits</h2> 28 <h2>Scope and limits</h2>
29 <p>This slice selects visible text. Wheel scrolling, edge autoscroll, word and line selection, rectangular selection, GUI paste and application mouse forwarding remain pending. Ligatures are deferred.</p> 29 <p>This slice selects visible text. Wheel scrolling, edge autoscroll, word and line selection, rectangular selection, GUI paste and application mouse forwarding remain pending. Ligatures are deferred.</p>
30 <p>Verified with real Vim and less in the offscreen GUI: keyboard scrolling clears the GUI highlight but keeps text already copied. Scrolling before mouse release cancels that drag. Vim's own visual selection is separate.</p>
30 <p>Observed changes in the selected pane cancel copying. Copying a frozen historical screen while fresh output arrives would need a later protocol change. These checks cover Linux; macOS validation remains open.</p> 31 <p>Observed changes in the selected pane cancel copying. Copying a frozen historical screen while fresh output arrives would need a later protocol change. These checks cover Linux; macOS validation remains open.</p>
31 <p class="muted">Passing automated checks is separate from your demo approval. Feedback requested: selection feel, highlight readability and copy-on-release behavior.</p> 32 <p class="muted">Passing automated checks is separate from your demo approval. Feedback requested: selection feel, highlight readability and copy-on-release behavior.</p>
32 </html> 33 </html>
docs/native-sprint-workflow.md
Old New
@@ -150,9 +150,9 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan
150 Keep the page usable on desktop and mobile. Retain its source beside the 150 Keep the page usable on desktop and mobile. Retain its source beside the
151 sprint records and its video outside temporary fixture directories. Verify 151 sprint records and its video outside temporary fixture directories. Verify
152 page loading, video metadata and seeking before sharing. Use the established 152 page loading, video metadata and seeking before sharing. Use the established
153 private sharing route within the user's authorized scope; preserve existing 153 private sharing route within the user's authorized scope; preserve unrelated
154 pages and services. Give the user the webpage URL in the final handoff, with 154 services and demos awaiting review. Give the user the webpage URL in the final
155 the direct video link available from the page. 155 handoff, with the direct video link available from the page.
156 156
157 The user has authorised sharing mux sprint review pages and their demo assets 157 The user has authorised sharing mux sprint review pages and their demo assets
158 privately on their own Tailscale so they can review from all their devices. 158 privately on their own Tailscale so they can review from all their devices.
@@ -187,13 +187,14 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan
187 187
188 ```sh 188 ```sh
189 tailscale serve status 189 tailscale serve status
190 tailscale serve --bg http://127.0.0.1:18765 190 tailscale serve --bg --https=443 --set-path /SPRINT-ROUTE http://127.0.0.1:18765/SPRINT-ROUTE
191 ``` 191 ```
192 192
193 Check existing routes before changing them; preserve unrelated services. Use 193 Check existing routes before changing them; preserve unrelated services. Use
194 the private HTTPS URL printed by Serve. Verify playback/HTTP range responses, 194 the private HTTPS URL printed by Serve. Verify playback/HTTP range responses,
195 retain the recording outside temporary fixture directories, and record the 195 retain the recording outside temporary fixture directories, and record the
196 server's teardown command. Funnel and audio are unnecessary for this workflow. 196 server's teardown command. Funnel and audio are unnecessary for this workflow.
197 Replace `SPRINT-ROUTE` and the port with the recorded demo's values.
197 10. **Close honestly.** Inspect the final diff, commit validated work, and provide 198 10. **Close honestly.** Inspect the final diff, commit validated work, and provide
198 the review webpage with the demo, controls, test results, and material limits. 199 the review webpage with the demo, controls, test results, and material limits.
199 User demo acceptance is 200 User demo acceptance is
@@ -201,7 +202,14 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan
201 or a hands-on trial, and capture any requested ergonomic adjustments separately. 202 or a hands-on trial, and capture any requested ergonomic adjustments separately.
202 Update the spec/plan status and RETRO.md with resolved findings and checkable 203 Update the spec/plan status and RETRO.md with resolved findings and checkable
203 next-sprint actions. Mark acceptance only when given; a recorded-demo approval 204 next-sprint actions. Mark acceptance only when given; a recorded-demo approval
204 does not imply hands-on feedback. Then begin the next authorized sprint with 205 does not imply hands-on feedback. On acceptance, remove only that demo's route
206 with `tailscale serve --https=443 --set-path /SPRINT-ROUTE off`, then stop its
207 recorded server and any remaining owned GUI, recorder or compositor fixtures.
208 Recheck process ownership before stopping a recorded PID. Verify that the route
209 and processes are gone and unrelated routes remain; record teardown in the
210 sprint notes. Keep the page source, recording and validation artifacts. Do not
211 use global Serve reset/off or leave accepted demos running unless requested.
212 Then begin the next authorized sprint with
205 step 1. 213 step 1.
206 214
207 Sprint 2 established the recorded Sway/private Serve demo route. Sprint 3 adds the 215 Sprint 2 established the recorded Sway/private Serve demo route. Sprint 3 adds the
docs/skills/sprint-delivery/SKILL.md
Old New
@@ -93,7 +93,11 @@ place by removing duplication or simplifying dependencies.
93 results, removed duplication/paths, justified retained debt, lessons, and 93 results, removed duplication/paths, justified retained debt, lessons, and
94 checkable next-sprint actions in `RETRO.md`; give each open item an owner or 94 checkable next-sprint actions in `RETRO.md`; give each open item an owner or
95 concrete trigger. Record demo acceptance only when given; test success does not 95 concrete trigger. Record demo acceptance only when given; test success does not
96 imply user acceptance. Begin the next sprint only when authorized, preserving 96 imply user acceptance. Once accepted, tear down that demo's sharing route and
97 owned servers/fixtures without asking again, unless the user requests continued
98 availability. Verify teardown and record it; retain the page source, recording
99 and validation evidence. Preserve unrelated services and demos awaiting review.
100 Begin the next sprint only when authorized, preserving
97 any acceptance requirement in the agreed plan. 101 any acceptance requirement in the agreed plan.
98 102
99 ## Economical pairing 103 ## Economical pairing