Desktop (Tauri) / Tauri desktop (Linux) (push) Failing after 24s
The on-device core that makes the desktop app work with no server and no login. - rusqlite (bundled SQLite, so no system libsqlite dependency to vary across builds); uuid v4 ids; RFC3339/Date.toISOString-compatible timestamps. - Schema mirroring the note model: notes, labels, note_labels (with via_tag), checklist_items, attachments, link_previews, note_revisions, saved_filters, plus per-row sync_revision/dirty + a sync_state row for the M10.7 engine. user_version-gated migrations. - derive.rs: pure [[wiki-link]] + #tag scanners (mirror the frontend inline rules, no regex dep) with unit tests; #tags re-sync via_tag labels on save, [[links]] drive backlinks at query time (derived, never stored). - store.rs: the full repository surface (facet/label/date/text list, create, PATCH-semantics update, pin/archive/color/kind, checklist items, labels CRUD + merge, reminders complete/snooze, reorder, trash/restore/delete, revisions + restore, titles/search/backlinks/link-search, saved filters). - commands.rs: ~38 #[tauri::command]s over a Mutex<Connection> in managed state. - lib.rs: opens the DB in the platform app-data dir on setup; synthetic offline config/user so the auth-gated router resolves with no login. Attachment upload / URL unfurl / import are intentionally deferred (network/file concerns); adapters/local.ts (M10.5) wires all of the above via invoke. Task 1993. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FRgehjoz7Yv8LkUfADxACm
35 lines
1.2 KiB
TOML
35 lines
1.2 KiB
TOML
[package]
|
|
name = "thoughtsync-desktop"
|
|
version = "0.1.0"
|
|
description = "ThoughtSync desktop — local-first Keep-style thought capture"
|
|
authors = ["bvandeusen"]
|
|
edition = "2021"
|
|
|
|
# App logic lives in the library (Tauri v2 pattern: a single `run()` entry point
|
|
# reusable across desktop and any future mobile target); main.rs is a thin shim.
|
|
[lib]
|
|
name = "thoughtsync_desktop_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = [] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
# Local-first store (M10.4): bundled = compile SQLite in, so there's no system
|
|
# libsqlite dependency to vary across the AppImage / native / Windows builds.
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
uuid = { version = "1", features = ["v4"] }
|
|
# RFC3339 timestamps for created_at/updated_at/remind_at (Date.parse-able on the JS side).
|
|
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
|
|
|
# Tauri's default release profile: smaller, faster shipped binaries.
|
|
[profile.release]
|
|
codegen-units = 1
|
|
lto = true
|
|
opt-level = "s"
|
|
panic = "abort"
|
|
strip = true
|