diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-16 13:40:26 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-16 13:40:26 -0500 |
| commit | 9320bb32cc5db4595fc007d8cc731623e26e20c0 (patch) | |
| tree | f0662e26b004159f9e9263253a1975ed381c5f84 /todo.org | |
| parent | b9b46e5b74207c6cbe0e1c006c7540f56537ccab (diff) | |
| download | archsetup-9320bb32cc5db4595fc007d8cc731623e26e20c0.tar.gz archsetup-9320bb32cc5db4595fc007d8cc731623e26e20c0.zip | |
fix(gallery): hand the export over selected instead of faking a copy
The button said "copied" and nothing reached the clipboard. From a file:// origin Chrome refuses both programmatic paths: navigator.clipboard.writeText rejects NotAllowedError, and execCommand('copy') returns true while writing nothing. The truthy return is what let the page claim a success it never had.
A hand-typed Ctrl+C works, so nothing about the clipboard is broken. I checked the rest of the chain: a Wayland-set clipboard crosses to X11, and Emacs reads it back correctly against a sentinel. So the page's only job is to hand the text over selected, and the reader's own copy does the rest.
The comment I shipped earlier had this backwards, claiming Chrome couldn't write the clipboard at all. It's replaced.
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -117,7 +117,11 @@ Craig walks all 109 cards; the lamps are his (click cycles off → amber → gre Runs as a *joint loop* (Craig, 2026-07-16): he walks a batch of 10-15 and reports card numbers + what's wrong; Claude fixes them in one pass, gates on the three probes, he reloads and re-walks. The lamps track progress only — they never recorded *what* was wrong with a card, so the defects live in this task body as they surface. -Statuses bake into the gallery source (=VSTATUS=, top of the lamp section) *periodically*, not once at completion as originally planned — localStorage is per-profile and dies with a cache clear, so at 8 cards baking is free and at 60 it's the difference between a record and a bad afternoon. Craig clicks "copy for source" under the index tally; Claude reads it off the clipboard (=wl-paste=, or =wl-paste --primary= when the clipboard path is refused) and pastes it into =VSTATUS=. Precedence is localStorage → VSTATUS → off, so the live walk wins on the machine doing it and the baked record fills in on a fresh profile, after a clear, or on velox. Covered by =tests/gallery-probes/probe-vstatus.mjs=. +Statuses bake into the gallery source (=VSTATUS=, top of the lamp section) *periodically*, not once at completion as originally planned — localStorage is per-profile and dies with a cache clear, so at 8 cards baking is free and at 60 it's the difference between a record and a bad afternoon. Craig clicks "copy for source" under the index tally and pastes the block into the chat; the agent pastes it into =VSTATUS=. Precedence is localStorage → VSTATUS → off, so the live walk wins on the machine doing it and the baked record fills in on a fresh profile, after a clear, or on velox. Covered by =tests/gallery-probes/probe-vstatus.mjs=. + +*The page can't copy for you; you press Ctrl+C* (settled 2026-07-16). Clicking "copy for source" drops the export into a selected textarea at the bottom-left of the page. Ctrl+C it and paste it into the chat. From a =file://= origin Chrome refuses both programmatic copy paths — =navigator.clipboard.writeText= rejects NotAllowedError, and =execCommand('copy')= returns *true while writing nothing*, which is worse because the page then claims a success it never had. A hand-typed Ctrl+C works fine, so nothing about the clipboard is broken: a Wayland-set clipboard crosses to X11 and Emacs reads it correctly (sentinel-verified against =gui-get-selection=). + +*And the agent doesn't fetch it.* Never read the export with =wl-paste --primary=: PRIMARY holds whatever was last selected anywhere, so a blind read returns unrelated content (it surfaced a private SMS during this session). Craig pastes; the agent doesn't reach for it. Progress: 8 green + 2 amber (R07, R52) of 109, baked 2026-07-16. *** 2026-07-16 Thu @ 08:11:18 -0500 Ran the classification brainstorm — two empty cells and a missing axis |
