latticesql 4.2.2 → 4.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,75 @@
1
+ # Lattice Desktop app
2
+
3
+ A downloadable, double-click desktop build of the Lattice GUI — no terminal, no
4
+ `npm install`. It runs the **exact same** GUI server as `lattice gui`, served into
5
+ a native window, so there is only one GUI to maintain.
6
+
7
+ ## Install
8
+
9
+ Download the installer for your OS from **[latticesql.com/install](https://latticesql.com/install)**:
10
+
11
+ - **macOS** — `Lattice.dmg` (Apple silicon + Intel)
12
+ - **Windows** — `Lattice.msi`
13
+
14
+ The CLI path keeps working unchanged: `npm i -g latticesql && lattice gui`.
15
+
16
+ > **Unsigned builds (current):** the v1 installers are not yet code-signed, so the
17
+ > first launch shows an "unidentified developer" (macOS Gatekeeper) or "unknown
18
+ > publisher" (Windows SmartScreen) prompt. Choose **Open anyway** / **Run anyway**.
19
+ > Signed builds remove this step.
20
+
21
+ ## How it works
22
+
23
+ The desktop app is built with [`deno desktop`](https://docs.deno.com/runtime/desktop/).
24
+ It boots the standard `startGuiServer()` on a local port and points a native
25
+ webview window at it — the webview talks to the local server exactly like a
26
+ browser tab.
27
+
28
+ - **Same version as the web GUI.** The app and its installer report the same
29
+ `latticesql` version the web GUI shows (one build constant; `deno.json`'s
30
+ version is kept in lockstep with `package.json` by `scripts/sync-desktop-version.mjs`).
31
+ - **SQLite without native addons.** `better-sqlite3` is a native N-API addon that
32
+ cannot load under Deno, so the desktop build uses [`DenoSqliteAdapter`](../src/db/sqlite-deno.ts),
33
+ a drop-in adapter over the runtime's built-in `node:sqlite` `DatabaseSync`. The
34
+ npm/Node distribution is unchanged and still uses `better-sqlite3`.
35
+ - **External links open in your browser.** A webview has no tabs/popups, so the
36
+ desktop shell routes `target="_blank"` links and `window.open()` to the system
37
+ default browser. "Connect with Claude" opens the provider page in your browser
38
+ while keeping the auth session local to the app.
39
+ - **Upgrade-on-run.** On launch the app checks the release channel via
40
+ `Deno.autoUpdate()` and the `latest.json` manifest published with each release.
41
+ - **Upgrade-on-install.** The download page always links the latest release, so a
42
+ fresh install is always current.
43
+
44
+ ## Build from source
45
+
46
+ Requires a Deno **canary** build (`deno desktop` is canary-only for now):
47
+
48
+ ```bash
49
+ deno upgrade canary
50
+ npm ci
51
+
52
+ # macOS .dmg → dist-desktop/Lattice.dmg
53
+ npm run desktop:build:mac
54
+
55
+ # Windows .msi → dist-desktop/Lattice.msi
56
+ npm run desktop:build:win
57
+
58
+ # Run the windowed app directly during development
59
+ npm run desktop:dev
60
+ ```
61
+
62
+ The app identity (name, bundle id, per-platform icons, update base URL) lives in
63
+ [`deno.json`](../deno.json) under the `desktop` key.
64
+
65
+ Releases are cut by the `Desktop Release` workflow on a `v*` tag: it builds both
66
+ OSes, generates `latest.json`, and uploads the installers + manifest to the
67
+ GitHub Release.
68
+
69
+ ## Limitations
70
+
71
+ - **Image processing (`sharp`) and `sqlite-vec` acceleration are unavailable** in
72
+ the desktop build — both are native addons that do not load under Deno. Vector
73
+ search falls back to an in-process scan; image-dependent features are disabled.
74
+ Use the npm/Node build if you need them.
75
+ - The build is large (it embeds its runtime + dependencies) and currently unsigned.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latticesql",
3
- "version": "4.2.2",
3
+ "version": "4.2.4",
4
4
  "description": "Persistent structured memory for AI agent systems — pluggable SQLite or Postgres backend, LLM context bridge",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -44,6 +44,11 @@
44
44
  "test:coverage": "vitest run --coverage",
45
45
  "test:e2e": "playwright test",
46
46
  "docs": "typedoc --out docs-generated src/index.ts",
47
+ "desktop:version:check": "node scripts/sync-desktop-version.mjs --check",
48
+ "test:deno": "deno test --no-check -A tests/deno/",
49
+ "desktop:dev": "npm run build && node scripts/sync-desktop-version.mjs && deno desktop --no-check --allow-all desktop/main.ts",
50
+ "desktop:build:mac": "npm run build && node scripts/sync-desktop-version.mjs && deno desktop --no-check --allow-env --allow-read --allow-write --allow-net --allow-run --allow-sys --allow-ffi --output dist-desktop/Lattice.dmg desktop/main.ts",
51
+ "desktop:build:win": "npm run build && node scripts/sync-desktop-version.mjs && deno desktop --no-check --allow-env --allow-read --allow-write --allow-net --allow-run --allow-sys --allow-ffi --output dist-desktop/Lattice.msi desktop/main.ts",
47
52
  "prepublishOnly": "npm run check:generic && npm run build && npm run typecheck && npm test"
48
53
  },
49
54
  "dependencies": {