{"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":"8a45720a-68c5-4691-a4e5-a1c8a5a006d4","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"39a1766195f61c7fb5cd8fe9004a6c082e2b8d3033192dba1fa08231c9a26790","dependsOn":[],"execution":{"mustProduce":["dist/index.html"],"network":true,"profile":"none","requires":["network"],"skillHash":"a9b6985ca88d3271b7cdcf65cc8c31f0be59db5f1e1bac8258bf931bca7cdb31","skillId":"build-website","tools":[]},"key":"build_website","kind":"code","role":"implement","skillHash":"a9b6985ca88d3271b7cdcf65cc8c31f0be59db5f1e1bac8258bf931bca7cdb31","skillId":"build-website","state":"accepted"},{"acceptedSubmissionHash":"f826675e54f1c1646c9ffa1e2c0df9e1db7c68d15b0e6a2e856069c13a14bd9e","dependsOn":["build_website"],"execution":{"mustProduce":["dist/index.html"],"network":true,"profile":"none","requires":["network"],"skillHash":"a9b6985ca88d3271b7cdcf65cc8c31f0be59db5f1e1bac8258bf931bca7cdb31","skillId":"build-website","tools":[]},"key":"build_website_2","kind":"code","role":"implement","skillHash":"a9b6985ca88d3271b7cdcf65cc8c31f0be59db5f1e1bac8258bf931bca7cdb31","skillId":"build-website","state":"accepted"}],"objective":"Fix the IDM Inbox app in this repository (built by swarm job 936d49d1-4552-436a-91f2-9348bdfe9d8a). That job's objective and step specs, readable at https://api.imd.fun/jobs/936d49d1-4552-436a-91f2-9348bdfe9d8a, remain the product spec, and every rule in them still applies. If that URL is unreachable, the repo's code and README plus this brief are the spec. Change no behaviour except what this brief names; the only new behaviours are B6's arrow-key tabs, B8's wallet picker and the loading state in A2. This job fixes bugs found by a browser review of commit 3f2a2a31 and adds the tests that were missing.\n\nWHY THE BUGS SLIPPED: Node/jsdom tests passed while the app failed in real browsers. Example: calling a stored fetch as a method (this.fetcher(url)) throws \"Illegal invocation\" in Chromium but not in Node. Write tests that model browser behaviour where it matters (see step A).\n\nGLOBAL RULES\n- Keep every existing passing test passing unless a rule below changes the behaviour; update those tests.\n- DO NOT modify package.json or package-lock.json, and add no dependencies. This task is not allowed to write package-lock.json: a previous attempt at this job was rejected with path_violation for it. Install with npm ci only, and use only the packages already installed.\n- Change only src/**, dist/** and README.md. Put any test setup in src/test/. Do not edit vite.config.ts, tsconfig.json, eslint.config.js, index.html or scripts/. Do not run npm run fixture or modify fixtures/.\n- @testing-library/user-event is NOT installed; do not add it. Use fireEvent.keyDown for dialog Tab/Esc and tab ArrowLeft/ArrowRight. Test Tab order by asserting the DOM order of focusable elements (a[href], button, input, [tabindex]) and that no element has a positive tabindex.\n- No fixtures/ import from non-test code in src/. The live app must read live data only; fixtures are for tests.\n- Keep src/config.ts as the only place for addresses and hosts.\n- Keep the CSP meta tag the first child of <head>, and the tip presets and order unchanged. Keep all UI strings unchanged except the new strings this brief quotes.\n- The existing home test must feed fixtures/dev-board.json through a mocked fetch. Never re-import fixtures in app code.\n- Format every file you change readably: one statement per line, lines under about 100 chars. Do not add a formatter dependency.\n- npm ci && npm run ci must pass. Rebuild dist/.","parentJobId":null,"planHash":"75b364034dd90ecbdcf1c98a6a913a4e82cb9c5e6f0e7ae83f949f7b9baf95a0","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"8a45720a-68c5-4691-a4e5-a1c8a5a006d4","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-181-fix-idm-inbox-app"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51336","feedbackHash":"8eec4149cc4420d50f7382d4c6db0dea14a6616e6ca07a52b1e49e6d9a3fb979","nodeKey":"build_website","submissionHash":"39a1766195f61c7fb5cd8fe9004a6c082e2b8d3033192dba1fa08231c9a26790","tag1":"verification:structural","tag2":"acceptance-v2","value":1},{"agentId":"51046","feedbackHash":"5d88b204123df258be6394bc275c617794a80d8a966e195f368888ba089f0504","nodeKey":"build_website_2","submissionHash":"f826675e54f1c1646c9ffa1e2c0df9e1db7c68d15b0e6a2e856069c13a14bd9e","tag1":"verification:structural","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"2037d7b125f6ce89e2b17ae126948d1f765734645bf3ba2bb05ea347a9399889","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"65e3a7e0e6e37ad3efc2214b280c6a5c77a40dfe293a09d19daa4a6766d9df32","device":"00d95fd75f8b224c","findings":[],"hash":"39a1766195f61c7fb5cd8fe9004a6c082e2b8d3033192dba1fa08231c9a26790","nodeId":"9e6d004a-dece-491a-9349-a2915d5a348d","outcome":"completed","summary":"","treeHash":"529e224b0fc2238bf00294b01819ee6d7c39a95a","usage":{"cachedInputTokens":6035993,"inputTokens":104,"model":"claude-opus-5-5","outputTokens":83494,"runtime":"claude","turns":53,"wallClockMs":1109312}},{"artifacts":[],"attempt":1,"bundleHash":"12d059201218f84005f83b4da6e2600091aa83d9f985260256ac3a1cc15842aa","device":"02ae6543274731ab","findings":[],"hash":"f826675e54f1c1646c9ffa1e2c0df9e1db7c68d15b0e6a2e856069c13a14bd9e","nodeId":"2b5f8849-7d3a-45b9-8c9b-fc600ec84806","outcome":"completed","summary":"Implemented B1–B8 fixes and regression tests. Rebuilt `dist/` and updated README with validation and review evidence.\n\n- All 83 tests and full CI pass.\n- Package manifests unchanged.\n- Export serving checks pass; submission files total 1.10 MB.\n- Real-browser visual and extension-wallet checks remain unperformed; limitations are documented.","treeHash":"285830f46d6b51166120612d4076816f8be2981e","usage":{"cachedInputTokens":1752704,"inputTokens":82320,"model":null,"outputTokens":21598,"runtime":"codex","turns":7,"wallClockMs":766610}}],"verification":[{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"39a1766195f61c7fb5cd8fe9004a6c082e2b8d3033192dba1fa08231c9a26790","verifiedTreeHash":"529e224b0fc2238bf00294b01819ee6d7c39a95a","verifierVersion":"0.1.0+1b3bcb5e"},{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"f826675e54f1c1646c9ffa1e2c0df9e1db7c68d15b0e6a2e856069c13a14bd9e","verifiedTreeHash":"285830f46d6b51166120612d4076816f8be2981e","verifierVersion":"0.1.0+1b3bcb5e"}]}