9e1b1d7536
Complements the #65637 salvage (53d358838+a9cc17fd8): the gateway session store now retries transcript appends through its own queue, but cron and CLI writers call SessionDB directly — a corrupt FTS index still hard-failed their appends until the next process restart triggered the offline repair. _execute_write now detects the FTS-corruption error class (both the generic 'database disk image is malformed' and newer SQLite's 'fts5: corrupt structure record' variant), performs a one-shot in-place rebuild by delegating to the existing rebuild_fts(), and retries the failed write. One-shot per instance so an unrecoverable database cannot loop; lock/busy jitter-retry path untouched. E2E-verified: corrupted messages_fts_data rejects appends; with this fix the same append self-heals, persists, and FTS search works again.