ltcai 8.1.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -48
- package/docs/CHANGELOG.md +70 -874
- package/docs/COMMUNITY_AND_PLUGINS.md +43 -0
- package/docs/DEVELOPMENT.md +26 -3
- package/docs/LEGACY_COMPATIBILITY.md +23 -1
- package/docs/ONBOARDING.md +38 -0
- package/docs/TRUST_MODEL.md +26 -26
- package/docs/WHY_LATTICE.md +29 -25
- package/docs/kg-schema.md +7 -5
- package/lattice_brain/__init__.py +1 -1
- package/lattice_brain/graph/ingest.py +40 -8
- package/lattice_brain/graph/schema.py +6 -0
- package/lattice_brain/runtime/agent_runtime.py +22 -37
- package/lattice_brain/runtime/multi_agent.py +1 -1
- package/lattice_brain/workflow.py +26 -1
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/computer_use.py +2 -0
- package/latticeai/api/knowledge_graph.py +33 -0
- package/latticeai/api/local_files.py +2 -0
- package/latticeai/api/memory.py +13 -0
- package/latticeai/api/tools.py +1 -0
- package/latticeai/api/workflow_designer.py +5 -4
- package/latticeai/app_factory.py +30 -28
- package/latticeai/brain/__init__.py +1 -1
- package/latticeai/core/config.py +10 -0
- package/latticeai/core/legacy_compatibility.py +174 -0
- package/latticeai/core/marketplace.py +1 -1
- package/latticeai/core/tool_registry.py +10 -0
- package/latticeai/core/workspace_graph_trace.py +132 -0
- package/latticeai/core/workspace_memory.py +75 -0
- package/latticeai/core/workspace_os.py +135 -1283
- package/latticeai/core/workspace_os_utils.py +132 -0
- package/latticeai/core/workspace_permissions.py +99 -0
- package/latticeai/core/workspace_plugins.py +97 -0
- package/latticeai/core/workspace_runs.py +612 -0
- package/latticeai/core/workspace_skills.py +114 -0
- package/latticeai/core/workspace_snapshots.py +195 -0
- package/latticeai/core/workspace_timeline.py +107 -0
- package/latticeai/runtime/audit_runtime.py +64 -0
- package/latticeai/runtime/config_runtime.py +4 -0
- package/latticeai/runtime/sso_runtime.py +52 -0
- package/latticeai/services/architecture_readiness.py +37 -3
- package/latticeai/services/memory_service.py +215 -7
- package/latticeai/services/model_capability_registry.py +68 -0
- package/latticeai/services/model_engines.py +594 -0
- package/latticeai/services/model_loading.py +482 -0
- package/latticeai/services/model_recommendation.py +5 -0
- package/latticeai/services/model_runtime.py +131 -875
- package/latticeai/services/product_readiness.py +41 -18
- package/llm_router.py +7 -28
- package/mcp_registry.py +7 -24
- package/package.json +1 -1
- package/scripts/pts-claudecode-discord-bridge.mjs +2 -1
- 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 +11 -11
- package/static/app/assets/{Act-BOO66G-c.js → Act-D5mo4tE4.js} +1 -1
- package/static/app/assets/{Brain-C6lEYiD7.js → Brain-BVWyQw8A.js} +1 -1
- package/static/app/assets/{Capture-TATXBRDw.js → Capture-C1R6GT0t.js} +1 -1
- package/static/app/assets/{Library-DK4FIp8a.js → Library-C2wIxpTs.js} +1 -1
- package/static/app/assets/{System-Bgs6Ql7x.js → System-DE5GRyQR.js} +1 -1
- package/static/app/assets/index-CoiuIFFP.js +16 -0
- package/static/app/assets/index-ty1iGgZu.css +2 -0
- package/static/app/assets/{primitives-B70WOra0.js → primitives-BdsUNXa6.js} +1 -1
- package/static/app/assets/{textarea-Czrd9gwM.js → textarea-e7qaj6Hm.js} +1 -1
- package/static/app/index.html +2 -2
- package/static/sw.js +1 -1
- package/tools/__init__.py +2 -1
- package/tools/computer.py +21 -0
- package/docs/CARRYOVER_AUDIT_v3.6.0.md +0 -61
- package/docs/HANDOVER_v3.6.0.md +0 -46
- package/docs/RUNTIME_HOOK_COVERAGE_v3.5.0.md +0 -56
- package/docs/RUNTIME_HOOK_COVERAGE_v3.6.0.md +0 -49
- package/docs/V2_ARCHITECTURE.md +0 -561
- package/docs/V3_2_AUDIT.md +0 -82
- package/docs/V3_BACKEND_ARCHITECTURE.md +0 -138
- package/docs/V3_FRONTEND.md +0 -146
- package/docs/V4_1_FRONTEND_ARCHITECTURE_REVIEW.md +0 -65
- package/docs/V4_1_FRONTEND_MIGRATION_REPORT.md +0 -70
- package/docs/V4_1_VALIDATION_REPORT.md +0 -47
- package/docs/V4_2_BRAIN_CORE_ARCHITECTURE.md +0 -97
- package/docs/V4_2_STORAGE_MIGRATION_REPORT.md +0 -91
- package/docs/V4_2_VALIDATION_REPORT.md +0 -89
- package/docs/V4_3_2_DEADCODE_AUDIT_REPORT.md +0 -174
- package/docs/V4_3_2_DOCUMENTATION_CLEANUP_REPORT.md +0 -81
- package/docs/V4_3_2_GITHUB_VERCEL_CHECK_REPORT.md +0 -75
- package/docs/V4_3_2_GRAPH_UX_REPORT.md +0 -48
- package/docs/V4_3_2_INDEPENDENT_AUDIT_PACKAGE.md +0 -209
- package/docs/V4_3_2_PRODUCT_POLISH_REPORT.md +0 -57
- package/docs/V4_3_2_SELF_AUDIT_REPORT.md +0 -63
- package/docs/V4_3_2_VALIDATION_REPORT.md +0 -97
- package/docs/V4_3_3_VALIDATION_REPORT.md +0 -46
- package/docs/V4_3_PORTABILITY_ARCHITECTURE.md +0 -69
- package/docs/V4_3_PRIVACY_AUDIT.md +0 -60
- package/docs/V4_3_PRODUCT_HARDENING_REPORT.md +0 -53
- package/docs/V4_3_VALIDATION_REPORT.md +0 -58
- package/docs/V4_4_0_EXTRACTION_REPORT.md +0 -239
- package/docs/V4_5_0_GEMMA_RUNTIME_COMPATIBILITY_REPORT.md +0 -49
- package/docs/V4_5_0_GRAPH_UX_REPORT.md +0 -34
- package/docs/V4_5_0_MODEL_RUNTIME_UX_REPORT.md +0 -40
- package/docs/V4_5_0_ONBOARDING_REPORT.md +0 -31
- package/docs/V4_5_0_PRODUCT_EXPERIENCE_RECOVERY_REPORT.md +0 -49
- package/docs/V4_5_0_VALIDATION_REPORT.md +0 -60
- package/docs/V4_5_1_GRAPH_EXPERIENCE_REPORT.md +0 -33
- package/docs/V4_5_1_MODEL_EXPERIENCE_REPORT.md +0 -37
- package/docs/V4_5_1_NAVIGATION_REPORT.md +0 -37
- package/docs/V4_5_1_ONBOARDING_REPORT.md +0 -29
- package/docs/V4_5_1_PRODUCT_REIMAGINING_REPORT.md +0 -61
- package/docs/V4_5_1_RC_ARTIFACTS.md +0 -44
- package/docs/V4_5_1_UX_REPORT.md +0 -45
- package/docs/V4_5_1_VALIDATION_REPORT.md +0 -55
- package/docs/V4_5_1_VISUAL_DESIGN_REPORT.md +0 -30
- package/docs/V4_6_0_LIVING_BRAIN_EXPERIENCE_REPORT.md +0 -72
- package/docs/V4_6_1_RELEASE_REFRESH_REPORT.md +0 -42
- package/docs/V4_7_0_ADMIN_SEPARATION_REPORT.md +0 -42
- package/docs/V4_7_1_ADMIN_OPERATIONS_REPORT.md +0 -49
- package/docs/V4_7_2_INTUITIVE_BRAIN_UX_REPORT.md +0 -62
- package/docs/V4_BRAIN_ARCHITECTURE.md +0 -322
- package/docs/V4_DIGITAL_BRAIN_RECOVERY.md +0 -555
- package/docs/V4_IMPLEMENTATION_PLAN.md +0 -470
- package/static/app/assets/index-Bvv79nre.js +0 -16
- package/static/app/assets/index-Dslqglia.css +0 -2
|
@@ -1,239 +0,0 @@
|
|
|
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.
|
|
@@ -1,49 +0,0 @@
|
|
|
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`
|
|
@@ -1,34 +0,0 @@
|
|
|
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`
|
|
@@ -1,40 +0,0 @@
|
|
|
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`
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# v4.5.0 Onboarding Report
|
|
2
|
-
|
|
3
|
-
Date: 2026-06-13
|
|
4
|
-
|
|
5
|
-
## Restored Surface
|
|
6
|
-
|
|
7
|
-
The desktop shell now shows a first-run setup guide unless the user dismisses it
|
|
8
|
-
locally. It is also discoverable from the command palette as First-run Setup.
|
|
9
|
-
|
|
10
|
-
## Covered Steps
|
|
11
|
-
|
|
12
|
-
- Login: opens System -> Account.
|
|
13
|
-
- Workspace Selection: opens System -> Workspaces.
|
|
14
|
-
- Environment Analysis: opens Library -> Models and uses model recommendation
|
|
15
|
-
data from `/models/recommendations`.
|
|
16
|
-
- Model Recommendation: surfaces the top recommended local model.
|
|
17
|
-
- Model Installation: keeps runtime install/model download consent visible.
|
|
18
|
-
- Model Validation: shows compatibility profile results after load.
|
|
19
|
-
- Mode Selection: links to System -> Settings and preserves Basic/Advanced/Admin.
|
|
20
|
-
- Brain Usage: opens the graph-first Brain surface.
|
|
21
|
-
|
|
22
|
-
## Privacy Behavior
|
|
23
|
-
|
|
24
|
-
No external model download, runtime install, or cloud call starts from
|
|
25
|
-
onboarding. Downloads and installs require the visible Library consent checkbox.
|
|
26
|
-
|
|
27
|
-
## Evidence
|
|
28
|
-
|
|
29
|
-
Primary screenshot: `output/audits/v4.5.0-rc/screenshots/01-first-run-setup.png`
|
|
30
|
-
|
|
31
|
-
Walkthrough GIF: `output/audits/v4.5.0-rc/gifs/v4.5.0-first-run-walkthrough.gif`
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# v4.5.0 Product Experience Recovery Report
|
|
2
|
-
|
|
3
|
-
Date: 2026-06-13
|
|
4
|
-
|
|
5
|
-
## Scope
|
|
6
|
-
|
|
7
|
-
v4.5.0 restores the product experience on `main` after v4.4.0. It does not
|
|
8
|
-
redesign `lattice_brain`, StorageEngine, FastAPI, Tauri, backup/restore, or
|
|
9
|
-
portability architecture.
|
|
10
|
-
|
|
11
|
-
## Restored Journey
|
|
12
|
-
|
|
13
|
-
Before v4.5.0, account, workspace, setup, environment analysis, model setup, and
|
|
14
|
-
mode selection existed but were scattered inside System/Library surfaces.
|
|
15
|
-
|
|
16
|
-
After v4.5.0, the first-run path is visible from the app shell:
|
|
17
|
-
|
|
18
|
-
1. Login
|
|
19
|
-
2. Workspace Selection
|
|
20
|
-
3. Environment Analysis
|
|
21
|
-
4. Model Recommendation
|
|
22
|
-
5. Model Installation
|
|
23
|
-
6. Model Validation
|
|
24
|
-
7. Mode Selection
|
|
25
|
-
8. Brain Usage
|
|
26
|
-
|
|
27
|
-
## Product Changes
|
|
28
|
-
|
|
29
|
-
- Added a first-run guide in the desktop app shell with direct actions for
|
|
30
|
-
account, workspace, model setup, mode choice, and Brain entry.
|
|
31
|
-
- Persisted the selected workspace across reloads so the chosen workspace is
|
|
32
|
-
used by API requests after restart.
|
|
33
|
-
- Reworked Library Models around the existing streamed prepare/load path.
|
|
34
|
-
- Kept model downloads and runtime installs behind explicit consent.
|
|
35
|
-
- Added Gemma 4 MLX runtime metadata checks so 12B `gemma4_unified` shows
|
|
36
|
-
runtime update guidance while 26B A4B remains ready on the working path.
|
|
37
|
-
- Reduced Basic-mode developer leakage while keeping Advanced/Admin detail.
|
|
38
|
-
- Updated graph/search copy for readability, focus, and source clarity.
|
|
39
|
-
|
|
40
|
-
## Evidence
|
|
41
|
-
|
|
42
|
-
- Screenshots: `output/audits/v4.5.0-rc/screenshots/`
|
|
43
|
-
- GIFs: `output/audits/v4.5.0-rc/gifs/`
|
|
44
|
-
- Validation: `docs/V4_5_0_VALIDATION_REPORT.md`
|
|
45
|
-
|
|
46
|
-
## No-Redesign Confirmation
|
|
47
|
-
|
|
48
|
-
No storage migrations, archive format changes, FastAPI architecture changes,
|
|
49
|
-
Tauri shell redesign, or Brain Core extraction changes were introduced.
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# v4.5.0 Validation Report
|
|
2
|
-
|
|
3
|
-
Date: 2026-06-13
|
|
4
|
-
|
|
5
|
-
## Status
|
|
6
|
-
|
|
7
|
-
Local RC validation passed on macOS using Python 3.12.13
|
|
8
|
-
(`/tmp/ltcai-v450-py312/bin/python`).
|
|
9
|
-
|
|
10
|
-
## Required Matrix
|
|
11
|
-
|
|
12
|
-
| Check | Result |
|
|
13
|
-
| --- | --- |
|
|
14
|
-
| Python compile | PASS: `npm run check:python` |
|
|
15
|
-
| Ruff | PASS: `python -m ruff check .` |
|
|
16
|
-
| Unit tests | PASS: `npm run test:unit` (`607 passed`) |
|
|
17
|
-
| Integration tests | PASS: `npm run test:integration` against a live local server (`9 passed`, `1 skipped`) |
|
|
18
|
-
| `lattice_brain` isolation tests | PASS: `tests/unit/test_lattice_brain_isolation.py` |
|
|
19
|
-
| no `lattice_brain` -> `latticeai` import test | PASS: isolation import guard |
|
|
20
|
-
| graph/search/ingestion tests | PASS: focused graph, search, and ingestion suite (`79 passed`) |
|
|
21
|
-
| backup/restore tests | PASS: `tests/unit/test_kg_portability.py`, `tests/unit/test_v42_brain_storage.py` |
|
|
22
|
-
| `.latticebrain` archive tests | PASS: encrypted archive round trip, tamper rejection, dry-run restore |
|
|
23
|
-
| frontend lint/typecheck | PASS: `npm run lint`, `npm run typecheck` |
|
|
24
|
-
| Playwright | PASS: `npm run test:visual` (`14 passed`) |
|
|
25
|
-
| Tauri cargo check | PASS: `npm run desktop:tauri:check` |
|
|
26
|
-
| Tauri DMG build | PASS: `npm run release:artifacts` |
|
|
27
|
-
| release artifact validation | PASS: `npm run release:validate` |
|
|
28
|
-
| wheel smoke | PASS: `scripts/wheel_smoke.py --wheel dist/ltcai-4.5.0-py3-none-any.whl` |
|
|
29
|
-
| npm pack dry-run | PASS: `npm pack --dry-run` |
|
|
30
|
-
| onboarding/model/Gemma/first-run validation | PASS: Playwright coverage plus screenshots/GIF evidence |
|
|
31
|
-
|
|
32
|
-
## Notes
|
|
33
|
-
|
|
34
|
-
- The first integration run was executed without the live local server and
|
|
35
|
-
failed with connection-refused setup errors. It was rerun against
|
|
36
|
-
`http://127.0.0.1:8899` and passed.
|
|
37
|
-
- The Postgres live migration integration test remains skipped unless the
|
|
38
|
-
dedicated Postgres fixture is available.
|
|
39
|
-
- Vite reports the existing large frontend bundle warning during production
|
|
40
|
-
builds.
|
|
41
|
-
- Tauri/Rust reports an upstream future-incompatibility warning for
|
|
42
|
-
`block v0.1.6`.
|
|
43
|
-
- SHA-256 artifact hashes were captured after the final local artifact rebuild
|
|
44
|
-
so this report can be packaged without creating self-referential hash churn.
|
|
45
|
-
|
|
46
|
-
## Evidence
|
|
47
|
-
|
|
48
|
-
- Screenshots: `output/audits/v4.5.0-rc/screenshots/`
|
|
49
|
-
- Walkthrough GIF: `output/audits/v4.5.0-rc/gifs/v4.5.0-first-run-walkthrough.gif`
|
|
50
|
-
- Validated artifacts:
|
|
51
|
-
- `dist/ltcai-4.5.0-py3-none-any.whl`
|
|
52
|
-
- `dist/ltcai-4.5.0.tar.gz`
|
|
53
|
-
- `ltcai-4.5.0.tgz`
|
|
54
|
-
- `dist/ltcai-4.5.0.vsix`
|
|
55
|
-
- `src-tauri/target/release/bundle/dmg/Lattice AI_4.5.0_aarch64.dmg`
|
|
56
|
-
|
|
57
|
-
## External Publishing
|
|
58
|
-
|
|
59
|
-
No PyPI, npm Registry, VS Code Marketplace, or Open VSX publish command is part
|
|
60
|
-
of this RC validation.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# v4.5.1 Graph Experience Report
|
|
2
|
-
|
|
3
|
-
## Goal
|
|
4
|
-
|
|
5
|
-
Knowledge exploration should feel like using a Digital Brain, not inspecting a
|
|
6
|
-
database viewer.
|
|
7
|
-
|
|
8
|
-
## Reimagined Entry Point
|
|
9
|
-
|
|
10
|
-
Brain is now presented as Home. The default tab is Today, with the map still one
|
|
11
|
-
click away. The first-viewport language now explains that Lattice turns added
|
|
12
|
-
material into a living memory map and keeps every answer tied to its source.
|
|
13
|
-
|
|
14
|
-
## Preserved Capability
|
|
15
|
-
|
|
16
|
-
- Cytoscape graph explorer.
|
|
17
|
-
- Semantic groups.
|
|
18
|
-
- Search, focus, label modes, group collapse, and importance filtering.
|
|
19
|
-
- Provenance coverage.
|
|
20
|
-
- Hybrid search.
|
|
21
|
-
- Portability and backup controls.
|
|
22
|
-
|
|
23
|
-
## Presentation Changes
|
|
24
|
-
|
|
25
|
-
- Page copy avoids endpoint/framework language in Calm mode.
|
|
26
|
-
- Graph remains real and API-backed.
|
|
27
|
-
- Existing graph route aliases still open the map directly.
|
|
28
|
-
|
|
29
|
-
## Evidence
|
|
30
|
-
|
|
31
|
-
- Graph UI: `frontend/src/pages/Brain.tsx`
|
|
32
|
-
- Visual test: `knowledge graph renders a Cytoscape canvas and provenance coverage`
|
|
33
|
-
- Related historical report: `docs/V4_5_0_GRAPH_UX_REPORT.md`
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# v4.5.1 Model Experience Report
|
|
2
|
-
|
|
3
|
-
## Goal
|
|
4
|
-
|
|
5
|
-
Normal users should be able to install and use a local model without learning
|
|
6
|
-
MLX, MLX-LM, MLX-VLM, Ollama, GGUF, or runtime internals.
|
|
7
|
-
|
|
8
|
-
## Preserved Capability
|
|
9
|
-
|
|
10
|
-
v4.5.1 keeps the v4.5.0 model recommendation and prepare/load stream:
|
|
11
|
-
|
|
12
|
-
- Environment analysis.
|
|
13
|
-
- Recommended model selection.
|
|
14
|
-
- Explicit download/install consent.
|
|
15
|
-
- Progress reporting.
|
|
16
|
-
- Validation.
|
|
17
|
-
- Load/ready state.
|
|
18
|
-
- Compatibility recovery guidance.
|
|
19
|
-
|
|
20
|
-
## Reimagined Presentation
|
|
21
|
-
|
|
22
|
-
The model experience now sits under Library in the new product shell. The first
|
|
23
|
-
session points users to "Pick a brain" and "Install locally" instead of runtime
|
|
24
|
-
labels. Calm mode keeps implementation terms hidden while Deep/Admin retain
|
|
25
|
-
diagnostics.
|
|
26
|
-
|
|
27
|
-
## Non-Goals
|
|
28
|
-
|
|
29
|
-
No model runtime behavior, download policy, local/cloud opt-in policy, or
|
|
30
|
-
compatibility routing was changed in v4.5.1.
|
|
31
|
-
|
|
32
|
-
## Evidence
|
|
33
|
-
|
|
34
|
-
- Model UI: `frontend/src/pages/Library.tsx`
|
|
35
|
-
- Model API client: `frontend/src/api/client.ts`
|
|
36
|
-
- Related historical runtime report:
|
|
37
|
-
`docs/V4_5_0_MODEL_RUNTIME_UX_REPORT.md`
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# v4.5.1 Navigation Report
|
|
2
|
-
|
|
3
|
-
## New Navigation Model
|
|
4
|
-
|
|
5
|
-
The primary navigation is now:
|
|
6
|
-
|
|
7
|
-
- Home
|
|
8
|
-
- Ask
|
|
9
|
-
- Add
|
|
10
|
-
- Automate
|
|
11
|
-
- Library
|
|
12
|
-
- Care
|
|
13
|
-
|
|
14
|
-
This replaces the previous product taxonomy without removing compatibility
|
|
15
|
-
routes. Existing paths such as `#/knowledge-graph`, `#/hybrid-search`,
|
|
16
|
-
`#/files`, `#/agents`, `#/workspace-admin`, and admin aliases still route to
|
|
17
|
-
the same capability modules.
|
|
18
|
-
|
|
19
|
-
## Why This Model
|
|
20
|
-
|
|
21
|
-
- Home is the user-facing Digital Brain entry point.
|
|
22
|
-
- Ask is the clearest label for conversational work.
|
|
23
|
-
- Add explains knowledge ingestion without technical vocabulary.
|
|
24
|
-
- Automate explains agents/workflows as supervised outcomes.
|
|
25
|
-
- Library remains clear for models, skills, and connections.
|
|
26
|
-
- Care reframes account, backups, devices, and safety as maintenance.
|
|
27
|
-
|
|
28
|
-
## Implementation
|
|
29
|
-
|
|
30
|
-
- Route compatibility remains in `frontend/src/routes.ts`.
|
|
31
|
-
- The visible dock and mobile drawer are implemented in `frontend/src/App.tsx`.
|
|
32
|
-
- Visual tests now assert the new navigation labels and legacy route behavior.
|
|
33
|
-
|
|
34
|
-
## Evidence
|
|
35
|
-
|
|
36
|
-
- Tests: `tests/visual/v3.spec.js`
|
|
37
|
-
- Code: `frontend/src/routes.ts`, `frontend/src/App.tsx`
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# v4.5.1 Onboarding Report
|
|
2
|
-
|
|
3
|
-
## Goal
|
|
4
|
-
|
|
5
|
-
Onboarding should make the next action obvious to a first-time, non-technical
|
|
6
|
-
user without documentation.
|
|
7
|
-
|
|
8
|
-
## Reimagined Journey
|
|
9
|
-
|
|
10
|
-
- Make it yours: account/profile setup.
|
|
11
|
-
- Choose a space: personal or organization workspace selection.
|
|
12
|
-
- Meet your Mac: environment analysis.
|
|
13
|
-
- Pick a brain: model recommendation.
|
|
14
|
-
- Install locally: consent-gated model/runtime setup.
|
|
15
|
-
- Try a question: model validation through conversation.
|
|
16
|
-
- Set the pace: Calm, Deep, or Admin mode.
|
|
17
|
-
- Explore memory: open the knowledge map.
|
|
18
|
-
|
|
19
|
-
## Behavior
|
|
20
|
-
|
|
21
|
-
The journey reads real backend state from profile, workspace, models, and model
|
|
22
|
-
recommendation APIs. The guide can be hidden through local storage, but no
|
|
23
|
-
backend state is faked to mark setup complete.
|
|
24
|
-
|
|
25
|
-
## Evidence
|
|
26
|
-
|
|
27
|
-
- Primary component: `frontend/src/components/FirstRunGuide.tsx`
|
|
28
|
-
- Desktop screenshot: `output/audits/v4.5.1-reimagining/screenshots/home-desktop.png`
|
|
29
|
-
- Walkthrough GIF: `output/audits/v4.5.1-reimagining/gifs/v4.5.1-reimagining-walkthrough.gif`
|