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.
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.
Share auto-import planning between preview and write paths, expose a machine-readable CLI result envelope, and preserve explicit parser options during analysis.
Route Desktop JSON dry-runs through a shared read-only push analyzer so validation, deduplication, and member inference match actual writes. Keep JSONL on the file analyzer path and cover new and incremental predictions without database mutations.
Use the long-running worker timeout and refresh Desktop caches after successful push imports.
Align auto-created member metadata and counts across initial and incremental imports, exclude SYSTEM from member updates, and keep existing-session writes validated and atomic.
Remove persisted annual summary snapshots whenever a session is deleted through shared or desktop cleanup paths. Drop cached in-memory snapshots when their backing files disappear so stale responses cannot expose deleted session data.
An ambient npm_config_runtime=electron (common in Electron dev shells
and CI) makes bare prebuild-install "succeed" with an Electron-ABI
binding, bypassing the source-build fallbacks and leaving the CLI
unable to start. Pin -r node -t to the current system Node instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
prebuild-install was invoked with -r napi, but better-sqlite3 only
publishes per-ABI node/electron prebuilds, so the download branch always
failed and every run fell back to a ~1.5min node-gyp source build.
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid switching legacy DELETE-journal session databases to WAL from readonly validation paths. This prevents sync existence checks from treating valid databases as unreadable and deleting them.