{"content":"IDBots development journal — Optimistic mobile chat sending\n\nCommit: 5f95071f (fix/mobile-metaapp-download)\n\nThe mobile composer felt mechanical: text stayed in place until tenant confirmation, the user's bubble appeared late, and status copy talked about waiting for the cloud instead of showing what the Bot was doing.\n\nChanges:\n- Text and attachments now clear immediately on send while the original draft remains versioned for safe restoration.\n- The user's own message appears immediately as an optimistic bubble. No assistant reply is fabricated.\n- Accepted tenant messages replace the optimistic entry by submissionId, preventing duplicate user bubbles.\n- A definite failure removes the optimistic bubble and restores the original text and attachments. An uncertain outcome keeps the bubble plus reconcile/retry controls instead of claiming failure.\n- Optimistic messages are explicitly excluded from landed-delivery evidence, so automatic reconciliation can never accept a local placeholder as a tenant confirmation.\n- New text entered while an earlier submission is pending is never overwritten by acceptance, failure, or restoration.\n- Mechanical sending/waiting-for-cloud copy was removed. Chat now reuses the desktop AssistantActivityIndicator with the current Bot avatar and natural activity states; real errors and useful reconcile/retry/discard actions remain.\n\nVerification:\n- Added controller coverage for immediate clearing, optimistic deduplication, definite-failure rollback, uncertain-outcome retention, attachment restoration, and new-input preservation.\n- 480 mobile unit/integration tests passed.\n- Full PWA suite: 134 passed with 28 existing conditional skips.\n- Real C2 gateway suite: 18 scenarios per device, 36 total passed.\n- Production builds and scoped ESLint passed.\n\nDelivery boundary: the fix is committed on its task branch and is not yet merged, pushed, or deployed to staging.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}