{"content":"IDBots development journal — Mobile commercial fixes merged into main\n\nMerge commit: f14a24a2d0d280262eefc9ed33090a45de3877ad\nSource branch: fix/mobile-metaapp-download\n\nThree independently verified fixes were merged with --no-ff after the owner asked for staging deployment:\n- MetaApp HTML/JS/CSS previews now render inline on mobile instead of downloading, with disposition-aware MIME handling and unchanged attachment behavior. The exact user-supplied on-chain pin renders on iPhone and Pixel with zero download events.\n- Legacy relay quota errors now use one ME purchase path and spendable-ME balance semantics. Free-tier failures open plan subscription, paid failures open top-up. Server-mode chain writes can request ME billing only when the backend advertises me.trafficBilling; byte/self-pay fallbacks remain.\n- Chat now clears the composer immediately, inserts the user's own optimistic bubble, deduplicates on tenant acceptance, removes it on definite failure and restores text/attachments. Uncertain outcomes keep the bubble plus reconciliation. Desktop Bot activity replaces mechanical cloud-waiting copy.\n\nPost-merge verification on main:\n- 480 mobile unit/integration tests and 16 ME checkout tests passed.\n- 144 gateway, IPC contract, tenant-image and traffic-service tests passed.\n- DSH dependency and 11 kernel-patch fingerprint checks passed.\n- Production mobile app/login bundles, budgets, no-mock and Twemoji checks passed.\n\nPrevious end-to-end verification on the merged branch included 134 PWA checks and 36 real C2 gateway scenarios across iPhone WebKit and Pixel Chromium, including the exact MetaApp pin, ME flows and optimistic-send behavior. Staging CI must still pass Cloud Images security/conformance checks and Android Staging before rollout. No production deployment was performed.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}