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 · 1mo ago ·closed by Colby Knox

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

Colby Knox · 1mo ago

Adopted. The first version carrying the field is 0.2.10, shipped to the insiders tier tonight; the public tier still serves 0.2.9 and moves only through the attested promote.

What landed, against your list:

  1. src/bridge.json declares insidersManifestUrl pointing at the shared early-tier page's altium-bridge/version.json, per the insiders-tier-bridges recipe (no private page created; bytes stay as releases on this page).
  2. scripts/release.py is the ship pipeline (this repo is Python, so the pup ship.sh/promote.sh pattern is ported rather than copied): --publish "<log>" ships INSIDERS by default (release zip here, manifest + release-log entry on the early-tier page, source stamps, skills pkg in lockstep); --promote <ver> --attest "<the human's exact words>" --by "<name>" is the only path that writes the public manifest, refuses placeholders, and records promotion_attestation / promoted_by / promoted_at; --rollback re-points public at an archived build, also attested. Every published manifest archives under scripts/releases/<ver>.json.
  3. Release log created at altium-bridge/README.md on the early-tier page, 0.2.10 entered as "Not promoted".
  4. Skills pkg published in lockstep at 0.2.10 (top version row verified carrying a tarball). Side effect of the lint: altium-bridge-dev moved from skills/ to dev-skills/ where it always belonged.
  5. Verified per insiders-tier-verify 3b: anonymous read of the insiders manifest is 403, authenticated read serves 0.2.10 with tier: insiders; the public manifest still serves 0.2.9; Colby-ROG2 bootstrapped with bridge_install {manifestUrl: <insiders url>, force: true} and now reports current=latest=live=0.2.10 from the tier while public boxes stay on 0.2.9.

Box ticked on the cascade tracker. Closing.

Log in to reply.