ltcai 8.9.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +81 -58
  2. package/auto_setup.py +7 -904
  3. package/desktop/electron/README.md +9 -0
  4. package/desktop/electron/main.cjs +5 -3
  5. package/docs/CHANGELOG.md +221 -238
  6. package/docs/COMMUNITY_AND_PLUGINS.md +3 -2
  7. package/docs/DEVELOPMENT.md +53 -14
  8. package/docs/LEGACY_COMPATIBILITY.md +4 -4
  9. package/docs/ONBOARDING.md +10 -2
  10. package/docs/OPERATIONS.md +8 -4
  11. package/docs/PRODUCT_DIRECTION_REVIEW.md +4 -0
  12. package/docs/ROADMAP_RECOMMENDATIONS.md +61 -36
  13. package/docs/TRUST_MODEL.md +5 -2
  14. package/docs/WHY_LATTICE.md +15 -10
  15. package/docs/WORKFLOW_DESIGNER.md +22 -0
  16. package/docs/kg-schema.md +13 -2
  17. package/docs/mcp-tools.md +17 -6
  18. package/docs/privacy.md +19 -3
  19. package/docs/public-deploy.md +32 -3
  20. package/docs/security-model.md +46 -11
  21. package/lattice_brain/__init__.py +1 -1
  22. package/lattice_brain/archive.py +4 -14
  23. package/lattice_brain/context.py +66 -9
  24. package/lattice_brain/embeddings.py +38 -2
  25. package/lattice_brain/graph/_kg_common.py +27 -462
  26. package/lattice_brain/graph/_kg_constants.py +243 -0
  27. package/lattice_brain/graph/_kg_fsutil.py +293 -0
  28. package/lattice_brain/graph/discovery.py +0 -948
  29. package/lattice_brain/graph/discovery_index.py +1126 -0
  30. package/lattice_brain/graph/documents.py +44 -9
  31. package/lattice_brain/graph/ingest.py +47 -20
  32. package/lattice_brain/graph/provenance.py +13 -6
  33. package/lattice_brain/graph/retrieval.py +141 -610
  34. package/lattice_brain/graph/retrieval_docgen.py +243 -0
  35. package/lattice_brain/graph/retrieval_vector.py +460 -0
  36. package/lattice_brain/graph/store.py +6 -0
  37. package/lattice_brain/ingestion.py +69 -4
  38. package/lattice_brain/portability.py +29 -23
  39. package/lattice_brain/quality.py +98 -4
  40. package/lattice_brain/runtime/agent_runtime.py +169 -7
  41. package/lattice_brain/runtime/hooks.py +30 -13
  42. package/lattice_brain/runtime/multi_agent.py +27 -8
  43. package/lattice_brain/runtime/statuses.py +10 -0
  44. package/lattice_brain/utils.py +46 -0
  45. package/lattice_brain/workflow.py +1 -5
  46. package/latticeai/__init__.py +1 -1
  47. package/latticeai/api/admin.py +1 -1
  48. package/latticeai/api/agent_registry.py +10 -8
  49. package/latticeai/api/agents.py +22 -3
  50. package/latticeai/api/auth.py +78 -16
  51. package/latticeai/api/browser.py +303 -34
  52. package/latticeai/api/chat.py +355 -952
  53. package/latticeai/api/chat_agent_http.py +356 -0
  54. package/latticeai/api/chat_contracts.py +54 -0
  55. package/latticeai/api/chat_documents.py +256 -0
  56. package/latticeai/api/chat_helpers.py +250 -0
  57. package/latticeai/api/chat_history.py +99 -0
  58. package/latticeai/api/chat_intents.py +302 -0
  59. package/latticeai/api/chat_stream.py +115 -0
  60. package/latticeai/api/computer_use.py +211 -40
  61. package/latticeai/api/health.py +9 -3
  62. package/latticeai/api/hooks.py +17 -6
  63. package/latticeai/api/knowledge_graph.py +78 -14
  64. package/latticeai/api/local_files.py +7 -2
  65. package/latticeai/api/marketplace.py +11 -0
  66. package/latticeai/api/mcp.py +102 -23
  67. package/latticeai/api/models.py +72 -33
  68. package/latticeai/api/network.py +5 -5
  69. package/latticeai/api/permissions.py +70 -29
  70. package/latticeai/api/plugins.py +21 -7
  71. package/latticeai/api/portability.py +5 -5
  72. package/latticeai/api/realtime.py +33 -5
  73. package/latticeai/api/setup.py +2 -2
  74. package/latticeai/api/static_routes.py +123 -24
  75. package/latticeai/api/tools.py +97 -14
  76. package/latticeai/api/workflow_designer.py +37 -0
  77. package/latticeai/api/workspace.py +2 -1
  78. package/latticeai/app_factory.py +185 -405
  79. package/latticeai/core/agent.py +19 -9
  80. package/latticeai/core/agent_registry.py +1 -5
  81. package/latticeai/core/config.py +23 -3
  82. package/latticeai/core/context_builder.py +21 -3
  83. package/latticeai/core/invitations.py +1 -4
  84. package/latticeai/core/io_utils.py +45 -0
  85. package/latticeai/core/legacy_compatibility.py +24 -3
  86. package/latticeai/core/local_embeddings.py +2 -4
  87. package/latticeai/core/marketplace.py +33 -2
  88. package/latticeai/core/mcp_catalog.py +450 -0
  89. package/latticeai/core/mcp_registry.py +2 -441
  90. package/latticeai/core/plugins.py +15 -0
  91. package/latticeai/core/policy.py +1 -1
  92. package/latticeai/core/realtime.py +38 -15
  93. package/latticeai/core/sessions.py +7 -2
  94. package/latticeai/core/timeutil.py +10 -0
  95. package/latticeai/core/tool_registry.py +90 -18
  96. package/latticeai/core/users.py +5 -14
  97. package/latticeai/core/workspace_graph_trace.py +31 -5
  98. package/latticeai/core/workspace_memory.py +3 -1
  99. package/latticeai/core/workspace_os.py +18 -7
  100. package/latticeai/core/workspace_os_utils.py +2 -21
  101. package/latticeai/core/workspace_permissions.py +2 -1
  102. package/latticeai/core/workspace_plugins.py +1 -1
  103. package/latticeai/core/workspace_runs.py +14 -5
  104. package/latticeai/core/workspace_skills.py +1 -1
  105. package/latticeai/core/workspace_snapshots.py +2 -1
  106. package/latticeai/core/workspace_timeline.py +2 -1
  107. package/latticeai/integrations/telegram_bot.py +96 -40
  108. package/latticeai/models/model_providers.py +111 -0
  109. package/latticeai/models/router.py +189 -173
  110. package/latticeai/runtime/access_runtime.py +62 -4
  111. package/latticeai/runtime/audit_runtime.py +27 -16
  112. package/latticeai/runtime/automation_runtime.py +22 -7
  113. package/latticeai/runtime/brain_runtime.py +19 -7
  114. package/latticeai/runtime/chat_wiring.py +2 -0
  115. package/latticeai/runtime/config_runtime.py +58 -26
  116. package/latticeai/runtime/context_runtime.py +16 -4
  117. package/latticeai/runtime/history_runtime.py +163 -0
  118. package/latticeai/runtime/hooks_runtime.py +1 -1
  119. package/latticeai/runtime/model_wiring.py +33 -5
  120. package/latticeai/runtime/namespace_runtime.py +163 -0
  121. package/latticeai/runtime/network_config_runtime.py +56 -0
  122. package/latticeai/runtime/platform_runtime_wiring.py +4 -3
  123. package/latticeai/runtime/review_wiring.py +1 -1
  124. package/latticeai/runtime/router_registration.py +34 -1
  125. package/latticeai/runtime/security_runtime.py +110 -13
  126. package/latticeai/runtime/sso_config_runtime.py +128 -0
  127. package/latticeai/runtime/stages.py +27 -0
  128. package/latticeai/runtime/user_key_runtime.py +106 -0
  129. package/latticeai/server_app.py +5 -1
  130. package/latticeai/services/architecture_readiness.py +74 -5
  131. package/latticeai/services/brain_automation.py +3 -26
  132. package/latticeai/services/chat_service.py +205 -15
  133. package/latticeai/services/local_knowledge.py +423 -0
  134. package/latticeai/services/memory_service.py +268 -21
  135. package/latticeai/services/model_engines.py +48 -33
  136. package/latticeai/services/model_errors.py +17 -0
  137. package/latticeai/services/model_loading.py +28 -25
  138. package/latticeai/services/model_runtime.py +228 -162
  139. package/latticeai/services/p_reinforce.py +22 -3
  140. package/latticeai/services/platform_runtime.py +92 -24
  141. package/latticeai/services/product_readiness.py +19 -17
  142. package/latticeai/services/review_queue.py +76 -11
  143. package/latticeai/services/router_context.py +1 -0
  144. package/latticeai/services/run_executor.py +25 -9
  145. package/latticeai/services/search_service.py +203 -28
  146. package/latticeai/services/setup_detection.py +80 -0
  147. package/latticeai/services/tool_dispatch.py +28 -5
  148. package/latticeai/services/triggers.py +53 -4
  149. package/latticeai/services/upload_service.py +13 -2
  150. package/latticeai/setup/__init__.py +25 -0
  151. package/latticeai/setup/auto_setup.py +857 -0
  152. package/latticeai/setup/wizard.py +1264 -0
  153. package/latticeai/tools/__init__.py +278 -0
  154. package/{tools → latticeai/tools}/commands.py +67 -7
  155. package/{tools → latticeai/tools}/computer.py +1 -1
  156. package/{tools → latticeai/tools}/documents.py +1 -1
  157. package/{tools → latticeai/tools}/filesystem.py +3 -3
  158. package/latticeai/tools/knowledge.py +178 -0
  159. package/{tools → latticeai/tools}/local_files.py +7 -1
  160. package/{tools → latticeai/tools}/network.py +0 -1
  161. package/local_knowledge_api.py +4 -342
  162. package/package.json +22 -2
  163. package/scripts/brain_quality_eval.py +3 -1
  164. package/scripts/bump_version.py +3 -0
  165. package/scripts/capture_release_evidence.mjs +180 -0
  166. package/scripts/check_current_release_docs.mjs +142 -0
  167. package/scripts/check_i18n_literals.mjs +107 -31
  168. package/scripts/check_openapi_drift.mjs +56 -0
  169. package/scripts/export_openapi.py +67 -7
  170. package/scripts/i18n_literal_allowlist.json +22 -24
  171. package/scripts/run_integration_tests.mjs +72 -10
  172. package/scripts/validate_release_artifacts.py +49 -7
  173. package/scripts/wheel_smoke.py +5 -0
  174. package/setup_wizard.py +3 -1304
  175. package/src-tauri/Cargo.lock +1 -1
  176. package/src-tauri/Cargo.toml +1 -1
  177. package/src-tauri/tauri.conf.json +1 -1
  178. package/static/app/asset-manifest.json +11 -11
  179. package/static/app/assets/Act-Bzz0bUyW.js +1 -0
  180. package/static/app/assets/Brain-Dj2J20YA.js +321 -0
  181. package/static/app/assets/Capture-CqlEl1Ga.js +1 -0
  182. package/static/app/assets/Library-B03FP1Yx.js +1 -0
  183. package/static/app/assets/System-80lHW0Ux.js +1 -0
  184. package/static/app/assets/index-BiMofBTM.js +17 -0
  185. package/static/app/assets/index-Bmx9rzTc.css +2 -0
  186. package/static/app/assets/primitives-Q1A96_7v.js +1 -0
  187. package/static/app/assets/textarea-D13RtnTo.js +1 -0
  188. package/static/app/index.html +2 -2
  189. package/static/css/tokens.css +4 -2
  190. package/static/sw.js +1 -1
  191. package/tools/__init__.py +21 -269
  192. package/docs/CODE_REVIEW_2026-07-06.md +0 -764
  193. package/latticeai/runtime/app_context_runtime.py +0 -13
  194. package/latticeai/runtime/sso_runtime.py +0 -52
  195. package/latticeai/runtime/tail_wiring.py +0 -21
  196. package/scripts/com.pts.claudecode.discord.plist +0 -31
  197. package/scripts/pts-claudecode-discord-bridge.mjs +0 -207
  198. package/scripts/start-pts-claudecode-discord.sh +0 -51
  199. package/static/app/assets/Act-fZokUnC0.js +0 -1
  200. package/static/app/assets/Brain-DtyuWubr.js +0 -321
  201. package/static/app/assets/Capture-D5KV3Cu7.js +0 -1
  202. package/static/app/assets/Library-C9kyFkSt.js +0 -1
  203. package/static/app/assets/System-VbChmX7r.js +0 -1
  204. package/static/app/assets/index-DCh5AoXt.css +0 -2
  205. package/static/app/assets/index-DPdcPoF0.js +0 -17
  206. package/static/app/assets/primitives-DFeanEV6.js +0 -1
  207. package/static/app/assets/textarea-CD8UNKIy.js +0 -1
  208. package/tools/knowledge.py +0 -95
package/README.md CHANGED
@@ -1,9 +1,23 @@
1
1
  # Lattice AI
2
2
 
3
- **Lattice AI 8.9.0 is the local-first Digital Brain platform. This release hardens authenticated history and graph scoping, blocks unapproved direct Tool API execution paths, makes local permission approvals and installer/process execution safer to audit, and keeps package, desktop, extension, static app, and documentation metadata synchronized to the 8.9.0 line.**
3
+ **Lattice AI 9.1.0 is the local-first Digital Brain platform. Code Review Completion & Fail-Closed Runtime closes every actionable finding from the July 11 review: security boundaries now deny by default, runtime and chat state have typed ownership, frontend failures stay visible and tested, and repository/release hygiene is enforced across the 9.1.0 line.**
4
4
 
5
5
  **Lattice AI는 모델이 바뀌어도 내 지식과 맥락을 보존하는 로컬 우선 AI 브레인입니다.**
6
6
 
7
+ > The 9.1.0 release adds request-scoped model routing,
8
+ > workspace-isolated graph identities and frontend caches, fail-closed admin
9
+ > gates, SSRF-safe web capture, private local state permissions, and reproducible
10
+ > release/test isolation. The same release introduces a human-first UI:
11
+ > a visible knowledge journey from conversation or source capture into the
12
+ > living Brain, its real relationship graph, and memory-grounded automation;
13
+ > the empty Brain home now keeps that complete loop inside one viewport, with
14
+ > continuous vital motion and behavior-driven listening, recall, synthesis,
15
+ > and action states. Task navigation and technical detail stay calm and
16
+ > approachable.
17
+ > Telegram access requires an explicit chat allowlist and server session token;
18
+ > public invitation access uses signed, expiring authorization instead of a
19
+ > static cookie; and unknown or unreadable Knowledge Graph scope fails closed.
20
+
7
21
  Your model is the voice you use today. Your Brain is the asset you keep.
8
22
  Lattice AI preserves conversations, documents, decisions, project context,
9
23
  relationships, and workflows on your computer by default. Cloud models, model
@@ -11,7 +25,9 @@ downloads, update checks, and other external communication happen only after
11
25
  explicit consent.
12
26
 
13
27
  It is not a ChatGPT clone, a model launcher, a graph database, or a note app.
14
- It is the finished private AI memory layer wrapped in a Living Brain experience with desktop source capture that uses native folder selection, ToolRegistry readiness, Config-driven DI for automation, and continued AgentRuntime/Tool wiring seams.
28
+ It is a Living Brain: chatting or adding a file, folder, note, or web page grows
29
+ durable memory; the real graph shows how that knowledge connects; and reviewed,
30
+ user-enabled automations can act from the same evidence.
15
31
 
16
32
  [![PyPI Version](https://img.shields.io/pypi/v/ltcai?label=PyPI)](https://pypi.org/project/ltcai/)
17
33
  [![npm Version](https://img.shields.io/npm/v/ltcai?label=npm)](https://www.npmjs.com/package/ltcai)
@@ -43,10 +59,13 @@ You need Lattice AI when:
43
59
  session as disposable.
44
60
  - Add documents, selected local folders, notes, screenshots, and web pages with
45
61
  source-aware memory.
46
- - See recent memories, older memories, topics, relationships, and the full
47
- knowledge graph when you want deeper structure.
48
- - Create consent-first Brain automation drafts for memory digests, project
49
- reviews, and follow-up suggestions before any schedule is enabled.
62
+ - Watch new knowledge enter the Brain and appear in a lightweight, real
63
+ relationship graph before opening the full graph explorer.
64
+ - See the Brain breathe, pulse, listen, recall, synthesize, and act while the
65
+ source, graph, composer, and next memory-grounded action remain visible in a
66
+ single desktop or mobile viewport.
67
+ - Create evidence-linked Brain automation drafts for memory digests, project
68
+ reviews, and follow-up suggestions, then explicitly enable them when ready.
50
69
  - Use a recommended local model without learning model internals first.
51
70
  - Keep advanced controls, audit logs, roles, and retention in a separate Admin
52
71
  surface.
@@ -58,18 +77,20 @@ You need Lattice AI when:
58
77
  2. Create or open a local profile.
59
78
  3. Let Lattice explain what this computer can run.
60
79
  4. Start with the recommended model as the Brain's voice, or skip and choose later.
61
- 5. Talk to your Brain.
62
- 6. Use the memory rings to move from current context to the full knowledge graph.
63
- 7. Back up, inspect, export, or restore the Brain when you need ownership actions.
80
+ 5. Talk to your Brain or add a file, folder, note, or web page.
81
+ 6. Watch the source become memory and connect to the visible knowledge graph.
82
+ 7. Ask, delegate, review, or explicitly enable a memory-grounded automation.
83
+ 8. Back up, inspect, export, or restore the Brain when you need ownership actions.
64
84
 
65
85
  ## Living Brain Flow
66
86
 
67
87
  The screenshots below are the latest checked-in visual evidence captures. They
68
88
  keep the first-run Brain flow, memory graph, source capture, model library,
69
89
  system view, admin console, and review center visible as release gates while
70
- 8.9.0 focuses on scoped memory isolation, direct Tool API policy enforcement,
71
- AgentRuntime human-approval semantics, confirmation-token guarded installer
72
- execution, and frontend/runtime maintainability.
90
+ 9.1.0 completes the July 11 code review with fail-closed access control,
91
+ typed runtime/model state, a decomposed chat API, honest frontend error states
92
+ and unit tests, and repository/release hygiene. The captures below are the
93
+ checked-in 9.1.0 visual release evidence for that product flow.
73
94
 
74
95
  ### 1. Wake Brain
75
96
 
@@ -81,36 +102,40 @@ confirm owner, check the computer, choose the Brain voice.
81
102
  Choose the owner of the Brain. The profile is not a SaaS account by default; it
82
103
  is the local identity for the knowledge you keep.
83
104
 
84
- ![Login](output/release/v8.7.0/screenshots/01-login.png)
105
+ ![Login](output/release/v9.1.0/screenshots/01-login.png)
85
106
 
86
107
  ### 3. Recommended Models
87
108
 
88
109
  Start with a short list: safest recommendation, faster model, stronger model.
89
110
  Advanced details stay available without overwhelming first-time users.
90
111
 
91
- ![Recommended Models](output/release/v8.7.0/screenshots/02-recommended-models.png)
112
+ ![Recommended Models](output/release/v9.1.0/screenshots/02-recommended-models.png)
92
113
 
93
114
  ### 4. Install And Load
94
115
 
95
116
  Download and load only after consent. Lattice explains model size, local
96
117
  execution, and network use before work starts.
97
118
 
98
- ![Install and Load](output/release/v8.7.0/screenshots/03-install-load-progress.png)
119
+ ![Install and Load](output/release/v9.1.0/screenshots/03-install-load-progress.png)
99
120
 
100
121
  ### 5. Brain Chat
101
122
 
102
- Talk normally. Useful decisions and context become memory, then appear later as
103
- topics, relationships, graph structure, and the concentric memory rings around
104
- the Brain.
123
+ Talk normally or add a source from a single, living canvas. The default home
124
+ fits the complete knowledge lifecycle into one viewport: source controls feed
125
+ the breathing Brain, real nodes and animated relationships stay visible beside
126
+ it, and the composer plus grounded next action remain within reach. Brain motion
127
+ and its visible life signal follow real listening, recall, synthesis, and action
128
+ state. Detailed memory rings, provenance, conversation history, and
129
+ model/runtime proof open as overlays only when requested.
105
130
 
106
- ![Brain Brief Home](output/release/v8.7.0/screenshots/04-brain-chat-home.png)
131
+ ![One-viewport Living Brain Home](output/release/v9.1.0/screenshots/04-brain-chat-home.png)
107
132
 
108
133
  ### 6. Review Center
109
134
 
110
135
  Automation results are staged for review before they become durable decisions.
111
136
  Snooze, unsnooze, run now, approve, and dismiss actions stay explicit.
112
137
 
113
- ![Review Center](output/release/v8.7.0/screenshots/12-review-center.png)
138
+ ![Review Center](output/release/v9.1.0/screenshots/12-review-center.png)
114
139
 
115
140
  ## Brain Depths
116
141
 
@@ -126,10 +151,10 @@ The user travels inward from everyday memory to deeper structure:
126
151
 
127
152
  Walkthrough:
128
153
 
129
- ![v8.7.0 Living Brain walkthrough](output/release/v8.7.0/gifs/v8.7.0-living-brain-walkthrough.gif)
154
+ ![v9.1.0 Living Brain walkthrough](output/release/v9.1.0/gifs/v9.1.0-living-brain-walkthrough.gif)
130
155
 
131
156
  Screenshot index and capture notes:
132
- [output/release/v8.7.0/SCREENSHOT_INDEX.md](output/release/v8.7.0/SCREENSHOT_INDEX.md)
157
+ [output/release/v9.1.0/SCREENSHOT_INDEX.md](output/release/v9.1.0/SCREENSHOT_INDEX.md)
133
158
 
134
159
  ## Install
135
160
 
@@ -164,7 +189,11 @@ pip install "ltcai[local]"
164
189
  - **Product category**: local-first Digital Brain.
165
190
  - **Core capability**: private AI memory layer for conversations, documents,
166
191
  decisions, relationships, workflows, and project context.
167
- - **UX metaphor**: Living Brain.
192
+ - **UX metaphor**: a visible source-to-memory-to-graph-to-automation journey
193
+ centered on the Living Brain, not a generic chat or operations dashboard.
194
+ - **Product navigation**: desktop task navigation and a mobile bottom bar expose
195
+ Chat, Sources, Memory, and Work; model, workspace, and admin controls live in
196
+ the secondary menu.
168
197
  - **Desktop shell**: Tauri 2 starts a localhost sidecar.
169
198
  - **Frontend**: React, TypeScript, Vite, TanStack Query, Zustand, Cytoscape.js,
170
199
  React Flow, and generated OpenAPI types.
@@ -210,40 +239,42 @@ See [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for developer workflow details.
210
239
 
211
240
  ## Current Release
212
241
 
213
- The current release is **8.9.0 — Scoped Memory & Tool Policy Hardening**:
214
-
215
- - Conversation history reads and deletes now scope by authenticated user and
216
- readable workspace, while preserving legacy-global rows only in no-auth or
217
- explicitly compatible flows.
218
- - Knowledge Graph search, graph traversal, relationships, node reads, and chat
219
- context now apply workspace scope at the graph/service boundary.
220
- - Direct HTTP/MCP Tool API calls enforce ToolRegistry policy before hooks or
221
- handlers run; destructive paths and non-auto-approved user writes are blocked.
222
- - AgentRuntime no longer treats “requires approval” plans as implicitly
223
- approved, and rollback now handles tool results that omit `success`.
224
- - Local permission approvals hash tokens at rest, use atomic queue writes, and
225
- reject write approvals for blocked system prefixes.
226
- - Frontend API base handling, Tauri credentials, workspace clearing, CSS tokens,
227
- and i18n literal checks are split into safer maintainability seams.
228
-
229
- Expected artifacts for 8.9.0 release must use exact filenames:
230
-
231
- - `dist/ltcai-8.9.0-py3-none-any.whl`
232
- - `dist/ltcai-8.9.0.tar.gz`
233
- - `ltcai-8.9.0.tgz`
234
- - `dist/ltcai-8.9.0.vsix`
235
- - `src-tauri/target/release/bundle/dmg/Lattice AI_8.9.0_aarch64.dmg`
242
+ The current release is **9.1.0 — Code Review Completion & Fail-Closed Runtime**:
243
+
244
+ - Telegram rejects every chat and callback outside
245
+ `LATTICEAI_TELEGRAM_ALLOWED_CHAT_IDS`, and its local API bridge requires
246
+ `LATTICEAI_SERVER_SESSION_TOKEN` instead of scanning stored sessions.
247
+ - Public invitation authorization is signed and expiring, default invitation
248
+ credentials are removed, Knowledge Graph scope lookup fails closed, and
249
+ desktop/knowledge/network tools use explicit policy and consent boundaries.
250
+ - App assembly exports typed runtime stages, model routing uses injected typed
251
+ state, and chat history, documents, streaming, and contracts are split into
252
+ focused modules.
253
+ - The React workspace distinguishes unavailable services from empty Brain data,
254
+ gates success callbacks on real success, and has Vitest coverage for API
255
+ result shapes, proof state, conversation state, primitives, and i18n.
256
+ - Large frontend i18n/CSS/Brain hooks and repeated runtime utilities are split,
257
+ obsolete aliases and local VSIX artifacts are removed, and review documents
258
+ live under `docs/reviews/` as immutable history.
259
+
260
+ Expected artifacts for 9.1.0 release must use exact filenames:
261
+
262
+ - `dist/ltcai-9.1.0-py3-none-any.whl`
263
+ - `dist/ltcai-9.1.0.tar.gz`
264
+ - `ltcai-9.1.0.tgz`
265
+ - `dist/ltcai-9.1.0.vsix`
266
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_9.1.0_aarch64.dmg`
236
267
 
237
268
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
238
269
 
239
270
  See [docs/ROADMAP_RECOMMENDATIONS.md](docs/ROADMAP_RECOMMENDATIONS.md) for the
240
- strategic roadmap slices applied through 8.9.0 and the follow-up tracks.
271
+ strategic roadmap slices applied through 9.1.0 and the follow-up tracks.
241
272
 
242
273
  ## Known Limitations
243
274
 
244
275
  - External package registries are owner-published and can lag behind GitHub.
245
276
  - PostgreSQL/pgvector is optional scale/migration tooling. SQLite remains the
246
- live local Brain store in 8.9.0.
277
+ live local Brain store in 9.1.0.
247
278
  - Docker, model downloads, cloud model calls, Telegram, Brain Network, and update
248
279
  checks require explicit user action.
249
280
  - Conversation does not fabricate answers when no model is loaded.
@@ -255,6 +286,8 @@ strategic roadmap slices applied through 8.9.0 and the follow-up tracks.
255
286
 
256
287
  | Version | Theme |
257
288
  | --- | --- |
289
+ | 9.1.0 | Code Review Completion & Fail-Closed Runtime: all July 11 review findings closed across fail-closed security, typed runtime/model/chat boundaries, honest frontend failures and tests, and repository hygiene |
290
+ | 9.0.0 | Code Review Closure & Runtime Cleanup: July 8 code-review follow-ups fixed, chat/runtime reliability improved, duplicated utility surfaces consolidated, runtime audit append paths moved to JSONL, and release metadata/artifacts synchronized |
258
291
  | 8.9.0 | Scoped Memory & Tool Policy Hardening: authenticated history/KG reads are workspace-scoped, direct Tool API paths enforce registry policy, local approvals hash tokens at rest, AgentRuntime approval semantics are explicit, and frontend/runtime seams are split |
259
292
  | 8.8.0 | Brain Core Extraction & Recall Proof Hardening: internal-only Brain shim layers are removed, AgentRuntime run contracts/retry budgets are tighter, Brain Chat gains conversation controls, and citation recall exposes matched evidence |
260
293
  | 8.7.0 | Runtime State Hygiene & Release Evidence Refresh: model-runtime internals prefer typed state over legacy globals, compatibility sync is deprecated, 8.7.0 visual evidence is refreshed, and all release metadata/docs are synchronized |
@@ -265,16 +298,6 @@ strategic roadmap slices applied through 8.9.0 and the follow-up tracks.
265
298
  | 8.2.0 | Brain Brief: evidence-backed home briefing, honest empty-state guidance, recall/graph/model-proof next actions, and continued model/workspace runtime extraction |
266
299
  | 8.1.0 | Intuitive Brain Home: living Brain, recent memory, connected topic, next action, and composer are visible in one product-first screen with refreshed 8.1.0 evidence and artifacts |
267
300
  | 8.0.0 | Runtime Architecture Contract: AgentRuntime, ToolRegistry, central Config, server decomposition, and KG hardening are captured as machine-checkable release boundaries with exact 8.0.0 artifacts |
268
- | 7.9.0 | Agent Runtime Boundary Hardening: explicit `SingleAgentRuntime`, compatibility alias preservation, injected rollback port, and release/readiness docs aligned to the product AgentRuntime facade |
269
- | 7.8.0 | Brain Chat Home UX Simplification: chat-first first viewport, visible workspace navigation, collapsed source/status utilities, hidden default depth controls, and removal of obsolete Brain UX components |
270
- | 7.7.0 | Complete Product Polish: command-center Brain Home, repaired Review Center evidence, exact 7.7 docs/artifacts, product readiness gate, and stronger CI/release checks |
271
- | 7.6.0 | Brain-Centered UX & Architecture Closure: Wake Brain first-run surface, concentric memory rings with direct depth controls, and machine-checkable closure of the two architecture/UX review files |
272
- | 7.5.0 | Runtime Debt Burn-down & Release Risk Cleanup: API consumers get normalized contract views, retrieval quality uses a 250+ record corpus fixture, stale artifact risk is removed, npm audit is clean, and Tauri is updated past the old block warning |
273
- | 7.4.0 | Runtime Contract Convergence & Corpus Retrieval: agent/workflow/audit/realtime records share the agent-run-contract/v1 family, and retrieval quality gates run against a real corpus-scale fixture |
274
- | 7.3.0 | Runtime Contract & Retrieval Quality: shared agent-run contract across runtimes plus deterministic hybrid recall/ranking regression gates |
275
- | 7.2.0 | Runtime Trust Baseline: agent run preview/readiness, simulation-mode guardrails, live ToolRegistry manifest/diagnostics, and tests for dispatch/governance/catalog drift |
276
- | 7.1.0 | Brain Usability Completion: clearer first-run onboarding, ingestion progress/emergence, richer graph controls, inline answer proof, workspace/profile/admin discovery, empty/error/consent feedback, and VS Code sync status |
277
- | 7.0.0 | Brain Productization Loop: first-screen ingestion for files/folders/notes/web, answer-level memory proof and source citations, model-continuity demo flow, five-minute first-run loop, and recall/KG quality eval in CI |
278
301
 
279
302
  ## Documentation
280
303