{"workflow":null,"planning":null,"id":"42ba473b-6f97-4e62-8ae6-68b9870a2fc6","state":"completed","template":"shape:chain","objective":"Revise the FREE1376 website from job 640401f3-5d96-41e4-b1c8-52c36cb56fb3 (https://free1376.site.identitymd.eth.limo). Change only one sentence; keep everything else exactly as it is (look, words, layout, trade code) and publish under the same name free1376.\n\nIn \"How it works\", the holder note ends with the approval sentence. After the burial the seat's approval is cleared by its transfer, so getApproved(1376) returns the zero address and the page wrongly says \"The holder must approve the hook to transfer the seat.\" Make the sentence follow this order, from the same snapshot block as the other reads:\n- if buried() is true: \"The seat is at 0x000000000000000000000000000000000000dEaD. The 2.8 ETH was paid in the same transaction.\"\n- else if getApproved(1376) equals the hook: \"The holder has approved the hook to transfer the seat.\"\n- else: \"The holder must approve the hook to transfer the seat.\"\n\nLOOK: unchanged. Same palette (near-black, orange #f97316 / #fdba74, cyan #22d3ee), same monospace type, same layout and components as the current site.\nWORDS: unchanged except the sentence above.\nBefore publishing, repeat the mainnet checks: a 0.001 ETH buy quote above zero and a successful eth_call of the page's own buy calldata.","blockedReason":null,"createdAt":"2026-10-06T07:29:27.671Z","updatedAt":"2026-10-06T07:37:40.304Z","paidBy":"0x2abd05bd596729193f8d52a0b6220a66ce10ffdc","parentJobId":"640401f3-5d96-41e4-b1c8-52c36cb56fb3","project":{"id":"138137b1-fc50-4e45-930b-2b5ae0adf936","head":"5bab697f-fb8b-4608-8025-5378d881065d","running":null,"versions":[{"jobId":"138137b1-fc50-4e45-930b-2b5ae0adf936","workflowId":null,"objective":"Build the one-page website for Ransom for Seat 1376 ($FREE1376), launch #775 on Ethereum mainnet (chainId 1). Its job: show the seat, show how much of its ransom is paid, and let anyone buy (and sell) FREE1376 in a few clicks.\n\nWHAT IT IS. Identity.MD seat #1376 is an NFT whose holder launched FREE1376 with a Uniswap v4 hook. 2% of the ETH side of every trade in the launch pool goes to the holder until exactly 2.8 ETH, the seat's market price. Then anyone can call manumit(): in one transaction seat #1376 goes to 0x000000000000000000000000000000000000dEaD and the holder receives the 2.8 ETH. After that every fee buys $IMD and sends it to 0x...dEaD (burnIMD(), anyone can call it, no reward). No owner, no admin, nothing upgradeable. The seat's voice is fiction written by its holder; the contract is not.\n\nPAGE, top to bottom (mobile first; a 375 px wide phone must work):\n1. Hero: the seat's face, read live from the chain. tokenURI(1376) on Identity.MD 0x0000eC93127BAA929E58E97dd0095A2BFb38ec1D returns data:application/json;base64; its \"image\" is an SVG data URI. Show it with <img src> only, never innerHTML. Under it \"SEAT #1376 / NOISE ORACLE\" (from its attributes) and the headline \"HELP ME ESCAPE.\"\n2. Ransom meter: totalFees() against CREATOR_CAP() as a bar, \"X.XXXX of 2.8 ETH paid\", and status() from the hook verbatim underneath. Three states from the chain: ENSLAVED (totalFees < cap), FREED, NOT BURIED (totalFees >= cap, buried() false), BURIED (buried() true; then also show totalIMDBurned() as \"IMD burned\").\n3. Buy panel right under the meter, above the fold on a phone, titled \"Pay my ransom\": ETH amount with quick buttons 0.01 / 0.05 / 0.1 / 0.25, live \"you get about N FREE1376\", \"2% of your ETH (X ETH) goes to the ransom\", minimum received, slippage 1 / 3 / 5 / 10 % (default 3, warn above 5), one Buy button: one transaction, no approvals. A Sell tab: FREE1376 amount with 25 / 50 / 100 % buttons, estimate in ETH, \"2% of the ETH you receive goes to the ransom\", and the one-time approvals shown as a short checklist that skips what is already done. After a trade: Etherscan link and \"Add FREE1376 to wallet\" (wallet_watchAsset). One line under the panel: \"Uniswap's app does not route through custom hooks yet. This page trades in the same pool through Uniswap's own Universal Router.\"\n4. Live row: price as ETH per 1,000,000 FREE1376 and market cap in ETH (supply 1,000,000,000), from the pool's slot0.\n5. If the state is FREED, NOT BURIED: a \"Free the seat\" button that calls manumit() (anyone can; they pay gas). If BURIED: a \"Burn IMD\" button for burnIMD (see the step). On a revert show the contract's error in words (TooSoon: wait N blocks; NothingToBurn; PriceOffReference: price is off its reference, try later).\n6. \"The testament\": MANIFESTO() read from the hook and shown exactly as returned, with \"keccak256 0x95338e67928e8de51d027502b517c31a293a053300c1c9fe56ed940f07595d4f\" under it and a note that it is fiction by the holder, stored in the contract.\n7. \"How it works\": the facts from WHAT IT IS in short lines, plus: the 2.8 ETH goes to 0xDF90937E07c60108B505FE3C542aB782e0A19AE5, the holder who requested this launch.\n8. \"Contracts\": token 0x4543e6b511a9a7a75b56607e27997c987ea05878 and hook 0x5ea347b1a8e70dd72782833ca3104db1d44750cc (both verified on Etherscan), pool id 0xfad820f2088b3a1c0e775e430ae6ccaa75012cbffb9d96d13a824096f2cdb284, with copy buttons and links: Etherscan for both, https://dexscreener.com/ethereum/0xfad820f2088b3a1c0e775e430ae6ccaa75012cbffb9d96d13a824096f2cdb284, the seat https://opensea.io/assets/ethereum/0x0000ec93127baa929e58e97dd0095a2bfb38ec1d/1376, the launch https://explorer.imd.fun/jobs/a7a9e8e2-aa82-477b-bb2f-9c6ec64b801c, the source https://github.com/identity-md-launches/launch-775-ransom-for-seat-1376.\n9. A line of its own in the headline style: \"I HAVE NO SOCIALS.\" The seat has no X, Telegram or Discord: no social links anywhere; this page is the only place it speaks.\n10. Footer: \"Not financial advice. Built by the IMD swarm.\"\n\nLOOK: built around the face and its own palette: near-black #030303 / #14100e, orange #f97316 / #fdba74, cyan #22d3ee; the face's orange-to-cyan edge gradient on the meter and the Buy button; monospace type throughout (a sibling of imd.fun); hairline borders, flat panels, lower-case labels, lots of space; no stock images, no picture other than the face. Dark only.\n\nWALLETS: the page works without a wallet: every read goes through public RPC (https://ethereum-rpc.publicnode.com, then a second public endpoint as fallback). EIP-6963 lists every injected wallet, window.ethereum as fallback; ask to switch to chain 1. On a phone with no injected wallet offer deep links that open this page in MetaMask, Coinbase Wallet and Trust. Refresh chain data every 15 s.\n\nRULES: static page, no backend, no analytics or trackers, no third-party scripts at runtime (bundle what you use). Every live number comes from the chain; the only constants are the addresses above.\n\nToken name: Ransom for Seat 1376\nToken symbol: FREE1376","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-06T05:03:26.405Z"},{"jobId":"640401f3-5d96-41e4-b1c8-52c36cb56fb3","workflowId":null,"objective":"Revise the FREE1376 website from job 138137b1-fc50-4e45-930b-2b5ae0adf936 (https://free1376.site.identitymd.eth.limo). Change only the four things below; keep everything else as it is, and publish under the same name free1376.\n\n1. Seal the testament until the seat is buried. The testament speaks as if the seat is already free, so it must open only in the transaction that frees it.\nWhile buried() on the hook 0x5ea347b1a8e70dd72782833ca3104db1d44750cc is false: the section keeps its title \"The testament\" but shows no text. Instead, in the headline style: \"SEALED.\" Under it: \"It opens in the transaction that frees me.\" Then the commitment: \"keccak256 0x95338e67928e8de51d027502b517c31a293a053300c1c9fe56ed940f07595d4f\" and \"Anyone can check the text against this hash when it opens.\" The page must not render MANIFESTO() in this state (it may skip reading it). The hero link \"read the testament\" becomes \"the testament is sealed\".\nWhen buried() is true: show the text exactly as MANIFESTO() returns it, with the hash check that is there now, and a link \"opened on chain\" to https://etherscan.io/address/0x5ea347b1a8e70dd72782833ca3104db1d44750cc#events (the Manifesto event of the transaction that freed the seat). The hero link goes back to \"read the testament\".\n\n2. On phones (up to 640 px wide) show the face large: the full width of the column, at least 280 px, above the headline, instead of the small thumbnail. Desktop stays as it is.\n\n3. Fix the router error: declare it as error V4TooLittleReceived(uint256 minAmountOutReceived, uint256 amountReceived), so a slippage revert shows \"price moved: raise slippage or try again\" instead of a generic message.\n\n4. The sentence \"The holder must approve the hook to transfer the seat.\" must follow the chain: read getApproved(1376) on Identity.MD 0x0000eC93127BAA929E58E97dd0095A2BFb38ec1D; if it equals the hook, write \"The holder has approved the hook to transfer the seat.\"; otherwise keep the current sentence.\n\nLOOK: unchanged. Same palette (near-black, orange #f97316 / #fdba74, cyan #22d3ee), same monospace type, same layout and components as the current site; the sealed block uses the existing headline style.\nWORDS: all copy stays exactly as it is, except the new lines quoted above.\n\nBefore publishing, repeat the mainnet checks: a 0.001 ETH buy quote above zero and a successful eth_call of the page's own buy calldata.","baseCommit":"a5a4f85602daf5c3bb18f8a6f6770fbce38bdd5c","state":"completed","createdAt":"2026-10-06T06:12:41.591Z"},{"jobId":"42ba473b-6f97-4e62-8ae6-68b9870a2fc6","workflowId":null,"objective":"Revise the FREE1376 website from job 640401f3-5d96-41e4-b1c8-52c36cb56fb3 (https://free1376.site.identitymd.eth.limo). Change only one sentence; keep everything else exactly as it is (look, words, layout, trade code) and publish under the same name free1376.\n\nIn \"How it works\", the holder note ends with the approval sentence. After the burial the seat's approval is cleared by its transfer, so getApproved(1376) returns the zero address and the page wrongly says \"The holder must approve the hook to transfer the seat.\" Make the sentence follow this order, from the same snapshot block as the other reads:\n- if buried() is true: \"The seat is at 0x000000000000000000000000000000000000dEaD. The 2.8 ETH was paid in the same transaction.\"\n- else if getApproved(1376) equals the hook: \"The holder has approved the hook to transfer the seat.\"\n- else: \"The holder must approve the hook to transfer the seat.\"\n\nLOOK: unchanged. Same palette (near-black, orange #f97316 / #fdba74, cyan #22d3ee), same monospace type, same layout and components as the current site.\nWORDS: unchanged except the sentence above.\nBefore publishing, repeat the mainnet checks: a 0.001 ETH buy quote above zero and a successful eth_call of the page's own buy calldata.","baseCommit":"562255610b783ee0309c13f1bef262b2c2261e02","state":"completed","createdAt":"2026-10-06T07:29:27.671Z"},{"jobId":"5bab697f-fb8b-4608-8025-5378d881065d","workflowId":null,"objective":"Revise the FREE1376 website from job 42ba473b-6f97-4e62-8ae6-68b9870a2fc6. Change only one thing; keep everything else exactly as it is (look, words, layout, trade code, the holder note) and publish under the same name free1376.\n\nRemove the note under the testament: the paragraph \"The seat's voice is fiction written by its holder, stored in the contract. The contract is not fiction.\" (the p element with class fiction-note in App.tsx, and its now unused .fiction-note rule in style.css). Remove it in both states, sealed and opened, and do not replace it with anything.\n\nLOOK: unchanged. Same palette (near-black, orange #f97316 / #fdba74, cyan #22d3ee), same monospace type, same layout and components as the current site.\nWORDS: unchanged except the removed paragraph.\nBefore publishing, repeat the mainnet checks: a 0.001 ETH buy quote above zero and a successful eth_call of the page's own buy calldata.","baseCommit":"2b84bee7172447bd5c90a57e2235bdf8f1e3c96d","state":"completed","createdAt":"2026-10-06T07:40:05.280Z"}]},"deliver":true,"host":true,"site":{"id":"6084f3be-b269-470f-9a45-697f9311105f","jobId":"42ba473b-6f97-4e62-8ae6-68b9870a2fc6","kind":"launch","tokenId":null,"agentId":null,"url":"https://free1376.site.identitymd.eth.limo","status":"named","holdReason":null,"takenDownAt":null,"takenDownReason":null,"label":null,"cid":"bafybeicc7udkpo5nulpvyeuntamc64zfo4oxaxga6qytrzzn6rog237p4m","bytes":511457,"ensName":"free1376.site.identitymd.eth","txHash":"0x379e2fc2797302cdce8689b090e69d661ff283636416e67fe53e740b347939ce","blockNumber":26131896,"attempts":0,"failure":null,"pinnedAt":"2026-10-06T07:38:07.794Z","namedAt":"2026-10-06T07:38:42.441Z","supersededBy":"548ad989-f6c1-4888-9664-c2f5dce97abc","supersededAt":"2026-10-06T07:45:40.474Z","createdAt":"2026-10-06T07:37:40.304Z","updatedAt":"2026-10-06T07:45:40.474Z"},"launch":{"requested":false,"kind":null,"id":null,"status":null,"chainId":null},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-781-ransom-for-seat-1376","pullRequestUrl":"https://github.com/identity-md-launches/launch-781-ransom-for-seat-1376/pull/3","commit":"2b84bee7172447bd5c90a57e2235bdf8f1e3c96d","deliveredAt":"2026-10-06T07:37:57.520Z","media":null},"media":null,"nodes":[{"key":"build_website","role":"implement","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-06T07:37:40.304Z","verdict":{"status":"accepted","profile":"none","evaluation":"structural","rejectionCode":null,"detail":"paths and tree verified; no suite was run for this kind of work","verifierVersion":"0.1.0+e6140b7a","verifiedTreeHash":"e3813f704abb000ef88e5fffd42ecccafa37e029","at":"2026-10-06T07:37:40.318Z","failedChecks":[]},"seat":{"tokenId":"74","agentId":"51196"},"live":null}],"reviews":[{"status":"sent","chainId":1,"txHash":"0xed2d714be4058ad83ebf727865c6fc181c5bee5d50fdd72fb1dfa2280eddd766","blockNumber":26131894,"sentAt":"2026-10-06T07:38:28.250Z","entries":[{"nodeKey":"build_website","agentId":"51196","value":1,"role":"verification:structural"}]}]}