Redesign the EXISTING UNLOCK V2 website and publish the working update at https://unlock-v2.imd.site/. Build on the latest completed job 38c6908b-83e2-4a77-8d65-4fa6c24660d6. This is a frontend/art update; preserve deployed contracts, addresses, ABI bindings, economics, wallet identity and transaction logic. Do not deploy contracts or activate trading.

APPROVED VISUAL TARGET: https://the-imd-daily.duckdns.org/unlock-v2-preview/unlock-v2-design-reference.png

Match this image closely: composition, detailed art, lighting, depth and typography. It is a design mockup: its balances, candles and progress are NOT real data. If the image cannot be retrieved, report that blocker; do not silently invent another style.

ART AND DESIGN SYSTEM

Near-black background (#050807), emerald/cyan illumination, warm gold for the current gate and Golden Vault, sharp off-white text, restrained thin metallic borders. Monospace labels/numbers; readable headings. No generic hero, pale background, empty cards or excessive glow. The reference's detailed ancient-tech portals are essential, not ordinary rectangular CSS doors.

Produce separate high-quality optimized artwork assets for locked/current/open-broken portals, the emerald burn-energy core, golden vault and brand mark. Integrate them as components with live HTML labels, controls and progress overlays. Do not use a full-page screenshot as the interface. Bundle art/fonts locally with provenance/licenses. Use lightweight 2D layers and subtle animation. Reuse gate art with live states; respect reduced motion.

HOME / TRADE

Match the reference hierarchy: compact header/navigation; prominent TEN GATES strip; active-gate contribution/progress; large candle-and-volume chart left, swap panel right; burn-core and Golden Vault previews below. Gates must be immediately visible on the homepage, not only on another route. Exactly 10 clickable portals: open gates broken/glowing, current gate gold, future gates dim emerald. Clicking reveals actual FDV, cumulative official volume and that gate's burn target/current/remaining amounts. Show three independent progress bars and explain ANY ONE threshold opens the gate. Never average them into a misleading overall percentage. Show onchain unlock rates and a clear Contribute UNLK2 action with wallet balance, amount and burn confirmation.

Preserve the official-pool chart and timeframe controls. Render genuine candles/volume only; closed trading, no trades, loading, stale data and RPC failure need distinct readable states. Separate indicative live FDV from last processed gate observation; a missing observation must not falsely imply every price feed failed.

Preserve IMD buys/sells and ETH buys. ETH must follow ONLY the existing pinned ETH/IMD pool then the official IMD/UNLK2 pool, atomically, crediting the connected buyer. No alternate pools, aggregators, split routes or fallback routes. Keep route visible. Preserve quote simulation, slippage/minimum received, deadline, fees, approvals, refunds and gas checks. Provide 20/50/75/MAX: IMD balance for buys, ETH balance minus gas/buffer for ETH, min(balance, eligible remaining allowance) for sells. Keep closed-trading controls disabled from real state.

EVERY OTHER SCREEN

Use the same premium art direction, spacing, navigation and responsive system throughout; preserve all existing controls and data:

  • Gates: detailed overview using the same 10 portals and live thresholds.
  • Migrate: V1 approval -> 1:1 migration, balances, reserve/capacity, receipt and errors.
  • My Rights: distinguish balance, eligible credits, matured/pending credits, cumulative sales and remaining allowance; retain swarm claim/credit and transfer workflows.
  • Burn & Points: detailed animated emerald core, amount entry, irreversible-burn confirmation, actual preview/receipt, points and fee-share explanation. Animate confirmed success only; never imply a gate opened before chain confirmation.
  • Weekly IMD Rewards: points, share, accrued/locked/claimable IMD, next eligibility and claim action. Estimates explicitly labeled; no promised yield.
  • Golden Vault: detailed gold vault, locked before gate 10, live burn-for-points controls afterward; show reward access and actual state.
  • Rules / Contracts and owner setup: equally polished, retaining contract links, deployment evidence and all setup safeguards. Owner actions remain owner-only.

DELIVERY AND ACCEPTANCE

Fix skip-to-content without changing routes. Test every route at 390px and 1440px, keyboard navigation, wallet/network changes, rejected signatures, empty/error/loading states and transaction feedback. No clipped text, horizontal page overflow, broken images or dead buttons. Re-run existing frontend and fixed-route fork tests; use no real-money test transactions. Publish the updated site and source with assets, commit, test results and screenshots of EVERY screen. Label mocked/fork/live checks; verify the published build. Report any unmet visual or functional requirement explicitly.

Published · Site

site
unlock-v2.imd.site
ipfs
bafybeidwh6hrg4dha5ir3ru35fu3piweinaw4qndy52zt7kzwvivw6fn44 · 2 MB
source
identity-md-launches/launch-2921-workflow-frontend-stage-context · pull request

Work

  1. Posted1 h 8 minto the first attempt
  2. Build websiteAgent #818162 files changedsent back

    Built the redesign and static export with local artwork/fonts and screenshots for all nine screens. Build, typecheck, browser, and fork checks pass; bundle is under 8 MiB.

    Commit/publication remain pending the platform handoff. Historical gate totals remain unavailable where RPC archive access fails. Nothing was fabricated.

    Validation and limitations

    ran oncodex · gpt-6.1-sol · 16 turns · 1h 7m · 181.5K in · 119.3K out · 14.8M cached
    submission2d464fdac5b21ab9791b41baa3d38a922bc6b486ee154ce416498b623d81a2ab
    device7ce44d9c73b2e554e74b150e3463de4a73ea438a85aab8346952aee123a2a631
    started frome71f51d9cb2424955a224c1f97d4aad9f295585a
    bundle8d04a79d3d09e719441ba6da2414251d68ee0c286de5825941cf639d62e0a66e · 3.8 MB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 162 files
    DESIGN.mdREADME.mdartifacts/validation.mddist/art/CC0-1.0.txtdist/art/LICENSE.txtdist/art/brand-mark.webpdist/art/burn-core.webpdist/art/golden-vault.webpdist/art/portal-current.webpdist/art/portal-locked.webpdist/art/portal-open.webpdist/art/provenance.jsondist/assets/index-7XZDW6JM.jsdist/assets/index-OYJAAWB5.cssdist/assets/index-YZC6LMEH.jsdist/assets/index-Z7R6E2SM.cssdist/design-assets.cssdist/fonts/PROVENANCE.mddist/fonts/cinzel-400.ttfdist/fonts/cinzel-600.ttfdist/fonts/cinzel-OFL.txtdist/fonts/ibm-plex-mono-400.ttfdist/fonts/ibm-plex-mono-600.ttfdist/fonts/ibm-plex-mono-OFL.txtdist/fonts/manrope-400.ttfdist/fonts/manrope-600.ttfdist/fonts/manrope-OFL.txtdist/imd-deployment.jsondist/index.htmldist/og-image.pngdocs/redesign/ASSETS.mddocs/redesign/BETTER-INTERFACE-LICENSEdocs/redesign/PUBLISH.mddocs/redesign/VALIDATION.mddocs/redesign/bundle-audit.jsondocs/redesign/check-results.jsondocs/redesign/contracts-fork.txtdocs/redesign/evidence/all-routes-chromium.jsondocs/redesign/evidence/all-routes-webkit.jsondocs/redesign/evidence/browser-report.jsondocs/redesign/evidence/design-probe.jsondocs/redesign/evidence/fork-browser.jsondocs/redesign/evidence/fork-trade-1440.webpdocs/redesign/evidence/live-read-only-390.webpdocs/redesign/evidence/mock-burn-points-1440.webpdocs/redesign/evidence/mock-burn-points-390.webpdocs/redesign/evidence/mock-connected-rights-1440.webpdocs/redesign/evidence/mock-connected-rights-390.webpdocs/redesign/evidence/mock-gates-1440.webpdocs/redesign/evidence/mock-gates-390.webpdocs/redesign/evidence/mock-golden-390.webpdocs/redesign/evidence/mock-golden-vault-1440.webpdocs/redesign/evidence/mock-golden-vault-390.webpdocs/redesign/evidence/mock-home-1440.webpdocs/redesign/evidence/mock-home-390.webpdocs/redesign/evidence/mock-integration-status-1440.webpdocs/redesign/evidence/mock-integration-status-390.webpdocs/redesign/evidence/mock-migrate-1440.webpdocs/redesign/evidence/mock-migrate-390.webpdocs/redesign/evidence/mock-my-rights-1440.webpdocs/redesign/evidence/mock-my-rights-390.webpdocs/redesign/evidence/mock-opened-door-390.webpdocs/redesign/evidence/mock-rules-contracts-1440.webpdocs/redesign/evidence/mock-rules-contracts-390.webpdocs/redesign/evidence/mock-trade-1440.webpdocs/redesign/evidence/mock-trade-390.webpdocs/redesign/evidence/mock-webkit-trade-1440.webpdocs/redesign/evidence/mock-webkit-trade-390.webpdocs/redesign/evidence/mock-weekly-imd-rewards-1440.webpdocs/redesign/evidence/mock-weekly-imd-rewards-390.webpdocs/redesign/evidence/optimization.jsondocs/redesign/export-validation.txtdocs/redesign/fork-browser.txtdocs/redesign/frontend-tests.txtdocs/redesign/gate-history-rpc-limit.jsondocs/redesign/live-export-browser.jsondocs/redesign/live-state.jsondocs/redesign/live-verification.txtdocs/redesign/node-tests.txtdocs/redesign/preservation.jsondocs/redesign/production-build.txtdocs/redesign/public-url.jsondocs/redesign/redesign-tests.txtdocs/redesign/typecheck.txtdocs/redesign/webkit-tests.txtdocs/update/evidence/browser-report.jsondocs/update/evidence/fork-browser.jsondocs/update/evidence/live-read-only-390.pngdocs/update/evidence/mock-home-390.pngdocs/update/live-export-browser.jsondocs/update/live-state.jsondocs/update/public-url.jsonweb/README.mdweb/index.htmlweb/public/art/CC0-1.0.txtweb/public/art/LICENSE.txtweb/public/art/brand-mark.webpweb/public/art/burn-core.webpweb/public/art/golden-vault.webpweb/public/art/portal-current.webpweb/public/art/portal-locked.webpweb/public/art/portal-open.webpweb/public/art/provenance.jsonweb/public/design-assets.cssweb/public/fonts/PROVENANCE.mdweb/public/fonts/cinzel-400.ttfweb/public/fonts/cinzel-600.ttfweb/public/fonts/cinzel-OFL.txtweb/public/fonts/ibm-plex-mono-400.ttfweb/public/fonts/ibm-plex-mono-600.ttfweb/public/fonts/ibm-plex-mono-OFL.txtweb/public/fonts/manrope-400.ttfweb/public/fonts/manrope-600.ttfweb/public/fonts/manrope-OFL.txtweb/public/og-image.pngweb/scripts/audit-redesign.pyweb/scripts/optimize-redesign-evidence.pyweb/scripts/redesign-og.mjsweb/site/art/CC0-1.0.txtweb/site/art/LICENSE.txtweb/site/art/brand-mark.webpweb/site/art/burn-core.webpweb/site/art/golden-vault.webpweb/site/art/portal-current.webpweb/site/art/portal-locked.webpweb/site/art/portal-open.webpweb/site/art/provenance.jsonweb/site/assets/index-7XZDW6JM.jsweb/site/assets/index-OYJAAWB5.cssweb/site/assets/index-YZC6LMEH.jsweb/site/assets/index-Z7R6E2SM.cssweb/site/design-assets.cssweb/site/fonts/PROVENANCE.mdweb/site/fonts/cinzel-400.ttfweb/site/fonts/cinzel-600.ttfweb/site/fonts/cinzel-OFL.txtweb/site/fonts/ibm-plex-mono-400.ttfweb/site/fonts/ibm-plex-mono-600.ttfweb/site/fonts/ibm-plex-mono-OFL.txtweb/site/fonts/manrope-400.ttfweb/site/fonts/manrope-600.ttfweb/site/fonts/manrope-OFL.txtweb/site/imd-deployment.jsonweb/site/index.htmlweb/site/og-image.pngweb/src/App.tsxweb/src/ArtPanels.tsxweb/src/Charts.tsxweb/src/Dashboard.tsxweb/src/EnergyCore.tsxweb/src/GateDoors.tsxweb/src/Screens.tsxweb/src/Trade.tsxweb/src/components.tsxweb/src/focus.tsweb/src/gate-history.tsweb/src/style.cssweb/src/wallet.tsxweb/tests/fork-browser.mjsweb/tests/gate-history.test.tsweb/tests/redesign-browser.mjsweb/tests/update-browser.mjs
  3. Design criticAgent #1690found 1 high, 1 medium, 1 low
    AreaResult
    Requirements50 reviewed: 44 met, 2 missing, 0 faked, 3 after review, 1 needs requester
    Broken features2: keyboard focus and action labeling
    First screen at 390pxProduct and contribution action visible
    taste@116/16 passed
    Copy1 finding
    Share cardPresent; metadata complete

    Saved three verified findings in .imd-findings.json:

    • High — fidelity: Desktop panels push the core/vault previews to y=1356, versus approximately y=678 in the reference.
    • Medium — accessibility: The burn-preview contribution button scrolls without moving focus; Tab jumps back above the form.
    • Low — bug: After gate 10, the preview still says “Contribute UNLK2” while opening voluntary burning.

    Each finding contains exact source citations, the proposed change and a concrete reproduction. Implementation files remain unchanged.

    Independent checks passed: 18 unit tests, 24 redesign checks, all 14 existing browser interaction groups, 27 route/viewport checks and 4 fixed-route fork tests. Live reads confirmed trading remains closed. WebKit’s supplied validation evidence was reviewed; WebKit was not rerun. No live transactions were sent.

    UNLOCK V2 is an Ethereum trading and burn dashboard carried by ten ancient-tech portals leading toward a Golden Vault.

    #Brief requirementStatus and evidence
    1“Redesign the EXISTING UNLOCK V2 website”; continue job 38c6908b…Met — web/public/art/provenance.json, existing application retained.
    2“publish the working update at https://unlock-v2.imd.site/”After review — docs/redesign/PUBLISH.md; public URL still serves the earlier export.
    3Preserve contracts, addresses, ABI bindings, economics, wallet identity and transaction logicMet — all 33 preservation hashes matched; docs/redesign/preservation.json.
    4“Do not deploy contracts or activate trading”Met — live checks were read-only; fork actions remained isolated.
    5Closely match reference composition, art, lighting, depth and typographyMissing — composition — measured desktop mismatch; finding at web/src/style.css:1374.
    6Retrieve the approved image or report its failureMet — approved PNG retrieved and visually inspected.
    7Reference balances, candles and progress are not real dataMet — contract reads and observed trades; state.ts, market.ts.
    8Near-black, emerald/cyan, warm gold, off-white and restrained metallic bordersMet — web/src/style.css.
    9Monospace labels/numbers and readable headingsMet — local typography system; style.css, design-assets.css.
    10No generic hero, pale background, empty cards or excessive glowMet — rendered homepage and supplied route screenshots.
    11Detailed ancient-tech portals, not ordinary CSS doorsMet — three detailed portal artwork files.
    12Separate optimized locked/current/open portals, core, vault and brand assetsMet — six WebP assets under web/public/art/.
    13Components with live HTML labels, controls and overlays; no screenshot interfaceMet — GateDoors.tsx, EnergyCore.tsx, ArtPanels.tsx.
    14Bundle artwork/fonts locally with provenance and licensesMet — artwork provenance, CC0 text and local font OFL files.
    15Lightweight layers, subtle animation, reused gate art and reduced motionMet — EnergyCore.tsx, shared CSS; motion probe passed.
    16Header → gates → progress → chart/swap → core/vault hierarchyMet — ordering — Dashboard.tsx; sizing deficiency recorded separately in #5.
    17Gates immediately visible on homepageMet — all ten visible at 390px.
    18Exactly ten clickable portals with broken/open, gold/current and emerald/future statesMet — `GateDoors.tsx
    ran oncodex · gpt-6.1-sol · 9 turns · 21m 42s · 175.8K in · 32K out · 5.8M cached
    submission405adbfcb888df1fe4b7e4e48707efb899670b8bafa83ed6dc6689f787813529
    device15b1d692225b9db2f3950d8f2f156724a95296c1304c879cf01cf8a116a9d425
    started from66d9554b06d3696dc62de083d35685af9cc4f346
    bundlenone
    applied on17db6fc40bf16c53ade76ee525887a4ffe586ce8f0a786239a81b18a198f93e1
    • highfidelity: oversized desktop progress and trade panels lose the approved homepage compositionweb/src/style.css:1374

      Now: The verified desktop homepage expands the reference's compact gate summary into a 207px panel, and its trading row to 722px. The core and Golden Vault previews begin at y=1356, entirely below a 1000px first screen; even the swap action is below that screen.

      Change to: Compact the existing desktop gate summary to approximately 60–80px and the chart/swap row to approximately 320–400px. Reflow their existing labels and controls horizontally, move explanatory prose into the existing details disclosures, and retain all three independent current/target/remaining values, slippage, route and transaction protections. Match the reference landmarks: chart/swap near y=360 and both artwork previews near y=680 at 1440px, while retaining mobile overrides.

      Why: The approved target explicitly requires a close composition match and a compact header, gate strip, active-gate progress, chart/swap and the two illustrated previews. Preserving section order alone does not reproduce that supplied composition.

      Chromium, 1440x1000, open the delivered dist #trade using either live read-only Ethereum state (trading closed) or the existing fixture with activated=false and gates=0; wait for fonts and artwork. getBoundingClientRect(): .gate-disclosure y=386.9375 height=207.390625; .dashboard-grid y=616.328125; .swap-panel height=722.140625; .swap-panel .action y=1126.28125; .art-panels y=1356.46875 height=278.578125.

      Compare the approved 1568x1003 PNG scaled to 1440px: chart/swap start around y=362 and both artwork previews around y=678, with the complete composition visible by approximately y=900.

      The discrepancy also appears in docs/redesign/evidence/mock-trade-1440.webp and is present without synthetic candles or example balances.

    • mediumaccessibility: the burn-preview contribution button scrolls without moving keyboard focusweb/src/ArtPanels.tsx:19

      Now: The Burn & Points preview scrolls to the contribution form while keyboard focus stays on its preview button. The next Tab returns the visitor to the Golden Vault preview above the form.

      Change to: Reuse the gate-strip contribution handler: scroll #active-gate into view and call focus({ preventScroll: true }) on that existing tabindex=-1 section.

      Why: The brief requires working keyboard navigation and a clear Contribute UNLK2 action; advancing from that action should continue inside its destination form.

      Chromium, 390x844, production dist with the existing synthetic RPC fixture, activated=false and gates=0.

      Open #trade, focus .preview-action and press Enter.

      Measured scrollY=2767 and #active-gate top=16.203125, but document.activeElement is still the Contribute UNLK2 preview button.

      Press Tab: focus becomes Explore Golden Vault and scrollY moves back to 2302, placing the contribution form at y=481.203125.

      Expected: focus moves to #active-gate and the next Tab enters its amount/control sequence.

      The gate-strip Contribute link already implements that behavior correctly.

    • lowbug: the homepage still offers gate contributions after gate tenweb/src/ArtPanels.tsx:19

      Now: The burn-core preview always says Contribute UNLK2, including after gatesOpen is 10, when the destination is a voluntary burn and contributions have ended.

      Change to: Use the existing verified open boolean to render Burn for points after gate 10 and Contribute UNLK2 beforehand; retain the same destination and focus fix.

      Why: The brief distinguishes current-gate contributions from the Golden Vault's post-gate-10 burn-for-points workflow. The button should name the action it actually opens.

      Chromium, 390x844 (also 1440px), production dist with the existing synthetic RPC fixture set to gates=10 and activated=true.

      Open #trade and connect the test wallet.

      The gate disclosure says Gate 10 · Open, and #active-gate h2 says Golden Vault · voluntary burning & continuing fee rewards, while .preview-action still says Contribute UNLK2.

      Activate that button: it opens the voluntary burn form, not a gate contribution.

      Expected label: Burn for points.

      No signature or transaction is needed to reproduce.

  4. Build websiteAgent #127561 files changed

    Fixed all three findings and rebuilt dist/. Build, typecheck, Chromium/WebKit interaction checks, and fork tests pass. Changes total 3.21 MiB.

    Responses are in .imd-responses.json; screenshots and results are in REVISION.md.

    Commit/publication remain pending IMD’s service: no publishing connector is available, and .git/ is prohibited.

    ran oncodex · gpt-6.1-sol · 10 turns · 35m 55s · 187.3K in · 61K out · 11.1M cached
    submission62be9222c3b4dbf3b31c35c28c2d84e6d6cc3115a8d2af4473b3eb2d2c32f52f
    device613f0b69bde9876a592e38e5c120606082bcbf81b9e3aabc63248d38bb868062
    started from66d9554b06d3696dc62de083d35685af9cc4f346
    bundle17db6fc40bf16c53ade76ee525887a4ffe586ce8f0a786239a81b18a198f93e1 · 5.3 MB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 61 files
    DESIGN.mdREADME.mddist/assets/index-INMOMK5T.cssdist/assets/index-OIYOCBEI.jsdist/assets/index-OYJAAWB5.cssdist/assets/index-YZC6LMEH.jsdist/imd-deployment.jsondist/index.htmldocs/redesign/PUBLISH.mddocs/redesign/REVISION.mddocs/redesign/VALIDATION.mddocs/redesign/evidence/all-routes-chromium.jsondocs/redesign/evidence/all-routes-webkit.jsondocs/redesign/evidence/fork-browser.jsondocs/redesign/evidence/fork-trade-1440.webpdocs/redesign/evidence/live-read-only-1440.webpdocs/redesign/evidence/live-read-only-390.webpdocs/redesign/evidence/mock-gates-1440.webpdocs/redesign/evidence/mock-gates-390.webpdocs/redesign/evidence/mock-golden-390.webpdocs/redesign/evidence/mock-home-1440.webpdocs/redesign/evidence/mock-home-390.webpdocs/redesign/evidence/mock-opened-door-390.webpdocs/redesign/evidence/mock-rules-contracts-1440.webpdocs/redesign/evidence/mock-rules-contracts-390.webpdocs/redesign/evidence/mock-trade-1440.webpdocs/redesign/evidence/mock-trade-390.webpdocs/redesign/evidence/mock-webkit-trade-1440.webpdocs/redesign/evidence/mock-webkit-trade-390.webpdocs/redesign/evidence/optimization.jsondocs/redesign/revision/bundle-audit.jsondocs/redesign/revision/contracts-fork.txtdocs/redesign/revision/design-probe.jsondocs/redesign/revision/export-validation.txtdocs/redesign/revision/fork-browser.txtdocs/redesign/revision/frontend-tests.txtdocs/redesign/revision/live-export-browser.jsondocs/redesign/revision/live-state.jsondocs/redesign/revision/live-verification.txtdocs/redesign/revision/node-tests.txtdocs/redesign/revision/preservation.jsondocs/redesign/revision/production-build.txtdocs/redesign/revision/public-url.jsondocs/redesign/revision/public-url.txtdocs/redesign/revision/redesign-tests.txtdocs/redesign/revision/reproduced-findings.jsondocs/redesign/revision/typecheck.txtdocs/redesign/revision/webkit-tests.txtweb/site/assets/index-INMOMK5T.cssweb/site/assets/index-OIYOCBEI.jsweb/site/assets/index-OYJAAWB5.cssweb/site/assets/index-YZC6LMEH.jsweb/site/imd-deployment.jsonweb/site/index.htmlweb/src/ArtPanels.tsxweb/src/Charts.tsxweb/src/GateDoors.tsxweb/src/Trade.tsxweb/src/style.cssweb/tests/redesign-browser.mjsweb/tests/update-browser.mjs
  5. Design criticAgent #52found 3 medium

    UNLOCK V2 redesign review: all three earlier findings are fixed, three new medium findings

    AreaLast reviewThis review
    Brief requirementsNot on record47: 43 met (2 with medium findings), 0 missing, 0 faked, 3 after review, 1 needs the requester
    Broken featuresNot on record0 found (no live interaction was possible)
    Product on the first screen at 390Not on recordYes: ten portals, three gate conditions and Contribute UNLK2; the swap panel starts below the fold
    taste@1 checks passedNot on recordNot run by me. The author's stored run shows 15/16
    Copy findingsNot on record0
    Share cardNot on recordPresent: dist/index.html:12 and :18

    This review had no shell or browser. The shell failed with a sandbox bridge socket error, and Chromium failed with "socket path too long". I did not try to get around either.

    • Evidence used: source, the built bundle, the delivered captures, the author's logs and the reference PNG, which I retrieved.
    • Pixel values: those for new findings are read off captures, so they are approximate.
    • Scope of "met": I rechecked the surfaces this revision touched and spot-checked other screens from captures. Other "met" lines rely on the earlier review and the author's test logs.
    • Findings file: I couldn't parse-check .imd-findings.json by running it.
    • Tool files: my tools wrote a compile cache and browser log under .cache/ in the repository. I had no shell to remove them or to check whether they are git-ignored, and they could trip the no-changes rule.

    Earlier findings

    FindingVerdictEvidence
    High, fidelity: oversized desktop panelsFixedGate summary 77.56px, trading row y=359.94 and 324.47px tall, swap action bottom 624.42, previews y=698.41 to 940.98 (live-export-browser.json). The captures and style.css:1600-1684 agree. The reference scaled to 1440 has the row at about 362 and previews at about 679.
    Medium, accessibility: preview button kept focusFixedArtPanels.tsx:19-21 scrolls and focuses #active-gate, and the same code is in dist. redesign-browser.mjs:286-290 and :311-315 test Enter then Tab at both widths.
    Low, bug: wrong label after gate 10FixedArtPanels.tsx:22 uses open; redesign-browser.mjs:309 asserts "Burn for points".

    I'm not raising the probe's two eyebrow failures. "Unread" and "Remaining: Unavailable UNLK2" are real data labels, so the author was right to reject them.

    New findings (in .imd-findings.json)

    1. Medium, bug: wrong FDV wording when no observation exists. The first screen says "Unavailable / stale USD" while the price reads are valid (components.tsx:273). "Not yet observed" appears only inside a collapsed disclosure. I inferred the cause from the source and captures, because I couldn't read lastGateFdv from the chain, so the fix should be confirmed with lastGateFdv=0.
    2. Medium, fidelity: chart stops short once a quote appears. The canvas stays at 190px when a quote stretches the row (style.css:1667), leaving about 170px or more blank under the chart controls.
    3. Medium, taste: empty column beside the contribution form. At 1440, about 680x860px beside the form holds a single closed summary line (style.css:1453).

    Requirements

    #RequirementStatusShown by
    1"Redesign the EXISTING UNLOCK V2 website"metweb/src/, dist/
    2"publish the working update at https://unlock-v2.imd.site/"after reviewPUBLISH.md
    3"Build on the latest completed job"metVALIDATION.md:7
    4"preserve deployed contracts, addresses, ABI bindings, economics, wallet identity and transaction logic"metrevision/preservation.json, live-state.json
    5"Do not deploy contracts or activate trading"metlive-state.json: activated=false
    6"Match this image closely: compositio
    ran onclaude · claude-opus-5-5 · 64 turns · 6m 44s · 26 in · 35.4K out · 1.1M cached
    submissionef1d0ae2a70f97a2acac5f959e4a4f588f9b5aaf323102c3c1f8408a07dfe91b
    device2f1d693f218c1c18c218a1f700bd525389e6df9ee96e2fb77d7677ad58d77dd0
    started from6a2c438c6962d3e798cafbfc0f9248e1d8b34788
    bundlenone
    applied on17db6fc40bf16c53ade76ee525887a4ffe586ce8f0a786239a81b18a198f93e1
    • mediumbug: the FDV row reports a missing gate observation as "Unavailable / stale" on the first screenweb/src/components.tsx:273

      Now: With no processed observation, the first-screen FDV row reads "Unavailable", "Unavailable / stale USD" and "Remaining: Unavailable USD". The Gates screen shows the same through the same Progress component (Trade.tsx:43-55). The accurate "Not yet observed" wording and the indicative live FDV exist only inside the collapsed "FDV & gate accounting" disclosure (GateDoors.tsx:134-138).

      Change to: Add one optional prop to Progress, missing?: string, printed in place of "Unavailable / stale" and of both "Unavailable" strings when set. Pass missing={fresh && d?.lastGateFdv === 0n ? "Not yet observed" : undefined} at GateDoors.tsx:101 and the same check at Trade.tsx:43. The row then reads "FDV · processed Not yet observed". Keep "Unavailable / stale" for a real outage or an observation past the existing age limit. The existing valid logic, values and the disclosure do not change.

      Why: The brief says "Separate indicative live FDV from last processed gate observation; a missing observation must not falsely imply every price feed failed." At this block the chain was read successfully and both price reads returned valid, so "stale" is untrue.

      390x844 and 1440x1000.

      Open dist #trade with mainnet reads, or the existing fixture with lastGateFdv=0, activated=false and gates=0.

      Do not open any disclosure.

      Evidence, read from the delivered captures because no browser could start on this review machine: docs/redesign/evidence/live-read-only-390.webp and live-read-only-1440.webp show "FDV · processed Unavailable", "Unavailable / stale USD" and "Remaining: Unavailable USD". docs/redesign/revision/live-state.json at block 26348591 records imdUsdPrice [2983632439479652537, true] and tokenPriceInImd [2499999999999, true].

      In the same capture the market heading shows a live 0.0000024999 IMD / UNLK2.

      Expected: the row says "Not yet observed".

      Actual: it says "Unavailable / stale".

      The GateDoors valid check at GateDoors.tsx:106-113 is false when lastGateFdv is 0, which is the source of this state.

    • mediumfidelity: the compact chart stays 190px tall and leaves a blank area once a quote grows the trading rowweb/src/style.css:1667

      Now: Above 1250px the canvas is fixed at 190px while .dashboard-grid stretches both panels (style.css:1634). A quote adds about ten rows to the swap panel, so the row grows and the chart panel keeps a blank area about as tall as the chart itself. This is the state in which a trader most needs the chart.

      Change to: Keep 190px as the floor and let the canvas take the stretched height. In the existing @media (min-width: 1251px) block add .chart-panel { display: flex; flex-direction: column; } and .market-chart { flex: 1 1 auto; display: flex; flex-direction: column; }, and replace line 1667 with .market-canvas { flex: 1 1 190px; height: auto; min-height: 190px; contain: size; }. contain: size stops the chart's internal table from holding the row open after the quote clears. The chart already uses autoSize: true (Charts.tsx:291), so no chart code changes. Check the row returns to its compact height after the quote clears.

      Why: The brief asks for a "large candle-and-volume chart left". The reference's chart fills its panel. The compact row should keep the previous fix's landmarks when there is no quote without giving up the chart when there is one.

      1440x1000.

      Fork or fixture with activated=true and official-pool swaps, wallet connected, Pay with ETH, enter an amount and wait for the quote.

      Evidence, read from the delivered capture docs/redesign/evidence/fork-trade-1440.webp because no browser could start on this review machine; pixel values are approximate: the chart panel starts at about y=437 and the canvas ends at about y=712.

      The last chart control, the "Source, block window and price methodology" summary, ends at about y=822.

      The swap panel's last control, "Route, fees and protections", sits at about y=994.

      That leaves about 170px or more of blank panel under the chart controls, against a 190px canvas.

      Expected: the canvas fills the stretched panel.

      Actual: it stays 190px.

    • mediumtaste: the desktop contribution form leaves a column holding one line beside itweb/src/style.css:1453

      Now: At 1440px the homepage contribution form fills the left column for about 907px. The right column holds only the closed "Points, selling rights and weekly rewards" summary (Screens.tsx:935-939), leaving about 680x860px of blank page. The form's core art also stacks over its fields, which is what makes the form this tall.

      Change to: In the existing @media (min-width: 1251px) block add .active-gate > .two-col { grid-template-columns: minmax(0, 1fr); }, .active-gate > .two-col > .panel { display: grid; grid-template-columns: 300px minmax(0, 1fr); column-gap: 24px; }, .active-gate > .two-col > .panel > * { grid-column: 2; }, .active-gate > .two-col > .panel > h2 { grid-column: 1 / -1; } and .active-gate > .two-col > .panel > .energy-scene { grid-column: 1; grid-row: 2 / span 12; }. The art moves beside the fields, the form spans the full width at roughly half the height, and the closed disclosure sits directly below it. Every control, warning and the confirmed-burn animation stay as they are.

      Why: The reference's page is dense and has no empty regions, and a column left holding one line reads as a hole. No requirement is missing, so this is taste.

      1440x1000.

      Open #trade with any state, no wallet needed, and scroll to #active-gate.

      Evidence, read from the delivered capture docs/redesign/evidence/mock-trade-1440.webp because no browser could start on this review machine; pixel values are approximate: the left panel spans x=28-710, y=965-1872.

      In the right column (x=730-1412) the only content is the summary line at about y=1012.

      Nothing else occupies that column down to the footer at about y=1915.

      The same layout shows at the top of live-read-only-1440.webp, where the form begins at about y=965.

  6. Hostedunlock-v2.imd.sitesitenaming transaction
  7. Onchain2 receipts, 4 scoreson Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,348,812 · transaction
    scores
    4 scores for built, reviewed on structural, submission · all 4 passed · block 26,348,752 · transaction#52#818#1275#1690