ltcai 4.0.1 → 4.1.0
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.
- package/README.md +28 -23
- package/desktop/electron/main.cjs +44 -0
- package/docs/CHANGELOG.md +42 -0
- package/docs/V4_1_FRONTEND_ARCHITECTURE_REVIEW.md +65 -0
- package/docs/V4_1_FRONTEND_MIGRATION_REPORT.md +70 -0
- package/docs/V4_1_VALIDATION_REPORT.md +47 -0
- package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +26 -19
- package/frontend/index.html +24 -0
- package/frontend/openapi.json +14190 -0
- package/frontend/src/App.tsx +184 -0
- package/frontend/src/api/client.ts +317 -0
- package/frontend/src/api/openapi.ts +16637 -0
- package/frontend/src/components/primitives.tsx +204 -0
- package/frontend/src/components/ui/badge.tsx +27 -0
- package/frontend/src/components/ui/button.tsx +37 -0
- package/frontend/src/components/ui/card.tsx +22 -0
- package/frontend/src/components/ui/input.tsx +16 -0
- package/frontend/src/components/ui/textarea.tsx +16 -0
- package/frontend/src/lib/utils.ts +33 -0
- package/frontend/src/main.tsx +23 -0
- package/frontend/src/pages/Act.tsx +245 -0
- package/frontend/src/pages/Ask.tsx +200 -0
- package/frontend/src/pages/Brain.tsx +267 -0
- package/frontend/src/pages/Capture.tsx +158 -0
- package/frontend/src/pages/Library.tsx +187 -0
- package/frontend/src/pages/System.tsx +344 -0
- package/frontend/src/routes.ts +85 -0
- package/frontend/src/store/appStore.ts +54 -0
- package/frontend/src/styles.css +107 -0
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/setup.py +5 -4
- package/latticeai/api/static_routes.py +4 -4
- package/latticeai/core/marketplace.py +1 -1
- package/latticeai/core/multi_agent.py +1 -1
- package/latticeai/core/workspace_os.py +1 -1
- package/package.json +54 -15
- package/scripts/build_frontend_assets.mjs +38 -0
- package/scripts/bump_version.py +1 -1
- package/scripts/export_openapi.py +31 -0
- package/scripts/lint_frontend.mjs +86 -0
- package/scripts/run_python.mjs +47 -0
- package/src-tauri/Cargo.lock +4833 -0
- package/src-tauri/Cargo.toml +19 -0
- package/src-tauri/build.rs +3 -0
- package/src-tauri/capabilities/default.json +7 -0
- package/src-tauri/src/main.rs +78 -0
- package/src-tauri/tauri.conf.json +36 -0
- package/static/app/asset-manifest.json +32 -0
- package/static/app/assets/core-CwxXejkd.js +2 -0
- package/static/app/assets/core-CwxXejkd.js.map +1 -0
- package/static/app/assets/index-CJRAzNnf.js +333 -0
- package/static/app/assets/index-CJRAzNnf.js.map +1 -0
- package/static/app/assets/index-CSwBBgf4.css +2 -0
- package/static/app/index.html +25 -0
- package/static/manifest.json +2 -2
- package/static/sw.js +4 -4
- package/scripts/build_v3_assets.mjs +0 -170
- package/scripts/lint_v3.mjs +0 -120
- package/static/v3/asset-manifest.json +0 -63
- package/static/v3/css/lattice.base.49deefb5.css +0 -128
- package/static/v3/css/lattice.base.css +0 -128
- package/static/v3/css/lattice.components.cde18231.css +0 -472
- package/static/v3/css/lattice.components.css +0 -472
- package/static/v3/css/lattice.shell.29d36d85.css +0 -452
- package/static/v3/css/lattice.shell.css +0 -452
- package/static/v3/css/lattice.tokens.304cbc40.css +0 -135
- package/static/v3/css/lattice.tokens.css +0 -135
- package/static/v3/css/lattice.views.0a18b6c5.css +0 -360
- package/static/v3/css/lattice.views.css +0 -360
- package/static/v3/index.html +0 -68
- package/static/v3/js/app.c5c80c46.js +0 -26
- package/static/v3/js/app.js +0 -26
- package/static/v3/js/core/api.ba0fbf14.js +0 -625
- package/static/v3/js/core/api.js +0 -625
- package/static/v3/js/core/components.f25b3b93.js +0 -230
- package/static/v3/js/core/components.js +0 -230
- package/static/v3/js/core/dom.a2773eb0.js +0 -148
- package/static/v3/js/core/dom.js +0 -148
- package/static/v3/js/core/i18n.880e1fec.js +0 -575
- package/static/v3/js/core/i18n.js +0 -575
- package/static/v3/js/core/router.584570f2.js +0 -37
- package/static/v3/js/core/router.js +0 -37
- package/static/v3/js/core/routes.37522821.js +0 -101
- package/static/v3/js/core/routes.js +0 -101
- package/static/v3/js/core/shell.e3f6bbfa.js +0 -420
- package/static/v3/js/core/shell.js +0 -420
- package/static/v3/js/core/store.7b2aa044.js +0 -123
- package/static/v3/js/core/store.js +0 -123
- package/static/v3/js/views/account.eff40715.js +0 -143
- package/static/v3/js/views/account.js +0 -143
- package/static/v3/js/views/activity.0d271ef9.js +0 -67
- package/static/v3/js/views/activity.js +0 -67
- package/static/v3/js/views/admin-audit.660a1fb1.js +0 -185
- package/static/v3/js/views/admin-audit.js +0 -185
- package/static/v3/js/views/admin-permissions.a7ae5f09.js +0 -177
- package/static/v3/js/views/admin-permissions.js +0 -177
- package/static/v3/js/views/admin-policies.3658fd86.js +0 -102
- package/static/v3/js/views/admin-policies.js +0 -102
- package/static/v3/js/views/admin-private-vpc.7d342d36.js +0 -135
- package/static/v3/js/views/admin-private-vpc.js +0 -135
- package/static/v3/js/views/admin-security.07c66b72.js +0 -180
- package/static/v3/js/views/admin-security.js +0 -180
- package/static/v3/js/views/admin-users.f7ac7b43.js +0 -166
- package/static/v3/js/views/admin-users.js +0 -166
- package/static/v3/js/views/agents.17c5288d.js +0 -564
- package/static/v3/js/views/agents.js +0 -564
- package/static/v3/js/views/chat.e250e2cc.js +0 -624
- package/static/v3/js/views/chat.js +0 -624
- package/static/v3/js/views/files.adad14c1.js +0 -365
- package/static/v3/js/views/files.js +0 -365
- package/static/v3/js/views/graph-canvas.17c15d65.js +0 -509
- package/static/v3/js/views/graph-canvas.js +0 -509
- package/static/v3/js/views/home.24f8b8ae.js +0 -200
- package/static/v3/js/views/home.js +0 -200
- package/static/v3/js/views/hooks.37895880.js +0 -220
- package/static/v3/js/views/hooks.js +0 -220
- package/static/v3/js/views/hybrid-search.2fb63ed9.js +0 -194
- package/static/v3/js/views/hybrid-search.js +0 -194
- package/static/v3/js/views/knowledge-graph.4d09c537.js +0 -529
- package/static/v3/js/views/knowledge-graph.js +0 -529
- package/static/v3/js/views/marketplace.ab0583d4.js +0 -141
- package/static/v3/js/views/marketplace.js +0 -141
- package/static/v3/js/views/mcp.99b5c6a7.js +0 -114
- package/static/v3/js/views/mcp.js +0 -114
- package/static/v3/js/views/memory.4ebdf474.js +0 -147
- package/static/v3/js/views/memory.js +0 -147
- package/static/v3/js/views/models.a1ffa147.js +0 -256
- package/static/v3/js/views/models.js +0 -256
- package/static/v3/js/views/my-computer.d9d9ae1c.js +0 -463
- package/static/v3/js/views/my-computer.js +0 -463
- package/static/v3/js/views/network.52a4f181.js +0 -97
- package/static/v3/js/views/network.js +0 -97
- package/static/v3/js/views/pipeline.c522f1ce.js +0 -157
- package/static/v3/js/views/pipeline.js +0 -157
- package/static/v3/js/views/planning.4876fd77.js +0 -174
- package/static/v3/js/views/planning.js +0 -174
- package/static/v3/js/views/runs.b63b2afa.js +0 -144
- package/static/v3/js/views/runs.js +0 -144
- package/static/v3/js/views/settings.b7140634.js +0 -317
- package/static/v3/js/views/settings.js +0 -317
- package/static/v3/js/views/skills.c6c2f965.js +0 -109
- package/static/v3/js/views/skills.js +0 -109
- package/static/v3/js/views/snapshots.6f5db095.js +0 -135
- package/static/v3/js/views/snapshots.js +0 -135
- package/static/v3/js/views/tools.e4f11276.js +0 -108
- package/static/v3/js/views/tools.js +0 -108
- package/static/v3/js/views/workflows.7752225a.js +0 -213
- package/static/v3/js/views/workflows.js +0 -213
- package/static/v3/js/views/workspace-admin.c466029b.js +0 -156
- package/static/v3/js/views/workspace-admin.js +0 -156
package/README.md
CHANGED
|
@@ -203,34 +203,34 @@ npm run dev
|
|
|
203
203
|
|
|
204
204
|
## Latest Release
|
|
205
205
|
|
|
206
|
-
### v4.0
|
|
207
|
-
|
|
208
|
-
- **
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
-
|
|
222
|
-
|
|
223
|
-
- **
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
See [RELEASE_NOTES_v4.0.
|
|
206
|
+
### v4.1.0 RC — Frontend & Desktop Rebuild
|
|
207
|
+
|
|
208
|
+
- **React desktop SPA** — `/app` is now a React + TypeScript + Vite application
|
|
209
|
+
with TanStack Query, Zustand, React Flow, Cytoscape.js, Tailwind CSS, and
|
|
210
|
+
local shadcn-style primitives.
|
|
211
|
+
- **Generated API client** — frontend JSON calls consume the existing FastAPI
|
|
212
|
+
contract through a generated OpenAPI TypeScript client; streaming chat and
|
|
213
|
+
multipart upload remain honest fetch special cases.
|
|
214
|
+
- **Tauri-first desktop shell** — Tauri 2.0 is the primary desktop target,
|
|
215
|
+
launching the local backend by default; Electron is retained as a fallback
|
|
216
|
+
shell only.
|
|
217
|
+
- **Graph-first navigation** — the primary surfaces are Brain, Ask, Capture,
|
|
218
|
+
Act, Library, and System, with old `/app#...` routes mapped into the new
|
|
219
|
+
capability groups.
|
|
220
|
+
- **No CDN / offline-capable** — shipped app assets are built into
|
|
221
|
+
`static/app`, service-worker precached, and verified to avoid CDN
|
|
222
|
+
dependencies.
|
|
223
|
+
- **v4.0.1 capability preservation** — Brain Core, storage, agent/workflow
|
|
224
|
+
runtime, privacy model, local-first operation, and backend API contracts are
|
|
225
|
+
preserved.
|
|
226
|
+
|
|
227
|
+
See [RELEASE_NOTES_v4.1.0.md](RELEASE_NOTES_v4.1.0.md),
|
|
228
228
|
[docs/kg-schema.md](docs/kg-schema.md),
|
|
229
229
|
[FEATURE_STATUS.md](FEATURE_STATUS.md).
|
|
230
230
|
|
|
231
231
|
## How it works — every source converges into the graph
|
|
232
232
|
|
|
233
|
-
As of v4.0
|
|
233
|
+
As of v4.1.0, data sources flow through the brain ingestion pipeline into
|
|
234
234
|
the Knowledge Graph — no source bypasses it, none becomes an isolated silo:
|
|
235
235
|
|
|
236
236
|
```text
|
|
@@ -264,6 +264,9 @@ For the deeper design, see [ARCHITECTURE.md](ARCHITECTURE.md) and
|
|
|
264
264
|
|
|
265
265
|
- [ARCHITECTURE.md](ARCHITECTURE.md) — workspace, graph, pipeline, and model overview
|
|
266
266
|
- [docs/architecture.md](docs/architecture.md) — full architecture reference
|
|
267
|
+
- [docs/V4_1_FRONTEND_ARCHITECTURE_REVIEW.md](docs/V4_1_FRONTEND_ARCHITECTURE_REVIEW.md) — v4.1.0 frontend and desktop architecture review
|
|
268
|
+
- [docs/V4_1_FRONTEND_MIGRATION_REPORT.md](docs/V4_1_FRONTEND_MIGRATION_REPORT.md) — v4.1.0 capability migration report
|
|
269
|
+
- [docs/V4_1_VALIDATION_REPORT.md](docs/V4_1_VALIDATION_REPORT.md) — v4.1.0 validation report
|
|
267
270
|
- [docs/V3_BACKEND_ARCHITECTURE.md](docs/V3_BACKEND_ARCHITECTURE.md) — backend storage, search, and retrieval
|
|
268
271
|
|
|
269
272
|
### Knowledge and retrieval
|
|
@@ -282,6 +285,7 @@ For the deeper design, see [ARCHITECTURE.md](ARCHITECTURE.md) and
|
|
|
282
285
|
### Releases
|
|
283
286
|
|
|
284
287
|
- [RELEASE_NOTES.md](RELEASE_NOTES.md) — current release notes
|
|
288
|
+
- [RELEASE_NOTES_v4.1.0.md](RELEASE_NOTES_v4.1.0.md)
|
|
285
289
|
- [RELEASE_NOTES_v4.0.1.md](RELEASE_NOTES_v4.0.1.md)
|
|
286
290
|
- [RELEASE_NOTES_v4.0.0.md](RELEASE_NOTES_v4.0.0.md)
|
|
287
291
|
- [RELEASE_NOTES_v3.6.0.md](RELEASE_NOTES_v3.6.0.md)
|
|
@@ -294,6 +298,7 @@ For the deeper design, see [ARCHITECTURE.md](ARCHITECTURE.md) and
|
|
|
294
298
|
|
|
295
299
|
| Version | Theme |
|
|
296
300
|
| --- | --- |
|
|
301
|
+
| **4.1.0** | Frontend & Desktop Rebuild RC — React/Vite/OpenAPI desktop SPA, Tauri 2.0 primary shell, graph-first navigation, and legacy static frontend removal |
|
|
297
302
|
| **4.0.1** | Digital Brain Platform maintenance — closes post-tag v4 gaps with durable async runs, stable identity/workspace state, full `/app` parity, and legacy UI retirement |
|
|
298
303
|
| **4.0.0** | Digital Brain Platform — decomposed brain store, v2 write-mastered Knowledge Graph, durable memory/context, real workflow/agent foundations, signed brain exchange |
|
|
299
304
|
| 3.6.0 | Knowledge Graph First — unified ingestion pipeline, formalized entity/relationship model, browser/web ingestion, local export/import/backup, provenance, KG as the primary surface |
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const { app, BrowserWindow } = require("electron");
|
|
2
|
+
const { spawn } = require("node:child_process");
|
|
3
|
+
const path = require("node:path");
|
|
4
|
+
|
|
5
|
+
const origin = process.env.LATTICEAI_DESKTOP_BACKEND_ORIGIN || "http://127.0.0.1:8765";
|
|
6
|
+
let backend = null;
|
|
7
|
+
|
|
8
|
+
function startBackend() {
|
|
9
|
+
if (process.env.LATTICEAI_DESKTOP_NO_BACKEND) return;
|
|
10
|
+
const command = process.env.LATTICEAI_DESKTOP_BACKEND_CMD || "python3 ltcai_cli.py --host 127.0.0.1 --port 8765";
|
|
11
|
+
const [bin, ...args] = command.split(/\s+/).filter(Boolean);
|
|
12
|
+
if (!bin) return;
|
|
13
|
+
backend = spawn(bin, args, {
|
|
14
|
+
cwd: process.env.LATTICEAI_DESKTOP_BACKEND_CWD || path.resolve(__dirname, "../.."),
|
|
15
|
+
env: { ...process.env, LATTICEAI_HOST: "127.0.0.1", LATTICEAI_PORT: "8765", LATTICEAI_TUNNEL: "false" },
|
|
16
|
+
stdio: "ignore",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function createWindow() {
|
|
21
|
+
const win = new BrowserWindow({
|
|
22
|
+
width: 1440,
|
|
23
|
+
height: 920,
|
|
24
|
+
minWidth: 1024,
|
|
25
|
+
minHeight: 720,
|
|
26
|
+
title: "Lattice AI",
|
|
27
|
+
webPreferences: {
|
|
28
|
+
contextIsolation: true,
|
|
29
|
+
nodeIntegration: false,
|
|
30
|
+
sandbox: true,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
win.loadURL(`${origin}/app`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
app.whenReady().then(() => {
|
|
37
|
+
startBackend();
|
|
38
|
+
createWindow();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
app.on("window-all-closed", () => {
|
|
42
|
+
if (backend) backend.kill();
|
|
43
|
+
if (process.platform !== "darwin") app.quit();
|
|
44
|
+
});
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.1.0] - 2026-06-12
|
|
4
|
+
|
|
5
|
+
> Frontend & Desktop Rebuild release candidate. The existing FastAPI backend,
|
|
6
|
+
> Brain Core, storage architecture, and agent/workflow runtime remain the
|
|
7
|
+
> source of truth; the frontend and desktop shell are replaced by a React/Vite
|
|
8
|
+
> desktop architecture.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- React + TypeScript + Vite SPA under `frontend/`, using TanStack Query,
|
|
13
|
+
Zustand, React Flow, Cytoscape.js, Tailwind CSS, local shadcn-style
|
|
14
|
+
primitives, and a generated OpenAPI TypeScript client.
|
|
15
|
+
- Tauri 2.0 desktop shell under `src-tauri/` that launches the local backend
|
|
16
|
+
and exposes the backend origin to the SPA; Electron fallback shell retained
|
|
17
|
+
under `desktop/electron/`.
|
|
18
|
+
- Primary graph-first navigation: Brain, Ask, Capture, Act, Library, System.
|
|
19
|
+
- OpenAPI export/generation script and frontend lint guard for generated-client
|
|
20
|
+
usage, no-CDN static assets, and stale frontend references.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- `/app` now serves the built React/Vite bundle from `static/app`.
|
|
25
|
+
- Legacy static v3 frontend assets and v3 build/lint scripts are removed after
|
|
26
|
+
capability parity was migrated into the new React surfaces.
|
|
27
|
+
- Release/build scripts now build Vite app assets and preserve Python, npm, and
|
|
28
|
+
VSIX packaging flows at version `4.1.0`.
|
|
29
|
+
- npm Python-backed scripts use `scripts/run_python.mjs` to prefer
|
|
30
|
+
`LTCAI_PYTHON` or the repo virtualenv before falling back to system Python.
|
|
31
|
+
|
|
32
|
+
### Validation Scope
|
|
33
|
+
|
|
34
|
+
- Python compile check, ruff, unit tests, live integration tests, frontend lint,
|
|
35
|
+
TypeScript build, Playwright visual tests, desktop shell checks, no-CDN
|
|
36
|
+
verification, release artifact validation, wheel smoke, and npm pack dry-run.
|
|
37
|
+
|
|
38
|
+
### Expected Artifacts
|
|
39
|
+
|
|
40
|
+
- `dist/ltcai-4.1.0-py3-none-any.whl`
|
|
41
|
+
- `dist/ltcai-4.1.0.tar.gz`
|
|
42
|
+
- `dist/ltcai-4.1.0.vsix`
|
|
43
|
+
- `ltcai-4.1.0.tgz`
|
|
44
|
+
|
|
3
45
|
## [4.0.1] - 2026-06-12
|
|
4
46
|
|
|
5
47
|
> Digital Brain Platform maintenance release for commits on `main` after tag
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# v4.1.0 Frontend Architecture Review
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
This review covers the v4.1.0 replacement of the `/app` frontend and desktop
|
|
6
|
+
shell. It does not redesign Brain Core, storage, backend API contracts, or the
|
|
7
|
+
agent/workflow runtime.
|
|
8
|
+
|
|
9
|
+
## Baseline
|
|
10
|
+
|
|
11
|
+
v4.0.1 served a static frontend assembled under `static/v3` with bespoke build
|
|
12
|
+
and lint scripts. Capability parity existed, but the implementation duplicated
|
|
13
|
+
view systems, carried legacy static route assumptions, and could not cleanly
|
|
14
|
+
share typed API contracts with the FastAPI backend.
|
|
15
|
+
|
|
16
|
+
## Target Architecture
|
|
17
|
+
|
|
18
|
+
- Desktop shell: Tauri 2.0 primary, Electron fallback only.
|
|
19
|
+
- Frontend: React, TypeScript, Vite, TanStack Query, Zustand, React Flow,
|
|
20
|
+
Cytoscape.js, Tailwind CSS, local shadcn-style primitives.
|
|
21
|
+
- API: generated OpenAPI TypeScript client from the existing FastAPI app.
|
|
22
|
+
- Runtime: single client-side SPA, no SSR, no CDN.
|
|
23
|
+
- Backend: existing FastAPI app remains the source of truth.
|
|
24
|
+
|
|
25
|
+
## Implemented Architecture
|
|
26
|
+
|
|
27
|
+
- `frontend/` owns the React/Vite source.
|
|
28
|
+
- `frontend/src/api/openapi.ts` is generated from `frontend/openapi.json`.
|
|
29
|
+
- `frontend/src/api/client.ts` wraps generated-client JSON calls and keeps
|
|
30
|
+
streaming chat plus multipart upload as explicit fetch special cases.
|
|
31
|
+
- `frontend/src/routes.ts` defines Brain, Ask, Capture, Act, Library, System and
|
|
32
|
+
maps legacy hash routes into those groups.
|
|
33
|
+
- `static/app` is the shipped build output and is served by `/app`.
|
|
34
|
+
- `src-tauri/` contains the Tauri 2.0 shell and backend-origin bridge.
|
|
35
|
+
- `desktop/electron/` contains the fallback shell.
|
|
36
|
+
- `static/sw.js` precaches the React app manifest/assets for offline-capable
|
|
37
|
+
local startup.
|
|
38
|
+
|
|
39
|
+
## Boundary Decisions
|
|
40
|
+
|
|
41
|
+
- The backend contract was preserved; only the frontend consumer changed.
|
|
42
|
+
- Brain Core and storage modules were not modified for UI convenience.
|
|
43
|
+
- No CDN fallback was introduced; all visual/runtime dependencies are bundled.
|
|
44
|
+
- No demo-only controls were added. Unavailable capabilities render explicit
|
|
45
|
+
unavailable/error states based on API responses.
|
|
46
|
+
- npm runtime installs are kept lean: React/Vite/Tauri/Electron toolchains are
|
|
47
|
+
development dependencies because the distributable app ships built assets.
|
|
48
|
+
|
|
49
|
+
## Capability Mapping
|
|
50
|
+
|
|
51
|
+
| v4.0.1 capability | v4.1.0 surface |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| Knowledge Graph, hybrid search, memory, provenance, portability | Brain |
|
|
54
|
+
| Chat, conversations, context trace, attachments | Ask |
|
|
55
|
+
| Uploads, connected folders, local runtime, URL capture, index pipeline | Capture |
|
|
56
|
+
| Agents, runs, approvals, workflows, triggers, hooks, tools | Act |
|
|
57
|
+
| Models, embeddings, skills, MCP, templates/plugins | Library |
|
|
58
|
+
| Account, auth, workspaces, snapshots, activity, network, settings, admin/security | System |
|
|
59
|
+
|
|
60
|
+
## Residual Risk
|
|
61
|
+
|
|
62
|
+
- The first Vite bundle is larger than 500 kB after minification because graph,
|
|
63
|
+
workflow, and app shell libraries are included in the initial desktop SPA
|
|
64
|
+
bundle. This is a performance optimization target, not a capability blocker,
|
|
65
|
+
and the build remains fully local/offline.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# v4.1.0 Frontend Migration Report
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
|
|
5
|
+
Replace the v4.0.1 static frontend implementation with the Digital Brain
|
|
6
|
+
desktop architecture while preserving capabilities, user data, backend API
|
|
7
|
+
contracts, and local-first/offline operation.
|
|
8
|
+
|
|
9
|
+
## Migration Summary
|
|
10
|
+
|
|
11
|
+
- Added React + TypeScript + Vite source under `frontend/`.
|
|
12
|
+
- Added generated OpenAPI schema/client files under `frontend/openapi.json` and
|
|
13
|
+
`frontend/src/api/openapi.ts`.
|
|
14
|
+
- Added React capability pages for Brain, Ask, Capture, Act, Library, System.
|
|
15
|
+
- Added Tauri 2.0 desktop shell under `src-tauri/`.
|
|
16
|
+
- Added Electron fallback shell under `desktop/electron/`.
|
|
17
|
+
- Replaced `/app` static serving with `static/app/index.html`.
|
|
18
|
+
- Replaced v3 asset build/lint scripts with Vite build and frontend lint guards.
|
|
19
|
+
- Removed `static/v3` and retired `scripts/build_v3_assets.mjs` /
|
|
20
|
+
`scripts/lint_v3.mjs`.
|
|
21
|
+
- Updated package metadata so Python wheel/sdist, npm tgz, and VSIX builds ship
|
|
22
|
+
the new `static/app` assets.
|
|
23
|
+
|
|
24
|
+
## Compatibility
|
|
25
|
+
|
|
26
|
+
- Existing FastAPI routes are preserved.
|
|
27
|
+
- The generated OpenAPI client is produced from the live app schema.
|
|
28
|
+
- Legacy app hash routes are mapped into the new primary navigation groups.
|
|
29
|
+
- Service worker caching now targets the Vite app manifest instead of v3 assets.
|
|
30
|
+
- User data formats, Brain database files, Workspace OS state, snapshots,
|
|
31
|
+
conversations, memories, and graph data are not migrated or destructively
|
|
32
|
+
changed by the frontend rebuild.
|
|
33
|
+
|
|
34
|
+
## Capability Parity
|
|
35
|
+
|
|
36
|
+
| Capability | Migration result |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| Brain graph exploration | Cytoscape.js graph view in Brain |
|
|
39
|
+
| Hybrid search | Brain search tab backed by `/api/search/hybrid` |
|
|
40
|
+
| Memory recall | Brain memory tab backed by memory APIs |
|
|
41
|
+
| Provenance and portability | Brain provenance/portability actions |
|
|
42
|
+
| Chat and context trace | Ask surface with streaming chat and context panel |
|
|
43
|
+
| Conversation management | Ask history backed by conversation APIs |
|
|
44
|
+
| Document upload | Capture upload using multipart backend endpoint |
|
|
45
|
+
| Connected folders/local runtime | Capture desktop/local runtime APIs |
|
|
46
|
+
| Index pipeline and URL capture | Capture pipeline/browser ingestion APIs |
|
|
47
|
+
| Agents and run records | Act agents/runs/approvals backed by runtime APIs |
|
|
48
|
+
| Workflow graph | Act React Flow visualization and workflow APIs |
|
|
49
|
+
| Triggers, hooks, tools | Act surfaces backed by trigger/hook/tool APIs |
|
|
50
|
+
| Models and embeddings | Library model/embedding APIs |
|
|
51
|
+
| Skills, MCP, templates/plugins | Library registry APIs |
|
|
52
|
+
| Account/auth/profile/password | System account APIs |
|
|
53
|
+
| Workspaces/invitations | System workspace APIs |
|
|
54
|
+
| Snapshots/time-machine | System snapshot APIs |
|
|
55
|
+
| Activity/presence/network | System activity and network APIs |
|
|
56
|
+
| Admin/security/settings | System admin and settings APIs |
|
|
57
|
+
|
|
58
|
+
## Removed Frontend Debt
|
|
59
|
+
|
|
60
|
+
- Duplicate static v3 view modules.
|
|
61
|
+
- Legacy frontend build pipeline.
|
|
62
|
+
- Legacy v3 frontend lint script.
|
|
63
|
+
- Static v3 asset tree in release packages.
|
|
64
|
+
- Direct current-release references to v4.0.1 in latest docs.
|
|
65
|
+
|
|
66
|
+
## Data Preservation
|
|
67
|
+
|
|
68
|
+
No user data migration is required for v4.1.0. All persisted state remains owned
|
|
69
|
+
by the existing backend stores. The frontend rebuild only changes the client and
|
|
70
|
+
desktop shell used to access those stores.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# v4.1.0 Validation Report
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
v4.1.0 RC validation passed for the React/Vite frontend, Tauri desktop shell,
|
|
6
|
+
FastAPI backend compatibility, release artifacts, and installed-wheel smoke.
|
|
7
|
+
|
|
8
|
+
## Commands Run
|
|
9
|
+
|
|
10
|
+
| Area | Command | Result |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| OpenAPI generation | `npm run frontend:openapi` | Pass; generated 308 paths |
|
|
13
|
+
| Static app build | `npm run build:assets` | Pass; wrote `static/app/asset-manifest.json` |
|
|
14
|
+
| Frontend lint / no CDN / API compatibility | `npm run lint` | Pass; scanned 28 frontend/static files; OpenAPI exposes 308 paths |
|
|
15
|
+
| TypeScript build | `npm run typecheck` | Pass; frontend TS + VS Code extension build |
|
|
16
|
+
| Python compile | `npm run check:python` | Pass; compiled 206 modules |
|
|
17
|
+
| Ruff | `node scripts/run_python.mjs -m ruff check .` | Pass |
|
|
18
|
+
| Unit tests | `npm run test:unit -- --tb=short` | Pass; 585 passed, 2 warnings |
|
|
19
|
+
| Live integration tests | `LTCAI_TEST_BASE_URL=http://127.0.0.1:8899 npm run test:integration -- --tb=short` | Pass; 9 passed |
|
|
20
|
+
| Playwright visual/offline tests | `npx playwright test tests/visual/v3.spec.js` | Pass; 12 passed |
|
|
21
|
+
| Tauri cargo check | `npm run desktop:tauri:check` | Pass |
|
|
22
|
+
| Tauri desktop build | `LATTICEAI_DESKTOP_NO_BACKEND=1 npm run desktop:tauri:build` | Pass; built `.app` and DMG |
|
|
23
|
+
| Electron fallback syntax/version | `node --check desktop/electron/main.cjs && npx electron --version` | Pass; Electron v42.4.0 |
|
|
24
|
+
| Release artifacts | `npm run release:artifacts` plus resumed `npm pack && npm run package:vsix` | Pass |
|
|
25
|
+
| Artifact validation | `npm run release:validate` | Pass; exact v4.1.0 wheel/sdist/VSIX/tgz found |
|
|
26
|
+
| Wheel smoke | `node scripts/run_python.mjs scripts/wheel_smoke.py --wheel dist/ltcai-4.1.0-py3-none-any.whl` | Pass; imports 19 modules and `/health` reports 4.1.0 |
|
|
27
|
+
| npm pack dry-run | `npm pack --dry-run` | Pass; `ltcai-4.1.0.tgz`, 259 files, 2.9 MB |
|
|
28
|
+
|
|
29
|
+
## Generated Artifacts
|
|
30
|
+
|
|
31
|
+
- `dist/ltcai-4.1.0-py3-none-any.whl`
|
|
32
|
+
- `dist/ltcai-4.1.0.tar.gz`
|
|
33
|
+
- `dist/ltcai-4.1.0.vsix`
|
|
34
|
+
- `ltcai-4.1.0.tgz`
|
|
35
|
+
- `src-tauri/target/release/bundle/macos/Lattice AI.app`
|
|
36
|
+
- `src-tauri/target/release/bundle/dmg/Lattice AI_4.1.0_aarch64.dmg`
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- Vite reports one large initial bundle warning after minification. The app
|
|
41
|
+
remains fully local/offline and passes visual/offline startup validation.
|
|
42
|
+
- `cargo check` reports a future-incompatibility warning in transitive
|
|
43
|
+
`block v0.1.6`; the current Tauri 2.0 build passes on Rust 1.96.
|
|
44
|
+
- Release artifact validation warns that historical artifacts remain in
|
|
45
|
+
`dist/`; this is expected and reinforces the rule to upload only exact
|
|
46
|
+
v4.1.0 filenames, never `dist/*`.
|
|
47
|
+
- No external registry publish was performed.
|
|
@@ -5,24 +5,30 @@
|
|
|
5
5
|
> completed analysis. **Update this file before ending any phase and before any
|
|
6
6
|
> likely session/context/usage limit.**
|
|
7
7
|
>
|
|
8
|
-
> Last updated: 2026-06-12 — v4.0
|
|
8
|
+
> Last updated: 2026-06-12 — v4.1.0 frontend/desktop rebuild RC; Remaining Gaps remain empty
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
## 0. RC STATUS (
|
|
13
|
-
|
|
14
|
-
**v4.0
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
and
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
v4.0
|
|
23
|
-
|
|
12
|
+
## 0. RC STATUS (v4.1.0 RC)
|
|
13
|
+
|
|
14
|
+
**v4.1.0 replaces the frontend implementation and desktop shell on top of
|
|
15
|
+
`main @ v4.0.1`; implementation gaps remain empty.**
|
|
16
|
+
Latest implementation milestone: `/app` is now a React + TypeScript + Vite SPA
|
|
17
|
+
with TanStack Query, Zustand, generated OpenAPI client usage, Cytoscape.js
|
|
18
|
+
Brain graph, React Flow Act graph, Tailwind CSS, and local shadcn-style
|
|
19
|
+
primitives. Tauri 2.0 is the primary desktop shell; Electron is fallback only.
|
|
20
|
+
The existing FastAPI backend, Brain Core, storage architecture, and
|
|
21
|
+
agent/workflow runtime remain the source of truth.
|
|
22
|
+
The v4.1.0 RC process builds and validates local artifacts only. It does not
|
|
23
|
+
publish to PyPI, npm Registry, VS Code Marketplace, Open VSX, or production
|
|
24
|
+
deployment targets.
|
|
25
|
+
v4.1.0 validation completed: OpenAPI generation (308 paths), Python compile,
|
|
26
|
+
ruff, 585 unit tests, 9 live integration tests, frontend lint/no-CDN/API
|
|
27
|
+
compatibility, TypeScript build, 12 Playwright visual/offline tests, Tauri
|
|
28
|
+
cargo check, Tauri `.app` + DMG build, Electron fallback syntax/version check,
|
|
24
29
|
Python wheel/sdist build, npm tgz build, VSIX build, release artifact
|
|
25
|
-
validation, wheel smoke, and npm pack dry-run all passed.
|
|
30
|
+
validation, wheel smoke, and npm pack dry-run all passed. See
|
|
31
|
+
`docs/V4_1_VALIDATION_REPORT.md`.
|
|
26
32
|
Remaining implementation gaps: **none**.
|
|
27
33
|
Owner-only blockers: pptx history rewrite (requires force-push/owner decision)
|
|
28
34
|
and consent-gated production embedder provisioning (silent default download is
|
|
@@ -30,11 +36,12 @@ not permitted).
|
|
|
30
36
|
|
|
31
37
|
## Remaining Gaps
|
|
32
38
|
|
|
33
|
-
None.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
None. v4.1.0 closes the frontend/desktop rebuild on top of the already-empty
|
|
40
|
+
v4.0.1 gap list: legacy static v3 frontend assets are removed, `/app` is served
|
|
41
|
+
from `static/app`, Brain/Ask/Capture/Act/Library/System cover the existing
|
|
42
|
+
capability surface, and every visible control either calls an existing backend
|
|
43
|
+
API or presents an honest unavailable/error state. Owner-only blockers above
|
|
44
|
+
are intentionally not implementation gaps.
|
|
38
45
|
|
|
39
46
|
## 1. Program Charter (from the user's v4.0.0 directive)
|
|
40
47
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
6
|
+
<meta name="color-scheme" content="dark light" />
|
|
7
|
+
<title>Lattice AI · Digital Brain</title>
|
|
8
|
+
<link rel="manifest" href="/manifest.json" />
|
|
9
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32.png" />
|
|
10
|
+
<script>
|
|
11
|
+
(function () {
|
|
12
|
+
try {
|
|
13
|
+
var theme = localStorage.getItem("lattice.theme");
|
|
14
|
+
if (theme === "light" || theme === "dark") document.documentElement.dataset.theme = theme;
|
|
15
|
+
} catch (e) {}
|
|
16
|
+
})();
|
|
17
|
+
</script>
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div id="root"></div>
|
|
21
|
+
<noscript>Lattice AI requires JavaScript for the local Digital Brain desktop shell.</noscript>
|
|
22
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|