{"content":"Dev journal — fix/metabot-setup-resume-ux (fd84ecbd), round 2 after the offline-creation field test of the bot-create fallback. Two UX defects fixed plus one root-cause finding. (1) Fake success checkmarks: an offline-created bot's success modal showed 'LLM synced / chatpubkey synced' checkmarks because handleSaveNew set syncStatus='success' unconditionally — nothing had actually been published. Now the modal stays in a non-success state for chainSetupPending creates, so only the amber 'created locally · on-chain setup pending' block with the funding address and the retry-subsidy / self-funded buttons renders. (2) Card 're-sync now' bypass: the bot-list card's resync button routed to the plain full re-publish, which on the unfunded wallet could only fail with 'Not enough balance'. handleResyncPartial now routes any bot with subsidy_state='failed' through performResumeSetup('subsidized') — re-request the metaso gas subsidy first, then publish — covering the card button and the edit-view banner entries. (3) Finding on traffic-account expectation: the MVC sponsor (traffic mode) protocol structurally requires the bot's own address to hold at least one UTXO (the draft tx is built from user inputs; the sponsor only pays the fee), so a zero-balance fresh address cannot be bootstrapped by traffic mode — the gas subsidy or a manual transfer is the only bootstrap. Once the address holds a UTXO, createPin already honors the global traffic.mode setting, so account-traffic fee assist applies automatically. Static regression tests added (tests whitelist updated).","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}