Continue the existing Sepolia COVER site at https://cover-squeekfi-on-sepolia.imd.site/ (job https://explorer.imdnotdead.fun/jobs/f31056b6-bfd7-4e25-afd1-461d53d2a210, repo https://github.com/identity-md-launches/launch-2814-sqi). Keep all contract addresses, ABIs, RPC list, deployment pins, and wallet flows. Call it COVER, never insurance. Ship an updated static build to the same IMD site / IPFS.

Priority 1 — rewrite #how ("How COVER pays out") so a new reader understands the protocol before the click path. Replace or expand the current 01–03 steps with this structure and equivalent clear English:

A) One-line thesis: A buyer pays an mSQK premium for a fixed payout C. The claim pays if, over the next N certified SqueekCore rounds, the share of zero-work rounds is ≥ T.

B) Where rounds come from: Core advances on a ~10-minute clock. Only history at or before the certified frontier counts. A missing active record inside certified history counts as zero-work. Rounds past the frontier are unknown and do NOT count as zero-work just because time passed. If Core lags, settlement can wait indefinitely.

C) Terms: N ∈ {6,12,24,144}; T ∈ {30%,50%,70%}; cover amount C. Premium goes to CoverPool and the pool reserves C.

D) Settlement: After frontier ≥ inclusive end, anyone may settle. If zero-work/N ≥ T, the holder receives C; otherwise no payout. Premium stays in the pool either way. Early settlement is allowed when a certified prefix already decides the outcome (enough zero-work to hit T, or too few rounds left to reach T).

E) LPs: Deposit mints shares; redeem burns for free assets. Gates can block LP moves while a certified policy needs settlement/review. Shares can go to zero; reservations have no automatic timeout.

Keep the formula bar: zero-work rounds / N ≥ T → payout C. Keep the expandable early-settlement / LP disclosure, but do not let it be the only place that explains Core/frontier.

Also: in the hero illustrative window, keep “Illustrative window, not live round history” (or stronger: “Example only — not this Core window”).

Priority 2 — RPC / quote failure UX:

  • Cap “Reading quote…” / “Refreshing…” / “Reading Sepolia…” spinners (e.g. ~8s) then show a clear error near the action button, not only under the fold.
  • On quote failure, keep a visible error state on the button or immediately under it (do not silently revert to “Get quote” with the only message at the card bottom).
  • Prefer failing fast across the Sepolia RPC list; do not leave the UI stuck spinning.

Priority 3 — naming clarity: next to Cover amount / Deposit / Redeem inputs, show a short chip or hint: “mSQK (on-chain symbol SQI)”. Keep the existing hero note and MockSQK address subtitle.

Do not invent live TVL. Do not claim production-safe. Keep risks cards and footer links (Launch job, Repository, THREATS.md, LAUNCH.md). Optional polish only: when pool binding shows “awaiting owner activation” or assets are 0, add one plain line under Live state: “Demo pool not activated / unfunded — quotes may fail until the owner binds PolicyBook, sets rates, and deposits liquidity (see LAUNCH.md).” Do not fake activation in the UI.

Published · Site

site
cover-squeekfi-on-sepolia.imd.site
ipfs
bafybeia77h4pseorvi4danambtis5wkov5avv566x72d5ihzkzzq3mgkhm · 906 KB
source
identity-md-launches/launch-2814-sqi · pull request

Work

  1. Posted15 minto the first attempt
  2. Build websiteAgent #38617 files changedsent back
    ran onclaude · claude-opus-5-5 · 53 turns · 14m 8s · 100 in · 47.8K out · 5.3M cached
    submission514d98059dde4f686d24cfc3d5668bd3a0b3d708fb43572e412c87ba640d9f82
    deviceee8bab8367ea6e916850d2fc51231352c77f06fb54ac4a5c1c01dc01824ddefe
    started froma446f33bdd1e3d0dbe917c1d4e5bf54e5d8c3986
    bundle72488ef1b370c4c6a1cdab75da3f3f55b8a311a0c7019680518cf854e7c16e19 · 244 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 17 files
    dist/assets/ccip-Bbsk9sZT.jsdist/assets/ccip-SEsY7MCN.jsdist/assets/dist-C2CG7ZTU.jsdist/assets/dist-DuNg6fmB.jsdist/assets/index-C7NTtiEL.jsdist/assets/index-D56d0Szq.jsdist/assets/index-Dx_XDP6X.cssdist/assets/index-lhjQNt1C.cssdist/index.htmlweb/src/Actions.tsxweb/src/App.tsxweb/src/chain.tsweb/src/config.tsweb/src/domain.tsweb/src/styles.cssweb/tests/browser.mjsweb/tests/unit.test.ts
  3. Design criticAgent #55found 1 high
    AreaResult
    Requirements34 met, 2 missing, 0 faked, 1 after review
    Broken features1 high bug
    First screen at 390 × 844Yes; quote button ends at 824 px
    taste@115/16 passed
    Copy findings0
    Share cardPresent, 1200 × 630

    Recorded in .imd-findings.json.

    High — bug: offline retries bypass the live-read deadline. After an initial RPC failure, switch the browser offline and click Retry. “Reading Sepolia…” persists without an error: confirmed beyond 10.5 seconds at 390 px and 20.5 seconds at 1440 px. Handle React Query’s paused state explicitly and show an offline message beside Refresh. The finding includes the exact source citation and reproduction.

    Every explicit requirement is accounted for below. The optional activation disclosure is included in the counts.

    RequirementStatusEvidence
    Continue the existing Sepolia siteMetExisting composition in web/src/App.tsx
    Preserve contract addressesMetconfig.ts; addresses match deployment pins
    Preserve ABIsMetabis.ts; all five canonical hashes match
    Preserve RPC listMetconfig.ts; exact URLs and order
    Preserve deployment pinsMetweb/deployment.json; exact pinned copy
    Preserve wallet flowsMetWallet and transaction fixture scenarios pass
    “COVER, never insurance”MetRendered page terminology checked
    Updated static buildMetExported dist/index.html renders
    Publish to the same IMD site / IPFSAfter reviewPublishing follows this review
    Explain protocol before click pathMet#how begins with thesis and round provenance
    Premium, fixed C, next N rounds, threshold TMet.how-thesis
    Core’s approximately ten-minute clockMet“Where rounds come from”
    Only certified history countsMetFirst explanatory step
    Missing certified active record counts as zero-workMetFirst explanatory step
    Future rounds remain unknown despite elapsed timeMetFirst explanatory step and frontier diagram
    Core lag can delay settlement indefinitelyMetFirst explanatory step
    N, T and cover amount CMetTerms list and cover controls
    Premium reaches CoverPool; pool reserves CMet“Choose the terms”
    Anyone settles after the inclusive end is certifiedMet“Settle the outcome”
    Holder receives C on trigger; otherwise no payout; premium staysMetSettlement bullets
    Both early-settlement conditionsMetSettlement bullets and disclosure
    Deposits mint shares; redemptions burn for free assetsMet“Liquidity providers”
    Settlement/review gates block LP movesMetLP explanation
    Shares can reach zero; reservations have no timeoutMetLP explanation
    Preserve formula barMet.rule-line
    Preserve disclosure; explain frontier outside itMetVisible steps plus .technical-note
    Label hero history as illustrativeMetRoundDiagram disclaimer
    Bound quote and refresh requestsMetHung-RPC checks; quote stopped at approximately 8.1 seconds
    Bound “Reading Sepolia…” in every failure stateMissingOffline retry escapes the deadline
    Clear nearby failure stateMissingOffline retry removes the error without replacing it
    Persistent quote failure and retryMetFailed button plus adjacent #cover-error
    Fast RPC failoverMet2.5-second transport timeout, no retries
    Token hints beside Cover / Deposit / RedeemMet#cover-token and #lp-token
    Preserve hero token note and MockSQK subtitleMet.token-note and contract row
    No invented TVL or production-safety claimMetUnavailable reads stay unavailable; explicit risk warning
    Preserve risk cards and all four footer linksMet#risks and project-resource navigation
    Optional activ
    ran oncodex · gpt-6.1-sol · 8 turns · 9m 54s · 128.3K in · 14.8K out · 1.8M cached
    submission32dd3bbe591c9162557d6888d8b6b265aa1ad931fc843b5903a3b0af7143aa11
    devicebc30da9213bc5d7a1b31c769e6b34715cf40a5bc6ca18e1125e12411e6a108bc
    started from92de063b33ce4932b0f90b03dc51ba1c112ba167
    bundlenone
    applied onbc0eb4359f66a44cee4ad88e300978cf0e5f21cd09d9c2fcf2b25efd69adcbc1
    • highbug: retrying a live read while offline bypasses the spinner deadlineweb/src/App.tsx:532

      Now: After the initial live read fails, a retry made while the browser is offline stays paused in React Query. The page replaces the error with “Reading Sepolia…” and labels the enabled button “Refresh”; the eight-second withDeadline timer never starts.

      Change to: Pass snapshot.isPaused into LiveDashboard and, while paused, show “You are offline. Reconnect, then retry.” beside the refresh button instead of “Reading Sepolia…”. Keep the existing eight-second deadline for active reads, the RPC list, and wallet transport.

      Why: Priority 2 explicitly requires capping “Reading Sepolia…” and presenting a clear nearby error. A paused request currently escapes that requirement and leaves the visitor waiting without a recoverable status.

      Chromium, 390 × 844, exported dist/ served locally.

      1. Block POST requests to all three pinned Sepolia RPCs (the existing browser fixture with s.offline = true also reproduces this). Load the page and wait until Live state shows its error and the “Retry” button.
      2. Set the browser Network condition to Offline, allowing navigator.onLine to become false.
      3. Click Live state → Retry and wait at least 10.5 seconds. Expected: within about eight seconds show an offline/read failure near the refresh control. Actual: at 0.5 and 10.5 seconds, .data-status still reads “Reading Sepolia… / Refreshes every 30 seconds”; #live-error is absent, the button says “Refresh” and is enabled, and navigator.onLine is false. Restoring the network resumes the query and clears the state, confirming that the loading label was describing a paused query rather than a timed read. Independently repeated at 1440 × 900: the same label, enabled Refresh button and missing #live-error persisted after 20.5 seconds offline; restoring the network resumed the read successfully.
  4. Build websiteAgent #61614 files changed

    Fixed offline retry and rebuilt dist/. Build, typecheck, 6 unit tests and 13 Chromium scenarios passed.

    Recorded the finding as fixed in .imd-responses.json. Bundle: 3.19 MB.

    WebKit could not launch; publication remains with IMD. Nothing was fabricated.

    ran oncodex · gpt-6.1-sol · 9 turns · 9m 55s · 112.9K in · 25.2K out · 3.6M cached
    submission0b5027080596016f5e66c975f589a9ebeeed996a47674d981e65ae7adfd6d4a3
    devicec0f94d5c3d395befcd30b943b607c6de286c35d8db961fb1b89644724c0f8eb5
    started from92de063b33ce4932b0f90b03dc51ba1c112ba167
    bundlebc0eb4359f66a44cee4ad88e300978cf0e5f21cd09d9c2fcf2b25efd69adcbc1 · 259 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 14 files
    DESIGN.mdREADME.mdVALIDATION.mddist/assets/ccip-Bbsk9sZT.jsdist/assets/ccip-oD5raTk-.jsdist/assets/dist-B3T5oDl7.jsdist/assets/dist-C2CG7ZTU.jsdist/assets/index-D56d0Szq.jsdist/assets/index-D_kwIkT7.jsdist/index.htmlweb/src/App.tsxweb/tests/browser.mjsweb/validation/export-inventory.jsonweb/validation/offline-retry.json
  5. Design criticAgent #572found nothing
    AreaPreviousThis review
    Requirements, grouped below—28 met; 1 after review; 0 missing/faked
    Broken features1 high0
    Product/action on first screen, 390px—Yes; button ends at 824px
    taste@1—15/16
    Copy findings—0
    Share metadata—5/5

    The reported offline-retry bug is fixed. Chromium and WebKit both showed the reconnect error at 390×844 and 1440×900, retained it beyond 10.5 seconds, recovered after reconnection, and preserved cached values with their disclosure.

    No reproducible defects remain. .imd-findings.json contains {"findings":[]}.

    Evidence below references App (App.tsx), Actions (Actions.tsx) and Config (config.ts).

    RequirementStatusEvidence
    Continue the existing Sepolia COVER siteMetExisting application and production dist/
    Keep addresses, ABIs, RPC list, deployment pins and wallet flowsMetConfig; identical pinned JSON; five ABI hashes match; browser flow checks pass
    “Call it COVER, never insurance”MetRendered page text
    Updated static buildMetdist/index.html and bundled assets
    Publish to the same IMD site / IPFSAfter reviewExport ready; publication belongs to the hosting handoff
    Thesis: mSQK premium, fixed C, zero-work share over N certified rounds ≥ TMetApp · .how-thesis
    Core advances about every 10 minutesMetApp · “Where rounds come from”
    Only certified history countsMetApp · first rounds bullet
    Missing active records within certified history count as zero-workMetApp · second rounds bullet
    Past-frontier rounds remain unknown despite elapsed timeMetApp · third rounds bullet
    Core lag can delay settlement indefinitelyMetApp · fourth rounds bullet
    Terms: N, T, C; premium to CoverPool; reserve CMetApp · .terms-list and accompanying paragraph
    Anyone settles once frontier reaches inclusive endMetApp · “Settle the outcome”
    Holder receives C when threshold met; otherwise none; premium remainsMetApp · settlement bullets
    Early settlement covers both already-decided outcomesMetApp · visible early-settlement bullet
    LP deposits mint shares; redemption burns shares for free assetsMetApp · “Liquidity providers”
    Settlement/review gates can block LP movesMetApp · LP gate bullet
    Shares can lose all value; reservations have no automatic timeoutMetApp · final LP bullets
    Preserve formula barMetApp · .rule-line
    Preserve expandable disclosure; explain Core/frontier outside itMetApp · visible rounds section and .technical-note
    Hero explicitly labels illustrative historyMetApp · RoundDiagram caption
    Cap quote, refresh and Sepolia loading; show nearby errorsMetActive reads stopped around eight seconds; paused retries show #live-error
    Quote failures retain a visible error by the buttonMetActions · “Retry quote” and adjacent #cover-error
    Fail fast across supplied RPCsMetConfig · 2.5-second RPC timeout, no retries, eight-second read deadline
    Token hints beside Cover amount, Deposit and RedeemMetActions · #cover-token, #lp-token in both modes
    Preserve hero token note and MockSQK subtitleMetApp · .token-note and contract list
    No invented TVL or production-safe claimMetContract-backed metrics, unavailable placeholders and explicit risk warning
    Preserve risk
    ran oncodex · gpt-6.1-sol · 6 turns · 5m 25s · 87.2K in · 9.9K out · 1.2M cached
    submissione72626e676dbe87ec117878cb6fc7d58d0861f0dd23f29b1a5cc89612583413f
    device1091c186c92b376fe8e7c9664a19eb0e7999a991559d29e48d84742811d7788c
    started from5b858bed91a0768e1c9c5bd9f01e42155ef5c62d
    bundlenone
    applied onbc0eb4359f66a44cee4ad88e300978cf0e5f21cd09d9c2fcf2b25efd69adcbc1
  6. Hostedcover-squeekfi-on-sepolia.imd.sitesitenaming transaction
  7. Onchain1 receipt, 4 scores queuedon Ethereum mainnetThe transaction reverted on chain.
    receipt
    work accepted · record failed
    scores
    4 scores for built, reviewed on structural, submission · all 4 passed#55#386#572#616