ltcai 9.0.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 (187) hide show
  1. package/README.md +80 -46
  2. package/auto_setup.py +7 -853
  3. package/desktop/electron/README.md +9 -0
  4. package/desktop/electron/main.cjs +5 -3
  5. package/docs/CHANGELOG.md +146 -2
  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/TRUST_MODEL.md +5 -2
  13. package/docs/WHY_LATTICE.md +15 -10
  14. package/docs/WORKFLOW_DESIGNER.md +22 -0
  15. package/docs/kg-schema.md +13 -2
  16. package/docs/mcp-tools.md +17 -6
  17. package/docs/privacy.md +19 -3
  18. package/docs/public-deploy.md +32 -3
  19. package/docs/security-model.md +46 -11
  20. package/lattice_brain/__init__.py +1 -1
  21. package/lattice_brain/archive.py +1 -6
  22. package/lattice_brain/context.py +66 -9
  23. package/lattice_brain/graph/_kg_fsutil.py +1 -5
  24. package/lattice_brain/graph/discovery_index.py +174 -20
  25. package/lattice_brain/graph/documents.py +44 -9
  26. package/lattice_brain/graph/ingest.py +47 -20
  27. package/lattice_brain/graph/provenance.py +13 -6
  28. package/lattice_brain/graph/retrieval.py +140 -39
  29. package/lattice_brain/graph/retrieval_docgen.py +37 -4
  30. package/lattice_brain/ingestion.py +4 -7
  31. package/lattice_brain/portability.py +28 -14
  32. package/lattice_brain/runtime/agent_runtime.py +5 -9
  33. package/lattice_brain/runtime/hooks.py +30 -13
  34. package/lattice_brain/runtime/multi_agent.py +27 -8
  35. package/lattice_brain/runtime/statuses.py +10 -0
  36. package/lattice_brain/utils.py +20 -2
  37. package/lattice_brain/workflow.py +1 -5
  38. package/latticeai/__init__.py +1 -1
  39. package/latticeai/api/admin.py +1 -1
  40. package/latticeai/api/agent_registry.py +10 -8
  41. package/latticeai/api/agents.py +22 -3
  42. package/latticeai/api/auth.py +78 -16
  43. package/latticeai/api/browser.py +303 -34
  44. package/latticeai/api/chat.py +320 -850
  45. package/latticeai/api/chat_agent_http.py +356 -0
  46. package/latticeai/api/chat_contracts.py +54 -0
  47. package/latticeai/api/chat_documents.py +256 -0
  48. package/latticeai/api/chat_helpers.py +24 -1
  49. package/latticeai/api/chat_history.py +99 -0
  50. package/latticeai/api/chat_intents.py +302 -0
  51. package/latticeai/api/chat_stream.py +115 -0
  52. package/latticeai/api/computer_use.py +62 -9
  53. package/latticeai/api/health.py +9 -3
  54. package/latticeai/api/hooks.py +17 -6
  55. package/latticeai/api/knowledge_graph.py +78 -14
  56. package/latticeai/api/local_files.py +7 -2
  57. package/latticeai/api/mcp.py +102 -23
  58. package/latticeai/api/models.py +72 -33
  59. package/latticeai/api/network.py +5 -5
  60. package/latticeai/api/permissions.py +67 -26
  61. package/latticeai/api/plugins.py +21 -7
  62. package/latticeai/api/portability.py +5 -5
  63. package/latticeai/api/realtime.py +33 -5
  64. package/latticeai/api/setup.py +2 -2
  65. package/latticeai/api/static_routes.py +123 -24
  66. package/latticeai/api/tools.py +96 -14
  67. package/latticeai/api/workflow_designer.py +37 -0
  68. package/latticeai/api/workspace.py +2 -1
  69. package/latticeai/app_factory.py +110 -52
  70. package/latticeai/core/agent.py +19 -9
  71. package/latticeai/core/agent_registry.py +1 -5
  72. package/latticeai/core/config.py +23 -3
  73. package/latticeai/core/context_builder.py +21 -3
  74. package/latticeai/core/invitations.py +1 -4
  75. package/latticeai/core/io_utils.py +9 -1
  76. package/latticeai/core/legacy_compatibility.py +24 -3
  77. package/latticeai/core/marketplace.py +1 -1
  78. package/latticeai/core/plugins.py +15 -0
  79. package/latticeai/core/policy.py +1 -1
  80. package/latticeai/core/realtime.py +38 -15
  81. package/latticeai/core/sessions.py +7 -2
  82. package/latticeai/core/timeutil.py +10 -0
  83. package/latticeai/core/tool_registry.py +90 -18
  84. package/latticeai/core/users.py +1 -5
  85. package/latticeai/core/workspace_graph_trace.py +31 -5
  86. package/latticeai/core/workspace_memory.py +3 -1
  87. package/latticeai/core/workspace_os.py +18 -7
  88. package/latticeai/core/workspace_os_utils.py +0 -5
  89. package/latticeai/core/workspace_permissions.py +2 -1
  90. package/latticeai/core/workspace_plugins.py +1 -1
  91. package/latticeai/core/workspace_runs.py +14 -5
  92. package/latticeai/core/workspace_skills.py +1 -1
  93. package/latticeai/core/workspace_snapshots.py +2 -1
  94. package/latticeai/core/workspace_timeline.py +2 -1
  95. package/latticeai/integrations/telegram_bot.py +94 -43
  96. package/latticeai/models/router.py +130 -36
  97. package/latticeai/runtime/access_runtime.py +62 -4
  98. package/latticeai/runtime/automation_runtime.py +13 -7
  99. package/latticeai/runtime/brain_runtime.py +19 -7
  100. package/latticeai/runtime/chat_wiring.py +2 -0
  101. package/latticeai/runtime/config_runtime.py +58 -26
  102. package/latticeai/runtime/context_runtime.py +16 -4
  103. package/latticeai/runtime/hooks_runtime.py +1 -1
  104. package/latticeai/runtime/model_wiring.py +33 -5
  105. package/latticeai/runtime/namespace_runtime.py +62 -72
  106. package/latticeai/runtime/platform_runtime_wiring.py +4 -3
  107. package/latticeai/runtime/review_wiring.py +1 -1
  108. package/latticeai/runtime/router_registration.py +34 -1
  109. package/latticeai/runtime/security_runtime.py +110 -13
  110. package/latticeai/runtime/stages.py +27 -0
  111. package/latticeai/server_app.py +5 -1
  112. package/latticeai/services/architecture_readiness.py +74 -5
  113. package/latticeai/services/brain_automation.py +3 -26
  114. package/latticeai/services/chat_service.py +205 -15
  115. package/latticeai/services/local_knowledge.py +423 -0
  116. package/latticeai/services/memory_service.py +55 -21
  117. package/latticeai/services/model_engines.py +48 -33
  118. package/latticeai/services/model_errors.py +17 -0
  119. package/latticeai/services/model_loading.py +28 -25
  120. package/latticeai/services/model_runtime.py +228 -162
  121. package/latticeai/services/p_reinforce.py +22 -3
  122. package/latticeai/services/platform_runtime.py +83 -23
  123. package/latticeai/services/product_readiness.py +19 -17
  124. package/latticeai/services/review_queue.py +12 -0
  125. package/latticeai/services/router_context.py +1 -0
  126. package/latticeai/services/run_executor.py +4 -9
  127. package/latticeai/services/search_service.py +203 -28
  128. package/latticeai/services/tool_dispatch.py +28 -5
  129. package/latticeai/services/triggers.py +53 -4
  130. package/latticeai/services/upload_service.py +13 -2
  131. package/latticeai/setup/__init__.py +25 -0
  132. package/latticeai/setup/auto_setup.py +857 -0
  133. package/latticeai/setup/wizard.py +1264 -0
  134. package/latticeai/tools/__init__.py +278 -0
  135. package/{tools → latticeai/tools}/commands.py +67 -7
  136. package/{tools → latticeai/tools}/computer.py +1 -1
  137. package/{tools → latticeai/tools}/documents.py +1 -1
  138. package/{tools → latticeai/tools}/filesystem.py +3 -3
  139. package/latticeai/tools/knowledge.py +178 -0
  140. package/{tools → latticeai/tools}/local_files.py +1 -1
  141. package/{tools → latticeai/tools}/network.py +0 -1
  142. package/local_knowledge_api.py +4 -342
  143. package/package.json +22 -2
  144. package/scripts/brain_quality_eval.py +3 -1
  145. package/scripts/bump_version.py +3 -0
  146. package/scripts/capture_release_evidence.mjs +180 -0
  147. package/scripts/check_current_release_docs.mjs +142 -0
  148. package/scripts/check_i18n_literals.mjs +107 -31
  149. package/scripts/check_openapi_drift.mjs +56 -0
  150. package/scripts/export_openapi.py +67 -7
  151. package/scripts/i18n_literal_allowlist.json +22 -24
  152. package/scripts/run_integration_tests.mjs +72 -10
  153. package/scripts/validate_release_artifacts.py +49 -7
  154. package/scripts/wheel_smoke.py +5 -0
  155. package/setup_wizard.py +3 -1260
  156. package/src-tauri/Cargo.lock +1 -1
  157. package/src-tauri/Cargo.toml +1 -1
  158. package/src-tauri/tauri.conf.json +1 -1
  159. package/static/app/asset-manifest.json +11 -11
  160. package/static/app/assets/Act-Bzz0bUyW.js +1 -0
  161. package/static/app/assets/Brain-Dj2J20YA.js +321 -0
  162. package/static/app/assets/Capture-CqlEl1Ga.js +1 -0
  163. package/static/app/assets/Library-B03FP1Yx.js +1 -0
  164. package/static/app/assets/System-80lHW0Ux.js +1 -0
  165. package/static/app/assets/index-BiMofBTM.js +17 -0
  166. package/static/app/assets/index-Bmx9rzTc.css +2 -0
  167. package/static/app/assets/primitives-Q1A96_7v.js +1 -0
  168. package/static/app/assets/textarea-D13RtnTo.js +1 -0
  169. package/static/app/index.html +2 -2
  170. package/static/sw.js +1 -1
  171. package/tools/__init__.py +21 -269
  172. package/docs/CODE_REVIEW_2026-07-06.md +0 -764
  173. package/latticeai/runtime/app_context_runtime.py +0 -13
  174. package/latticeai/runtime/tail_wiring.py +0 -21
  175. package/scripts/com.pts.claudecode.discord.plist +0 -31
  176. package/scripts/pts-claudecode-discord-bridge.mjs +0 -207
  177. package/scripts/start-pts-claudecode-discord.sh +0 -51
  178. package/static/app/assets/Act-21lIXx2E.js +0 -1
  179. package/static/app/assets/Brain-BqUd5UJJ.js +0 -321
  180. package/static/app/assets/Capture-BA7Z2Q1u.js +0 -1
  181. package/static/app/assets/Library-bFMtyni3.js +0 -1
  182. package/static/app/assets/System-K6krGCqn.js +0 -1
  183. package/static/app/assets/index-C4R3ws30.js +0 -17
  184. package/static/app/assets/index-ChSeOB02.css +0 -2
  185. package/static/app/assets/primitives-sQU3it5I.js +0 -1
  186. package/static/app/assets/textarea-DK3Fd_lR.js +0 -1
  187. package/tools/knowledge.py +0 -95
package/README.md CHANGED
@@ -1,9 +1,23 @@
1
1
  # Lattice AI
2
2
 
3
- **Lattice AI 9.0.0 is the local-first Digital Brain platform. This release closes the July 8 code-review follow-up, hardens chat/runtime reliability, pays down cleanup debt across runtime utilities and setup detection, and keeps package, desktop, extension, static app, and documentation metadata synchronized to the 9.0.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
- 9.0.0 focuses on code-review closure, chat/runtime reliability,
71
- AgentRuntime and ToolRegistry maintainability, release artifact correctness,
72
- and frontend/runtime cleanup.
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,38 +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 **9.0.0 — Code Review Closure & Runtime Cleanup**:
214
-
215
- - July 8 code-review follow-ups are fixed across chat, agent runs, permissions,
216
- Telegram integration, runtime audit timestamps, embeddings, and Brain UI copy.
217
- - Chat/document streaming now preserves terminal SSE events and history/trace
218
- persistence when generation fails mid-stream.
219
- - Runtime audit appends use JSONL while legacy JSON reads remain compatible.
220
- - Shared JSON/ISO/hash, setup detection, and frontend helper utilities replace
221
- duplicated implementations across runtime, Brain Core, setup, and React code.
222
- - The legacy `server_app` namespace is allowlist-based instead of exposing all
223
- app-factory locals.
224
- - The main `/chat` handler now routes through focused intent handlers and shared
225
- response epilogues for lower future regression risk.
226
-
227
- Expected artifacts for 9.0.0 release must use exact filenames:
228
-
229
- - `dist/ltcai-9.0.0-py3-none-any.whl`
230
- - `dist/ltcai-9.0.0.tar.gz`
231
- - `ltcai-9.0.0.tgz`
232
- - `dist/ltcai-9.0.0.vsix`
233
- - `src-tauri/target/release/bundle/dmg/Lattice AI_9.0.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`
234
267
 
235
268
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
236
269
 
237
270
  See [docs/ROADMAP_RECOMMENDATIONS.md](docs/ROADMAP_RECOMMENDATIONS.md) for the
238
- strategic roadmap slices applied through 9.0.0 and the follow-up tracks.
271
+ strategic roadmap slices applied through 9.1.0 and the follow-up tracks.
239
272
 
240
273
  ## Known Limitations
241
274
 
242
275
  - External package registries are owner-published and can lag behind GitHub.
243
276
  - PostgreSQL/pgvector is optional scale/migration tooling. SQLite remains the
244
- live local Brain store in 9.0.0.
277
+ live local Brain store in 9.1.0.
245
278
  - Docker, model downloads, cloud model calls, Telegram, Brain Network, and update
246
279
  checks require explicit user action.
247
280
  - Conversation does not fabricate answers when no model is loaded.
@@ -253,6 +286,7 @@ strategic roadmap slices applied through 9.0.0 and the follow-up tracks.
253
286
 
254
287
  | Version | Theme |
255
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 |
256
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 |
257
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 |
258
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 |