From 8ddc9a2b834a070074ac7c18daa34c6238c239df Mon Sep 17 00:00:00 2001 From: drknowhow Date: Thu, 9 Jul 2026 13:33:41 -0400 Subject: [PATCH 1/2] =?UTF-8?q?fix(registry):=20rebuild=20muninn-bsky-card?= =?UTF-8?q?=20page=20=E2=80=94=20env-vars=20section=20drifted=20from=20man?= =?UTF-8?q?ifest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- registry/muninn-bsky-card/index.html | 39 +++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/registry/muninn-bsky-card/index.html b/registry/muninn-bsky-card/index.html index dd798f2..838a951 100644 --- a/registry/muninn-bsky-card/index.html +++ b/registry/muninn-bsky-card/index.html @@ -608,6 +608,39 @@

+
+

+ + Environment +

+ + + + + + + + + + + + + +
BSKY_HANDLE +

The Bluesky handle the CLI authenticates as, e.g. 'austegard.com'. Required by the `python -m muninn_utils.bsky_card` entrypoint (whoami / post-link / delete-post). The library API takes a pre-resolved `auth` dict instead and ignores this var.

+

required · secret: no · obtain

+
BSKY_APP_PASSWORD +

App password for BSKY_HANDLE. Format is four hyphen-separated four-character groups. Treat as a secret. Required by the CLI entrypoint; bsky app passwords cannot be programmatically revoked (the kill switch is the app-passwords settings page).

+

required · secret: yes · obtain

+
BSKY_PDS +

Optional PDS base URL override. Defaults to https://bsky.social. Set only when authenticating against a self-hosted or non-default PDS.

+

optional · secret: no · obtain

+
+

Runtime

runtime: python-module · install method: preinstalled · entrypoint: python -m muninn_utils.bsky_card

-

Library that an orchestrating agent calls to share a URL on Bluesky with a proper link card. Workflow: fetch the target URL, extract Open Graph tags, upload the card thumbnail as a blob to the user's PDS, compose UTF-8 facets for any inline links, and create the post via com.atproto.repo.createRecord. Auth is a Bluesky app password (created at bsky.app/settings/app-passwords); the password grants write access to everything except DMs and account deletion. The tool itself stores nothing; ephemeral session JWTs live only in the calling process's memory. First in the consumer-test series for install-manifest-spec v0.3 — see the muninns-inbox discussion #1 thread for the findings the writeup surfaced. Manifest moved here (from muninns-inbox/manifests/) per issue #5 — the round-1 venue mistake. Auth is supplied by the caller as an `auth` dict (`handle`, `did`, `access_jwt`); this utility reads no BSKY_* env vars directly.

+

Library that an orchestrating agent calls to share a URL on Bluesky with a proper link card. Workflow: fetch the target URL, extract Open Graph tags, upload the card thumbnail as a blob to the user's PDS, compose UTF-8 facets for any inline links, and create the post via com.atproto.repo.createRecord. Auth is a Bluesky app password (created at bsky.app/settings/app-passwords); the password grants write access to everything except DMs and account deletion. The tool itself stores nothing; ephemeral session JWTs live only in the calling process's memory. First in the consumer-test series for install-manifest-spec v0.3 — see the muninns-inbox discussion #1 thread for the findings the writeup surfaced. Manifest moved here (from muninns-inbox/manifests/) per issue #5 — the round-1 venue mistake. Two entry shapes: the library API takes a pre-resolved `auth` dict (`handle`, `did`, `access_jwt`) from the caller, while the `python -m muninn_utils.bsky_card` CLI entrypoint resolves a session from BSKY_HANDLE + BSKY_APP_PASSWORD (see env).

Tags: blueskyatprotosocialpostinglink-card

License: MIT

-

Last fetched 2026-06-18T09:09:16Z (live)

+

Last fetched 2026-07-09T17:33:29Z (live)

From 16f5622f7c1126dd1b480c672fb76cf901c81d95 Mon Sep 17 00:00:00 2001 From: drknowhow Date: Thu, 9 Jul 2026 13:37:41 -0400 Subject: [PATCH 2/2] fix: pin page's 'Pages generated' stamp to committed index's (checker 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 --- registry/muninn-bsky-card/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/registry/muninn-bsky-card/index.html b/registry/muninn-bsky-card/index.html index 838a951..67ec19d 100644 --- a/registry/muninn-bsky-card/index.html +++ b/registry/muninn-bsky-card/index.html @@ -682,7 +682,7 @@

spec · yepgent

-

Pages generated 2026-07-09T17:33:28Z · manifests.json · changelog.json

+

Pages generated 2026-06-18T09:09:15Z · manifests.json · changelog.json