Skip to content

Release v1.9.6: make the committed cover snapshot deterministic - #67

Merged
binlecode merged 1 commit into
mainfrom
release-v1.9.6
Aug 13, 2026
Merged

binlecode merged 1 commit into
mainfrom
release-v1.9.6

Conversation

@binlecode

Copy link
Copy Markdown
Owner

Bug in what 1.9.5 just shipped

The LOCAL_COPY snapshot added in 1.9.5 inherited the build stamp:

<!-- repo:ef240a8 built:2026-08-13T03:54:40Z -->

Both fields change on every run. So every build-cover-dist.sh invocation dirtied docs/cover.html, even with the page and version untouched — caught immediately when rebuilding at the tagged commit produced a modified file with no real change.

That is not cosmetic. The skill's Gate 4 requires a clean working tree before deploy, and the build itself would have violated it every single time. A committed artifact has to be deterministic or it cannot be committed meaningfully.

Fix

Strip the stamp from the committed copy only. The published dist keeps it — provenance belongs on the deployed page, where nothing diffs it.

html = re.sub(r'\A<!-- repo:[^\n]*-->\n', '', html, count=1)

Verified

$ bash build-cover-dist.sh && A=$(shasum docs/cover.html)
$ sleep 1 && bash build-cover-dist.sh && B=$(shasum docs/cover.html)
build 2 identical: YES

$ head -1 docs/cover.html      # snapshot: no stamp
<!DOCTYPE html>
$ head -1 dist-cover/index.html # dist: stamped
<!-- repo:ef240a8 built:2026-08-13T03:54:40Z -->

The snapshot now moves only when the page or the version does.

🤖 Generated with Claude Code

As shipped in 1.9.5 the snapshot carried the build stamp, whose commit
hash and timestamp change on every run. Every build therefore dirtied
docs/cover.html even when nothing about the page had changed — noise in
git status forever, and a permanent failure of this skill's own clean-tree
gate before deploy.

The stamp is now stripped from the committed copy only; the published dist
still carries it. Two consecutive builds from unchanged source produce
identical bytes, so the snapshot moves only when the page or version does.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@binlecode
binlecode merged commit de0e2ef into main Aug 13, 2026
5 checks passed
@binlecode
binlecode deleted the release-v1.9.6 branch August 13, 2026 03:56
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