diff --git a/.agents/skills/publish-cover/scripts/build-cover-dist.sh b/.agents/skills/publish-cover/scripts/build-cover-dist.sh index b2130d4..4a9d5dd 100755 --- a/.agents/skills/publish-cover/scripts/build-cover-dist.sh +++ b/.agents/skills/publish-cover/scripts/build-cover-dist.sh @@ -205,6 +205,13 @@ dist, src, out = (pathlib.Path(a) for a in sys.argv[1:4]) html = (dist / "index.html").read_text() rel = os.path.relpath(src.resolve(), out.parent.resolve()) +# Drop the build stamp. The snapshot is committed, so it must be byte-stable +# for a given source + version — the stamp carries a commit hash and a +# timestamp that change on every run, which would dirty the working tree on +# every build and permanently trip this skill's own clean-tree gate. The +# published dist keeps its stamp; only the committed copy sheds it. +html = re.sub(r'\A\n', '', html, count=1) + SKIP = re.compile(r'^(?:[a-z][a-z0-9+.-]*:|//|#|\.\.?/)', re.I) def repoint(m): diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cf9c63..97ac0bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,20 @@ This project follows a Keep a Changelog-style format and uses version tags for r ## [Unreleased] +## [1.9.6] - 2026-08-12 + +### Fixed + +- **The committed cover snapshot is now byte-deterministic.** As shipped in + 1.9.5 it carried the build stamp, whose commit hash and timestamp change on + every run — so every `build-cover-dist.sh` invocation dirtied + `docs/cover.html` even when nothing about the page had changed, and would + have permanently tripped this skill's own "clean working tree" gate before + deploy. The stamp is now stripped from the committed copy only; the published + dist still carries it. Two consecutive builds from an unchanged source now + produce identical bytes, so the snapshot changes only when the page or the + version does. + ## [1.9.5] - 2026-08-12 ### Changed diff --git a/docs/cover.html b/docs/cover.html index 3413ce5..ad33a62 100644 --- a/docs/cover.html +++ b/docs/cover.html @@ -1,4 +1,3 @@ -
@@ -166,7 +165,7 @@Watch your Apple Silicon Mac the way it actually works — sudoless, @@ -275,7 +274,7 @@