Skip to content

Don't flash startup sync races as a Sync issue - #6983

Merged
ComputelessComputer merged 4 commits into
mainfrom
cursor/quiet-startup-sync-flicker-e95e
Aug 21, 2026
Merged

Don't flash startup sync races as a Sync issue#6983
ComputelessComputer merged 4 commits into
mainfrom
cursor/quiet-startup-sync-flicker-e95e

Conversation

@ComputelessComputer

@ComputelessComputer ComputelessComputer commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

The first cloud handshake can miss with a SQLite Cloud 404 (managed database not found) and recover on the next try. That was classified as fatal, so the status chip went yellow and the popover dumped the raw sqlx JSON — then flipped to Synced a moment later.

That is not a terminal failure. It should not make people think their notes are at risk.

Approach

  • Retry the handshake. Treat 404 / not_found the same way we already treat 409 / already_exists: transient, not fatal. The background loop keeps retrying instead of stopping.
  • Hold the warning. One or two retryable misses stay on Connecting / Syncing (or the last good Synced state). The yellow "Sync issue" chip only appears after three consecutive failures, or if sync actually stops.
  • Never dump backend errors. Auth and stopped-sync copy is user-facing. Raw sqlx / JSON never goes in the indicator or Sync settings summary.

Real problems still surface: sign-in required, sync stopped, or retries that keep failing.

Cleanup

The unused Hyprnote v0 libsql parser (legacy/) and its importer path are gone. That code was already compiled out of the shipping desktop app (default-features = false) and was easy to confuse with live SQLite Cloud sync. TinyBase vault import in plugins/db is unchanged.

Validation

  • cargo test --locked -p cloudsync
  • cargo test --locked -p db-core 'cloudsync::'
  • cargo test --locked for agent-access, db-app, db-core, db-migrate, tiptap
  • cargo clippy --locked for those same crates (-D warnings)
  • pnpm -F desktop test src/main/sync-status.test.tsx src/settings/sync/index.test.tsx
  • pnpm -F desktop typecheck
  • pnpm -F @anlg/plugin-importer typecheck
  • pnpm exec oxlint --quiet --format=github apps/desktop/src/
  • Regenerated apps/desktop/src/i18n/locales after the sync-copy change (lingui extract --clean + compile --strict)
  • dprint on the changed files

Skipped locally: cargo check -p desktop / cargo test -p tauri-plugin-importer export_types (GTK pkg-config missing on this Linux image) and cargo test -p anarlog-cli (OpenSSL pkg-config missing).

Open in Web Open in Cursor 

Treat Turso 404 "managed database not found" as a retryable handshake miss, keep the indicator on Connecting/Syncing until failures persist, and never dump raw sqlx/JSON into the status popover.

Co-authored-by: John Jeong <ComputelessComputer@users.noreply.github.com>
@netlify

netlify Bot commented Aug 21, 2026

Copy link
Copy Markdown

Deploy Preview for anarlog ready!

Name Link
🔨 Latest commit 10de5e0
🔍 Latest deploy log https://app.netlify.com/projects/anarlog/deploys/6a87b881d21c5d0008794409
😎 Deploy Preview https://deploy-preview-6983--anarlog.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

cursoragent and others added 3 commits August 21, 2026 01:39
The 404 handshake miss comes from sqlite-sync / SQLite Cloud. libsql is only on the legacy parser path.

Co-authored-by: John Jeong <ComputelessComputer@users.noreply.github.com>
Delete the unused `legacy/` libsql crates and the Hyprnote v0 importer path that was already compiled out of the shipping desktop app. Live cloud sync remains SQLite Cloud; TinyBase vault import in plugins/db is unchanged.

Co-authored-by: John Jeong <ComputelessComputer@users.noreply.github.com>
Remove the unused "Anarlog will keep retrying" string and record the new settings origin for the reauth copy so desktop_i18n stays in sync.

Co-authored-by: John Jeong <ComputelessComputer@users.noreply.github.com>
@ComputelessComputer
ComputelessComputer marked this pull request as ready for review August 21, 2026 02:33
@ComputelessComputer
ComputelessComputer merged commit a0bb2be into main Aug 21, 2026
18 checks passed
cursor Bot pushed a commit that referenced this pull request Aug 21, 2026
Resolve i18n catalog conflicts from #6983 by compiling from the merged .po files.

Co-authored-by: John Jeong <ComputelessComputer@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants