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.
- package/README.md +53 -20
- package/docs/CHANGELOG.md +122 -0
- package/docs/V4_4_0_EXTRACTION_REPORT.md +239 -0
- package/docs/V4_5_0_GEMMA_RUNTIME_COMPATIBILITY_REPORT.md +49 -0
- package/docs/V4_5_0_GRAPH_UX_REPORT.md +34 -0
- package/docs/V4_5_0_MODEL_RUNTIME_UX_REPORT.md +40 -0
- package/docs/V4_5_0_ONBOARDING_REPORT.md +31 -0
- package/docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md +49 -0
- package/docs/V4_5_0_VALIDATION_REPORT.md +60 -0
- package/docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md +33 -0
- package/docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md +37 -0
- package/docs/V4_5_1_NAVIGATION_REPORT.md +37 -0
- package/docs/V4_5_1_ONBOARDING_REPORT.md +29 -0
- package/docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md +61 -0
- package/docs/V4_5_1_RC_ARTIFACTS.md +44 -0
- package/docs/V4_5_1_UX_REPORT.md +45 -0
- package/docs/V4_5_1_VALIDATION_REPORT.md +54 -0
- package/docs/V4_5_1_VISUAL_DESIGN_REPORT.md +30 -0
- package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +16 -16
- package/docs/architecture.md +8 -4
- package/frontend/src/App.tsx +152 -91
- package/frontend/src/api/client.ts +83 -1
- package/frontend/src/components/FirstRunGuide.tsx +99 -0
- package/frontend/src/components/primitives.tsx +131 -25
- package/frontend/src/components/ui/badge.tsx +2 -2
- package/frontend/src/components/ui/button.tsx +7 -7
- package/frontend/src/components/ui/card.tsx +5 -5
- package/frontend/src/components/ui/input.tsx +1 -1
- package/frontend/src/components/ui/textarea.tsx +1 -1
- package/frontend/src/pages/Act.tsx +58 -28
- package/frontend/src/pages/Ask.tsx +51 -19
- package/frontend/src/pages/Brain.tsx +60 -42
- package/frontend/src/pages/Capture.tsx +24 -24
- package/frontend/src/pages/Library.tsx +222 -32
- package/frontend/src/pages/System.tsx +56 -34
- package/frontend/src/routes.ts +15 -13
- package/frontend/src/store/appStore.ts +8 -1
- package/frontend/src/styles.css +666 -36
- package/lattice_brain/__init__.py +38 -23
- package/lattice_brain/_kg_common.py +11 -1
- package/lattice_brain/context.py +212 -2
- package/lattice_brain/conversations.py +234 -1
- package/lattice_brain/discovery.py +11 -1
- package/lattice_brain/documents.py +11 -1
- package/lattice_brain/graph/__init__.py +28 -0
- package/lattice_brain/graph/_kg_common.py +1123 -0
- package/lattice_brain/graph/curator.py +473 -0
- package/lattice_brain/graph/discovery.py +1455 -0
- package/lattice_brain/graph/documents.py +218 -0
- package/lattice_brain/graph/identity.py +175 -0
- package/lattice_brain/graph/ingest.py +644 -0
- package/lattice_brain/graph/network.py +205 -0
- package/lattice_brain/graph/projection.py +571 -0
- package/lattice_brain/graph/provenance.py +401 -0
- package/lattice_brain/graph/retrieval.py +1341 -0
- package/lattice_brain/graph/schema.py +640 -0
- package/lattice_brain/graph/store.py +237 -0
- package/lattice_brain/graph/write_master.py +225 -0
- package/lattice_brain/identity.py +11 -13
- package/lattice_brain/ingest.py +11 -1
- package/lattice_brain/ingestion.py +318 -0
- package/lattice_brain/memory.py +100 -1
- package/lattice_brain/network.py +11 -1
- package/lattice_brain/portability.py +431 -0
- package/lattice_brain/projection.py +11 -1
- package/lattice_brain/provenance.py +11 -1
- package/lattice_brain/retrieval.py +11 -1
- package/lattice_brain/runtime/__init__.py +32 -0
- package/lattice_brain/runtime/agent_runtime.py +569 -0
- package/lattice_brain/runtime/hooks.py +754 -0
- package/lattice_brain/runtime/multi_agent.py +795 -0
- package/lattice_brain/schema.py +11 -1
- package/lattice_brain/store.py +10 -2
- package/lattice_brain/workflow.py +461 -0
- package/lattice_brain/write_master.py +11 -1
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/agents.py +2 -2
- package/latticeai/api/browser.py +1 -1
- package/latticeai/api/chat.py +1 -1
- package/latticeai/api/computer_use.py +1 -1
- package/latticeai/api/hooks.py +2 -2
- package/latticeai/api/mcp.py +1 -1
- package/latticeai/api/models.py +107 -18
- package/latticeai/api/tools.py +1 -1
- package/latticeai/api/workflow_designer.py +2 -2
- package/latticeai/app_factory.py +4 -4
- package/latticeai/brain/__init__.py +24 -6
- package/latticeai/brain/_kg_common.py +11 -1117
- package/latticeai/brain/context.py +12 -208
- package/latticeai/brain/conversations.py +12 -231
- package/latticeai/brain/discovery.py +13 -1451
- package/latticeai/brain/documents.py +13 -214
- package/latticeai/brain/identity.py +11 -169
- package/latticeai/brain/ingest.py +13 -640
- package/latticeai/brain/memory.py +12 -97
- package/latticeai/brain/network.py +12 -200
- package/latticeai/brain/projection.py +13 -567
- package/latticeai/brain/provenance.py +13 -397
- package/latticeai/brain/retrieval.py +13 -1337
- package/latticeai/brain/schema.py +12 -635
- package/latticeai/brain/store.py +13 -233
- package/latticeai/brain/write_master.py +13 -221
- package/latticeai/core/agent.py +1 -1
- package/latticeai/core/agent_registry.py +2 -2
- package/latticeai/core/builtin_hooks.py +2 -2
- package/latticeai/core/graph_curator.py +6 -468
- package/latticeai/core/hooks.py +6 -749
- package/latticeai/core/marketplace.py +1 -1
- package/latticeai/core/model_compat.py +250 -0
- package/latticeai/core/multi_agent.py +6 -790
- package/latticeai/core/workflow_engine.py +6 -456
- package/latticeai/core/workspace_os.py +1 -1
- package/latticeai/models/router.py +136 -32
- package/latticeai/services/agent_runtime.py +6 -564
- package/latticeai/services/ingestion.py +6 -313
- package/latticeai/services/kg_portability.py +6 -426
- package/latticeai/services/model_catalog.py +2 -2
- package/latticeai/services/model_recommendation.py +8 -1
- package/latticeai/services/model_runtime.py +18 -3
- package/latticeai/services/platform_runtime.py +3 -3
- package/latticeai/services/run_executor.py +1 -1
- package/latticeai/services/upload_service.py +1 -1
- package/p_reinforce.py +1 -1
- package/package.json +1 -1
- package/scripts/build_frontend_assets.mjs +12 -1
- package/scripts/bump_version.py +1 -1
- package/scripts/wheel_smoke.py +7 -0
- package/src-tauri/Cargo.lock +1 -1
- package/src-tauri/Cargo.toml +1 -1
- package/src-tauri/tauri.conf.json +1 -1
- package/static/app/asset-manifest.json +5 -5
- package/static/app/assets/index-3G8qcrIS.js +336 -0
- package/static/app/assets/index-3G8qcrIS.js.map +1 -0
- package/static/app/assets/index-C0wYZp7k.css +2 -0
- package/static/app/index.html +2 -2
- package/static/app/assets/index-CHHal8Zl.css +0 -2
- package/static/app/assets/index-pdzil9ac.js +0 -333
- package/static/app/assets/index-pdzil9ac.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
[](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
|
|
10
|
-
**Lattice AI v4.
|
|
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.
|
|
15
|
-
|
|
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.
|
|
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
|

|
|
@@ -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
|
|
57
|
-
|
|
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
|

|
|
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
|

|
|
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
|
|
140
|
-
|
|
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
|
|
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.
|
|
168
|
+
Validated v4.5.1 RC artifacts are produced from the product-reimagining tree:
|
|
153
169
|
|
|
154
|
-
- `dist/ltcai-4.
|
|
155
|
-
- `dist/ltcai-4.
|
|
156
|
-
- `ltcai-4.
|
|
157
|
-
- `dist/ltcai-4.
|
|
158
|
-
- `src-tauri/target/release/bundle/dmg/Lattice AI_4.
|
|
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-
|
|
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.
|
|
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
|
|
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`
|