ltcai 11.1.0 → 11.4.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 (289) hide show
  1. package/README.md +47 -54
  2. package/docs/CHANGELOG.md +94 -0
  3. package/docs/COMMUNITY_AND_PLUGINS.md +1 -1
  4. package/docs/DEVELOPMENT.md +1 -1
  5. package/docs/FEATURE_AUDIT_v11.2.0.md +393 -0
  6. package/docs/LAYOUT_REBUILD_SPEC.md +9 -1
  7. package/docs/MULTI_AGENT_RUNTIME.md +1 -1
  8. package/docs/ONBOARDING.md +1 -1
  9. package/docs/OPERATIONS.md +6 -2
  10. package/docs/PERMISSION_MODE.md +1 -1
  11. package/docs/TRUST_MODEL.md +1 -1
  12. package/docs/WHY_LATTICE.md +1 -1
  13. package/docs/architecture.md +6 -2
  14. package/docs/kg-schema.md +2 -2
  15. package/docs/v11.3.0_PLAN.md +202 -0
  16. package/docs/v11.4.0_RUST_FOUNDATION_PLAN.md +176 -0
  17. package/lattice_brain/__init__.py +1 -1
  18. package/lattice_brain/gates.py +125 -0
  19. package/lattice_brain/graph/_kg_common/__init__.py +287 -0
  20. package/lattice_brain/graph/_kg_common/extraction.py +516 -0
  21. package/lattice_brain/graph/_kg_common/relations.py +161 -0
  22. package/lattice_brain/graph/_kg_common/text.py +479 -0
  23. package/lattice_brain/graph/discovery_index/__init__.py +35 -0
  24. package/lattice_brain/graph/discovery_index/cleanup.py +182 -0
  25. package/lattice_brain/graph/discovery_index/extract.py +137 -0
  26. package/lattice_brain/graph/discovery_index/scan.py +411 -0
  27. package/lattice_brain/graph/discovery_index/upsert.py +495 -0
  28. package/lattice_brain/graph/fusion.py +35 -4
  29. package/lattice_brain/graph/projection/__init__.py +42 -0
  30. package/lattice_brain/graph/projection/curation.py +500 -0
  31. package/lattice_brain/graph/{projection.py → projection/v2_schema.py} +81 -485
  32. package/lattice_brain/graph/retrieval/__init__.py +54 -0
  33. package/lattice_brain/graph/retrieval/context.py +197 -0
  34. package/lattice_brain/graph/retrieval/graph_view.py +319 -0
  35. package/lattice_brain/graph/retrieval/hybrid.py +488 -0
  36. package/lattice_brain/graph/retrieval/maintenance.py +121 -0
  37. package/lattice_brain/graph/retrieval/signals.py +95 -0
  38. package/lattice_brain/graph/retrieval_vector/__init__.py +42 -0
  39. package/lattice_brain/graph/retrieval_vector/fingerprint.py +97 -0
  40. package/lattice_brain/graph/retrieval_vector/indexing.py +347 -0
  41. package/lattice_brain/graph/retrieval_vector/search.py +560 -0
  42. package/lattice_brain/graph/retrieval_vector/status.py +374 -0
  43. package/lattice_brain/graph/schema.py +9 -0
  44. package/lattice_brain/graph/store.py +9 -0
  45. package/lattice_brain/graph/vector_index/selector.py +32 -2
  46. package/lattice_brain/ingestion/__init__.py +130 -0
  47. package/lattice_brain/ingestion/_contract.py +90 -0
  48. package/lattice_brain/ingestion/constants.py +127 -0
  49. package/lattice_brain/ingestion/folder_scan.py +57 -0
  50. package/lattice_brain/ingestion/folders.py +258 -0
  51. package/lattice_brain/ingestion/hashing.py +26 -0
  52. package/lattice_brain/ingestion/jobs_api.py +107 -0
  53. package/lattice_brain/ingestion/models.py +80 -0
  54. package/lattice_brain/ingestion/pipeline.py +486 -0
  55. package/lattice_brain/ingestion/quality.py +209 -0
  56. package/lattice_brain/ingestion/routing.py +295 -0
  57. package/lattice_brain/multimodal/__init__.py +164 -0
  58. package/lattice_brain/multimodal/audio.py +77 -0
  59. package/lattice_brain/multimodal/common.py +118 -0
  60. package/lattice_brain/{multimodal.py → multimodal/images.py} +22 -262
  61. package/lattice_brain/multimodal/ports.py +169 -0
  62. package/lattice_brain/multimodal/video.py +410 -0
  63. package/lattice_brain/portability/__init__.py +90 -0
  64. package/lattice_brain/portability/_contract.py +42 -0
  65. package/lattice_brain/portability/backups.py +338 -0
  66. package/lattice_brain/portability/bundles.py +136 -0
  67. package/lattice_brain/portability/constants.py +93 -0
  68. package/lattice_brain/portability/fsops.py +138 -0
  69. package/lattice_brain/portability/service.py +41 -0
  70. package/lattice_brain/portability/sharing.py +714 -0
  71. package/lattice_brain/runtime/__init__.py +1 -1
  72. package/lattice_brain/runtime/multi_agent.py +1 -1
  73. package/lattice_brain/sealed_box.py +244 -0
  74. package/lattice_brain/synthesis.py +24 -1
  75. package/latticeai/__init__.py +1 -1
  76. package/latticeai/api/brain_intelligence.py +4 -0
  77. package/latticeai/api/chat.py +11 -0
  78. package/latticeai/api/chat_helpers.py +16 -3
  79. package/latticeai/api/chat_hybrid.py +32 -1
  80. package/latticeai/api/chronicle.py +63 -0
  81. package/latticeai/api/features.py +70 -0
  82. package/latticeai/api/local_files.py +102 -0
  83. package/latticeai/api/portability.py +39 -4
  84. package/latticeai/api/review_queue.py +126 -0
  85. package/latticeai/api/search.py +16 -2
  86. package/latticeai/core/agent/__init__.py +93 -0
  87. package/latticeai/core/agent/_contract.py +79 -0
  88. package/latticeai/core/agent/context.py +57 -0
  89. package/latticeai/core/agent/deps.py +125 -0
  90. package/latticeai/core/agent/execution.py +622 -0
  91. package/latticeai/core/agent/planning.py +145 -0
  92. package/latticeai/core/agent/recovery.py +157 -0
  93. package/latticeai/core/agent/runtime.py +210 -0
  94. package/latticeai/core/agent/verification.py +231 -0
  95. package/latticeai/core/config.py +4 -1
  96. package/latticeai/core/context_builder.py +6 -3
  97. package/latticeai/core/embedding_providers/__init__.py +151 -0
  98. package/latticeai/core/embedding_providers/base.py +199 -0
  99. package/latticeai/core/embedding_providers/captions.py +162 -0
  100. package/latticeai/core/embedding_providers/profiles.py +126 -0
  101. package/latticeai/core/embedding_providers/text.py +350 -0
  102. package/latticeai/core/embedding_providers/vision.py +352 -0
  103. package/latticeai/core/file_generation/__init__.py +115 -0
  104. package/latticeai/core/file_generation/bundles.py +76 -0
  105. package/latticeai/core/file_generation/extraction.py +154 -0
  106. package/latticeai/core/file_generation/inference.py +235 -0
  107. package/latticeai/core/file_generation/orchestration.py +152 -0
  108. package/latticeai/core/file_generation/prompting.py +117 -0
  109. package/latticeai/core/file_generation/repair.py +114 -0
  110. package/latticeai/core/file_generation/sanitize.py +61 -0
  111. package/latticeai/core/file_generation/validation.py +201 -0
  112. package/latticeai/core/legacy_compatibility.py +1 -1
  113. package/latticeai/core/marketplace.py +1 -1
  114. package/latticeai/core/messages.py +152 -0
  115. package/latticeai/core/model_compat.py +73 -2
  116. package/latticeai/core/workspace_os_constants.py +1 -1
  117. package/latticeai/integrations/telegram_bot/__init__.py +123 -0
  118. package/latticeai/integrations/telegram_bot/__main__.py +17 -0
  119. package/latticeai/integrations/telegram_bot/config.py +86 -0
  120. package/latticeai/integrations/telegram_bot/dispatch.py +311 -0
  121. package/latticeai/integrations/telegram_bot/flows.py +478 -0
  122. package/latticeai/integrations/telegram_bot/helpers.py +322 -0
  123. package/latticeai/integrations/telegram_bot/screens.py +394 -0
  124. package/latticeai/models/model_providers.py +12 -4
  125. package/latticeai/models/router/__init__.py +88 -0
  126. package/latticeai/models/router/_contract.py +66 -0
  127. package/latticeai/models/router/branding.py +56 -0
  128. package/latticeai/models/router/catalog.py +69 -0
  129. package/latticeai/models/router/documents.py +199 -0
  130. package/latticeai/models/router/errors.py +37 -0
  131. package/latticeai/models/router/generation.py +258 -0
  132. package/latticeai/models/router/loading.py +291 -0
  133. package/latticeai/models/router/local_models.py +85 -0
  134. package/latticeai/models/router/registry.py +147 -0
  135. package/latticeai/runtime/build_phases/__init__.py +82 -0
  136. package/latticeai/runtime/build_phases/features.py +407 -0
  137. package/latticeai/runtime/build_phases/foundation.py +555 -0
  138. package/latticeai/runtime/build_phases/web.py +492 -0
  139. package/latticeai/runtime/chat_wiring.py +4 -0
  140. package/latticeai/runtime/feature_toggle_wiring.py +163 -0
  141. package/latticeai/runtime/router_registration.py +11 -0
  142. package/latticeai/runtime/runtime_context.py +1 -0
  143. package/latticeai/services/app_context.py +8 -0
  144. package/latticeai/services/architecture_readiness.py +48 -19
  145. package/latticeai/services/automation_intelligence.py +22 -2
  146. package/latticeai/services/brain_intelligence/__init__.py +58 -0
  147. package/latticeai/services/brain_intelligence/_contract.py +71 -0
  148. package/latticeai/services/brain_intelligence/consistency.py +193 -0
  149. package/latticeai/services/brain_intelligence/constants.py +47 -0
  150. package/latticeai/services/brain_intelligence/digest.py +258 -0
  151. package/latticeai/services/brain_intelligence/health.py +331 -0
  152. package/latticeai/services/brain_intelligence/proposals.py +264 -0
  153. package/latticeai/services/brain_intelligence/sampling.py +84 -0
  154. package/latticeai/services/brain_intelligence/service.py +48 -0
  155. package/latticeai/services/chronicle.py +557 -0
  156. package/latticeai/services/command_center.py +10 -4
  157. package/latticeai/services/feature_toggles.py +502 -0
  158. package/latticeai/services/folder_watch.py +122 -1
  159. package/latticeai/services/hybrid_chat.py +56 -5
  160. package/latticeai/services/interop_bridges.py +978 -0
  161. package/latticeai/services/memory_service/__init__.py +52 -0
  162. package/latticeai/services/memory_service/_contract.py +100 -0
  163. package/latticeai/services/memory_service/brief.py +431 -0
  164. package/latticeai/services/memory_service/constants.py +57 -0
  165. package/latticeai/services/memory_service/maintenance.py +138 -0
  166. package/latticeai/services/memory_service/manager.py +186 -0
  167. package/latticeai/services/memory_service/proof.py +136 -0
  168. package/latticeai/services/memory_service/recall.py +225 -0
  169. package/latticeai/services/memory_service/service.py +48 -0
  170. package/latticeai/services/memory_service/stores.py +110 -0
  171. package/latticeai/services/model_capability_registry.py +434 -261
  172. package/latticeai/services/model_catalog.py +95 -61
  173. package/latticeai/services/model_recommendation.py +18 -11
  174. package/latticeai/services/model_runtime/__init__.py +322 -0
  175. package/latticeai/services/model_runtime/cloud.py +87 -0
  176. package/latticeai/services/model_runtime/download.py +282 -0
  177. package/latticeai/services/model_runtime/engines.py +341 -0
  178. package/latticeai/services/model_runtime/loading.py +178 -0
  179. package/latticeai/services/model_runtime/service.py +129 -0
  180. package/latticeai/services/model_runtime/state.py +131 -0
  181. package/latticeai/services/model_runtime/status.py +255 -0
  182. package/latticeai/services/multimodal_ports.py +26 -1
  183. package/latticeai/services/obsidian_bridge.py +16 -25
  184. package/latticeai/services/product_readiness.py +15 -7
  185. package/latticeai/services/search_service.py +149 -2
  186. package/latticeai/services/tool_dispatch.py +4 -0
  187. package/latticeai/setup/auto_setup.py +27 -30
  188. package/latticeai/setup/wizard/__init__.py +126 -0
  189. package/latticeai/setup/wizard/catalog.py +172 -0
  190. package/latticeai/setup/wizard/detect.py +323 -0
  191. package/latticeai/setup/wizard/install.py +348 -0
  192. package/latticeai/setup/wizard/paths.py +168 -0
  193. package/latticeai/setup/wizard/plans.py +74 -0
  194. package/latticeai/setup/wizard/recommend.py +320 -0
  195. package/package.json +6 -2
  196. package/scripts/bump_version.py +14 -0
  197. package/scripts/capture_release_evidence.mjs +33 -21
  198. package/scripts/check_current_release_docs.mjs +1 -1
  199. package/scripts/check_i18n_namespace_coverage.mjs +41 -4
  200. package/scripts/check_max_file_lines.mjs +102 -0
  201. package/scripts/check_release_evidence_bound.mjs +30 -15
  202. package/scripts/check_screenshot_pixel_delta.py +34 -4
  203. package/scripts/check_server_i18n.mjs +2 -0
  204. package/scripts/generate_rust_parity_fixtures.py +562 -0
  205. package/scripts/lib/mock_server_fingerprint.mjs +94 -0
  206. package/scripts/release_screen_claims.json +44 -2
  207. package/scripts/verify_hf_model_registry.py +253 -218
  208. package/src-tauri/Cargo.lock +361 -3
  209. package/src-tauri/Cargo.toml +6 -1
  210. package/src-tauri/src/backend.rs +349 -0
  211. package/src-tauri/src/folder.rs +33 -0
  212. package/src-tauri/src/main.rs +97 -399
  213. package/src-tauri/tauri.conf.json +1 -1
  214. package/static/app/asset-manifest.json +41 -37
  215. package/static/app/assets/Act-yYpYnn0v.js +1 -0
  216. package/static/app/assets/AdminConsole-DL3Cr5pL.js +1 -0
  217. package/static/app/assets/{Brain-CzCsI1mi.js → Brain-C1HBN0Wf.js} +2 -2
  218. package/static/app/assets/BrainHome-DoXRhUUC.js +2 -0
  219. package/static/app/assets/BrainSignals-6yR6ir5t.js +1 -0
  220. package/static/app/assets/Capture-CFIRsFNE.js +1 -0
  221. package/static/app/assets/Chronicle-BZbEgiwN.js +1 -0
  222. package/static/app/assets/CommandPalette-D2pMxC2I.js +1 -0
  223. package/static/app/assets/Library-DwO3yZST.js +1 -0
  224. package/static/app/assets/{LivingBrain-BXMWIK_2.js → LivingBrain-Jn1GK0-S.js} +1 -1
  225. package/static/app/assets/ProductFlow-B-w1R4Oo.js +1 -0
  226. package/static/app/assets/ReviewCard-6B27X8Vg.js +3 -0
  227. package/static/app/assets/System-DW8F-2xL.js +1 -0
  228. package/static/app/assets/arrow-left-DXvKg9U6.js +1 -0
  229. package/static/app/assets/{bot-4BvN07ux.js → bot-IM_E_Y12.js} +1 -1
  230. package/static/app/assets/brain-Ci1CkWjM.js +1 -0
  231. package/static/app/assets/{button-CDjtnAoU.js → button-COwyqfHM.js} +1 -1
  232. package/static/app/assets/circle-check-DfInj-qD.js +1 -0
  233. package/static/app/assets/{circle-pause-D_RMn7tp.js → circle-pause-DEM4A1Y5.js} +1 -1
  234. package/static/app/assets/{circle-play-B5OpB8ae.js → circle-play-C9djDuLd.js} +1 -1
  235. package/static/app/assets/{cpu-BIlWInHf.js → cpu-DFdo1gw-.js} +1 -1
  236. package/static/app/assets/{download-BtjXfL3z.js → download-SnJL6oqk.js} +1 -1
  237. package/static/app/assets/{folder-open-DefMpxI2.js → folder-open-CqZeDkjE.js} +1 -1
  238. package/static/app/assets/{hard-drive-BQ8NZVkw.js → hard-drive-j1jJXYYf.js} +1 -1
  239. package/static/app/assets/{index-vtEfYvQY.css → index-BLPb5lmE.css} +1 -1
  240. package/static/app/assets/index-_u5iUHDr.js +10 -0
  241. package/static/app/assets/input-B0lPdRQZ.js +1 -0
  242. package/static/app/assets/link-2-CoFbooHS.js +1 -0
  243. package/static/app/assets/{permissionCopy-BqZ5tsgL.js → permissionCopy-BsyLxtao.js} +1 -1
  244. package/static/app/assets/primitives-DEbN-d6p.js +1 -0
  245. package/static/app/assets/search-BybIWPNd.js +1 -0
  246. package/static/app/assets/{share-2-D5zg_0fY.js → share-2-CVtZ_ewX.js} +1 -1
  247. package/static/app/assets/{shield-alert-B5pZzkUb.js → shield-alert-CBi2GNWM.js} +1 -1
  248. package/static/app/assets/{textarea-nEVIweKY.js → textarea-DNMpB5ih.js} +1 -1
  249. package/static/app/assets/{useFocusTrap-Cm99AHlz.js → useFocusTrap-C83t3GXF.js} +1 -1
  250. package/static/app/assets/useMutation-DtbJDoyz.js +1 -0
  251. package/static/app/assets/{useQuery-Dm__N6bL.js → useQuery-Dcp1OChy.js} +1 -1
  252. package/static/app/assets/utils-BlZr7Pd4.js +4 -0
  253. package/static/app/assets/workspace-jJY4RuAV.js +1 -0
  254. package/static/app/index.html +4 -4
  255. package/static/sw.js +1 -1
  256. package/lattice_brain/graph/_kg_common.py +0 -1331
  257. package/lattice_brain/graph/discovery_index.py +0 -1141
  258. package/lattice_brain/graph/retrieval.py +0 -1120
  259. package/lattice_brain/graph/retrieval_vector.py +0 -1293
  260. package/lattice_brain/ingestion.py +0 -1377
  261. package/lattice_brain/portability.py +0 -1210
  262. package/latticeai/core/agent.py +0 -1412
  263. package/latticeai/core/embedding_providers.py +0 -1196
  264. package/latticeai/core/file_generation.py +0 -1047
  265. package/latticeai/integrations/telegram_bot.py +0 -1390
  266. package/latticeai/models/router.py +0 -1007
  267. package/latticeai/runtime/build_phases.py +0 -1422
  268. package/latticeai/services/brain_intelligence.py +0 -967
  269. package/latticeai/services/memory_service.py +0 -1177
  270. package/latticeai/services/model_runtime.py +0 -1281
  271. package/latticeai/setup/wizard.py +0 -1277
  272. package/static/app/assets/Act-D0HWqtn0.js +0 -1
  273. package/static/app/assets/AdminConsole-D-QDW-A4.js +0 -1
  274. package/static/app/assets/BrainHome-Btns-_TA.js +0 -2
  275. package/static/app/assets/BrainSignals-2dHQNkns.js +0 -1
  276. package/static/app/assets/Capture-CT8v1StE.js +0 -1
  277. package/static/app/assets/CommandPalette-DoLXC2KH.js +0 -1
  278. package/static/app/assets/Library-DDoxFE5c.js +0 -1
  279. package/static/app/assets/ProductFlow-DOYf7JIs.js +0 -1
  280. package/static/app/assets/ReviewCard-COQsqidK.js +0 -3
  281. package/static/app/assets/System-BRllvYXd.js +0 -1
  282. package/static/app/assets/arrow-left-DnyMzss-.js +0 -1
  283. package/static/app/assets/brain-uMb_5hnO.js +0 -1
  284. package/static/app/assets/index-0AvoEBzJ.js +0 -10
  285. package/static/app/assets/input-B_5ZJ9oy.js +0 -1
  286. package/static/app/assets/primitives-CVwew78r.js +0 -1
  287. package/static/app/assets/search-DkhnOKZt.js +0 -1
  288. package/static/app/assets/utils-DcDMoZIe.js +0 -4
  289. package/static/app/assets/workspace-LtRRSKTf.js +0 -1
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![CI Status](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml)
12
12
  [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
13
13
 
14
- ![v11.1.0 Living Brain walkthrough](output/release/v11.1.0/gifs/v11.1.0-living-brain-walkthrough.gif)
14
+ ![v11.4.0 Living Brain walkthrough](output/release/v11.4.0/gifs/v11.4.0-living-brain-walkthrough.gif)
15
15
 
16
16
  Chat, files, folders, notes, and web pages all flow into one durable knowledge
17
17
  graph on your computer. Any model — local MLX or cloud — can speak with that
@@ -24,10 +24,10 @@ memory. Nothing leaves your machine without explicit consent.
24
24
 
25
25
  | | |
26
26
  | --- | --- |
27
- | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v11.1.0/screenshots/04-brain-chat-home.png) | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v11.1.0/screenshots/05-memory-graph.png) |
28
- | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v11.1.0/screenshots/06-capture.png) | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v11.1.0/screenshots/12-review-center.png) |
29
- | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v11.1.0/screenshots/02-recommended-models.png) | **Stay in control** — audit, roles, retention in a separate admin surface ![Admin Console](output/release/v11.1.0/screenshots/10-admin-console.png) |
30
- | **Watch a file become memory** — three named steps, not a pipeline diagram ![Material to memory](output/release/v11.1.0/screenshots/11-knowledge-journey.png) | **Say how much it may do alone** — one dial in plain words; dangerous actions stay blocked either way ![Settings](output/release/v11.1.0/screenshots/08-system.png) |
27
+ | **See your Brain's story in time** — a growth curve, an activity heatmap, and each day's story, rewindable to any past moment ![Brain Chronicle](output/release/v11.4.0/screenshots/13-chronicle.png) | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v11.4.0/screenshots/04-brain-chat-home.png) |
28
+ | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v11.4.0/screenshots/05-memory-graph.png) | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v11.4.0/screenshots/06-capture.png) |
29
+ | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v11.4.0/screenshots/12-review-center.png) | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v11.4.0/screenshots/02-recommended-models.png) |
30
+ | **Watch a file become memory** — three named steps, not a pipeline diagram ![Material to memory](output/release/v11.4.0/screenshots/11-knowledge-journey.png) | **Say how much it may do alone** — one dial in plain words; dangerous actions stay blocked either way ![Settings](output/release/v11.4.0/screenshots/08-system.png) |
31
31
 
32
32
  ## Why Lattice AI
33
33
 
@@ -58,64 +58,54 @@ First-run flow — wake the Brain, pick the owner, load a recommended model:
58
58
 
59
59
  | | | |
60
60
  | --- | --- | --- |
61
- | ![Login](output/release/v11.1.0/screenshots/01-login.png) | ![Model install](output/release/v11.1.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v11.1.0/screenshots/07-model-library.png) |
61
+ | ![Login](output/release/v11.4.0/screenshots/01-login.png) | ![Model install](output/release/v11.4.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v11.4.0/screenshots/07-model-library.png) |
62
62
 
63
63
  Screenshot index and capture notes:
64
- [output/release/v11.1.0/SCREENSHOT_INDEX.md](output/release/v11.1.0/SCREENSHOT_INDEX.md)
64
+ [output/release/v11.4.0/SCREENSHOT_INDEX.md](output/release/v11.4.0/SCREENSHOT_INDEX.md)
65
65
 
66
66
  ## Current Release
67
67
 
68
- The current release is **11.1.0 — Product Intelligence**:
69
-
70
- The v9–v11.0 line hardened the foundation — proposal-first trust, honest
71
- signals, a 100% line-and-branch test floor. 11.1.0 builds the intelligence
72
- layer on top of it: **the Brain gets fast at scale, notices things on its
73
- own, remembers pictures and recordings, learns who you are, and connects to
74
- the tools you already use.**
75
-
76
- - **Fast at scale.** A pluggable vector-index layer (brute-force default,
77
- int8 quantized and HNSW opt-in via the `hnsw` extra) plus a durable
78
- background embed queue. Measured on Apple Silicon: hybrid search p50 at
79
- 10k vectors went from 299 ms to **10.1 ms**, and stays at 43.9 ms at 50k
80
- (recall@10 0.987) — the plan's <50 ms target met at 5× the target corpus.
81
- Approximate results say `approx: true`; quantized's honest verdict (no RAM
82
- win here, ~2.2× slower) is printed, not hidden.
83
- - **Alive, not just searchable.** Contradiction detection now files
84
- review-queue proposals with plain-language resolutions; approving one
85
- stamps the temporal model (`valid_from`/`valid_to`/`superseded_by`, with
86
- `as_of(timestamp)` slicing). Event-driven synthesis proposes parent
87
- concepts, missing links and a proactive Brain Brief after every 25th
88
- ingest — every write goes through the proposal path, asserted by tests.
89
- - **Pictures and recordings are memories.** Behind `allow_multimodal`
90
- (default off, off ⇒ byte-identical): images become first-class `Image`
91
- nodes with OCR text, real captions only when a vision model produced one
92
- (the caption-fabricating stub was deleted), separate image vectors with
93
- late fusion, and inline thumbnails in the Evidence panel that never bypass
94
- the local-file approval gate. Recordings are first-class `Audio` nodes
95
- with honest transcription degradation.
96
- - **It knows you — transparently.** A Self-Model subgraph (Self /
97
- Preference / Decision / Habit / Relationship) built only from proposals
98
- you approve, injected into answer context under a strict token budget,
99
- fully listable and deletable. Agents can propose whole-folder
100
- reorganizations — structurally incapable of proposing deletions.
101
- - **Connected, selectively.** An approval-gated Obsidian vault bridge
102
- (wikilinks become edges, idempotent re-runs) and a signed, encrypted
103
- subgraph-share prototype where received knowledge arrives as proposals —
104
- off by default behind `LATTICEAI_BRAIN_NETWORK`.
105
-
106
- All of it lands with the floor intact: **6,261 tests, 100.00% of 37,590
107
- statements and 10,658 branches**, verified on macOS 3.14, a fresh-resolve
108
- python 3.11 environment, and a clean linux python:3.14 container.
68
+ The current release is **11.4.0 — Rust Foundation**:
69
+
70
+ The Rust migration begins — not as a rewrite, but as **working, proven
71
+ pieces**, while the Python server keeps serving every product surface.
72
+
73
+ - **A `rust/` workspace with three crates.** `lattice-core` reads the
74
+ same `knowledge_graph.sqlite` (read-only, WAL) and carries a
75
+ bit-for-bit port of the local hash embedder. `lattice-retrieval` is the
76
+ native hybrid/keyword/vector engine — proven against committed Python
77
+ goldens at **75/75 exact parity, zero epsilon**, with a bidirectional
78
+ contract: a Python test suite re-runs the same goldens so neither side
79
+ can drift silently. `lattice-host` is the worker supervisor (HTTP
80
+ `/health` gating, crash auto-restart with backoff, graceful shutdown,
81
+ unified port selection) plus a loopback-only gateway: `/host/*` status,
82
+ native `/rust/search/*`, and a streaming reverse proxy for everything
83
+ else — an opt-in front door, with 194 Rust tests behind it.
84
+ - **The desktop shell rides the new foundation.** The Tauri `main.rs`
85
+ shrank from 451 to 149 lines by consuming `lattice-host`; its five IPC
86
+ commands keep their exact contracts, a candidate-resolution
87
+ priority-order bug is fixed, and the TCP probe became a real health
88
+ check.
89
+ - **The same discipline, extended.** CI gained a dedicated `rust` job
90
+ (fmt, clippy `-D warnings`, tests); the 1,000-line file ceiling now
91
+ covers `*.rs`; the version bump keeps the Rust workspace in lockstep
92
+ (25 synchronized targets). The full migration roadmap lives in
93
+ [docs/v11.4.0_RUST_FOUNDATION_PLAN.md](docs/v11.4.0_RUST_FOUNDATION_PLAN.md).
94
+
95
+ All of it lands with the floor intact: **6,643 Python + 1,761 frontend
96
+ tests at 100.00% statement and branch coverage, 194 Rust tests**, mypy
97
+ and clippy clean, verified on macOS 3.14 and a fresh-resolve python 3.11
98
+ environment.
109
99
 
110
100
  Release notes: [RELEASE.md](RELEASE.md) · Full history: [docs/CHANGELOG.md](docs/CHANGELOG.md)
111
101
 
112
- Expected artifacts for 11.1.0 release must use exact filenames:
102
+ Expected artifacts for 11.4.0 release must use exact filenames:
113
103
 
114
- - `dist/ltcai-11.1.0-py3-none-any.whl`
115
- - `dist/ltcai-11.1.0.tar.gz`
116
- - `ltcai-11.1.0.tgz`
117
- - `dist/ltcai-11.1.0.vsix`
118
- - `src-tauri/target/release/bundle/dmg/Lattice AI_11.1.0_aarch64.dmg`
104
+ - `dist/ltcai-11.4.0-py3-none-any.whl`
105
+ - `dist/ltcai-11.4.0.tar.gz`
106
+ - `ltcai-11.4.0.tgz`
107
+ - `dist/ltcai-11.4.0.vsix`
108
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_11.4.0_aarch64.dmg`
119
109
 
120
110
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
121
111
 
@@ -150,6 +140,9 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
150
140
 
151
141
  | Version | Theme |
152
142
  | --- | --- |
143
+ | 11.4.0 | Rust Foundation |
144
+ | 11.3.0 | Time Remembers |
145
+ | 11.2.0 | All Systems On |
153
146
  | 11.1.0 | Product Intelligence |
154
147
  | 11.0.1 | Both Branches |
155
148
  | 11.0.0 | Full Measure |
package/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,100 @@ The top entry is either the current unreleased main-branch work or the current
4
4
  release line. Older entries are historical and may describe behavior as it
5
5
  existed at that release.
6
6
 
7
+ ## [11.4.0] - 2026-08-11 — Rust Foundation
8
+
9
+ ### Added
10
+ - **`rust/` cargo workspace** (Rust 전환 Phase 1,
11
+ docs/v11.4.0_RUST_FOUNDATION_PLAN.md): `lattice-core`(같은
12
+ `knowledge_graph.sqlite` 읽기 전용 층 + 해시 임베더 bit-for-bit 포트,
13
+ FTS5 trigram 프로브), `lattice-retrieval`(hybrid/keyword/vector
14
+ 네이티브 엔진 — 커밋된 Python 골든과 25질의×3엔진 **75/75 완전
15
+ 일치**, `tests/unit/test_rust_parity_contract.py` 80테스트가 Python
16
+ 쪽을 상시 잠금), `lattice-host`(워커 수퍼바이저: HTTP /health 게이팅
17
+ ·크래시 백오프 자동 재시작·SIGTERM 유예 종료·포트 통일 4825+스캔;
18
+ axum 게이트웨이: `/host/*`, 네이티브 `/rust/search/*`, 스트리밍
19
+ 리버스 프록시 — 옵트인 front-door). Rust 테스트 194개.
20
+ - CI `rust` 잡(ubuntu: cargo fmt --check / clippy -D warnings /
21
+ test --workspace, SHA 핀 액션), `npm run rust:test`/`rust:lint`.
22
+ - `check_max_file_lines.mjs`가 `*.rs` 검사(43파일, 최장 491줄).
23
+
24
+ ### Changed
25
+ - Tauri 데스크톱 셸이 `lattice-host` 수퍼바이저에 올라탐: `main.rs`
26
+ 451→149줄, IPC 커맨드 5종 계약 보존(+추가 상태 필드), 백엔드 후보
27
+ 해석의 `sort()+dedup()` 우선순위 파괴 버그 수정, TCP 프로브 →
28
+ HTTP /health, 포트 기본 8765→4825(+빈 포트 탐색,
29
+ `LATTICEAI_PORT`/`LATTICEAI_DESKTOP_BACKEND_ORIGIN` 존중).
30
+ - `bump_version.py`·`test_version_consistency.py`가 rust workspace
31
+ 버전(크레이트 3종 × 락파일 2종 포함)을 동기 — 타깃 18→25.
32
+
33
+ ## [11.3.0] - 2026-08-11 — Time Remembers
34
+
35
+ ### Added
36
+ - **기억의 연대기 (Brain Chronicle)**: 7번째 주 화면 `#/chronicle`(별칭
37
+ `#/timeline`) — SVG 성장 곡선 + 키보드/터치 시간 핸들, 주×요일 활동
38
+ 히트맵, 그날의 이야기 카드(자료·새 개념·대화·달라진 사실, 기존 화면
39
+ 딥링크), `store.as_of()` 기반 되감기 패널. 신규 읽기 전용 API 3종:
40
+ `GET /api/chronicle/{overview,day/{date},as-of}` (앱 시간대 일 버킷,
41
+ 워크스페이스 스코프, 그룹 200 상한+참값 counts). 서버 메시지 ko/en
42
+ 등록(19번째 로컬라이즈 라우터), 신규 i18n 네임스페이스 `chronicle`,
43
+ 릴리스 캡처 `13-chronicle.png`, visual mock 라우트 + Playwright 스펙.
44
+ - **`scripts/check_max_file_lines.mjs`**: git 추적 1st-party 소스 전체
45
+ (py/ts/tsx/js/mjs/cjs/css)에 1,000줄 상한을 강제하는 lint 게이트.
46
+ 생성물·벤더만 사유 명시 제외. 1,319개 파일 스캔, 초과 0.
47
+ - 픽셀 게이트가 이번 릴리스에 새로 생긴 화면(베이스라인 태그에 없음)을
48
+ "new"로 보고하고 게이트하지 않되, 클레임된 화면의 베이스라인 누락은
49
+ 여전히 실패로 처리.
50
+
51
+ ### Changed
52
+ - **No Big Files 분해**: 1,000줄 초과 1st-party 파일 28개 전부 분해,
53
+ 동작 변화 0 증명 동반 — `frontend/src/styles.css` 10,956→48줄
54
+ 엔트리+core/ 20파일(빌드 산출 CSS byte-identical, cmp+sha256),
55
+ i18n `brain`/`workspace` 사전 → 도메인 파트 14개(key→value 맵 동일
56
+ 증명), Python 18개 모듈 → 동명 패키지(모든 top-level 심볼 AST 동등성
57
+ 증명, monkeypatch 대상 317+ 사이트 실위치 재표적, mypy files 목록·
58
+ setuptools packages 목록 갱신), `vscode-extension/extension.ts` →
59
+ 7개 모듈, 대형 테스트 5개 + visual mock 서버 분해(576응답 동등성
60
+ 대조). 공개 import 경로 불변.
61
+ - 릴리스 증거 결속이 mock 서버 엔트리+라우트 모듈 전체를 지문화
62
+ (`scripts/lib/mock_server_fingerprint.mjs`, capture/check가 한 코드
63
+ 경로 공유). i18n 고아 키 스캔·정의 수집이 네임스페이스 파트 파일
64
+ 구조를 인식.
65
+ - everyday 내비 4항목(대화·자료·기억·연대기)에 맞춰 상단바 축약
66
+ 분기점 960px→1120px, 모바일 하단바 5탭(캡션 말줄임).
67
+
68
+ ## [11.2.0] - 2026-08-11 — All Systems On
69
+
70
+ ### Changed
71
+ - 모델 카탈로그 전수 최신화: HF API 무부하 검증(가중치 다운로드 0, 실로드
72
+ 0) 후 추천 10종을 2025–2026 세대(Gemma 4 · Qwen3.5/3.6 · gpt-oss-20b ·
73
+ LFM2.5)로 재구성. Hub 소멸 2종·gated 3종·vllm 전용·구세대 제거(완전
74
+ 삭제), 기존 다운로드 모델은 인식 전용 목록으로 보호. 검증기에서
75
+ `--deep`/`--test-load` 제거(무부하 원칙 구조화). 크기 오기(11.8→61.1GB)
76
+ 등 부수 결함 8건 수정.
77
+ - 빈 Brain이 가용 1차원만으로 100/excellent를 받던 건강 채점을 정직화
78
+ (측정 불가 차원은 사유와 함께 unavailable, 전무 시 등급 없음).
79
+
80
+ ### Added
81
+ - Brain 홈 dock **기능 서랍**: opt-in 10종(멀티모달·비디오·브레인 네트워크
82
+ ·볼트 감시·사진 의미 검색·RRF·이웃 확장·자동 합성·배경 인덱싱·벡터
83
+ 백엔드)의 서버 카탈로그 라이브 토글 — `GET/POST /api/features`,
84
+ FeatureGate 시임으로 재시작 없이 반영, 사용자>env>기본.
85
+ - Interop 브릿지: Notion export · Git 히스토리 · 메일(.eml)/캘린더(.ics)
86
+ — 단일 인제스트 게이트+승인+dry_run(`/api/ingestion/interop`).
87
+ - 서브그래프 공유 수신자 공개키 암호화(X25519 sealed box, ephemeral 키)
88
+ + `GET /api/knowledge-graph/share/recipient-key`.
89
+ - 비디오 인제스트(ffmpeg 가드 키프레임 + .srt/.vtt, NodeType.VIDEO),
90
+ 볼트 감시 모드, 일괄 리뷰 승인/기각, Self-Model 요약의 에이전트 루프
91
+ 도달, 텍스트→이미지 의미 검색(`/api/search/image-query`).
92
+ - 58행 증거 기반 기능 감사 문서 docs/FEATURE_AUDIT_v11.2.0.md.
93
+
94
+ ### Fixed
95
+ - 오늘의 브리핑 건강 섹션 영구 공백(스키마 불일치), 클라우드 유래 지식이
96
+ 리뷰 센터에 도달하지 않던 write-back 미배선(+auto_commit 정책 연결),
97
+ vector-freshness 세분화 미노출, 멀티모달 context_quality 신호 미배선,
98
+ `kgv2_edges`가 canonical 엣지 타입을 ''로 읽던 뷰(`COALESCE(NULLIF)`),
99
+ 죽은 자동화 저신뢰 게이트, 사어 grok id(→grok-4.5).
100
+
7
101
  ## [11.1.0] - 2026-08-10 — Product Intelligence Layer
8
102
 
9
103
  ### Added
@@ -1,6 +1,6 @@
1
1
  # Community And Plugins
2
2
 
3
- Current release: **11.1.0 — Product Intelligence**.
3
+ Current release: **11.4.0 — Rust Foundation**.
4
4
 
5
5
  LatticeAI defines the path from a strong local-first framework (8.4.0
6
6
  action-aware baseline, 8.5.0 registry+DI hardening, 8.6.0 capture/navigation
@@ -3,7 +3,7 @@
3
3
  > **Status: canonical** — current contributor guidance, kept in sync with the
4
4
  > current release.
5
5
 
6
- Current release: **11.1.0 — Product Intelligence**.
6
+ Current release: **11.4.0 — Rust Foundation**.
7
7
 
8
8
  This document is for contributors working on the local-first Digital Brain
9
9
  codebase. Product positioning and quick start stay in `README.md`; release