Skip to content

fix(registry): rebuild muninn-bsky-card page — env-vars drift from manifest#58

Merged
drknowhow merged 2 commits into
mainfrom
fix/rebuild-muninn-bsky-card-page
Jul 9, 2026
Merged

fix(registry): rebuild muninn-bsky-card page — env-vars drift from manifest#58
drknowhow merged 2 commits into
mainfrom
fix/rebuild-muninn-bsky-card-page

Conversation

@drknowhow

Copy link
Copy Markdown
Owner

Pre-existing drift (not from #57): the 14:10Z federation-sync mirrored an updated muninn-bsky-card manifest without rebuilding its registry page, redding the drift check on every PR. This commits the fresh build of just that page. Third occurrence of this class (#54, #55) — the sync cron mirroring manifests without a page rebuild may deserve a proper fix.

https://claude.ai/code/session_01WQAhb3Xjq1mMwf1My4YeEP

drknowhow added 2 commits July 9, 2026 13:33
…ed from manifest

The 2026-07-09 14:10Z federation-sync mirrored an updated muninn-bsky-card
manifest (new BSKY_HANDLE / BSKY_APP_PASSWORD Environment section) without
rebuilding the committed page, so the 'registry pages match a fresh build'
check reds every PR. Same class as #54/#55.

Claude-Session: https://claude.ai/code/session_01WQAhb3Xjq1mMwf1My4YeEP
… pins from index.html)

build_registry_pages.py --check stamps rebuilt pages with the timestamp
read from committed registry/index.html, so a partially rebuilt page must
carry that same stamp, not its own build time (the #55 lesson, relearned).

Claude-Session: https://claude.ai/code/session_01WQAhb3Xjq1mMwf1My4YeEP
@drknowhow drknowhow merged commit 07153ec into main Jul 9, 2026
7 checks passed
@drknowhow drknowhow deleted the fix/rebuild-muninn-bsky-card-page branch July 9, 2026 17:39
drknowhow added a commit that referenced this pull request Jul 9, 2026
…— kills the drift class (#59)

* fix(federation): sync rebuilds pages from committed manifest mirrors — kills the drift class

Root cause of the recurring registry-drift reds (#54, #55, #58): the
page builder live-fetched remote manifests, so the CI drift check was a
function of whatever publishers were serving at check time — any
upstream manifest edit redded every PR until someone hand-rebuilt the
page. federation-sync only ever committed manifests.json, never pages.

Fix:
- mirrors/manifests/<id>.json: committed byte-exact mirror of every
  non-self-hosted manifest; _load_manifest prefers it over live fetch,
  making builds (and --check) hermetic.
- build_registry_pages.py --refresh: refetch mirrors, rebuild pages
  only when content changed (stamps pinned otherwise, so no-change days
  are byte-identical and the workflow opens no PR).
- federation-sync workflow: runs --refresh after the manifest sync and
  commits manifests.json + mirrors/ + registry/ atomically; diff gate
  switched to git status --porcelain so new files count.
- Seeded mirrors + rebuilt pages in this commit (one-time stamp churn:
  'Last fetched ... (mirror)' + fresh 'Pages generated').

Verified: --refresh idempotent on second run; --check green against the
rebuilt tree; 36/36 tests pass.

Claude-Session: https://claude.ai/code/session_01WQAhb3Xjq1mMwf1My4YeEP

* fix: mirrors/** -text — mirror bytes must survive eol normalization

Claude-Session: https://claude.ai/code/session_01WQAhb3Xjq1mMwf1My4YeEP
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