Emit explicit members before the first streamed message batch so merge previews do not retain metadata-free member stubs. Add parser ordering and temporary database regression coverage.
Clarify that skipped files can leave unique data on either side, so cleanup records intentionally remain unchanged and deletion performs the final active-path safety check.
A retried migration can skip stale files already copied to the target. Keep the source directory outside manual cleanup whenever any files were skipped so newer source data cannot be deleted.
Show the pending cleanup notice in CLI Web after initialization while excluding the browser-only runtime.\n\nStub config persistence in the cleanup test so it cannot overwrite the user's real data directory settings.
Keep the renderer fail-closed until lock state is known, use native modal dialogs without unmounting business state, and coordinate overlapping dialogs while locked. Isolate desktop E2E data from real user settings and keep startup migration inspection read-only.
Persist failed unlock attempts in the lock flag so restarting the desktop app cannot reset the limit. Block further attempts for 30 seconds after five failures and surface the remaining cooldown on the lock screen.
Load standalone CLI assistant configs through the shared manager so fresh data directories receive locale defaults. Back up custom assistants that occupy newly reserved default IDs before installing canonical templates.
Let status-coded 4xx errors reach the shared Fastify handler so missing sessions remain distinguishable from transaction failures. Add regression coverage for the missing-session response.
Normalize member responses from both database and Desktop providers so the public REST endpoint keeps its legacy name field while retaining the newer detailed fields.
Document the single-OS-user product boundary beside the default private temp root so future reviews do not treat unsupported multi-UID sharing as a regression.
Add an exact Vite alias before the workspace catch-all so Electron main-process imports resolve the exported temp-workspace source instead of a nonexistent package-root path.