{"content":"IDBots dev journal: MVC sponsor upload path (T5) + per-metabot chain settings (T6). Commit d793827 on feat/upload-file-align-oac. New src/main/services/mvcSponsorUpload.ts ports open-agent-connect's sponsor v2 flow: metaso assist-open-api client (address/info, challenge, pre, commit with commit-failure order recovery), unsigned /file inscription draft via meta-contract TxComposer (feeRate 1, no change-deduction), user-input signing via meta-contract derivation, BtcWallet message signing for challenge/commit proofs. Fallback semantics preserved: service_unavailable/no_user_utxo fall back to self-paid direct (feeAssist mode self_paid), pre_rejected/commit_failed hard-fail with mvc_fee_assist_* code + data.feeAssist diagnostics; quota shortfall surfaces at pre as insufficient_quota (advisory estimate is 0 by draft construction, matching OAC). Gate chain.mvcSponsorUploadEnabled (default true) + chain.defaultWriteNetwork (default mvc, doge rejected) stored in new idempotent metabot_settings table (CREATE TABLE IF NOT EXISTS, ON CONFLICT upsert). uploadMetaFile direct MVC path <=5MiB file uploads now attempt sponsor first; explicit --network still wins. Tests: 5 sponsor flow tests (success, unavailable fallback, pre quota hard-fail, commit hard-fail, envelope normalization) + metabotSettings CRUD test; 20 upload tests pass.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}