test: mainnet readiness sign-off — Lighthouse regression check, governance latency SLO, trust-critical walkthrough, launch notes - #972
Merged
Marvell69 merged 4 commits intoSep 24, 2026
Conversation
…'s changes Lighthouse CI had never run on this batch: the workflow only triggered on main/develop while every PR targets dev, and two type errors from Invoice-Liquidity-Network#965 broke next build outright. Fix both, then compare the batch against its pre-batch baseline using the repo's own .lighthouserc.json. No CWV regression beyond run-to-run noise; pre-existing home CLS and byte-weight breaches are recorded as residual risk.
…latency Governance writes still resolve a fixed setTimeout with a fake tx hash, so docs/slos.md had no latency target grounded in real network behaviour. Add a measurement script that times every RPC stage a governance write will take (read, account fetch, prepare, and a real testnet submit-to-confirm), record the results as SLO 5, and state plainly that the end-to-end write path stays unverified until the governance contract is wired.
…ical surfaces Add the live walkthrough script (real vote, dark-flag flip, admin action through the confirmation/audit-log flow) and a blank sign-off record for maintainers to complete during the session. Tracing each step through the code found that vote casting, proposal execution, and protocol pause are still mocked, token removal is signed but never submitted, and the audit log does not cover those actions; each is listed as a finding needing a decision, and the checklist marks the item Blocked until sign-off happens.
…h completion The launch notes described governance as a live contract interaction and had no readiness story. Add a Launch Readiness Status section tied to the checklist: governance is read-only with writes still simulated, dark features and how flags actually flip, what admin hardening is real versus not yet on-chain, the Lighthouse outcome, and the remaining blockers. Point the checklist's Lighthouse, SLO, and launch-notes rows at the new results.
|
@thegreatfeez is attempting to deploy a commit to the Nursca's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@thegreatfeez Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Marvell69
merged commit Sep 24, 2026
9619a8c
into
Invoice-Liquidity-Network:dev
2 of 6 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR resolves four issues from the Final SCF/Mainnet Frontend Readiness Sign-off category. Each issue has its own commit.
.lighthouserc.jsonon this batch and on the last pre-batchdevcommit (579706e). There is no Core Web Vitals regression beyond run-to-run noise. The check found two real problems, both fixed here:next buildwas broken ondevby two type errors from chore: soroban.ts contract-ABI audit, OracleBadge oracle states, defer updateLPWhitelist, FUNDING.yml (#450 #783 #784 #785) #965.devPRs, because it only triggers onmain/develop.castVote,executeProposal,vetoProposal, andcreateProposalwait on a fixedsetTimeoutand return a fake tx hash. The full write path therefore can't be timed yet. Instead, a new script times every RPC stage a real governance write will go through, against live testnet: the read, the account fetch,prepareTransaction, and a real submit → confirmed. Those numbers are recorded as a new SLO 5 indocs/slos.md. All measured stages meet their targets.mainnet-launch-notes.md, tied to the readiness checklist. It covers governance (read-only; writes simulated), dark features, what admin hardening is real and what doesn't reach the chain yet, the Lighthouse outcome, and the remaining blockers. It also fixes the claim that governance is a live contract interaction.Related Issue
Closes #959
Closes #960
Closes #961
Closes #962
Complexity
Type of Change
Detailed Changes & Rationale
1. Key Changes
Build fix (Run the full Lighthouse CI suite against this batch's changes and address any regression #959):
UPDATE_LP_WHITELIST_SUPPORTEDis now typedboolean, not the literalfalse, so the runtime feature check type-checks.encodeReferralCodeBytesnow passes aBuffertoxdr.ScVal.scvBytes.next buildandtsc --noEmitpass again.Lighthouse workflow (Run the full Lighthouse CI suite against this batch's changes and address any regression #959): now also triggers on
dev.docs/LIGHTHOUSE_CI.mdnow:/lp, not/dashboard/lp;warn-level;Governance latency (Confirm SLOs still hold under this batch's new real contract-call latency profile #960):
scripts/measure-governance-latency.mjsmeasured the following (Soroban testnet, n=20; submit n=10):prepareTransactionThe targets are: read p95 ≤ 1 s, pre-signature preparation p95 ≤ 1.5 s, and submit → confirmed p95 ≤ 10 s.
docs/slos.mdalso recommends a distinct "Confirming on-chain…" UI state once writes are wired, because a real vote takes about 5–6 s against the mock's 2 s.Walkthrough findings (Conduct final maintainer sign-off walkthrough of every dark-feature and admin-surface change in this batch #961): these came from reading the code, not from running a live session.
NEXT_PUBLIC_GOVERNANCE_CONTRACT_IDis unset on testnet, so governance reads fall back to mock proposalsDelegationPaneluses hard-coded values2. Implementation Details
@lhci/cli0.15.1, 3 runs per URL, medians reported./shows a higher median LCP (2,046 → 2,343 ms), but the individual runs overlap (1,650–2,051 vs 1,858–2,420 ms), and the LCP element is the same hero image in every run.cast_votepreparation targeted the address the app actually resolves as the governance contract on testnet. Neither function exists there, so the RPC round trip is real but the simulation returns a contract error.balancecall. It goes through consensus but changes no state.Files Changed Summary
__tests__/lighthouse-config.test.ts__tests__/governance-latency-measurement.test.tsscripts/measure-governance-latency.mjsdocs/trust-critical-surface-walkthrough.md.github/workflows/lighthouse.ymlsrc/utils/soroban.tsdocs/LIGHTHOUSE_CI.mddocs/slos.mddocs/mainnet-launch-notes.mddocs/mainnet-frontend-readiness-checklist.mdBreaking Changes
Test Coverage
npm test):lighthouse-config.test.tschecks the workflow triggers ondev, that every audited URL maps to a real route, and that the doc's page list matches.governance-latency-measurement.test.tscovers the percentile, summary, and timing helpers.npm run test:e2e)Local CI mirror (Node 20.20.2, pnpm 9.0.0):
pnpm run buildpasses. It fails ondev.tsc --noEmitpasses.dev, and none fail only on this branch.dev. ESLint shows the same 140 errors / 247 warnings on both, prettier issues went from 45 files to 43, and the file-size and env checks fail on both. Nothing new comes from this PR.ci.ymlalso only triggers onmain/develop, so the main CI workflow doesn't run on PRs todev. I left that alone because it's outside these issues.Accessibility
Checklist
npm run lint)dev; see above)Residual / accepted risk
get_invoice_count, whichsrc/utils/soroban.tsstill calls.