ltcai 4.3.0 → 4.3.3

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.
Files changed (71) hide show
  1. package/README.md +186 -276
  2. package/bin/ltcai.js +6 -2
  3. package/docs/CHANGELOG.md +124 -3
  4. package/docs/V4_3_2_DEADCODE_AUDIT_REPORT.md +174 -0
  5. package/docs/V4_3_2_DOCUMENTATION_CLEANUP_REPORT.md +81 -0
  6. package/docs/V4_3_2_GITHUB_VERCEL_CHECK_REPORT.md +75 -0
  7. package/docs/V4_3_2_GRAPH_UX_REPORT.md +48 -0
  8. package/docs/V4_3_2_INDEPENDENT_AUDIT_PACKAGE.md +209 -0
  9. package/docs/V4_3_2_PRODUCT_POLISH_REPORT.md +57 -0
  10. package/docs/V4_3_2_SELF_AUDIT_REPORT.md +63 -0
  11. package/docs/V4_3_2_VALIDATION_REPORT.md +97 -0
  12. package/docs/V4_3_3_VALIDATION_REPORT.md +46 -0
  13. package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +18 -25
  14. package/frontend/openapi.json +11 -1
  15. package/frontend/src/App.tsx +15 -1
  16. package/frontend/src/api/client.ts +19 -1
  17. package/frontend/src/api/openapi.ts +10 -0
  18. package/frontend/src/components/primitives.tsx +92 -10
  19. package/frontend/src/pages/Act.tsx +72 -9
  20. package/frontend/src/pages/Ask.tsx +2 -2
  21. package/frontend/src/pages/Brain.tsx +607 -65
  22. package/frontend/src/pages/Capture.tsx +11 -7
  23. package/frontend/src/pages/Library.tsx +12 -6
  24. package/frontend/src/pages/System.tsx +186 -23
  25. package/lattice_brain/__init__.py +1 -1
  26. package/lattice_brain/archive.py +3 -3
  27. package/lattice_brain/storage/sqlite.py +15 -2
  28. package/latticeai/__init__.py +1 -1
  29. package/latticeai/api/agents.py +3 -1
  30. package/latticeai/api/models.py +66 -18
  31. package/latticeai/brain/projection.py +12 -2
  32. package/latticeai/brain/retrieval.py +10 -0
  33. package/latticeai/brain/store.py +6 -1
  34. package/latticeai/core/config.py +3 -1
  35. package/latticeai/core/marketplace.py +1 -1
  36. package/latticeai/core/multi_agent.py +1 -1
  37. package/latticeai/core/product_hardening.py +2 -1
  38. package/latticeai/core/workspace_os.py +1 -1
  39. package/latticeai/services/agent_runtime.py +52 -12
  40. package/latticeai/services/model_runtime.py +83 -2
  41. package/ltcai_cli.py +14 -3
  42. package/package.json +5 -7
  43. package/requirements.txt +17 -0
  44. package/scripts/build_vercel_static.mjs +77 -0
  45. package/scripts/check_markdown_links.mjs +75 -0
  46. package/src-tauri/Cargo.lock +1 -1
  47. package/src-tauri/Cargo.toml +1 -1
  48. package/src-tauri/src/main.rs +269 -27
  49. package/src-tauri/tauri.conf.json +20 -1
  50. package/static/app/asset-manifest.json +5 -5
  51. package/static/app/assets/index-CHHal8Zl.css +2 -0
  52. package/static/app/assets/index-pdzil9ac.js +333 -0
  53. package/static/app/assets/index-pdzil9ac.js.map +1 -0
  54. package/static/app/index.html +2 -2
  55. package/latticeai/api/deps.py +0 -15
  56. package/scripts/capture/README.md +0 -28
  57. package/scripts/capture/capture_enterprise.js +0 -8
  58. package/scripts/capture/capture_graph.js +0 -8
  59. package/scripts/capture/capture_onboarding.js +0 -8
  60. package/scripts/capture/capture_page.js +0 -43
  61. package/scripts/capture/capture_release_media.js +0 -125
  62. package/scripts/capture/capture_skills.js +0 -8
  63. package/scripts/capture/capture_v340.js +0 -88
  64. package/scripts/capture/capture_workspace.js +0 -8
  65. package/scripts/generate_diagrams.py +0 -512
  66. package/scripts/release-0.3.1.sh +0 -105
  67. package/scripts/take_screenshots.js +0 -69
  68. package/static/app/assets/index-RiJTJliG.js +0 -333
  69. package/static/app/assets/index-RiJTJliG.js.map +0 -1
  70. package/static/app/assets/index-yZswHE3d.css +0 -2
  71. package/static/css/tokens.3ba22e37.css +0 -260
@@ -0,0 +1,209 @@
1
+ # Lattice AI v4.3.2 Independent Audit Package
2
+
3
+ Date: 2026-06-13
4
+
5
+ This package is for a separate AI or human reviewer. It summarizes what to
6
+ inspect and how to reproduce validation. It is not itself an independent audit.
7
+
8
+ ## Current Architecture Summary
9
+
10
+ - Desktop: Tauri 2 primary shell in `src-tauri/`; Electron fallback in
11
+ `desktop/electron/`.
12
+ - Frontend: React + TypeScript + Vite SPA in `frontend/`, shipped from
13
+ `static/app/`.
14
+ - API: FastAPI localhost backend; frontend uses generated OpenAPI types and
15
+ does not call Python directly.
16
+ - Brain Core: independent Python package `lattice_brain`.
17
+ - Storage: `StorageEngine` abstraction with SQLite default and optional
18
+ PostgreSQL/pgvector scale mode.
19
+ - Portability: encrypted `.latticebrain` archives, backup/restore, inspect,
20
+ verify, import dry-run, and restore dry-run/restore APIs.
21
+ - Privacy: default startup is local-only; external integrations and downloads
22
+ require explicit opt-in paths.
23
+
24
+ ## README Claims To Verify
25
+
26
+ - Desktop startup and sidecar shutdown.
27
+ - Brain graph search, grouping, focus, filtering, and graph persistence.
28
+ - Ask no-model honesty and graph context.
29
+ - Capture document ingestion.
30
+ - Act workflow create/run surfaces and honest agent runtime status.
31
+ - Library model/runtime availability.
32
+ - System storage, backup, archive, Brain Network, and device identity status.
33
+ - Backup/restore and `.latticebrain` portability flows.
34
+ - Exact v4.3.2 artifact readiness.
35
+
36
+ ## Self-Audit Evidence Paths
37
+
38
+ - Root evidence folder: `output/audits/v4.3.2-rc/`
39
+ - Screenshots: `output/audits/v4.3.2-rc/screenshots/`
40
+ - GIF: `output/audits/v4.3.2-rc/gifs/graph-product-walkthrough.gif`
41
+ - Runtime logs: `output/audits/v4.3.2-rc/logs/`
42
+ - Video: `output/audits/v4.3.2-rc/videos/graph-product-walkthrough.webm`
43
+
44
+ ## Key Screenshots / GIFs
45
+
46
+ - Desktop startup:
47
+ `output/audits/v4.3.2-rc/screenshots/13-desktop-sidecar-startup.png`
48
+ - Brain graph:
49
+ `output/audits/v4.3.2-rc/screenshots/02-graph-explorer-before.png`
50
+ - Graph walkthrough:
51
+ `output/audits/v4.3.2-rc/gifs/graph-product-walkthrough.gif`
52
+ - Ask:
53
+ `output/audits/v4.3.2-rc/screenshots/14-ask-context.png`
54
+ - Capture:
55
+ `output/audits/v4.3.2-rc/screenshots/15-capture-ingestion.png`
56
+ - Act:
57
+ `output/audits/v4.3.2-rc/screenshots/09-workflow-create-run.png`
58
+ - Library:
59
+ `output/audits/v4.3.2-rc/screenshots/12-library-model-status.png`
60
+ - System:
61
+ `output/audits/v4.3.2-rc/screenshots/08-system-storage-status.png`
62
+ - Backup/restore:
63
+ `output/audits/v4.3.2-rc/screenshots/06-brain-portability-backup.png`
64
+ - `.latticebrain`:
65
+ `output/audits/v4.3.2-rc/screenshots/07-system-archive-flows.png`
66
+
67
+ ## Validation Results
68
+
69
+ See `docs/V4_3_2_VALIDATION_REPORT.md`.
70
+
71
+ Expected green checks:
72
+
73
+ - Python compile
74
+ - Ruff
75
+ - unit tests
76
+ - live integration tests
77
+ - frontend lint
78
+ - TypeScript typecheck
79
+ - Playwright visual tests
80
+ - Tauri check/build
81
+ - release artifact validation
82
+ - wheel smoke
83
+ - npm pack dry-run
84
+ - README-linked Markdown link check
85
+ - Vercel static build
86
+
87
+ ## Commands To Reproduce
88
+
89
+ ```bash
90
+ npm install
91
+ npm run check:python
92
+ node scripts/run_python.mjs -m ruff check .
93
+ npm run lint
94
+ npm run typecheck
95
+ npm run test:unit
96
+ LTCAI_TEST_BASE_URL=http://127.0.0.1:4932 npm run test:integration
97
+ npm run test:visual
98
+ npm run desktop:tauri:check
99
+ npm run release:artifacts
100
+ npm run release:validate
101
+ node scripts/run_python.mjs scripts/wheel_smoke.py --wheel dist/ltcai-4.3.2-py3-none-any.whl
102
+ npm pack --dry-run
103
+ npm run docs:check-links
104
+ npm run vercel:build
105
+ ```
106
+
107
+ For live integration tests, start a local backend first or set
108
+ `LTCAI_TEST_BASE_URL` to an already running test backend.
109
+
110
+ ## Known Limitations
111
+
112
+ - v4.3.2 is not tagged or released by this preparation work.
113
+ - External registries are not published by this preparation work.
114
+ - Ask needs a loaded model for generated answers; no-model state is expected to
115
+ be honest rather than successful.
116
+ - PostgreSQL/pgvector and Docker flows are optional and consent-gated.
117
+ - Live Postgres migration validation is not part of this release-prep pass
118
+ without fresh explicit Docker consent.
119
+ - Vercel is documentation-only and intentionally does not host the product
120
+ runtime.
121
+
122
+ ## Changed Files Since v4.3.1
123
+
124
+ Exact manifest prepared for review:
125
+
126
+ ```text
127
+ .gitignore
128
+ ARCHITECTURE.md
129
+ FEATURE_STATUS.md
130
+ README.md
131
+ RELEASE.md
132
+ RELEASE_NOTES.md
133
+ RELEASE_NOTES_v4.3.2.md
134
+ SECURITY.md
135
+ docs/CHANGELOG.md
136
+ docs/V4_3_2_DOCUMENTATION_CLEANUP_REPORT.md
137
+ docs/V4_3_2_GITHUB_VERCEL_CHECK_REPORT.md
138
+ docs/V4_3_2_GRAPH_UX_REPORT.md
139
+ docs/V4_3_2_INDEPENDENT_AUDIT_PACKAGE.md
140
+ docs/V4_3_2_PRODUCT_POLISH_REPORT.md
141
+ docs/V4_3_2_SELF_AUDIT_REPORT.md
142
+ docs/V4_3_2_VALIDATION_REPORT.md
143
+ docs/V4_DIGITAL_BRAIN_RECOVERY.md
144
+ frontend/openapi.json
145
+ frontend/src/components/primitives.tsx
146
+ frontend/src/pages/Act.tsx
147
+ frontend/src/pages/Ask.tsx
148
+ frontend/src/pages/Brain.tsx
149
+ frontend/src/pages/Capture.tsx
150
+ frontend/src/pages/Library.tsx
151
+ frontend/src/pages/System.tsx
152
+ lattice_brain/__init__.py
153
+ latticeai/__init__.py
154
+ latticeai/core/marketplace.py
155
+ latticeai/core/multi_agent.py
156
+ latticeai/core/workspace_os.py
157
+ output/audits/v4.3.2-rc/gifs/graph-product-walkthrough.gif
158
+ output/audits/v4.3.2-rc/logs/archive-create.json
159
+ output/audits/v4.3.2-rc/logs/archive-import-dry-run.json
160
+ output/audits/v4.3.2-rc/logs/archive-verify.json
161
+ output/audits/v4.3.2-rc/logs/backup-health-after-ui.json
162
+ output/audits/v4.3.2-rc/logs/desktop-shutdown-after-fix.txt
163
+ output/audits/v4.3.2-rc/logs/desktop-sidecar-health-after-shutdown-fix.json
164
+ output/audits/v4.3.2-rc/logs/desktop-sidecar-health.json
165
+ output/audits/v4.3.2-rc/logs/graph-after-upload.json
166
+ output/audits/v4.3.2-rc/logs/readme-upload-note.json
167
+ output/audits/v4.3.2-rc/logs/self-audit-browser-results.json
168
+ output/audits/v4.3.2-rc/logs/storage.json
169
+ output/audits/v4.3.2-rc/logs/upload-note.json
170
+ output/audits/v4.3.2-rc/logs/workflow-create.json
171
+ output/audits/v4.3.2-rc/screenshots/01-first-startup.png
172
+ output/audits/v4.3.2-rc/screenshots/02-graph-explorer-before.png
173
+ output/audits/v4.3.2-rc/screenshots/03-graph-search.png
174
+ output/audits/v4.3.2-rc/screenshots/04-graph-collapse-group.png
175
+ output/audits/v4.3.2-rc/screenshots/05-graph-focus-neighborhood.png
176
+ output/audits/v4.3.2-rc/screenshots/06-brain-portability-backup.png
177
+ output/audits/v4.3.2-rc/screenshots/07-system-archive-flows.png
178
+ output/audits/v4.3.2-rc/screenshots/08-system-storage-status.png
179
+ output/audits/v4.3.2-rc/screenshots/09-workflow-create-run.png
180
+ output/audits/v4.3.2-rc/screenshots/10-agent-runtime-status.png
181
+ output/audits/v4.3.2-rc/screenshots/11-brain-network-device-identity.png
182
+ output/audits/v4.3.2-rc/screenshots/12-library-model-status.png
183
+ output/audits/v4.3.2-rc/screenshots/13-desktop-sidecar-startup.png
184
+ output/audits/v4.3.2-rc/screenshots/14-ask-context.png
185
+ output/audits/v4.3.2-rc/screenshots/15-capture-ingestion.png
186
+ output/audits/v4.3.2-rc/videos/graph-product-walkthrough.webm
187
+ package-lock.json
188
+ package.json
189
+ pyproject.toml
190
+ scripts/build_vercel_static.mjs
191
+ scripts/check_markdown_links.mjs
192
+ src-tauri/Cargo.lock
193
+ src-tauri/Cargo.toml
194
+ src-tauri/src/main.rs
195
+ src-tauri/tauri.conf.json
196
+ static/app/asset-manifest.json
197
+ static/app/assets/index-BhPuj8rT.js
198
+ static/app/assets/index-BhPuj8rT.js.map
199
+ static/app/assets/index-CHHal8Zl.css
200
+ static/app/assets/index-pdzil9ac.js
201
+ static/app/assets/index-pdzil9ac.js.map
202
+ static/app/assets/index-yZswHE3d.css
203
+ static/app/index.html
204
+ tests/visual/mock_server.cjs
205
+ tests/visual/v3.spec.js
206
+ vercel.json
207
+ vscode-extension/package-lock.json
208
+ vscode-extension/package.json
209
+ ```
@@ -0,0 +1,57 @@
1
+ # Lattice AI v4.3.2 Product Polish Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ ## Scope
6
+
7
+ v4.3.2 removes end-user polish debt from the React/Vite desktop SPA while
8
+ preserving the v4.3.1 architecture and backend API contracts.
9
+
10
+ ## Implemented
11
+
12
+ - Added structured render primitives for nested runtime data, operation
13
+ results, entity lists, and value previews.
14
+ - Replaced normal product JSON dumps in Brain, Ask, Capture, Act, Library, and
15
+ System with readable status panels and result cards.
16
+ - Kept technical identifiers visible when they matter, especially for agents,
17
+ storage, archive, and device identity records.
18
+ - Added System archive import dry-run and confirmed import controls backed by
19
+ existing `.latticebrain` archive APIs.
20
+ - Improved System status for health, storage mode, backup health, device
21
+ identity, Brain Network, hardening, security, admin, account, SSO, snapshots,
22
+ activity, and settings.
23
+ - Preserved honest unavailable states for optional models, Postgres, Docker,
24
+ sqlite-vec, external integrations, and unavailable runtime actions.
25
+ - Added app-level Tauri exit cleanup so the FastAPI sidecar is shut down on
26
+ normal macOS quit.
27
+
28
+ ## Files Touched
29
+
30
+ - `frontend/src/components/primitives.tsx`
31
+ - `frontend/src/pages/Brain.tsx`
32
+ - `frontend/src/pages/Ask.tsx`
33
+ - `frontend/src/pages/Capture.tsx`
34
+ - `frontend/src/pages/Act.tsx`
35
+ - `frontend/src/pages/Library.tsx`
36
+ - `frontend/src/pages/System.tsx`
37
+ - `src-tauri/src/main.rs`
38
+ - `tests/visual/mock_server.cjs`
39
+ - `tests/visual/v3.spec.js`
40
+
41
+ ## Evidence
42
+
43
+ - First startup: `output/audits/v4.3.2-rc/screenshots/01-first-startup.png`
44
+ - Brain portability and backup: `output/audits/v4.3.2-rc/screenshots/06-brain-portability-backup.png`
45
+ - System archive flows: `output/audits/v4.3.2-rc/screenshots/07-system-archive-flows.png`
46
+ - System storage status: `output/audits/v4.3.2-rc/screenshots/08-system-storage-status.png`
47
+ - Workflow create/run: `output/audits/v4.3.2-rc/screenshots/09-workflow-create-run.png`
48
+ - Agent runtime status: `output/audits/v4.3.2-rc/screenshots/10-agent-runtime-status.png`
49
+ - Brain Network and device identity: `output/audits/v4.3.2-rc/screenshots/11-brain-network-device-identity.png`
50
+ - Library model status: `output/audits/v4.3.2-rc/screenshots/12-library-model-status.png`
51
+ - Desktop sidecar startup: `output/audits/v4.3.2-rc/screenshots/13-desktop-sidecar-startup.png`
52
+
53
+ ## Result
54
+
55
+ PASS. The visible product surfaces are now readable, API-backed, and explicit
56
+ about unavailable optional capabilities. No fake controls or demo-only screens
57
+ were added.
@@ -0,0 +1,63 @@
1
+ # Lattice AI v4.3.2 Self-Audit Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ ## Method
6
+
7
+ The audit used the built v4.3.2 product, not source-code claims. It started a
8
+ local FastAPI backend with an isolated data directory, seeded a real document
9
+ through the upload API, opened the React SPA, exercised product flows, captured
10
+ screenshots/GIF evidence, launched the rebuilt Tauri app, and verified desktop
11
+ sidecar startup/shutdown.
12
+
13
+ ## Runtime Inputs
14
+
15
+ - API base: `http://127.0.0.1:4932`
16
+ - Audit data dir: `/tmp/lattice-v432-audit`
17
+ - Desktop data dir: `/tmp/lattice-v432-desktop3`
18
+ - Uploaded note: `/tmp/lattice-v432-files/v432-audit-note.md`
19
+ - Archive path: `/tmp/lattice-v432-audit/self-audit.latticebrain`
20
+
21
+ ## Observed Results
22
+
23
+ | Scenario | Result | Evidence |
24
+ | --- | --- | --- |
25
+ | First startup | PASS | `output/audits/v4.3.2-rc/screenshots/01-first-startup.png` |
26
+ | Graph exploration baseline | PASS | `output/audits/v4.3.2-rc/screenshots/02-graph-explorer-before.png` |
27
+ | Graph search/collapse/focus | PASS | `output/audits/v4.3.2-rc/screenshots/03-graph-search.png`, `04-graph-collapse-group.png`, `05-graph-focus-neighborhood.png` |
28
+ | Ask no-model honesty and graph context | PASS | `output/audits/v4.3.2-rc/screenshots/14-ask-context.png` |
29
+ | Capture document ingestion | PASS | `output/audits/v4.3.2-rc/screenshots/15-capture-ingestion.png` |
30
+ | Brain backup and graph portability | PASS | `output/audits/v4.3.2-rc/screenshots/06-brain-portability-backup.png` |
31
+ | System archive export/inspect/verify/import/restore dry-run | PASS | `output/audits/v4.3.2-rc/screenshots/07-system-archive-flows.png` |
32
+ | Storage and Postgres optional status | PASS | `output/audits/v4.3.2-rc/screenshots/08-system-storage-status.png` |
33
+ | Workflow create/run surfaces | PASS | `output/audits/v4.3.2-rc/screenshots/09-workflow-create-run.png` |
34
+ | Agent runtime availability | PASS | `output/audits/v4.3.2-rc/screenshots/10-agent-runtime-status.png` |
35
+ | Brain Network and device identity | PASS | `output/audits/v4.3.2-rc/screenshots/11-brain-network-device-identity.png` |
36
+ | Library model unavailable honesty | PASS | `output/audits/v4.3.2-rc/screenshots/12-library-model-status.png` |
37
+ | Desktop sidecar startup | PASS | `output/audits/v4.3.2-rc/screenshots/13-desktop-sidecar-startup.png` |
38
+ | Desktop sidecar shutdown | PASS | `output/audits/v4.3.2-rc/logs/desktop-shutdown-after-fix.txt` |
39
+
40
+ ## Runtime Logs
41
+
42
+ - Upload result: `output/audits/v4.3.2-rc/logs/upload-note.json`
43
+ - README evidence upload: `output/audits/v4.3.2-rc/logs/readme-upload-note.json`
44
+ - Graph after upload: `output/audits/v4.3.2-rc/logs/graph-after-upload.json`
45
+ - Archive create: `output/audits/v4.3.2-rc/logs/archive-create.json`
46
+ - Archive verify: `output/audits/v4.3.2-rc/logs/archive-verify.json`
47
+ - Archive import dry-run: `output/audits/v4.3.2-rc/logs/archive-import-dry-run.json`
48
+ - Storage: `output/audits/v4.3.2-rc/logs/storage.json`
49
+ - Backup health: `output/audits/v4.3.2-rc/logs/backup-health-after-ui.json`
50
+ - Workflow create: `output/audits/v4.3.2-rc/logs/workflow-create.json`
51
+ - Browser automation results: `output/audits/v4.3.2-rc/logs/self-audit-browser-results.json`
52
+ - Desktop health: `output/audits/v4.3.2-rc/logs/desktop-sidecar-health-after-shutdown-fix.json`
53
+
54
+ ## Media
55
+
56
+ - Graph walkthrough GIF: `output/audits/v4.3.2-rc/gifs/graph-product-walkthrough.gif`
57
+ - Graph walkthrough video: `output/audits/v4.3.2-rc/videos/graph-product-walkthrough.webm`
58
+
59
+ ## Result
60
+
61
+ PASS. The observed product behavior supports the v4.3.2 RC claims. No placeholder
62
+ or fake functionality was accepted as complete. Optional capabilities remain
63
+ honestly unavailable unless their runtime dependencies and user consent exist.
@@ -0,0 +1,97 @@
1
+ # Lattice AI v4.3.2 Validation Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ ## Summary
6
+
7
+ v4.3.2 validation is green for the implemented product polish, graph UX, desktop
8
+ shutdown, exact-version release artifacts, and the release-prep documentation /
9
+ Vercel static-build fixes.
10
+
11
+ ## Release-Prep Fix Validation
12
+
13
+ These checks were rerun after the README badge restore, diagram-first
14
+ `ARCHITECTURE.md` rewrite, Vercel static-only configuration fix, and linked-doc
15
+ cleanup.
16
+
17
+ | Check | Result |
18
+ | --- | --- |
19
+ | `node -e "JSON.parse(require('fs').readFileSync('vercel.json','utf8'))"` | PASS |
20
+ | `npm run vercel:build` | PASS, generated `vercel-static/index.html` |
21
+ | `npm run docs:check-links` | PASS, README plus 15 README-linked Markdown files |
22
+ | Mermaid structural sanity check for `ARCHITECTURE.md` | PASS, 13 Mermaid blocks; `mmdc` was not installed locally |
23
+ | README badge link validation | PASS for PyPI, VS Code Marketplace, Open VSX, CI, license, and badge images; npm package page returned a CLI-only Cloudflare 403, so package identity was validated through `npm view ltcai` and `https://registry.npmjs.org/ltcai` |
24
+ | Registry version check | PASS, PyPI/npm/VS Code Marketplace/Open VSX currently report `4.3.1`; README does not claim v4.3.2 external registry publication |
25
+ | `node scripts/run_python.mjs -m pytest tests/unit/test_server_app_v14_decomposition.py::test_markdown_current_release_references_match_release tests/unit/test_truth_floor_t1_static.py::test_readme_does_not_overclaim_llm_driven_agents -v` | PASS, 2 passed |
26
+ | `npm run lint` | PASS |
27
+ | `npm pack --dry-run` | PASS, `ltcai-4.3.2.tgz`, 305 files, 2.9 MB |
28
+ | `npx --yes vercel@54.12.2 build` | BLOCKED by local Vercel linkage only: `project_settings_required`; no `.vercel` project settings or credentials are present in this checkout. Static build/config validation above passed. |
29
+
30
+ No product runtime code changed in this release-prep fix, and release artifacts
31
+ were not rebuilt.
32
+
33
+ ## Commands
34
+
35
+ | Check | Result |
36
+ | --- | --- |
37
+ | `npm run check:python` | PASS, compiled 691 modules |
38
+ | `node scripts/run_python.mjs -m ruff check .` | PASS |
39
+ | `npm run lint` | PASS |
40
+ | `npm run typecheck` | PASS |
41
+ | `npm run test:unit` | PASS, 602 passed, 2 warnings |
42
+ | `LTCAI_TEST_BASE_URL=http://127.0.0.1:4932 npm run test:integration` | PASS, 9 passed, 1 skipped |
43
+ | `npm run test:visual` | PASS, 12 Playwright tests |
44
+ | `npm run desktop:tauri:check` | PASS |
45
+ | `npm run release:artifacts` | PASS |
46
+ | `npm run release:validate` | PASS |
47
+ | `node scripts/run_python.mjs scripts/wheel_smoke.py --wheel dist/ltcai-4.3.2-py3-none-any.whl` | PASS |
48
+ | `npm pack --dry-run` | PASS |
49
+ | Rebuilt desktop app startup/shutdown verification | PASS |
50
+ | `npm run vercel:build` | PASS |
51
+ | Markdown link check for README-linked docs | PASS |
52
+
53
+ ## Artifact Validation
54
+
55
+ Exact v4.3.2 artifacts were found:
56
+
57
+ - `dist/ltcai-4.3.2-py3-none-any.whl`
58
+ - `dist/ltcai-4.3.2.tar.gz`
59
+ - `dist/ltcai-4.3.2.vsix`
60
+ - `ltcai-4.3.2.tgz`
61
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_4.3.2_aarch64.dmg`
62
+
63
+ The release validator warned that `dist/` also contains older historical
64
+ artifacts. This is not a v4.3.2 artifact failure, but release uploads must use
65
+ only the exact filenames above and never a wildcard over the `dist/` directory.
66
+
67
+ ## Desktop Verification
68
+
69
+ - The rebuilt Tauri app launched from
70
+ `src-tauri/target/release/bundle/macos/Lattice AI.app/Contents/MacOS/lattice-ai-desktop`.
71
+ - `/health` responded on `127.0.0.1:8765` with version `4.3.2`, local mode, and
72
+ the isolated data dir `/tmp/lattice-v432-desktop3`.
73
+ - Normal macOS quit released port 8765.
74
+ - Evidence:
75
+ - `output/audits/v4.3.2-rc/logs/desktop-sidecar-health-after-shutdown-fix.json`
76
+ - `output/audits/v4.3.2-rc/logs/desktop-shutdown-after-fix.txt`
77
+ - `output/audits/v4.3.2-rc/screenshots/13-desktop-sidecar-startup.png`
78
+
79
+ ## Notes
80
+
81
+ - The live Postgres migration test remained skipped because v4.3.2 did not
82
+ request fresh Docker consent. Postgres remains optional and was not changed by
83
+ this RC.
84
+ - Wheel smoke emitted optional MLX warnings inside the isolated venv, then
85
+ passed imports and `/health`.
86
+ - Rust reported a future-incompatibility warning from transitive crate
87
+ `block v0.1.6`; `cargo check` passed.
88
+ - GitHub Actions for the v4.3.2 RC commit were green before release-prep doc
89
+ cleanup: `CI` and `Visual Smoke` both completed successfully for
90
+ `8f3d182ee81bb395722ebab792dfd70f35e19e96`.
91
+ - Vercel config is intentionally documentation-only: it builds
92
+ `vercel-static/index.html`, pins the Framework Preset to "Other", and does
93
+ not attempt to auto-detect or host `server.py` / the desktop runtime.
94
+
95
+ ## Result
96
+
97
+ PASS. v4.3.2 RC artifacts and runtime behavior are validated.
@@ -0,0 +1,46 @@
1
+ # Lattice AI v4.3.3 Validation Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ v4.3.3 validation is green for the post-cleanup release tree. The release
6
+ rebuilds exact-current-main artifacts after the independent dead-code,
7
+ architecture, and runtime audit cleanup; v4.3.2 artifacts are intentionally not
8
+ reused.
9
+
10
+ ## Validation Results
11
+
12
+ | Check | Result |
13
+ | --- | --- |
14
+ | `npm run check:python` | PASS, compiled 689 modules |
15
+ | `node scripts/run_python.mjs -m ruff check .` | PASS |
16
+ | `npm run lint` | PASS |
17
+ | `npm run typecheck` | PASS, frontend TypeScript and VS Code extension build |
18
+ | `npm run test:unit` | PASS, 602 tests |
19
+ | `LTCAI_TEST_BASE_URL=http://127.0.0.1:4932 npm run test:integration` | PASS, 9 tests and 1 consent-gated Postgres migration test skipped |
20
+ | `npm run test:visual` | PASS, 12 Playwright tests |
21
+ | `npm run desktop:tauri:check` | PASS |
22
+ | `npm run release:artifacts` | PASS |
23
+ | `npm run release:validate` | PASS for exact v4.3.3 wheel, sdist, npm tgz, VSIX, and DMG |
24
+ | `node scripts/run_python.mjs scripts/wheel_smoke.py --wheel dist/ltcai-4.3.3-py3-none-any.whl` | PASS, `/health` reported 4.3.3 |
25
+ | `npm pack --dry-run` | PASS, `ltcai-4.3.3.tgz`, 292 files, 2.9 MB |
26
+ | `node scripts/run_python.mjs -m twine check dist/ltcai-4.3.3-py3-none-any.whl dist/ltcai-4.3.3.tar.gz` | PASS |
27
+ | `npm run docs:check-links` | PASS, README and 16 README-linked Markdown files |
28
+ | `npm run vercel:build` | PASS, static placeholder generated for 4.3.3 |
29
+
30
+ ## Artifacts
31
+
32
+ | Artifact | SHA-256 |
33
+ | --- | --- |
34
+ | `dist/ltcai-4.3.3-py3-none-any.whl` | `716d0029a6053edacde13cad978f38e41a9c67b458eba37421ae5594e7b99948` |
35
+ | `dist/ltcai-4.3.3.tar.gz` | `77c19e9ad3e0cea757265b707b6414aef53a9d132f0456b7f0c36bcf09ece6b4` |
36
+ | `ltcai-4.3.3.tgz` | `fb29c81152fe13854e6c3ba07f5ba8b8b14f25eedbb1920600d05ef768bec044` |
37
+ | `dist/ltcai-4.3.3.vsix` | `28f243dbea1d0c49f78eb09176ae5c1f95d0d8530e49a103664dd338e53eac88` |
38
+ | `src-tauri/target/release/bundle/dmg/Lattice AI_4.3.3_aarch64.dmg` | `e717a53f83762799a32e2fa1e23c9a6fd5b2b2221bb503d12e7940e57a3455a2` |
39
+
40
+ ## Notes
41
+
42
+ - `npm run release:validate` warned that historical artifacts remain in
43
+ `dist/`; uploads must use only the exact v4.3.3 filenames above.
44
+ - The live Postgres migration test remains skipped unless the owner explicitly
45
+ sets Docker/Postgres consent for that destructive external dependency path.
46
+ - External registry publishing was not attempted.
@@ -5,28 +5,21 @@
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.3.0 Portability/Product Hardening RC; Remaining Gaps remain empty
8
+ > Last updated: 2026-06-13 — v4.3.3 Dead-Code Cleanup Release; Remaining Gaps remain empty
9
9
 
10
10
  ---
11
11
 
12
- ## 0. RELEASE STATUS (v4.3.0 RC)
13
-
14
- **v4.3.0 hardens the v4.2 Brain Core/storage architecture into a portable,
15
- user-safe desktop release candidate; implementation gaps remain empty.**
16
- Latest implementation milestone: `.latticebrain` archive format v2 is the
17
- primary portable brain format and carries encrypted graph DB, blobs, portable
18
- JSON state, signed bundles, storage metadata, provenance, public device identity
19
- metadata, manifest hashes, inspect, verify, import, restore, and dry-run restore.
20
- Restore/import requires explicit confirmation unless dry-run. Live
21
- SQLite-to-Postgres migration now creates and verifies a pre-migration backup
22
- before copying data. Tauri exposes backend status/restart/shutdown and starts
23
- the sidecar with loopback/default-off guards. Admin product hardening status
24
- reports local-only startup posture, storage, backup health, device identity,
25
- permissions, and opt-in external integration state.
26
- The v4.3.0 RC process builds validated artifacts only. It does not tag, create a
27
- GitHub Release, publish to PyPI, npm Registry, VS Code Marketplace, Open VSX, or
28
- deploy to production targets.
29
- v4.3.0 validation report: `docs/V4_3_VALIDATION_REPORT.md`.
12
+ ## 0. RELEASE STATUS (v4.3.3)
13
+
14
+ **v4.3.3 promotes the post-cleanup main tree after the independent dead-code,
15
+ architecture, and runtime audit without redesigning the Digital Brain frontend,
16
+ Brain Core, storage, or agent/workflow architecture.** Latest implementation
17
+ milestone: v4.3.2 product polish plus post-audit cleanup, architecture
18
+ documentation correction, Vercel/static-docs readiness, README badge
19
+ restoration, and exact-current-main release artifacts.
20
+ The v4.3.3 process creates a GitHub Release from locally validated artifacts.
21
+ PyPI, npm Registry, VS Code Marketplace, Open VSX, and production deployments
22
+ remain owner-only external publishing steps.
30
23
  Remaining implementation gaps: **none**.
31
24
  Owner-only blockers: pptx history rewrite (requires force-push/owner decision)
32
25
  and consent-gated production embedder provisioning (silent default download is
@@ -34,12 +27,12 @@ not permitted).
34
27
 
35
28
  ## Remaining Gaps
36
29
 
37
- None. v4.3.0 preserves the already-empty v4.2.0 gap list and closes the
38
- portability/product-hardening work: `.latticebrain` archives are verified,
39
- inspectable, dry-runnable, and confirmation-gated; default startup is local-only
40
- and token-inert; backup health and product hardening are admin-visible; release
41
- artifact validation includes the exact Tauri DMG. Owner-only blockers above are
42
- intentionally not implementation gaps.
30
+ None. v4.3.3 preserves the already-empty v4.3.2 gap list and promotes the
31
+ post-cleanup tree: Brain graph exploration remains real and API-backed, raw
32
+ product JSON dumps remain replaced with readable state, archive import/restore
33
+ flows remain exposed through existing APIs, desktop sidecar behavior remains
34
+ validated, and exact v4.3.3 release artifacts are the release target.
35
+ Owner-only blockers above are intentionally not implementation gaps.
43
36
 
44
37
  ## 1. Program Charter (from the user's v4.0.0 directive)
45
38
 
@@ -1349,6 +1349,11 @@
1349
1349
  ],
1350
1350
  "title": "Adapter Path"
1351
1351
  },
1352
+ "allow_download": {
1353
+ "default": false,
1354
+ "title": "Allow Download",
1355
+ "type": "boolean"
1356
+ },
1352
1357
  "draft_model_id": {
1353
1358
  "anyOf": [
1354
1359
  {
@@ -1820,6 +1825,11 @@
1820
1825
  },
1821
1826
  "PrepareModelRequest": {
1822
1827
  "properties": {
1828
+ "allow_download": {
1829
+ "default": false,
1830
+ "title": "Allow Download",
1831
+ "type": "boolean"
1832
+ },
1823
1833
  "engine": {
1824
1834
  "anyOf": [
1825
1835
  {
@@ -3543,7 +3553,7 @@
3543
3553
  },
3544
3554
  "info": {
3545
3555
  "title": "Lattice AI Server (local)",
3546
- "version": "4.3.0"
3556
+ "version": "4.3.3"
3547
3557
  },
3548
3558
  "openapi": "3.1.0",
3549
3559
  "paths": {
@@ -82,6 +82,12 @@ export default function App() {
82
82
  const [drawer, setDrawer] = React.useState(false);
83
83
  const [palette, setPalette] = React.useState(false);
84
84
  const health = useQuery({ queryKey: ["health"], queryFn: latticeApi.health });
85
+ const desktop = useQuery({
86
+ queryKey: ["desktopBackendStatus"],
87
+ queryFn: latticeApi.desktopBackendStatus,
88
+ enabled: Boolean(window.__TAURI_INTERNALS__),
89
+ refetchInterval: 5000,
90
+ });
85
91
  const workspace = useQuery({ queryKey: ["workspaceOs"], queryFn: latticeApi.workspaceOs });
86
92
 
87
93
  React.useEffect(() => {
@@ -98,6 +104,11 @@ export default function App() {
98
104
  return () => window.removeEventListener("keydown", onKey);
99
105
  }, []);
100
106
 
107
+ const healthData = (health.data?.data || {}) as Record<string, unknown>;
108
+ const appVersion = typeof healthData.version === "string" ? healthData.version : null;
109
+ const desktopData = (desktop.data?.data || {}) as Record<string, unknown>;
110
+ const desktopError = typeof desktopData.last_error === "string" ? desktopData.last_error : desktop.data?.error;
111
+
101
112
  const rail = (
102
113
  <aside className="flex h-full w-64 shrink-0 flex-col border-r border-border bg-card">
103
114
  <div className="flex h-16 items-center gap-3 border-b border-border px-4">
@@ -134,6 +145,9 @@ export default function App() {
134
145
  </nav>
135
146
  <div className="border-t border-border p-3 text-xs text-muted-foreground">
136
147
  <div>Server: {health.data?.ok ? "online" : "unavailable"}</div>
148
+ {window.__TAURI_INTERNALS__ ? (
149
+ <div>Sidecar: {desktopData.running ? "running" : desktopError ? `unavailable (${desktopError})` : "starting"}</div>
150
+ ) : null}
137
151
  <div>Workspace: {String((workspace.data?.data as Record<string, unknown>)?.active_workspace || "local")}</div>
138
152
  </div>
139
153
  </aside>
@@ -154,7 +168,7 @@ export default function App() {
154
168
  <div className="flex min-w-0 items-center gap-2">
155
169
  <Button variant="ghost" size="icon" className="lg:hidden" onClick={() => setDrawer(true)}><Menu className="h-5 w-5" /></Button>
156
170
  <div className="min-w-0">
157
- <div className="truncate text-sm text-muted-foreground">v4.1.0 Release Candidate</div>
171
+ <div className="truncate text-sm text-muted-foreground">{appVersion ? `v${appVersion}` : "Version unavailable"}</div>
158
172
  <div className="truncate font-medium">{primaryRoutes.find((item) => item.id === route.primary)?.label}</div>
159
173
  </div>
160
174
  </div>
@@ -38,6 +38,16 @@ async function tauriBackendOrigin(): Promise<string | null> {
38
38
  return desktopBase;
39
39
  }
40
40
 
41
+ async function tauriInvoke<T>(command: string): Promise<T | null> {
42
+ if (!window.__TAURI_INTERNALS__) return null;
43
+ try {
44
+ const { invoke } = await import("@tauri-apps/api/core");
45
+ return await invoke<T>(command);
46
+ } catch {
47
+ return null;
48
+ }
49
+ }
50
+
41
51
  async function apiBase() {
42
52
  const stateBase = useAppStore.getState().apiBase;
43
53
  if (stateBase) return stateBase;
@@ -203,6 +213,11 @@ async function streamChat(body: Record<string, unknown>, handlers: ChatEventHand
203
213
 
204
214
  export const latticeApi = {
205
215
  raw: get,
216
+ desktopBackendStatus: async (): Promise<ApiResult<Record<string, unknown>>> => {
217
+ const status = await tauriInvoke<Record<string, unknown>>("backend_status");
218
+ if (status) return { ok: true, status: 200, data: status, source: "live" };
219
+ return { ok: false, status: 0, data: {}, source: "unavailable", error: "Desktop backend status is available only inside the Tauri shell." };
220
+ },
206
221
  health: () => get("/health", {}),
207
222
  workspaceOs: () => get("/workspace/os", { counts: {}, models: {}, workspace_registry: { workspaces: [] } }),
208
223
  indexStatus: () => get("/api/index/status", {}),
@@ -248,7 +263,7 @@ export const latticeApi = {
248
263
  connectFolder: (path: string) => post("/knowledge-graph/local/index", { path, approved: true, watch_enabled: true, consent: { approved: true, source: "desktop-spa" } }, {}),
249
264
  localWatchStop: (source_id: string) => post("/knowledge-graph/local/watch/stop", { source_id }, {}),
250
265
  models: () => get("/models", { catalog: [], loaded: [], recommended: [] }),
251
- loadModel: (model_id: string, engine?: string) => post("/models/load", { model_id, engine: engine || null }, {}),
266
+ loadModel: (model_id: string, engine?: string, allow_download = false) => post("/models/load", { model_id, engine: engine || null, allow_download }, {}),
252
267
  unloadModel: (model_id: string) => del(`/models/unload/${encodeURIComponent(model_id)}`, {}),
253
268
  embeddingsStatus: () => get("/api/embeddings/status", {}),
254
269
  agentRuntime: () => get("/agents/api/runtime/status", { runtime: {}, agents: [], runs: [] }),
@@ -263,6 +278,9 @@ export const latticeApi = {
263
278
  workflowDefinitions: () => get("/workflows/api/definitions", { workflows: [] }),
264
279
  workflowRuns: () => get("/workflows/api/runs", { runs: [] }),
265
280
  workflowTriggers: () => get("/workflows/api/triggers", { armed: [] }),
281
+ createWorkflow: (body: { name: string; nodes: Array<Record<string, unknown>>; metadata?: Record<string, unknown> }) => post("/workflows/api/definitions", body, {}),
282
+ importWorkflow: (data: Record<string, unknown>) => post("/workflows/api/import", { data }, {}),
283
+ exportWorkflow: (id: string) => get(`/workflows/api/export/${encodeURIComponent(id)}`, {}),
266
284
  runWorkflow: (id: string) => post(`/workflows/api/definitions/${encodeURIComponent(id)}/run`, {}, {}),
267
285
  updateWorkflow: (id: string, body: unknown) => patch(`/workflows/api/definitions/${encodeURIComponent(id)}`, body, {}),
268
286
  stopWorkflowRun: (id: string) => post(`/workflows/api/runs/${encodeURIComponent(id)}/stop`, {}, {}),