You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* governance commands
* halt improvements
* fixes
* Add Emergency Procedures docs page
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>
* Expand Emergency Procedures with incident runbook
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>
* Iterate Emergency Procedures based on team feedback
- 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>
* Tighten Emergency Procedures and lead with halt mechanics
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>
* Add buildHaltBridgeSubmissionUrls to governance SDK
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>
* Reframe halt-bridge submission docs around governance UI
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>
* chore: refresh PR head (no-op)
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments