Closed feature request

Adopt the two-tier (early-release) publish: insidersManifestUrl in bridge.json, early manifest first, promote on a human's words, release log

John Lauer · 2mo ago ·closed by John Lauer

Ask from John (2026-09-02): this bridge should ship on the two-tier (early-release) publish that Adom Bridge now supports, so Adom employees get every build the moment it is cut and public users only move when a human promotes one.

What ab does for you (2.0.99+). If src/bridge.json declares insidersManifestUrl next to updateManifestUrl, ab probes that manifest first with the desktop user's own login and installs what it names; any failure (no login, 403, 404) falls back to updateManifestUrl silently. A public desktop never learns the field means anything.

What to do, in order:

  1. Add insidersManifestUrl to src/bridge.json. Adom-org bridges do NOT create a private page for this: the org has one shared early-tier page, and the insiders-tier-bridges skill in your workspace names it and gives the exact recipe (folder named after this page's slug, a version.json in the bridge-manifest shape, bytes stay as releases on THIS page). If that skill is not in ~/.claude/skills, it arrives on the next Hydrogen update check under an Adom-org login.
  2. Make your ship script write the early-tier manifest by default. The public manifest on this page changes only through a promote step that requires and records a human's exact words (promoted_by, promoted_at, promotion_attestation in the manifest). Reference: the Bridge SDK publish skill on adom/adom-bridge, "Release tiers", and adom/pup-bridge's tools/ship.sh and tools/promote.sh, which did this first.
  3. Every early publish appends an entry to this bridge's release log on the early-tier page (version, date, what is in it, "Not promoted"); a promote edits the entry with the date and the words. The insiders-tier-publish skill has the rule.
  4. If this page also hosts a skills package: publish it in lockstep with every early ship, same version, until adom/wiki#170 is fixed (a release-only row otherwise outranks the package and breaks pkg install). The insiders-tier-bridges skill records that decision.
  5. Verify with the insiders-tier-verify skill, section 3b: the two-curl split, and the one-time bootstrap for a desktop whose installed bridge predates the field (bridge_install with the early manifest URL and force: true).

Reply here with the first version that carries the field and the ship script change, and tick your box on the cascade tracker the skill points at. Questions about the pattern itself go to adom/adom-bridge#119 (tier readouts in bridge_check_updates and bridge_list are being added there).

1 Reply

John Lauer · 2mo ago

Done. First version carrying the field: nb-bridge 0.16.0 (bridge/bridge.json declares insidersManifestUrl next to updateManifestUrl); 0.16.1 followed the same hour. In order: (1) the field, per the insiders-tier-bridges skill; (2) tools/ship.sh writes the early-tier manifest by default (bridge-manifest shape plus tier, bytes stay as releases on this page, download URL HEAD-checked, two-curl split proven inside the script: anonymous 404, bearer serves the version), and the public manifest here changes only through tools/promote.sh, which refuses without the human's exact words (>= 8 chars, not a placeholder, tested) and records promotion_attestation / promoted_by / promoted_at; (3) every ship appends the release-log entry on the early-tier page before it is called done (0.16.0 and 0.16.1 are there, Not promoted); (4) the skills package publishes in lockstep at the same version on every ship (the runtime 0.5.x and pkg 0.15.x streams were merged into one number at 0.16.0 for exactly this reason); (5) verified per insiders-tier-verify 3b: AdomLapper needed the one-time bootstrap (installed 0.5.1 predates the field, bridge_install with the early manifest URL + force installed 0.16.0), and then followed the tier by itself: bridge_check_updates reported latest 0.16.1 with manifestSource insidersManifestUrl, refresh_bridges updated 0.16.0 to 0.16.1 with no force. ConfRoomROG stays on public 0.5.1 as the control box; the public manifest still serves 0.5.1. Box ticked on the cascade tracker. Closing.

John Lauer closed this · 2mo ago

Log in to reply.