After prompting an agent, no response was received and only a spinner was shown. After updating and reopening Zed, the thread still appeared in the sidebar but failed to restore with `Failed to Launch` / `no thread found with ID: SessionId(...)`, and the original prompt was lost. ## Root cause A native agent thread is tracked by two independent persistence layers: - **Sidebar metadata** (`ThreadMetadataStore`) and the **serialized agent panel** record the thread's `session_id` through fast, separate write paths. - **Thread content** (`ThreadsDatabase`) is written by a per-session async task (`NativeAgent::save_thread`) that can still be in flight when the process exits. When a graceful quit or update restart raced that async content save, the metadata/serialized session id was persisted but the content row was not. On restore, the metadata gate passes, then `load_thread` finds no content row and hard-fails with `no thread found with ID`. ## Fix Register an `on_app_quit` handler on `NativeAgent` that synchronously commits every newly created non-empty thread's content to `ThreadsDatabase` during shutdown, keeping the two stores consistent across a graceful quit/restart (the auto-updater's path). Closes AI-374 Release Notes: - Fixed agent threads failing to restore after quitting or updating Zed while a response was still in progress
1 file changedLine totals unavailable