5f6c40b6
docs: tear down sprint demos after acceptance
a73x 2026-09-06 07:59
Commit message
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 |