{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"f8653699-6793-4b9c-80d2-478a09004dc5","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"6d06d1bb657d5095c5eb07e8dd2bc1b411f9656a2ab857da8652d5a7fd01a3ec","dependsOn":[],"execution":{"mustProduce":["dist/index.html"],"network":true,"profile":"none","requires":["network"],"skillHash":"d85feeeba61710fcde95b6484d4ed21af1a49b2b609a1b0ea33f16d5a47ec9ca","skillId":"import-site","tools":[]},"key":"import_site","kind":"code","role":"implement","skillHash":"d85feeeba61710fcde95b6484d4ed21af1a49b2b609a1b0ea33f16d5a47ec9ca","skillId":"import-site","state":"accepted"},{"acceptedSubmissionHash":"57f52fc009688b43f9bb37f98aadbbe15440670c1c3dfad3bbffd84a990b7094","dependsOn":["import_site"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"8189a3059fc9bb774ad7dcee66b87f32e25d781025f0e9f82a4c75182fe0ef19","skillId":"site-content-check","tools":[]},"key":"site_content_check","kind":"code","role":"review","skillHash":"8189a3059fc9bb774ad7dcee66b87f32e25d781025f0e9f82a4c75182fe0ef19","skillId":"site-content-check","state":"accepted"}],"objective":"PixelFun is a 512x512 community pixel canvas on Robinhood Chain: deposit IMD into a vault, paint pixels at 0.005 IMD each (burned on paint), and the top 66 painters of each 3-day round earn an NFT whitelist spot.","parentJobId":null,"planHash":"6b70f83835b97b6cc9b80533be70035dad2df232ab08498806015cba5fd64428","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"f8653699-6793-4b9c-80d2-478a09004dc5","publication":{"commit":null,"deliveredAt":null,"repoUrl":null},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51725","feedbackHash":"72b42b5b7f746ababaaff3c4f381749f641947665351bfaf09ca24be7b9c4586","nodeKey":"import_site","submissionHash":"6d06d1bb657d5095c5eb07e8dd2bc1b411f9656a2ab857da8652d5a7fd01a3ec","tag1":"verification:structural","tag2":"acceptance-v2","value":1},{"agentId":"51441","feedbackHash":"34f037fcd0efb78db5b87024ddb99053d2037e440aa360a58c7b09fe0866436b","nodeKey":"site_content_check","submissionHash":"57f52fc009688b43f9bb37f98aadbbe15440670c1c3dfad3bbffd84a990b7094","tag1":"review:submission","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"70fd27c254f5ac82826360b68a9a324eba2c41144912e30f828bee94088f558c","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"b2fad28b1d801fa8","findings":[{"citation":"resolved","description":"The exported navigation links to /about, /leaderboard and /proof, but the corresponding HTML files are dist/about.html, dist/leaderboard.html and dist/proof.html. The directories dist/about/, dist/leaderboard/ and dist/proof/ contain only Next.js text payloads and no index.html. Client navigation succeeds after hydration, masking the issue; reloading or opening a link in a new tab reaches a directory listing or an error on a static/IPFS host without extension rewrites. src/components/AppShell.tsx supplies these links. This is an advisory hosting-compatibility defect, not prohibited content.","line":1,"path":"dist/index.html","reproduction":"Run python3 -m http.server 8765 --bind 127.0.0.1 --directory dist. Open http://127.0.0.1:8765/index.html, click About in the header, then reload. Expected: the About page remains available. Actual: the URL redirects to /about/ and displays a directory listing containing __next._full.txt, __next._tree.txt and __next.about.__PAGE__.txt. Direct visits to /leaderboard and /proof behave the same; /about.html renders correctly. Reproduced in Chromium at desktop and mobile sizes.","severity":"medium","snippet":"<a class=\"border-2 px-2 py-1 text-[9px] font-bold uppercase tracking-wider border-line text-muted hover:border-ink hover:text-ink\" href=\"/about\">About</a>","title":"Direct route visits fail on a plain static/IPFS host"},{"citation":"resolved","description":"The shipped index page advertises http://localhost:3000 as its canonical/og:url and http://localhost:3000/og.png as its Open Graph and Twitter image. The same metadata is present in dist/about.html, dist/leaderboard.html and dist/proof.html. Public crawlers cannot retrieve the preview image from this loopback address, and canonical metadata identifies the development origin instead of the hosted site. src/config/site.ts supplies this fallback to src/app/layout.tsx. This is an advisory publishing defect, not a hosting blocker.","line":1,"path":"dist/index.html","reproduction":"Serve dist on any public origin or a local port other than 3000, open /index.html, and inspect link[rel=\"canonical\"], meta[property=\"og:url\"], meta[property=\"og:image\"] and meta[name=\"twitter:image\"]. Expected: the intended public site and a publicly reachable image URL. Actual: localhost:3000 URLs remain baked into the HTML; changing the serving origin does not update them.","severity":"low","snippet":"<meta property=\"og:image\" content=\"http://localhost:3000/og.png\"/>","title":"Exported canonical and social-preview URLs point to localhost"},{"citation":"resolved","description":"The header applies backdrop-filter through backdrop-blur and contains WalletButton. Its fixed inset-0 wallet dialog therefore uses the header as its containing block instead of the viewport. In the shipped dist/_next/static/chunks/0y_hnjilg78tp.js, opening Connect positions the dialog within this short header; the heading and Close button extend above the screen, and the overlay leaves the canvas exposed. The source relationship is src/components/AppShell.tsx:54 and src/components/WalletButton.tsx:62. This is a reproducible layout/accessibility issue, not a hosting blocker.","line":1,"path":"dist/index.html","reproduction":"Serve dist and open /index.html in Chromium with a 390x844 viewport and no connected wallet. Click Connect and wait for its animation. Expected: a fully visible wallet dialog with a reachable Close button and a viewport-sized backdrop. Actual: [role=\"dialog\"] is only about 129px tall at y=0, and the Close control begins around y=-24px, above the viewport. At 1440x1000 the backdrop is about 95.5px tall and Close begins at y=-14.5px. Pressing Escape still dismisses it.","severity":"low","snippet":"<header class=\"sticky top-0 z-40 border-b-2 border-line bg-bg/95 backdrop-blur\">","title":"Wallet dialog is confined to the header and clips its close control"}],"hash":"57f52fc009688b43f9bb37f98aadbbe15440670c1c3dfad3bbffd84a990b7094","nodeId":"eed2bf8e-169b-4af8-8a79-587f84d97068","outcome":"completed","summary":"Saved three verified findings to [.imd-findings.json](/home/imd-worker/.identitymd/work/f8653699-6793-4b9c-80d2-478a09004dc5/eed2bf8e-169b-4af8-8a79-587f84d97068/.imd-findings.json):\n\n- **Medium:** Direct route reloads fail on plain static hosting.\n- **Low:** Public metadata points to localhost.\n- **Low:** Wallet dialog clips its close button.\n\nReviewed all six exported pages, 94 scripts, supporting assets, and application source. **No critical or high findings.** Site files remain unchanged.","treeHash":null,"usage":{"cachedInputTokens":8892032,"inputTokens":288103,"model":"gpt-6-astra","outputTokens":20568,"runtime":"codex","turns":10,"wallClockMs":861461}},{"artifacts":[],"attempt":1,"bundleHash":"e427451d3f033c517ccae1218204c7a97d90a609559d76d919df2ff24d937615","device":"004eae350f695d24","findings":[],"hash":"6d06d1bb657d5095c5eb07e8dd2bc1b411f9656a2ab857da8652d5a7fd01a3ec","nodeId":"5a8acf77-54f3-44bb-80a0-723b9c900542","outcome":"completed","summary":"Built with **npm** using `npm ci` and `npm run build`.\n\nNext.js wrote to `out/`, copied unchanged to `dist/`. Verified `dist/index.html`, local asset references, and byte-for-byte equality. Total: **4.13 MiB**.\n\nOnly `dist/` was added. The configured export uses root-relative URLs, which may affect hosting under a path prefix.","treeHash":"539e9fb07f621a51e2c655ccebf540b80ee67750","usage":{"cachedInputTokens":230912,"inputTokens":30042,"model":null,"outputTokens":1262,"runtime":"codex","turns":3,"wallClockMs":78986}}],"verification":[{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"6d06d1bb657d5095c5eb07e8dd2bc1b411f9656a2ab857da8652d5a7fd01a3ec","verifiedTreeHash":"539e9fb07f621a51e2c655ccebf540b80ee67750","verifierVersion":"0.1.0+6a374fcd"}]}