ltcai 4.3.3 → 4.5.1

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 (138) hide show
  1. package/README.md +53 -20
  2. package/docs/CHANGELOG.md +122 -0
  3. package/docs/V4_4_0_EXTRACTION_REPORT.md +239 -0
  4. package/docs/V4_5_0_GEMMA_RUNTIME_COMPATIBILITY_REPORT.md +49 -0
  5. package/docs/V4_5_0_GRAPH_UX_REPORT.md +34 -0
  6. package/docs/V4_5_0_MODEL_RUNTIME_UX_REPORT.md +40 -0
  7. package/docs/V4_5_0_ONBOARDING_REPORT.md +31 -0
  8. package/docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md +49 -0
  9. package/docs/V4_5_0_VALIDATION_REPORT.md +60 -0
  10. package/docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md +33 -0
  11. package/docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md +37 -0
  12. package/docs/V4_5_1_NAVIGATION_REPORT.md +37 -0
  13. package/docs/V4_5_1_ONBOARDING_REPORT.md +29 -0
  14. package/docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md +61 -0
  15. package/docs/V4_5_1_RC_ARTIFACTS.md +44 -0
  16. package/docs/V4_5_1_UX_REPORT.md +45 -0
  17. package/docs/V4_5_1_VALIDATION_REPORT.md +54 -0
  18. package/docs/V4_5_1_VISUAL_DESIGN_REPORT.md +30 -0
  19. package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +16 -16
  20. package/docs/architecture.md +8 -4
  21. package/frontend/src/App.tsx +152 -91
  22. package/frontend/src/api/client.ts +83 -1
  23. package/frontend/src/components/FirstRunGuide.tsx +99 -0
  24. package/frontend/src/components/primitives.tsx +131 -25
  25. package/frontend/src/components/ui/badge.tsx +2 -2
  26. package/frontend/src/components/ui/button.tsx +7 -7
  27. package/frontend/src/components/ui/card.tsx +5 -5
  28. package/frontend/src/components/ui/input.tsx +1 -1
  29. package/frontend/src/components/ui/textarea.tsx +1 -1
  30. package/frontend/src/pages/Act.tsx +58 -28
  31. package/frontend/src/pages/Ask.tsx +51 -19
  32. package/frontend/src/pages/Brain.tsx +60 -42
  33. package/frontend/src/pages/Capture.tsx +24 -24
  34. package/frontend/src/pages/Library.tsx +222 -32
  35. package/frontend/src/pages/System.tsx +56 -34
  36. package/frontend/src/routes.ts +15 -13
  37. package/frontend/src/store/appStore.ts +8 -1
  38. package/frontend/src/styles.css +666 -36
  39. package/lattice_brain/__init__.py +38 -23
  40. package/lattice_brain/_kg_common.py +11 -1
  41. package/lattice_brain/context.py +212 -2
  42. package/lattice_brain/conversations.py +234 -1
  43. package/lattice_brain/discovery.py +11 -1
  44. package/lattice_brain/documents.py +11 -1
  45. package/lattice_brain/graph/__init__.py +28 -0
  46. package/lattice_brain/graph/_kg_common.py +1123 -0
  47. package/lattice_brain/graph/curator.py +473 -0
  48. package/lattice_brain/graph/discovery.py +1455 -0
  49. package/lattice_brain/graph/documents.py +218 -0
  50. package/lattice_brain/graph/identity.py +175 -0
  51. package/lattice_brain/graph/ingest.py +644 -0
  52. package/lattice_brain/graph/network.py +205 -0
  53. package/lattice_brain/graph/projection.py +571 -0
  54. package/lattice_brain/graph/provenance.py +401 -0
  55. package/lattice_brain/graph/retrieval.py +1341 -0
  56. package/lattice_brain/graph/schema.py +640 -0
  57. package/lattice_brain/graph/store.py +237 -0
  58. package/lattice_brain/graph/write_master.py +225 -0
  59. package/lattice_brain/identity.py +11 -13
  60. package/lattice_brain/ingest.py +11 -1
  61. package/lattice_brain/ingestion.py +318 -0
  62. package/lattice_brain/memory.py +100 -1
  63. package/lattice_brain/network.py +11 -1
  64. package/lattice_brain/portability.py +431 -0
  65. package/lattice_brain/projection.py +11 -1
  66. package/lattice_brain/provenance.py +11 -1
  67. package/lattice_brain/retrieval.py +11 -1
  68. package/lattice_brain/runtime/__init__.py +32 -0
  69. package/lattice_brain/runtime/agent_runtime.py +569 -0
  70. package/lattice_brain/runtime/hooks.py +754 -0
  71. package/lattice_brain/runtime/multi_agent.py +795 -0
  72. package/lattice_brain/schema.py +11 -1
  73. package/lattice_brain/store.py +10 -2
  74. package/lattice_brain/workflow.py +461 -0
  75. package/lattice_brain/write_master.py +11 -1
  76. package/latticeai/__init__.py +1 -1
  77. package/latticeai/api/agents.py +2 -2
  78. package/latticeai/api/browser.py +1 -1
  79. package/latticeai/api/chat.py +1 -1
  80. package/latticeai/api/computer_use.py +1 -1
  81. package/latticeai/api/hooks.py +2 -2
  82. package/latticeai/api/mcp.py +1 -1
  83. package/latticeai/api/models.py +107 -18
  84. package/latticeai/api/tools.py +1 -1
  85. package/latticeai/api/workflow_designer.py +2 -2
  86. package/latticeai/app_factory.py +4 -4
  87. package/latticeai/brain/__init__.py +24 -6
  88. package/latticeai/brain/_kg_common.py +11 -1117
  89. package/latticeai/brain/context.py +12 -208
  90. package/latticeai/brain/conversations.py +12 -231
  91. package/latticeai/brain/discovery.py +13 -1451
  92. package/latticeai/brain/documents.py +13 -214
  93. package/latticeai/brain/identity.py +11 -169
  94. package/latticeai/brain/ingest.py +13 -640
  95. package/latticeai/brain/memory.py +12 -97
  96. package/latticeai/brain/network.py +12 -200
  97. package/latticeai/brain/projection.py +13 -567
  98. package/latticeai/brain/provenance.py +13 -397
  99. package/latticeai/brain/retrieval.py +13 -1337
  100. package/latticeai/brain/schema.py +12 -635
  101. package/latticeai/brain/store.py +13 -233
  102. package/latticeai/brain/write_master.py +13 -221
  103. package/latticeai/core/agent.py +1 -1
  104. package/latticeai/core/agent_registry.py +2 -2
  105. package/latticeai/core/builtin_hooks.py +2 -2
  106. package/latticeai/core/graph_curator.py +6 -468
  107. package/latticeai/core/hooks.py +6 -749
  108. package/latticeai/core/marketplace.py +1 -1
  109. package/latticeai/core/model_compat.py +250 -0
  110. package/latticeai/core/multi_agent.py +6 -790
  111. package/latticeai/core/workflow_engine.py +6 -456
  112. package/latticeai/core/workspace_os.py +1 -1
  113. package/latticeai/models/router.py +136 -32
  114. package/latticeai/services/agent_runtime.py +6 -564
  115. package/latticeai/services/ingestion.py +6 -313
  116. package/latticeai/services/kg_portability.py +6 -426
  117. package/latticeai/services/model_catalog.py +2 -2
  118. package/latticeai/services/model_recommendation.py +8 -1
  119. package/latticeai/services/model_runtime.py +18 -3
  120. package/latticeai/services/platform_runtime.py +3 -3
  121. package/latticeai/services/run_executor.py +1 -1
  122. package/latticeai/services/upload_service.py +1 -1
  123. package/p_reinforce.py +1 -1
  124. package/package.json +1 -1
  125. package/scripts/build_frontend_assets.mjs +12 -1
  126. package/scripts/bump_version.py +1 -1
  127. package/scripts/wheel_smoke.py +7 -0
  128. package/src-tauri/Cargo.lock +1 -1
  129. package/src-tauri/Cargo.toml +1 -1
  130. package/src-tauri/tauri.conf.json +1 -1
  131. package/static/app/asset-manifest.json +5 -5
  132. package/static/app/assets/index-3G8qcrIS.js +336 -0
  133. package/static/app/assets/index-3G8qcrIS.js.map +1 -0
  134. package/static/app/assets/index-C0wYZp7k.css +2 -0
  135. package/static/app/index.html +2 -2
  136. package/static/app/assets/index-CHHal8Zl.css +0 -2
  137. package/static/app/assets/index-pdzil9ac.js +0 -333
  138. package/static/app/assets/index-pdzil9ac.js.map +0 -1
package/README.md CHANGED
@@ -7,12 +7,14 @@
7
7
  [![CI Status](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml)
8
8
  [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
9
9
 
10
- **Lattice AI v4.3.3 is a local-first Digital Brain desktop workspace.** It runs
10
+ **Lattice AI v4.5.1 is a local-first Digital Brain desktop workspace.** It runs
11
11
  as a Tauri desktop app with a localhost FastAPI sidecar, stores the user's brain
12
12
  locally by default, and presents the Knowledge Graph as the durable asset.
13
13
 
14
- This README describes the v4.3.3 release tree, which promotes the post-cleanup
15
- main branch after the v4.3.2 self-audit and independent dead-code/runtime audit.
14
+ This README describes the v4.5.1 release-candidate tree, which preserves the
15
+ v4.4.0 physical `lattice_brain` extraction and v4.5.0 capability recovery while
16
+ reimagining the product surface from first principles: Home, Ask, Add,
17
+ Automate, Library, and Care replace the prior dashboard-style presentation.
16
18
  External package registries are owner-published; the badges above link to
17
19
  package pages and may show the most recently published owner-controlled registry
18
20
  version, which can lag behind the GitHub Release.
@@ -31,6 +33,13 @@ version, which can lag behind the GitHub Release.
31
33
  presenting simulation as real success. When no LLM-backed model is loaded,
32
34
  deterministic model-free agent simulation is reported honestly and does not call a model.
33
35
  - Library shows model/runtime availability honestly.
36
+ - First-run setup guides Make it yours -> Choose a space -> Meet your Mac ->
37
+ Pick a brain -> Install locally -> Try a question -> Set the pace -> Explore
38
+ memory.
39
+ - Gemma 4 MLX models are checked against their local `config.json` before load:
40
+ Gemma 4 12B `gemma4_unified` now shows **Runtime update needed** when the
41
+ installed MLX-VLM lacks `mlx_vlm.models.gemma4_unified`, while Gemma 4 26B
42
+ A4B stays on the working `gemma4` MLX-VLM path.
34
43
  - System exposes storage, backup health, archive, Brain Network, device
35
44
  identity, and admin status through real APIs.
36
45
  - Backup, restore dry-run, archive verify, archive import dry-run, and
@@ -40,7 +49,7 @@ version, which can lag behind the GitHub Release.
40
49
 
41
50
  ### Desktop Startup
42
51
 
43
- The v4.3.3 DMG build launches a visible Tauri app, starts the FastAPI sidecar on
52
+ The v4.5.1 DMG build launches a visible Tauri app, starts the FastAPI sidecar on
44
53
  localhost, and shuts that sidecar down on normal macOS quit.
45
54
 
46
55
  ![Desktop startup and local sidecar](output/audits/v4.3.2-rc/screenshots/13-desktop-sidecar-startup.png)
@@ -53,9 +62,8 @@ Evidence:
53
62
  ### Brain Graph
54
63
 
55
64
  Brain opens on the graph-first workspace. The graph uses real persisted nodes
56
- and edges from `/knowledge-graph/graph`, then layers product controls for search,
57
- semantic grouping, focus neighborhoods, label modes, group collapse/expand, and
58
- importance filtering.
65
+ and edges, then layers product controls for search, semantic grouping, focus
66
+ neighborhoods, label modes, group collapse/expand, and importance filtering.
59
67
 
60
68
  ![Brain graph explorer](output/audits/v4.3.2-rc/screenshots/02-graph-explorer-before.png)
61
69
 
@@ -94,7 +102,10 @@ LLM-backed model is loaded.
94
102
 
95
103
  Library shows models, skills, MCP, and marketplace/configuration state with
96
104
  availability reported from runtime APIs. Optional model runtimes are not treated
97
- as loaded unless the runtime is actually available.
105
+ as loaded unless the runtime is actually available. Model setup now follows the
106
+ explicit Environment Analysis -> Recommended Models -> Install -> Download
107
+ Progress -> Validate -> Load -> Ready path, with download/install consent kept
108
+ visible.
98
109
 
99
110
  ![Library model status](output/audits/v4.3.2-rc/screenshots/12-library-model-status.png)
100
111
 
@@ -136,8 +147,11 @@ Archive evidence:
136
147
  - **Frontend**: React, TypeScript, Vite, TanStack Query, Zustand, Cytoscape.js,
137
148
  React Flow, Tailwind/shadcn-style primitives, generated OpenAPI client.
138
149
  - **Backend**: FastAPI on localhost is the source of truth for the UI.
139
- - **Brain Core**: independent Python package `lattice_brain`, imported by
140
- FastAPI, CLI, tests, and future tools.
150
+ - **Brain Core**: independent Python package `lattice_brain` (graph, memory,
151
+ context, conversations, ingestion, agent/hook runtime, workflow,
152
+ portability, storage) physically hosted in the package, imported by FastAPI,
153
+ CLI, tests, and future tools, and guaranteed by tests to never import
154
+ `latticeai`.
141
155
  - **Storage**: `StorageEngine` abstraction with SQLite default and optional
142
156
  PostgreSQL/pgvector scale mode.
143
157
  - **Portability**: encrypted `.latticebrain` archive plus backup/restore and
@@ -145,17 +159,19 @@ Archive evidence:
145
159
  - **Privacy**: local-first by default; cloud models, Telegram, Brain Network,
146
160
  Docker, model downloads, and update checks require explicit opt-in paths.
147
161
 
148
- See [ARCHITECTURE.md](ARCHITECTURE.md) for the detailed v4.3.3 architecture.
162
+ See [ARCHITECTURE.md](ARCHITECTURE.md) for the detailed v4 architecture. v4.5.1
163
+ does not redesign the v4.4.0 Brain Core extraction, StorageEngine, FastAPI,
164
+ Tauri, backup/restore, or portability architecture.
149
165
 
150
166
  ## Installation And Release Artifacts
151
167
 
152
- Validated v4.3.3 artifacts are produced from the post-cleanup tree:
168
+ Validated v4.5.1 RC artifacts are produced from the product-reimagining tree:
153
169
 
154
- - `dist/ltcai-4.3.3-py3-none-any.whl`
155
- - `dist/ltcai-4.3.3.tar.gz`
156
- - `ltcai-4.3.3.tgz`
157
- - `dist/ltcai-4.3.3.vsix`
158
- - `src-tauri/target/release/bundle/dmg/Lattice AI_4.3.3_aarch64.dmg`
170
+ - `dist/ltcai-4.5.1-py3-none-any.whl`
171
+ - `dist/ltcai-4.5.1.tar.gz`
172
+ - `ltcai-4.5.1.tgz`
173
+ - `dist/ltcai-4.5.1.vsix`
174
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_4.5.1_aarch64.dmg`
159
175
 
160
176
  For a public release, attach only those exact artifacts to the GitHub Release.
161
177
  Package-registry publishing is reserved for the owner.
@@ -191,7 +207,7 @@ npm run test:unit
191
207
  LTCAI_TEST_BASE_URL=http://127.0.0.1:4932 npm run test:integration
192
208
  npm run test:visual
193
209
  npm run desktop:tauri:check
194
- node scripts/run_python.mjs scripts/wheel_smoke.py --wheel dist/ltcai-4.3.3-py3-none-any.whl
210
+ node scripts/run_python.mjs scripts/wheel_smoke.py --wheel dist/ltcai-X.Y.Z-py3-none-any.whl
195
211
  npm pack --dry-run
196
212
  ```
197
213
 
@@ -205,12 +221,15 @@ npm pack --dry-run
205
221
  - Model downloads and cloud model calls require explicit user action/consent.
206
222
  - Ask does not fabricate answers when no model is loaded.
207
223
  - Historical artifacts may remain in `dist/`; release uploads must use exact
208
- v4.3.3 filenames.
224
+ v4.5.1 filenames for this RC.
209
225
 
210
226
  ## Release History
211
227
 
212
228
  | Version | Theme |
213
229
  | --- | --- |
230
+ | 4.5.1 | Product Reimagining RC: replaced the desktop shell, navigation model, onboarding journey, first-viewport hierarchy, and visual system while preserving capabilities and local-first architecture |
231
+ | 4.5.0 | Product Experience Recovery RC: restored first-run setup, workspace/model onboarding, explicit model install/download/validate/load flow, Gemma 4 runtime compatibility gating, Basic-mode polish, and graph discoverability |
232
+ | 4.4.0 | Brain Engine Extraction: Brain Core physically moved into `lattice_brain` (graph/memory/context/conversation/ingestion/runtime/workflow/portability), latticeai paths reduced to compatibility shims, isolation tests guaranteeing no `latticeai` imports |
214
233
  | 4.3.3 | Dead-Code Cleanup Release: post-audit cleanup, architecture documentation correction, Vercel/static-docs readiness, README badge restoration, exact-current artifacts |
215
234
  | 4.3.2 | Product Polish & Graph UX Overhaul RC: evidence-based README, graph UX, structured product state, archive UX, desktop sidecar cleanup, publishing readiness |
216
235
  | 4.3.1 | End-User Audit Repair RC: desktop sidecar startup, npm clean install, default-off downloads, honest agent/workflow states |
@@ -223,16 +242,30 @@ npm pack --dry-run
223
242
 
224
243
  ## Current Documentation
225
244
 
226
- - [ARCHITECTURE.md](ARCHITECTURE.md) - v4.3.3 architecture.
245
+ - [ARCHITECTURE.md](ARCHITECTURE.md) - v4 architecture.
227
246
  - [FEATURE_STATUS.md](FEATURE_STATUS.md) - current feature status and historical
228
247
  status ledger.
229
248
  - [RELEASE_NOTES.md](RELEASE_NOTES.md) - current release notes index.
249
+ - [RELEASE_NOTES_v4.5.1.md](RELEASE_NOTES_v4.5.1.md) - v4.5.1 RC release notes.
250
+ - [RELEASE_NOTES_v4.5.0.md](RELEASE_NOTES_v4.5.0.md) - v4.5.0 RC release notes.
251
+ - [RELEASE_NOTES_v4.4.0.md](RELEASE_NOTES_v4.4.0.md) - v4.4.0 release notes.
230
252
  - [RELEASE_NOTES_v4.3.3.md](RELEASE_NOTES_v4.3.3.md) - v4.3.3 release notes.
231
253
  - [RELEASE.md](RELEASE.md) - release checklist and exact artifact guidance.
232
254
  - [SECURITY.md](SECURITY.md) - security posture.
233
255
  - [docs/CHANGELOG.md](docs/CHANGELOG.md) - changelog.
234
256
  - [docs/V4_3_2_DEADCODE_AUDIT_REPORT.md](docs/V4_3_2_DEADCODE_AUDIT_REPORT.md) - v4.3.3 cleanup basis.
235
257
  - [docs/V4_3_3_VALIDATION_REPORT.md](docs/V4_3_3_VALIDATION_REPORT.md) - v4.3.3 validation report.
258
+ - [docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md](docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md) - v4.5.0 product recovery report.
259
+ - [docs/V4_5_0_VALIDATION_REPORT.md](docs/V4_5_0_VALIDATION_REPORT.md) - v4.5.0 validation report.
260
+ - [docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md](docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md) - v4.5.1 product reimagining report.
261
+ - [docs/V4_5_1_UX_REPORT.md](docs/V4_5_1_UX_REPORT.md) - v4.5.1 UX report.
262
+ - [docs/V4_5_1_VISUAL_DESIGN_REPORT.md](docs/V4_5_1_VISUAL_DESIGN_REPORT.md) - v4.5.1 visual design report.
263
+ - [docs/V4_5_1_NAVIGATION_REPORT.md](docs/V4_5_1_NAVIGATION_REPORT.md) - v4.5.1 navigation report.
264
+ - [docs/V4_5_1_ONBOARDING_REPORT.md](docs/V4_5_1_ONBOARDING_REPORT.md) - v4.5.1 onboarding report.
265
+ - [docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md](docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md) - v4.5.1 model experience report.
266
+ - [docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md](docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md) - v4.5.1 graph experience report.
267
+ - [docs/V4_5_1_VALIDATION_REPORT.md](docs/V4_5_1_VALIDATION_REPORT.md) - v4.5.1 validation report.
268
+ - [docs/V4_5_1_RC_ARTIFACTS.md](docs/V4_5_1_RC_ARTIFACTS.md) - v4.5.1 screenshot, GIF, and RC artifact manifest.
236
269
  - [docs/V4_3_2_GRAPH_UX_REPORT.md](docs/V4_3_2_GRAPH_UX_REPORT.md) - graph UX report.
237
270
  - [docs/V4_3_2_PRODUCT_POLISH_REPORT.md](docs/V4_3_2_PRODUCT_POLISH_REPORT.md) - product polish report.
238
271
  - [docs/V4_3_2_SELF_AUDIT_REPORT.md](docs/V4_3_2_SELF_AUDIT_REPORT.md) - self-audit evidence.
package/docs/CHANGELOG.md CHANGED
@@ -3,6 +3,128 @@
3
3
  The top entry is the current release-preparation target. Older entries are
4
4
  historical and may describe behavior as it existed at that release.
5
5
 
6
+ ## [4.5.1] - 2026-06-13
7
+
8
+ > Product Reimagining release candidate after the v4.5.0 capability recovery.
9
+
10
+ ### Changed
11
+
12
+ - Replaced the desktop shell with a compact premium chrome, ambient brain
13
+ canvas, command palette, responsive mobile drawer, and six-room product model:
14
+ Home, Ask, Add, Automate, Library, Care.
15
+ - Rewrote first-run onboarding as a non-technical journey: Make it yours ->
16
+ Choose a space -> Meet your Mac -> Pick a brain -> Install locally -> Try a
17
+ question -> Set the pace -> Explore memory.
18
+ - Retained all compatibility hash routes while changing visible navigation,
19
+ information hierarchy, route labels, and page hero language.
20
+ - Replaced the global visual system with a calmer Digital Brain palette,
21
+ fixed-size responsive typography, 8px-or-smaller card radii, and refined
22
+ shared controls.
23
+
24
+ ### Preserved
25
+
26
+ - Brain Core, FastAPI APIs, Tauri shell, StorageEngine, backup/restore,
27
+ portability, model runtimes, graph/search/chat/capture/automation/system
28
+ workflows, and route aliases remain capability-compatible.
29
+
30
+ ### Validation
31
+
32
+ - Full v4.5.1 RC validation is tracked in
33
+ `docs/V4_5_1_VALIDATION_REPORT.md`.
34
+
35
+ ### Artifacts
36
+
37
+ - `dist/ltcai-4.5.1-py3-none-any.whl`
38
+ - `dist/ltcai-4.5.1.tar.gz`
39
+ - `dist/ltcai-4.5.1.vsix`
40
+ - `ltcai-4.5.1.tgz`
41
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_4.5.1_aarch64.dmg`
42
+
43
+ ## [4.5.0] - 2026-06-13
44
+
45
+ > Product Experience Recovery release candidate after the v4.4.0 physical Brain
46
+ > extraction.
47
+
48
+ ### Changed
49
+
50
+ - Restored the first-run product journey in the desktop shell: Login ->
51
+ Workspace Selection -> Environment Analysis -> Model Recommendation -> Model
52
+ Installation -> Model Validation -> Mode Selection -> Brain Usage.
53
+ - Reworked Library Models around the existing prepare/load stream so model setup
54
+ visibly moves through Environment Analysis, Recommended Models, Install,
55
+ Download Progress, Validate, Load, and Ready.
56
+ - Basic mode now uses friendlier connected/needs-setup status language and
57
+ hides endpoint/module details in the Brain graph, model cards, and computer
58
+ readiness panels while preserving Advanced/Admin inspection detail.
59
+ - Brain graph/search copy now emphasizes ideas, relationships, sources, focus,
60
+ filtering, and readability instead of backend endpoint implementation.
61
+
62
+ ### Fixed
63
+
64
+ - Gemma 4 MLX routing now reads local model metadata before load. Gemma 4 12B
65
+ `gemma4_unified` shows **Runtime update needed** when installed MLX-VLM lacks
66
+ `mlx_vlm.models.gemma4_unified`; Gemma 4 26B A4B remains ready on the
67
+ standard `gemma4` MLX-VLM path.
68
+ - Raw loader errors such as `No module named ...gemma4_unified` are converted
69
+ into actionable runtime-update guidance instead of marking the model ready or
70
+ routing it through an incompatible MLX-LM fallback.
71
+ - Workspace selection now persists across reloads so the selected workspace is
72
+ used by API requests after restart.
73
+
74
+ ### Validation
75
+
76
+ - Added unit coverage for Gemma 4 12B versus 26B runtime compatibility,
77
+ recommendation state, catalog routing, and the MLX-LM fallback guard.
78
+ - Added Playwright coverage for first-run setup, model setup flow, Gemma
79
+ recovery guidance, and Basic graph developer-leakage prevention.
80
+ - Full v4.5.0 RC validation is tracked in
81
+ `docs/V4_5_0_VALIDATION_REPORT.md`.
82
+
83
+ ### Artifacts
84
+
85
+ - `dist/ltcai-4.5.0-py3-none-any.whl`
86
+ - `dist/ltcai-4.5.0.tar.gz`
87
+ - `dist/ltcai-4.5.0.vsix`
88
+ - `ltcai-4.5.0.tgz`
89
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_4.5.0_aarch64.dmg`
90
+
91
+ ## [4.4.0] - 2026-06-13
92
+
93
+ > Brain Engine Extraction release: the Brain Core implementation physically
94
+ > moves into the standalone `lattice_brain` package.
95
+
96
+ ### Changed
97
+
98
+ - Physically moved the knowledge graph (schema, store, write/retrieval/
99
+ discovery/documents/ingest/projection/provenance mixins, identity, network,
100
+ curator) into `lattice_brain.graph`, and memory, context, conversations into
101
+ `lattice_brain` proper.
102
+ - Physically moved the unified ingestion pipeline, hooks registry, multi-agent
103
+ orchestrator, agent runtime, workflow engine, and KG portability service into
104
+ `lattice_brain.ingestion`, `lattice_brain.runtime`, `lattice_brain.workflow`,
105
+ and `lattice_brain.portability`.
106
+ - FastAPI app assembly, routers, and services now import `lattice_brain`
107
+ directly; `latticeai.brain.*` became deprecation shims and the moved
108
+ `latticeai.core.*`/`latticeai.services.*` paths became silent alias shims
109
+ with module identity preserved.
110
+ - Synchronized all version copies to `4.4.0` and updated architecture/release
111
+ documentation to describe the physical extraction.
112
+
113
+ ### Added
114
+
115
+ - `tests/unit/test_lattice_brain_isolation.py`: fails if `lattice_brain`
116
+ imports `latticeai` (import-hook enforced) and exercises the Brain Core
117
+ end-to-end (graph ingest/search, conversations, context, workflow, agent
118
+ runtime, encrypted archive round-trip) without FastAPI.
119
+ - `lattice_brain.graph` and `lattice_brain.runtime` subpackages, shipped in the
120
+ wheel and covered by the wheel smoke check.
121
+
122
+ ### Fixed
123
+
124
+ - The Brain Core boundary is no longer an import-path contract: importing
125
+ `lattice_brain` no longer pulls in `latticeai.brain`, and the package is
126
+ usable by CLI, tests, and future tools fully independently.
127
+
6
128
  ## [4.3.3] - 2026-06-13
7
129
 
8
130
  > Dead-Code Cleanup release after the independent audit cleanup on top of
@@ -0,0 +1,239 @@
1
+ # v4.4.0 Physical Extraction Report — `lattice_brain` Brain Engine
2
+
3
+ Date: 2026-06-13
4
+ Scope: complete physical extraction of the Brain Core implementation into the
5
+ standalone `lattice_brain` package. The release flow attaches only validated
6
+ v4.4.0 artifacts to GitHub; no external package registry publishing is part of
7
+ this release step.
8
+
9
+ ## 1. Problem Before v4.4.0
10
+
11
+ `lattice_brain` provided an import-path contract only. The graph, memory,
12
+ context, conversation, and ingestion implementations physically lived under
13
+ `latticeai/brain/` (and `latticeai/core/`, `latticeai/services/`) and were
14
+ re-exported through `lattice_brain.*`. Importing `lattice_brain.store`
15
+ actually executed `latticeai.brain.store`, so the Brain Core could not be
16
+ used, tested, or distributed independently of the FastAPI product package.
17
+
18
+ ## 2. Dependency Graph
19
+
20
+ ### Before (v4.3.3)
21
+
22
+ ```
23
+ lattice_brain.store/schema/retrieval/... (1-line re-exports)
24
+ │ imports
25
+
26
+ latticeai.brain.* (physical implementation)
27
+ │ imports
28
+ ├─ latticeai.services.ingestion (memory → IngestionItem)
29
+ │ └─ latticeai.core.hooks (dispatch_tool)
30
+ ├─ latticeai.core.graph_curator (projection, lazy)
31
+ └─ kg_schema (root shim → lattice_brain.schema → latticeai.brain.schema)
32
+ latticeai.services.agent_runtime → latticeai.core.multi_agent
33
+ latticeai.services.kg_portability → lattice_brain.archive/storage (already clean)
34
+ latticeai.core.workflow_engine (stdlib only, hosted in latticeai)
35
+ ```
36
+
37
+ Net effect: `import lattice_brain.store` pulled in `latticeai`.
38
+
39
+ ### After (v4.4.0)
40
+
41
+ ```
42
+ latticeai (FastAPI app, routers, services, product backend)
43
+ │ imports (one direction only)
44
+
45
+ lattice_brain (physical Brain Engine)
46
+ ├─ core, archive, embeddings, storage/ (already physical in v4.2+)
47
+ ├─ graph/ _kg_common, schema, store, write_master, retrieval, discovery,
48
+ │ documents, ingest, projection, provenance, identity, network,
49
+ │ curator
50
+ ├─ memory, context, conversations
51
+ ├─ ingestion (uses .runtime.hooks)
52
+ ├─ runtime/ hooks, multi_agent, agent_runtime
53
+ ├─ workflow
54
+ └─ portability (uses .archive/.storage/.graph.identity)
55
+ ```
56
+
57
+ `lattice_brain` has zero `latticeai` imports — enforced by an import-hook test.
58
+ External (third-party/optional) deps of the package: `cryptography`, `keyring`,
59
+ `httpx`, `psycopg` (opt-in), `sqlite-vec` (opt-in), document parsers
60
+ (`pdfplumber`, `python-docx`, `openpyxl`, `python-pptx`, `PIL`) — all already
61
+ declared in `pyproject.toml`.
62
+
63
+ ## 3. Files Moved (physical, via `git mv`, history preserved)
64
+
65
+ Knowledge graph → `lattice_brain/graph/`:
66
+
67
+ | From | To |
68
+ | --- | --- |
69
+ | `latticeai/brain/_kg_common.py` | `lattice_brain/graph/_kg_common.py` |
70
+ | `latticeai/brain/schema.py` | `lattice_brain/graph/schema.py` |
71
+ | `latticeai/brain/store.py` | `lattice_brain/graph/store.py` |
72
+ | `latticeai/brain/write_master.py` | `lattice_brain/graph/write_master.py` |
73
+ | `latticeai/brain/retrieval.py` | `lattice_brain/graph/retrieval.py` |
74
+ | `latticeai/brain/discovery.py` | `lattice_brain/graph/discovery.py` |
75
+ | `latticeai/brain/documents.py` | `lattice_brain/graph/documents.py` |
76
+ | `latticeai/brain/ingest.py` | `lattice_brain/graph/ingest.py` |
77
+ | `latticeai/brain/projection.py` | `lattice_brain/graph/projection.py` |
78
+ | `latticeai/brain/provenance.py` | `lattice_brain/graph/provenance.py` |
79
+ | `latticeai/brain/identity.py` | `lattice_brain/graph/identity.py` |
80
+ | `latticeai/brain/network.py` | `lattice_brain/graph/network.py` |
81
+ | `latticeai/core/graph_curator.py` | `lattice_brain/graph/curator.py` |
82
+
83
+ Memory / context / conversation:
84
+
85
+ | From | To |
86
+ | --- | --- |
87
+ | `latticeai/brain/memory.py` | `lattice_brain/memory.py` |
88
+ | `latticeai/brain/context.py` | `lattice_brain/context.py` |
89
+ | `latticeai/brain/conversations.py` | `lattice_brain/conversations.py` |
90
+
91
+ Ingestion / runtime / workflow / portability:
92
+
93
+ | From | To |
94
+ | --- | --- |
95
+ | `latticeai/services/ingestion.py` | `lattice_brain/ingestion.py` |
96
+ | `latticeai/core/hooks.py` | `lattice_brain/runtime/hooks.py` |
97
+ | `latticeai/core/multi_agent.py` | `lattice_brain/runtime/multi_agent.py` |
98
+ | `latticeai/services/agent_runtime.py` | `lattice_brain/runtime/agent_runtime.py` |
99
+ | `latticeai/core/workflow_engine.py` | `lattice_brain/workflow.py` |
100
+ | `latticeai/services/kg_portability.py` | `lattice_brain/portability.py` |
101
+
102
+ 19 files moved with history; 2 new subpackage `__init__.py` files
103
+ (`lattice_brain/graph/`, `lattice_brain/runtime/`).
104
+
105
+ Import edges rewritten inside moved code (the only source changes to the
106
+ implementations):
107
+
108
+ - `graph/_kg_common.py`: `latticeai.brain.schema` → `.schema`;
109
+ `lattice_brain.embeddings` → `..embeddings`
110
+ - `graph/projection.py`: lazy `latticeai.core.graph_curator` → `.curator`
111
+ - `graph/provenance.py`: lazy `kg_schema` → `.schema`
112
+ - `graph/network.py`: `lattice_brain.identity` → `.identity`
113
+ - `graph/store.py`: lazy `lattice_brain.storage` → `..storage`
114
+ - `memory.py`: `latticeai.services.ingestion` → `.ingestion`
115
+ - `ingestion.py`: `latticeai.core.hooks` → `.runtime.hooks`
116
+ - `runtime/agent_runtime.py`: `latticeai.core.multi_agent` → `.multi_agent`
117
+ - `portability.py`: absolute `lattice_brain.*` → relative; lazy identity →
118
+ `.graph.identity`
119
+ - `runtime/hooks.py`: three `binding` metadata strings updated to the new
120
+ physical paths
121
+
122
+ ## 4. Re-Export Modules Deleted / Replaced
123
+
124
+ Deleted (the old `lattice_brain → latticeai.brain` re-exports — the "fake
125
+ extraction" layer):
126
+ `lattice_brain/{_kg_common,schema,store,write_master,retrieval,discovery,documents,ingest,projection,provenance,network,identity}.py`
127
+
128
+ Each path was recreated as an **internal alias shim** (`sys.modules[__name__] =
129
+ lattice_brain.graph.<name>`), so old flat imports keep working with module
130
+ identity preserved (the shim and the physical module are the same object —
131
+ singletons, `isinstance`, and monkeypatching are unaffected). These alias the
132
+ package to itself; nothing re-exports `latticeai` anymore.
133
+
134
+ ## 5. Compatibility Shims Kept (latticeai side)
135
+
136
+ Deprecation shims (emit `DeprecationWarning`, alias the physical module):
137
+
138
+ - `latticeai/brain/__init__.py` (re-exports the public surface from
139
+ `lattice_brain`)
140
+ - `latticeai/brain/{store,schema,retrieval,discovery,documents,ingest,projection,provenance,write_master,network,identity,_kg_common,memory,context,conversations}.py`
141
+
142
+ Silent alias shims (still-supported old paths):
143
+
144
+ - `latticeai/core/hooks.py` → `lattice_brain.runtime.hooks`
145
+ - `latticeai/core/multi_agent.py` → `lattice_brain.runtime.multi_agent`
146
+ - `latticeai/core/workflow_engine.py` → `lattice_brain.workflow`
147
+ - `latticeai/core/graph_curator.py` → `lattice_brain.graph.curator`
148
+ - `latticeai/services/ingestion.py` → `lattice_brain.ingestion`
149
+ - `latticeai/services/agent_runtime.py` → `lattice_brain.runtime.agent_runtime`
150
+ - `latticeai/services/kg_portability.py` → `lattice_brain.portability`
151
+
152
+ Root-level shims (`kg_schema.py`, `knowledge_graph.py`, …) continue to work
153
+ unchanged through the flat `lattice_brain.*` paths.
154
+
155
+ ## 6. Consumers Updated to Import `lattice_brain` Directly
156
+
157
+ `latticeai/app_factory.py`, `latticeai/core/{agent,agent_registry,builtin_hooks}.py`,
158
+ `latticeai/api/{hooks,tools,computer_use,agents,browser,workflow_designer,chat,mcp}.py`,
159
+ `latticeai/services/{platform_runtime,run_executor,upload_service}.py`,
160
+ `p_reinforce.py`, `scripts/bump_version.py`, `scripts/wheel_smoke.py`, and all
161
+ test modules now use the physical `lattice_brain` paths. Zero non-shim
162
+ references to the old module locations remain.
163
+
164
+ ## 7. New Tests
165
+
166
+ `tests/unit/test_lattice_brain_isolation.py`:
167
+
168
+ 1. **`test_lattice_brain_never_imports_latticeai`** — subprocess installs a
169
+ `sys.meta_path` finder that raises on any `latticeai` import, imports every
170
+ `lattice_brain` module via `pkgutil.walk_packages`, resolves every lazy
171
+ facade export, and asserts `latticeai` never entered `sys.modules`. This
172
+ test fails if `lattice_brain` ever imports `latticeai`.
173
+ 2. **`test_lattice_brain_usable_in_isolation`** — with the same import block
174
+ active and FastAPI never started: `BrainCore` construction, ingestion
175
+ pipeline → graph write, graph search, conversation store append/count,
176
+ context assembly, workflow engine run, agent runtime/hooks availability,
177
+ and an encrypted `.latticebrain` archive create → inspect → verify
178
+ round-trip.
179
+
180
+ ## 8. Packaging / Version Changes
181
+
182
+ - `pyproject.toml`: packages now include `lattice_brain.graph` and
183
+ `lattice_brain.runtime`; version `4.4.0`.
184
+ - `scripts/wheel_smoke.py`: import matrix extended with the new subpackages
185
+ and modules.
186
+ - `scripts/bump_version.py`: `MULTI_AGENT_VERSION` target re-pointed to
187
+ `lattice_brain/runtime/multi_agent.py`.
188
+ - All 13 synchronized version copies bumped to `4.4.0` via
189
+ `scripts/bump_version.py` (Python, npm, lockfiles, VSIX, Tauri, asset
190
+ manifest, runtime constants).
191
+ - Docs updated: `ARCHITECTURE.md` (packaging note now describes the physical
192
+ layout and the isolation guarantee), `README.md` (Brain Core claim, history,
193
+ artifact names), `FEATURE_STATUS.md`, `SECURITY.md` (supported versions),
194
+ `RELEASE_NOTES.md`, `RELEASE_NOTES_v4.4.0.md`, `docs/CHANGELOG.md`,
195
+ `CHANGELOG.md` pointer.
196
+
197
+ ## 9. User Data and Behavior
198
+
199
+ No storage schema, migration, archive format, or API change. The SQLite
200
+ default engine, Postgres opt-in path, `.latticebrain` archive format, and
201
+ backup/restore flows are byte-identical code, relocated. Old pickles are not
202
+ used; module identity through shims keeps any dynamic lookups working.
203
+
204
+ ## 10. Validation Results
205
+
206
+ Environment note: final release validation ran locally on macOS with Python
207
+ 3.12.13 (`LTCAI_PYTHON=/tmp/ltcai-v440-py312/bin/python`), Node 26.0.0,
208
+ npm 11.12.1, Rust 1.96.0, Cargo 1.96.0, and Tauri CLI 2.0.0.
209
+
210
+ | Check | Result |
211
+ | --- | --- |
212
+ | Python compile (`compileall` over `lattice_brain`, `latticeai`, `tests`, `tools`, `scripts`, root modules) | PASS |
213
+ | `ruff check .` | PASS (no findings) |
214
+ | Unit tests (`pytest tests/unit`) | **604 passed** (includes the 2 new isolation tests) |
215
+ | Integration tests (`pytest tests/integration` against live uvicorn on localhost) | 9 passed, 1 skipped (live-Postgres test, opt-in by design) |
216
+ | `lattice_brain` isolation tests | PASS (both) |
217
+ | No `lattice_brain → latticeai` import test | PASS |
218
+ | Graph/search/ingestion tests (`test_kg_*`, `test_ingestion_pipeline`, `test_browser_ingestion`, …) | PASS (within unit suite) |
219
+ | Backup/restore + `.latticebrain` archive tests (`test_kg_portability`, archive round-trip in isolation test) | PASS |
220
+ | Frontend lint (`npm run lint`) | PASS |
221
+ | Frontend typecheck (`tsc --noEmit` + VS Code extension `tsc`) | PASS |
222
+ | Playwright visual tests (`npx playwright test`) | **12 passed** |
223
+ | Tauri check (`cargo check`) | PASS (existing transitive `block v0.1.6` future-incompat warning) |
224
+ | Tauri DMG build (`npm run release:artifacts`) | PASS (`Lattice AI_4.4.0_aarch64.dmg`) |
225
+ | Release artifact validation (`scripts/validate_release_artifacts.py 4.4.0 --require-vsix --require-tgz --require-dmg`) | PASS (warns about historical versions in `dist/`, as designed) |
226
+ | Wheel smoke | PASS (29 wheel modules import from the wheel; `/health` returns `4.4.0`) |
227
+ | `npm pack --dry-run` | PASS (315 files) |
228
+
229
+ ## 11. v4.4.0 Artifacts Built
230
+
231
+ - `dist/ltcai-4.4.0-py3-none-any.whl` (contains `lattice_brain/graph/*`,
232
+ `lattice_brain/runtime/*`; verified by wheel content check + smoke)
233
+ - `dist/ltcai-4.4.0.tar.gz`
234
+ - `ltcai-4.4.0.tgz` (npm pack)
235
+ - `dist/ltcai-4.4.0.vsix` (built via `scripts/build_vsix.mjs`)
236
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_4.4.0_aarch64.dmg`
237
+
238
+ Per instructions: GitHub Release attachment uses only these exact validated
239
+ v4.4.0 artifacts. External package registries are not published.
@@ -0,0 +1,49 @@
1
+ # v4.5.0 Gemma Runtime Compatibility Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ ## Regression
6
+
7
+ Gemma 4 12B Instruct and Gemma 4 26B A4B were both presented as local Gemma 4
8
+ models, but they do not enter the same loader path. The first real divergence is
9
+ the local `config.json`: 12B declares `model_type: gemma4_unified`, while 26B
10
+ A4B declares `model_type: gemma4`. Installed MLX-VLM 0.5.0 can load the 26B
11
+ standard `gemma4` path, but it lacks `mlx_vlm.models.gemma4_unified`, and
12
+ MLX-LM does not provide a `gemma4_unified` loader either.
13
+
14
+ ## Fix
15
+
16
+ - `latticeai.core.model_compat` reads the local model metadata before load and
17
+ reports `runtime_update_needed` for 12B `gemma4_unified` when
18
+ `mlx_vlm.models.gemma4_unified` is absent.
19
+ - `latticeai.models.router` keeps the v3 MLX-VLM path first and only retries
20
+ MLX-LM for standard Gemma 4 metadata. It does not route `gemma4_unified`
21
+ through the incompatible MLX-LM fallback.
22
+ - `/models` preserves pulled/ready state for no-alias local MLX models, so 26B
23
+ A4B stays ready while 12B shows the honest runtime-update state.
24
+ - Generic loader failures are converted into friendly recovery payloads without
25
+ hiding the root cause.
26
+ - Recommendation classification marks the 12B MLX snapshot not recommended until
27
+ the installed runtime can load it, while the 26B A4B path remains recommended.
28
+
29
+ ## User Guidance
30
+
31
+ The UI recommends:
32
+
33
+ - update MLX-VLM to a version with `mlx_vlm.models.gemma4_unified`
34
+ (`mlx-vlm>=0.6.3`) before loading the 12B MLX snapshot,
35
+ - use Gemma 4 26B A4B locally while the 12B runtime update is pending,
36
+ - use Gemma 4 12B GGUF through Ollama, LM Studio, or llama.cpp as a local-server
37
+ alternative.
38
+
39
+ ## Tests
40
+
41
+ - `tests/unit/test_model_compat.py`
42
+ - `tests/unit/test_model_recommendation.py`
43
+ - `tests/unit/test_mlx_router_gemma4_fallback.py`
44
+ - `tests/unit/test_models_api_runtime_routing.py`
45
+ - `tests/visual/v3.spec.js`
46
+
47
+ ## Evidence
48
+
49
+ Screenshot: `output/audits/v4.5.0-rc/screenshots/03-gemma-runtime-recovery.png`
@@ -0,0 +1,34 @@
1
+ # v4.5.0 Graph UX Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ ## Goal
6
+
7
+ Improve discoverability, readability, focus, searching, and filtering without
8
+ redesigning the graph architecture.
9
+
10
+ ## Changes
11
+
12
+ - Graph copy now describes ideas, relationships, sources, and saved items
13
+ instead of backend endpoints.
14
+ - Basic mode hides raw node IDs in the focus panel and shows connections/source
15
+ instead.
16
+ - Search placeholder is product-oriented in Basic mode.
17
+ - Brain search copy explains unified memory/graph/document search without
18
+ exposing endpoint mechanics.
19
+ - Advanced/Admin retain structured inspection where useful.
20
+
21
+ ## Existing Capabilities Preserved
22
+
23
+ - Cytoscape graph rendering
24
+ - semantic groups
25
+ - search
26
+ - label modes
27
+ - importance filter
28
+ - focus neighborhoods
29
+ - group collapse/expand
30
+ - backend hybrid search
31
+
32
+ ## Evidence
33
+
34
+ Screenshot: `output/audits/v4.5.0-rc/screenshots/04-graph-basic-focus.png`
@@ -0,0 +1,40 @@
1
+ # v4.5.0 Model Runtime UX Report
2
+
3
+ Date: 2026-06-13
4
+
5
+ ## Restored Flow
6
+
7
+ Library Models now presents the intended model flow:
8
+
9
+ 1. Environment Analysis
10
+ 2. Recommended Models
11
+ 3. Install
12
+ 4. Download Progress
13
+ 5. Validate
14
+ 6. Load
15
+ 7. Ready
16
+
17
+ ## Implementation
18
+
19
+ - Frontend uses the existing `/engines/prepare-model/stream` API for progress.
20
+ - The consent checkbox is required before a setup action may install a runtime
21
+ or download model files.
22
+ - Current model, top pick, computer readiness, and compatibility validation are
23
+ visible in one workflow.
24
+ - Advanced/Admin modes show load IDs and engine details; Basic mode shows
25
+ product-level status and recovery.
26
+
27
+ ## Failure UX
28
+
29
+ Runtime failures show:
30
+
31
+ - a clear actionable state such as runtime update, repair, download, fallback,
32
+ or unsupported format,
33
+ - friendly explanation,
34
+ - recovery guidance,
35
+ - alternatives,
36
+ - no raw Python module exception in Basic mode.
37
+
38
+ ## Evidence
39
+
40
+ Screenshot: `output/audits/v4.5.0-rc/screenshots/02-model-setup-flow.png`