Skip to content

Release v1.9.5: build-cover-dist.sh emits the local cover snapshot - #66

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

binlecode merged 1 commit into
mainfrom
release-v1.9.5

Conversation

@binlecode

Copy link
Copy Markdown
Owner

Why this had to move into the build

docs/cover.html was hand-synced, and produced two bugs in a row:

  1. It sat several versions behind (shipped vv1.8.0 while the repo was on 1.9.x).
  2. Its hero image never resolved — it referenced actop-demo.gif relative to docs/, where no such file exists.

Neither was carelessness; the manual step cannot be done correctly. The version badge is injected at build time from pyproject.toml, so any hand-edited duplicate is stale the moment the version moves. And because the copy lands outside dist-cover/, every relative asset path in it dangles by construction.

What changed

New LOCAL_COPY phase (default docs/cover.html, "" to skip):

  • Runs after the secret scan, so a snapshot is never written carrying a leak the scan would have rejected.
  • Re-points asset references at COVER_SRC, computed relative to wherever the copy lands — docs/cover.html gets ../cover/actop-demo.gif.
  • Leaves alone anchors (#features), absolute URLs, protocol-relative and already-relative refs, and anything that does not resolve to a real file in the source tree. It rewrites only what it can verify, rather than silently pointing something somewhere wrong.
  • Mirrors index.html only — this is a browsable snapshot, not a second dist.

Verified

$ bash .agents/skills/publish-cover/scripts/build-cover-dist.sh
[build-cover] emitting local copy → docs/cover.html
  assets re-pointed at ../cover/

$ grep -oE 'class="badge">[^<]*|<img src="[^"]*"|href="[^"]*"' docs/cover.html | sort -u
<img src="../cover/actop-demo.gif"
class="badge">v1.9.5
href="#api"
href="#features"
href="https://github.com/binlecode/actop"
...

Asset resolves; anchors and external links untouched; badge matches the tag. bash -n clean.

Skill docs updated with the phase, the env var, and an explicit "never edit it by hand" note.

🤖 Generated with Claude Code

Adds a LOCAL_COPY phase (default docs/cover.html) so the committed,
browsable snapshot of the landing page is generated rather than
hand-synced. The manual step produced two bugs in a row: a copy several
versions behind, and a hero image that never resolved.

Hand-maintaining it could not work. The version badge is injected at build
time, so an edited duplicate is stale as soon as the version moves; and
because the copy lands outside dist-cover/, its relative asset paths
dangle.

The phase runs after the secret scan, so a snapshot is never written
carrying a leak the scan would have rejected. Asset references are
re-pointed at COVER_SRC relative to wherever the copy lands; anchors,
absolute URLs, and refs that do not resolve in the source tree are left
untouched rather than silently rewritten. LOCAL_COPY="" skips it.

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