Skip to content

Update governance commands to halt bridge#1776

Merged
claravanstaden merged 11 commits into
mainfrom
clara/governance-commands-updates
Jun 2, 2026
Merged

Update governance commands to halt bridge#1776
claravanstaden merged 11 commits into
mainfrom
clara/governance-commands-updates

Conversation

@claravanstaden

@claravanstaden claravanstaden commented Apr 24, 2026

Copy link
Copy Markdown
Contributor
  • update control tool bindings to support V2
  • update Gitbook docs
  • adds methods to link to PAPI for direct halt bridge submission, not just linking the preimage bytes.

claravanstaden and others added 8 commits May 11, 2026 10:13
Adds the docs/resources/emergency-procedures.md file referenced by
SUMMARY.md and governance-and-operational-processes.md in this PR,
extending the on-call runbook with a Producing a halt-bridge preimage
section that points to the live governance UI at
app.snowbridge.network/governance alongside the snowbridge-preimage
CLI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds the operational runbook sections around the existing halt-bridge
command reference: Detection signals (including bug bounty reports and
visibly drained funds), Decision authority (solo halt only for visible
exploits, otherwise 2/3 confirm to avoid spooking the community with a
halt referendum), Comms during an incident (Slack first, then Element
with Parity, then affected integrators, no public comms until fix is
deployed), Submitting the preimage (Whitelisted Caller flow with
Fellowship-whitelist timing), Verifying the halt (per-flag storage
queries with Gateway-side caveat), Resuming the bridge (governance UI
is the only practical path), and Post-mortem (Google Doc, 48h SLA).

Also reframes the Producing a halt-bridge preimage and Resuming the
bridge sections to make app.snowbridge.network/governance the primary
path, with the snowbridge-preimage CLI as a fallback only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Detection: trim to drained funds + verified-PoC bug bounty
  (HackenProof or direct); drop generic anomaly bullets.
- Decision authority: distinguish solo halt (visible exploit, funds
  draining) from confirmed halt (2 team members agree) to avoid
  spooking the community with a halt referendum for a maybe-incident.
  Remove team-size denominators so the doc survives team-size changes.
- Comms: name the #snowbridge-security Slack channel and Telegram as
  the integrator channel.
- Halt path: governance page is primary; SDK
  (buildHaltBridgePreimage / buildResumeBridgePreimage) is the
  fallback. Drop snowbridge-preimage CLI from the runbook.
- Submission: document the actual opengov-cli flow: Asset Hub batch
  (preimage note + public referendum, anyone) and Collectives Chain
  batch (Fellowship whitelist, rank-3+ Fellow only). Include the
  enactment-time default caveat.
- Rename Emergency Pause to Halt scopes reference; rewrite scope
  list and failure-mode + verification tables to use UI form-field
  names instead of CLI flag names.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Restructure so halt-action sections (Producing, Halt scopes reference,
Submitting, Verifying) sit directly under the intro for fast access
under pressure; Detection, Decision authority, and Comms move below.

Trim prose throughout: intro 2 paragraphs to 2 lines, scope bullets
compressed to one sentence each, Decision authority converted to a
table, numbered comms steps shortened. Protocol-relevant details
(pallet names, V1/V2 distinctions, relayer-delivery caveats) kept;
explanatory framing cut.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lets the snowbridge-app governance UI emit two papi.how submission
links directly from a halt-bridge preimage, replacing the operator's
manual opengov-cli + Rust toolchain step:

  1. Asset Hub batch URL: utility.forceBatch([preimage.notePreimage(
     dispatchWhitelistedCallWithPreimage(call)), referenda.submit(
     Origins(WhitelistedCaller), Lookup{hash, len}, After(n))]).
     Anyone on the operator team can submit.
  2. Collectives Fellowship URL: utility.forceBatch([fellowshipReferenda
     .submit(FellowshipOrigins(Fellows), Inline(polkadotXcm.send to
     Asset Hub carrying Transact(whitelist.whitelistCall(preimageHash))),
     After(10))]). Must be submitted by a rank-3+ Fellow.

Mirrors joepetrowski/opengov-cli's polkadot_fellowship_referenda flow
(src/submit_referendum.rs ~L628-L811). Includes opengov_submission_check.ts
under @snowbridge/operations as a hex-parity check against a recorded
opengov-cli fixture, currently passes byte-for-byte on the live
Polkadot Asset Hub + Collectives runtimes.

resumeBridgeSubmissionUrls is a thin alias because the wire format
is identical; both halt and resume preimages go through the same
WhitelistedCaller track.

UI changes (copy-preimage button, submit-to-AH button, copy-Fellowship-
URL button in HaltBridgeForm.tsx) are intentionally out of scope and
will follow in snowbridge-app.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
claravanstaden and others added 2 commits May 27, 2026 14:55
The governance page at app.snowbridge.network/governance now
emits both the preimage AND the two papi.how submission links
directly (Asset Hub batch + Fellowship whitelist), via the new
buildHaltBridgeSubmissionUrls SDK helper. Reflect that as the
primary path:

- "Producing a halt-bridge preimage" -> "Producing the preimage
  and submission links": one step now, the page emits the URLs
  along with the preimage.
- "Submitting the preimage" -> "Submitting": leads with "click
  Open on AH batch / Copy Fellowship link from the UI", no
  intermediate tooling.
- Resuming section mirrors halt: UI emits both.
- opengov-cli demoted to a fallback subsection under Submitting,
  for the case where the UI is unreachable.
- SDK fallbacks updated to include buildHalt/ResumeBridgeSubmissionUrls
  alongside the preimage builders.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@claravanstaden claravanstaden merged commit 53c13d3 into main Jun 2, 2026
4 checks passed
@claravanstaden claravanstaden deleted the clara/governance-commands-updates branch June 2, 2026 07:53
claravanstaden added a commit to Snowfork/snowbridge-app that referenced this pull request Jun 3, 2026
1.1.8 is the first release containing buildHaltBridgeSubmissionUrls
and buildResumeBridgeSubmissionUrls (Snowfork/snowbridge#1776),
which this PR's HaltBridgeForm depends on for the new submission
links. Typecheck now passes against the installed package without
the local dev overlay.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant