Skip to content

The screenshot harness takes an appearance, and says which template wrote it - #8

Merged
anderix merged 1 commit into
mainfrom
generated-files-carry-a-fingerprint
Sep 18, 2026
Merged

anderix merged 1 commit into
mainfrom
generated-files-carry-a-fingerprint

Conversation

@anderix

@anderix anderix commented Sep 18, 2026

Copy link
Copy Markdown
Member

ship sync, after two changes to the templates in anderix/ship.

packaging/macos/take-shots.sh gains an appearance helper. appearance light and appearance dark set the desktop through System Events and read the value back. It was lifted out of slipcase-desktop's own recipe, where it was written and measured: defaults write -g AppleInterfaceStyle Dark is not enough, because it writes through the preferences cache and never tells the window server, so an application launched afterwards still draws light. Read back because an appearance that did not take produces a frame that is a pixel-for-pixel duplicate of its pair.

Nothing in this repository's own shots.sh uses it yet. Which frames are worth having in both appearances is the recipe's decision and has its own issue.

Every generated file now carries a fingerprint of its own contents in its marker line:

# Generated by ship (58f1ad43); edit internal/generate/templates and run ship sync

That is what lets ship tell a copy somebody edited from a copy the template has moved past. Before it, both read as the repo having done something wrong and both refused a release — one function added to a template stopped four repositories from releasing over a change none of them made. A copy that matches its fingerprint and not the template is behind, which sync fixes and a release mentions and goes on past. A copy that does not match its fingerprint is edited, which is somebody's work, and ship sync now shows the diff and asks before writing over it.

No line of any driver or harness changed except the marker and the helper above.

…rote it

ship sync. `take-shots.sh` gains `appearance light` and `appearance dark`,
which set the desktop through System Events and read the value back, and every
generated file records a fingerprint of its own contents in its marker line.

The fingerprint is what tells a copy somebody edited from a copy the template
has moved past. Both used to refuse a release, and only one of them is anybody's
work about to be lost.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@anderix
anderix merged commit 003562d into main Sep 18, 2026
13 checks passed
@anderix
anderix deleted the generated-files-carry-a-fingerprint branch September 18, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant