aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-16 13:40:26 -0500
committerCraig Jennings <c@cjennings.net>2026-07-16 13:40:26 -0500
commit9320bb32cc5db4595fc007d8cc731623e26e20c0 (patch)
treef0662e26b004159f9e9263253a1975ed381c5f84 /todo.org
parentb9b46e5b74207c6cbe0e1c006c7540f56537ccab (diff)
downloadarchsetup-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.org6
1 files changed, 5 insertions, 1 deletions
diff --git a/todo.org b/todo.org
index 9c779e5..83ed2e6 100644
--- a/todo.org
+++ b/todo.org
@@ -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