ltcai 10.9.0 → 10.10.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 (73) hide show
  1. package/README.md +43 -64
  2. package/docs/CHANGELOG.md +32 -237
  3. package/docs/COMMUNITY_AND_PLUGINS.md +1 -1
  4. package/docs/DEVELOPMENT.md +1 -1
  5. package/docs/ONBOARDING.md +1 -1
  6. package/docs/OPERATIONS.md +1 -1
  7. package/docs/TRUST_MODEL.md +1 -1
  8. package/docs/WHY_LATTICE.md +1 -1
  9. package/docs/kg-schema.md +1 -1
  10. package/lattice_brain/__init__.py +1 -1
  11. package/lattice_brain/runtime/multi_agent.py +1 -1
  12. package/latticeai/__init__.py +1 -1
  13. package/latticeai/core/legacy_compatibility.py +1 -1
  14. package/latticeai/core/marketplace.py +1 -1
  15. package/latticeai/core/workspace_os_constants.py +1 -1
  16. package/latticeai/services/architecture_readiness.py +1 -1
  17. package/latticeai/services/product_readiness.py +5 -3
  18. package/package.json +1 -1
  19. package/scripts/check_current_release_docs.mjs +4 -2
  20. package/scripts/release_screen_claims.json +14 -0
  21. package/src-tauri/Cargo.lock +1 -1
  22. package/src-tauri/Cargo.toml +1 -1
  23. package/src-tauri/tauri.conf.json +1 -1
  24. package/static/app/asset-manifest.json +37 -37
  25. package/static/app/assets/{Act-CS9IeqUX.js → Act-CC8SpNRm.js} +1 -1
  26. package/static/app/assets/{AdminConsole-3UkIEWGA.js → AdminConsole-DGIY_Tb_.js} +1 -1
  27. package/static/app/assets/{Brain-B22EmNqS.js → Brain-BDSC2Mol.js} +2 -2
  28. package/static/app/assets/BrainHome-BYgYp3ON.js +2 -0
  29. package/static/app/assets/BrainSignals-DYwVFmcO.js +1 -0
  30. package/static/app/assets/Capture-ClcKLsmI.js +1 -0
  31. package/static/app/assets/{CommandPalette-86m4FCcN.js → CommandPalette-DpwbyF1S.js} +1 -1
  32. package/static/app/assets/Library-D8VNtffM.js +1 -0
  33. package/static/app/assets/LivingBrain-CeWwc0NN.js +1 -0
  34. package/static/app/assets/ProductFlow-CS5CCM4t.js +1 -0
  35. package/static/app/assets/{ReviewCard-BepjSDpN.js → ReviewCard-Bap4yPfI.js} +1 -1
  36. package/static/app/assets/System-odPxU1YL.js +1 -0
  37. package/static/app/assets/arrow-left-J47Yde1U.js +1 -0
  38. package/static/app/assets/{bot-DQj0-LkM.js → bot-CmvhqTeF.js} +1 -1
  39. package/static/app/assets/brain-DLT9uuGq.js +1 -0
  40. package/static/app/assets/{button-CmTknyAP.js → button-DyppYhFH.js} +1 -1
  41. package/static/app/assets/{circle-pause-yTCWRziJ.js → circle-pause-Bm5z7EBI.js} +1 -1
  42. package/static/app/assets/{circle-play-Ccrva84R.js → circle-play-GjKdH0Fg.js} +1 -1
  43. package/static/app/assets/{cpu-CbJqWTlS.js → cpu-CuVMv-F5.js} +1 -1
  44. package/static/app/assets/{download-CkSzbzU-.js → download-C9_946tf.js} +1 -1
  45. package/static/app/assets/{folder-open-CKyjQ4PU.js → folder-open-B3QKdxib.js} +1 -1
  46. package/static/app/assets/{hard-drive-DAzk9um0.js → hard-drive-BwW9Hx4r.js} +1 -1
  47. package/static/app/assets/{index-CxOcwsHV.js → index-BrUQ-bF8.js} +3 -3
  48. package/static/app/assets/index-CYb18LtP.css +2 -0
  49. package/static/app/assets/{input-DcMETmZ7.js → input-Db2Hw2VH.js} +1 -1
  50. package/static/app/assets/{permissionCopy-BVf13_25.js → permissionCopy-BpbIHRio.js} +1 -1
  51. package/static/app/assets/primitives-4B_Ynf7r.js +1 -0
  52. package/static/app/assets/search-YH-7-x5Y.js +1 -0
  53. package/static/app/assets/{share-2-COWCHNZm.js → share-2-BgvRTDPJ.js} +1 -1
  54. package/static/app/assets/{shield-alert-BDrvilyK.js → shield-alert-DWFLyykG.js} +1 -1
  55. package/static/app/assets/{textarea-rUmsc8cP.js → textarea-Bk4vEqzT.js} +1 -1
  56. package/static/app/assets/{useFocusTrap-Bi5UY_8v.js → useFocusTrap-CGRXEg_p.js} +1 -1
  57. package/static/app/assets/{useQuery-C-AicB-3.js → useQuery-CdPzp3_U.js} +1 -1
  58. package/static/app/assets/{utils-BMwWg78e.js → utils-orU8igel.js} +3 -3
  59. package/static/app/assets/{workspace-Y93tls8P.js → workspace-Brj2Ylb2.js} +1 -1
  60. package/static/app/index.html +4 -4
  61. package/static/sw.js +1 -1
  62. package/static/app/assets/BrainHome-CMDqgJF4.js +0 -2
  63. package/static/app/assets/BrainSignals-BeE8RJo3.js +0 -1
  64. package/static/app/assets/Capture-ZX9bQh68.js +0 -1
  65. package/static/app/assets/Library-Bhz5LUca.js +0 -1
  66. package/static/app/assets/LivingBrain-BSa0wpFG.js +0 -1
  67. package/static/app/assets/ProductFlow-IP4Q-5aQ.js +0 -1
  68. package/static/app/assets/System-Bwx1h_jT.js +0 -1
  69. package/static/app/assets/arrow-left-ig7AZU8B.js +0 -1
  70. package/static/app/assets/brain-D8OEwmVj.js +0 -1
  71. package/static/app/assets/index-BfD-jhA9.css +0 -2
  72. package/static/app/assets/primitives-CQV9Q2YM.js +0 -1
  73. package/static/app/assets/search-CXGASMMH.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
- ![v10.9.0 Living Brain walkthrough](output/release/v10.9.0/gifs/v10.9.0-living-brain-walkthrough.gif)
14
+ ![v10.10.0 Living Brain walkthrough](output/release/v10.10.0/gifs/v10.10.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/v10.9.0/screenshots/04-brain-chat-home.png) | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v10.9.0/screenshots/05-memory-graph.png) |
28
- | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v10.9.0/screenshots/06-capture.png) | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v10.9.0/screenshots/12-review-center.png) |
29
- | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v10.9.0/screenshots/02-recommended-models.png) | **Stay in control** — audit, roles, retention in a separate admin surface ![Admin Console](output/release/v10.9.0/screenshots/10-admin-console.png) |
30
- | **Watch a file become memory** — three named steps, not a pipeline diagram ![Material to memory](output/release/v10.9.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/v10.9.0/screenshots/08-system.png) |
27
+ | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v10.10.0/screenshots/04-brain-chat-home.png) | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v10.10.0/screenshots/05-memory-graph.png) |
28
+ | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v10.10.0/screenshots/06-capture.png) | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v10.10.0/screenshots/12-review-center.png) |
29
+ | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v10.10.0/screenshots/02-recommended-models.png) | **Stay in control** — audit, roles, retention in a separate admin surface ![Admin Console](output/release/v10.10.0/screenshots/10-admin-console.png) |
30
+ | **Watch a file become memory** — three named steps, not a pipeline diagram ![Material to memory](output/release/v10.10.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/v10.10.0/screenshots/08-system.png) |
31
31
 
32
32
  ## Why Lattice AI
33
33
 
@@ -58,64 +58,52 @@ First-run flow — wake the Brain, pick the owner, load a recommended model:
58
58
 
59
59
  | | | |
60
60
  | --- | --- | --- |
61
- | ![Login](output/release/v10.9.0/screenshots/01-login.png) | ![Model install](output/release/v10.9.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v10.9.0/screenshots/07-model-library.png) |
61
+ | ![Login](output/release/v10.10.0/screenshots/01-login.png) | ![Model install](output/release/v10.10.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v10.10.0/screenshots/07-model-library.png) |
62
62
 
63
63
  Screenshot index and capture notes:
64
- [output/release/v10.9.0/SCREENSHOT_INDEX.md](output/release/v10.9.0/SCREENSHOT_INDEX.md)
64
+ [output/release/v10.10.0/SCREENSHOT_INDEX.md](output/release/v10.10.0/SCREENSHOT_INDEX.md)
65
65
 
66
66
  ## Current Release
67
67
 
68
- The current release is **10.9.0 — Never Blocks**:
69
-
70
- Lattice AI runs one event loop on your computer. Several things you could ask
71
- it to do were being done *on* that loop, so while they ran the server could not
72
- answer anything else. Downloading a model has a fifteen-minute timeout; that is
73
- how long the whole product could be frozen by one click.
74
-
75
- - **Nothing long runs on the event loop.** Model pulls, engine installs, MCP
76
- package installs and the CPU/RAM probe behind the System screen all moved to
77
- a worker thread. `/local/sysinfo` is the one most people met without knowing:
78
- it is read by the System screen *and* by first-run analysis, so its ~2s
79
- freeze landed exactly while an answer was streaming. Two things keep it
80
- fixed — ruff's `ASYNC` blocking-call rules, and
81
- `tests/unit/test_event_loop_not_blocked.py`, which runs a ticker coroutine
82
- during the handler and asserts the loop kept getting control.
83
- - **A focus ring you can see.** 10.8.0 added `border-color` to the transition
84
- on the capture pills, so keyboard focus faded in over 150ms and at the
85
- instant it landed the pill still looked idle. Focus rings may not ease.
86
- - **The Brain stops thinking when it has answered.** A retrieval pulse parked a
87
- 900ms timer that put the organism back into "thinking"; if the answer
88
- finished inside that window the timer still fired, and the Brain sat visibly
89
- working on a question it had already answered.
90
- - **One language, further in.** Fourteen more routers moved to the message
91
- catalog — chat, memory, graph, files, portability, review, models, tools,
92
- MCP, setup. `models.py`, `mcp.py` and `tools.py` had been answering some
93
- errors in Korean and others in English on the same screen. Two gates keep
94
- them migrated, and a third fails if the two gates disagree.
95
- - **The welcome screen fits.** It measured 770px against a 747px viewport, so
96
- the line explaining what you are agreeing to sat under the fold. Nothing was
97
- removed; the whitespace gave back the 25px.
98
- - **The streaming answer path has tests.** `useBrainChat` was 12% covered
99
- because asserting anything about a stream needs frames arriving over time.
100
- `frontend/src/test/fakeChatStream.ts` is that harness; eleven cases now cover
101
- the answer building up, the stop button, refusals, grounding badges and live
102
- step frames.
103
- - **Evidence bound to this build.** `output/release/v10.9.0/` holds the twelve
104
- capture screens, walkthrough gif/webm, and the asset-manifest / mock-server
105
- fingerprints that lint re-checks before merge. 10.9.0 claims no screen
106
- redesign, and `scripts/release_screen_claims.json` says so explicitly.
107
- - **Exact artifact names only.** Publish paths list `dist/ltcai-10.9.0-*` and
108
- `ltcai-10.9.0.tgz` — never `dist/*`.
68
+ The current release is **10.10.0 — Quiet Station**:
69
+
70
+ The Brain chat home used to greet you with everything at once — a stats
71
+ sentence, six capture chips, a model banner, an autonomy strip, and two
72
+ shelves stacked under the composer. 10.10.0 rebuilds it around one idea: the
73
+ canvas holds the composer; everything else blooms on demand.
74
+
75
+ - **Stats became a badge.** "기억 13 · 주제 299" sits as a chip beside the
76
+ greeting; hovering (or clicking) it opens a summary popover with a small
77
+ memory/topics/links graph and the memory-map shortcut. The sentence left the
78
+ reading line.
79
+ - **Capture folds behind one +.** 문서 · 이미지 · 파일 · 폴더 · 노트 · 웹 live
80
+ in the composer's Add menu — hover opens it, click pins it, Escape and
81
+ outside-click close it, and an in-flight upload keeps it open.
82
+ - **The model banner became a status pill.** "모델 준비 필요" now sits on the
83
+ hero's right edge with the one accented CTA; the full sentence rides on the
84
+ tooltip and the accessible name.
85
+ - **The shelves became a dock.** 대화 · 통계 · 기억 지도 sit on a quiet rail —
86
+ a left column on desktop, a row above the fold elsewhere — and open a
87
+ focus-trapped drawer over the screen instead of stacking cards under it.
88
+ - **Borders got quieter, colour got scarcer.** Cards float on soft shadow
89
+ instead of rules, and the warm accent appears exactly twice: the send
90
+ button and the model CTA.
91
+ - **The frontend test floor is 100%.** Every statement, branch, function and
92
+ line under `frontend/src` is covered, `vitest` enforces the thresholds, and
93
+ CI runs the coverage gate — a claim the suite fails loudly if it drifts.
94
+ - **Release history starts at 9.0.0.** The 8.x notes left the tree; README,
95
+ the notes index, RELEASE.md and the changelog all begin the public story at
96
+ 9.0.0.
109
97
 
110
98
  Release notes: [RELEASE.md](RELEASE.md) · Full history: [docs/CHANGELOG.md](docs/CHANGELOG.md)
111
99
 
112
- Expected artifacts for 10.9.0 release must use exact filenames:
100
+ Expected artifacts for 10.10.0 release must use exact filenames:
113
101
 
114
- - `dist/ltcai-10.9.0-py3-none-any.whl`
115
- - `dist/ltcai-10.9.0.tar.gz`
116
- - `ltcai-10.9.0.tgz`
117
- - `dist/ltcai-10.9.0.vsix`
118
- - `src-tauri/target/release/bundle/dmg/Lattice AI_10.9.0_aarch64.dmg`
102
+ - `dist/ltcai-10.10.0-py3-none-any.whl`
103
+ - `dist/ltcai-10.10.0.tar.gz`
104
+ - `ltcai-10.10.0.tgz`
105
+ - `dist/ltcai-10.10.0.vsix`
106
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_10.10.0_aarch64.dmg`
119
107
 
120
108
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
121
109
 
@@ -150,6 +138,7 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
150
138
 
151
139
  | Version | Theme |
152
140
  | --- | --- |
141
+ | 10.10.0 | Quiet Station |
153
142
  | 10.9.0 | Never Blocks |
154
143
  | 10.8.0 | Within Reach |
155
144
  | 10.7.0 | Plain Surface |
@@ -185,16 +174,6 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
185
174
  | 9.2.0 | Model-Agnostic File Generation |
186
175
  | 9.1.0 | Code Review Completion & Fail-Closed Runtime |
187
176
  | 9.0.0 | Code Review Closure & Runtime Cleanup |
188
- | 8.9.0 | Scoped Memory & Tool Policy Hardening |
189
- | 8.8.0 | Brain Core Extraction & Recall Proof Hardening |
190
- | 8.7.0 | Runtime State Hygiene & Release Evidence Refresh |
191
- | 8.6.0 | Desktop Capture & Navigation Reliability |
192
- | 8.5.0 | Tool Registry Readiness & Config DI |
193
- | 8.4.0 | Action-Aware Brain Chat |
194
- | 8.3.0 | Orchestrated Brain Readiness |
195
- | 8.2.0 | Brain Brief |
196
- | 8.1.0 | Intuitive Brain Home |
197
- | 8.0.0 | Runtime Architecture Contract |
198
177
 
199
178
  Per-release details: [RELEASE_NOTES.md](RELEASE_NOTES.md)
200
179
 
package/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,38 @@ 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
+ ## [10.10.0] - 2026-08-06
8
+
9
+ ### Changed
10
+ - Brain 대화 홈 "Quiet Station" 재설계 — 기억/주제 통계가 인사말 줄의 문장에서
11
+ 호버·클릭 팝오버(요약 그래프 + 기억 지도 바로가기)를 여는 배지로, 캡처 칩
12
+ 6개(문서/이미지/파일/폴더/노트/웹)가 컴포저의 `+ 추가` 접이식 메뉴로, 모델
13
+ 준비 배너가 히어로 우측 상태 필로, 하단 서랍 2개(지난 대화 · Brain이 정리한
14
+ 내용)가 좌측 독 레일(대화 · 통계 · 기억 지도)의 포커스 트랩 서랍으로
15
+ 이동했습니다. 카드 보더는 소프트 섀도로 대체되고, 액센트 컬러는 보내기
16
+ 버튼과 모델 CTA 두 곳에만 남습니다.
17
+ - 공개 릴리스 히스토리가 9.0.0부터 시작합니다 — 8.x 릴리스 노트 9개 파일을
18
+ 제거하고 README/RELEASE_NOTES.md/RELEASE.md/CHANGELOG이 같은 경계를
19
+ 서술합니다.
20
+
21
+ ### Fixed
22
+ - 히어로의 `overflow: clip`이 새 통계 팝오버를 잘라내던 문제(클립 제거 —
23
+ 헤일로는 `--aura-blur`로 이미 조여져 있어 가둘 것이 없습니다).
24
+ - 포털 서랍 내부에서 `.brain-care-panel` 계열 중첩 그리드 패널의 행이 2px로
25
+ 붕괴해 버튼이 클릭 불가능하던 문제 — 서랍 본문을 flex 컬럼으로 전환.
26
+ - 호버로 열린 배지/+ 메뉴를 곧바로 이은 클릭이 도로 닫아버리던 경합 —
27
+ 350ms 열림 디바운스.
28
+ - 새 + 버튼 aria-label의 "메뉴 열기" 문구가 셸 메뉴 버튼과 role 매칭
29
+ 충돌하던 문제.
30
+
31
+ ### Added
32
+ - 프론트엔드 커버리지 100% — `frontend/src` 전체 statements/branches/
33
+ functions/lines, vitest thresholds 100, CI 커버리지 게이트.
34
+ - `scripts/release_screen_claims.json`의 10.10.0 항목
35
+ (04-brain-chat-home, min 3%).
36
+ - 비주얼 스펙이 새 홈 계약(+ 메뉴 접힘, 독 서랍, 배지 팝오버, 글로우 기하)을
37
+ 검증합니다.
38
+
7
39
  ## [10.9.0] - 2026-08-05
8
40
 
9
41
  ### Fixed
@@ -1633,240 +1665,3 @@ Response to a full code review of 10.1.1 (71/100). All twelve findings.
1633
1665
  bridge notification, no-model, single-answer, direct-file, and agent-file
1634
1666
  response paths out of the main `/chat` handler, with regression coverage for
1635
1667
  the shared fast-path epilogue.
1636
-
1637
- ## [8.9.0] - 2026-07-06
1638
-
1639
- ### Added
1640
- - Added authenticated user/workspace scoping to durable conversation history
1641
- reads and deletes.
1642
- - Added workspace-aware Knowledge Graph search, traversal, relationship, node,
1643
- and chat-context reads.
1644
- - Added direct HTTP/MCP Tool API policy enforcement for registry-governed tools.
1645
- - Added permission approval queue hashing and atomic writes so raw tokens are
1646
- not persisted at rest.
1647
- - Added confirmation-token guarded installer/process command plans with redacted
1648
- local process audit events.
1649
- - Added regression coverage for scoped history, graph scoping, tool policy
1650
- gates, AgentRuntime approval semantics, permission tokens, session TTL
1651
- injection, and model-download runtime config.
1652
-
1653
- ### Changed
1654
- - AgentRuntime now requires explicit human approval for non-auto-approved plans
1655
- and rolls back git-governed tool results even when `success` is omitted.
1656
- - Model download consent now uses configured runtime state instead of direct
1657
- environment-variable reads.
1658
- - Frontend API base logic, CSS token/base rules, and i18n literal checks were
1659
- split into smaller maintainability seams.
1660
- - Version bumped to 8.9.0 across Python, npm, VS Code extension, Tauri, static
1661
- metadata, readiness gates, release notes, and current-release documentation.
1662
- - Documentation now states that SQLite is the live local Brain store; Postgres
1663
- remains optional scale/migration tooling.
1664
-
1665
- ### Fixed
1666
- - Conversation store migration now creates the workspace index only after the
1667
- scope columns exist.
1668
- - Direct `write_file`/`edit_file` policy lookup now blocks system write
1669
- prefixes consistently with local-file approvals.
1670
- - Workspace selection clearing now removes the persisted workspace id.
1671
- - Tauri/local API fetches now include credentials for localhost backend
1672
- sessions.
1673
-
1674
- ## [8.8.0] - 2026-07-06
1675
-
1676
- ### Added
1677
- - Added Brain Core isolation coverage that keeps `lattice_brain` independent of
1678
- product-package imports.
1679
- - Added recall proof quality gates for matched terms, confidence labels, and
1680
- lexical evidence filtering.
1681
- - Added Brain Chat conversation controls for new/resume/delete, stop,
1682
- regenerate, copy, and richer ingestion progress.
1683
-
1684
- ### Changed
1685
- - Removed internal-only Brain shim layers: flat pre-graph modules,
1686
- `latticeai.brain`, and `latticeai.services.agent_runtime`.
1687
- - Updated legacy compatibility reporting so removed shim layers are tracked
1688
- separately from remaining external root shims.
1689
- - Hardened AgentRuntime boundary handling for unknown roles, legacy run
1690
- contracts, and persisted retry budgets.
1691
- - Version bumped to 8.8.0 across Python, npm, VS Code extension, Tauri, static
1692
- metadata, readiness gates, release notes, and current-release documentation.
1693
-
1694
- ### Fixed
1695
- - File ingestion now rejects directory paths before dispatching to document
1696
- ingestion.
1697
- - Memory recall filters low-evidence noise when stronger lexical matches are
1698
- present and surfaces explainable citation confidence.
1699
-
1700
- ## [8.7.0] - 2026-07-05
1701
-
1702
- ### Added
1703
- - Added unit test coverage for model-runtime `STATE` source-of-truth behavior
1704
- and deprecation warnings on legacy global synchronization.
1705
- - Added refreshed 8.7.0 screenshots, walkthrough GIF/WebM, and capture notes
1706
- under `output/release/v8.7.0/`.
1707
-
1708
- ### Changed
1709
- - Reduced internal reliance on bare module globals in
1710
- `latticeai/services/model_runtime.py`; implementation logic now consistently
1711
- reads from the `ModelRuntimeState` instance while globals remain as a legacy
1712
- compatibility surface.
1713
- - Added `DeprecationWarning` to `sync_to_module_globals()` while preserving the
1714
- external shim behavior.
1715
- - Removed a loose `as any` cast from `frontend/src/pages/Act.tsx`.
1716
- - Version bumped to 8.7.0 across Python, npm, VS Code extension, Tauri, static
1717
- metadata, README evidence links, release notes, and current-release
1718
- documentation.
1719
-
1720
- ### Fixed
1721
- - Internal model-runtime functions now prefer the typed state object per the
1722
- project preference for composition over global mutable state.
1723
-
1724
- ## [8.6.0] - 2026-07-05
1725
-
1726
- ### Added
1727
- - Added Tauri localhost remote capability coverage so the desktop app can keep
1728
- using local IPC commands after navigating to the FastAPI-served `/app`.
1729
- - Added a regression trust gate for the Tauri localhost capability.
1730
-
1731
- ### Changed
1732
- - Improved the Capture source flow: desktop users can choose a folder with the
1733
- native folder picker and immediately scan/connect it, while web page capture
1734
- now supports paste, Enter-to-save, and `https://` normalization for bare
1735
- domains.
1736
- - Updated Visual Smoke coverage for the new Brain shell sidebar and admin
1737
- console entry flow.
1738
- - Version bumped to 8.6.0 across Python, npm, VS Code extension, Tauri, static
1739
- metadata, readiness gates, and current-release documentation.
1740
-
1741
- ### Fixed
1742
- - Fixed native folder selection from the Tauri production app's localhost
1743
- webview and added visible fallback feedback when the picker is unavailable.
1744
- - Removed negative letter spacing from updated frontend shell styling.
1745
-
1746
- ## [8.5.0] - 2026-07-01
1747
-
1748
- ### Added
1749
- - ToolRegistry now reports `ready: true` with full handler/governance/description alignment (added `vision_analyze` policy and description).
1750
- - `tz_name` now flows from central `Config` into `TriggerService` (via updated automation and platform wiring runtimes) for better DI and Config centralization.
1751
-
1752
- ### Changed
1753
- - Full codebase scan completed; improvements prioritized per AGENTS.md (registry, config injection, wiring seams).
1754
- - Version bumped to 8.5.0 across pyproject.toml, package.json, vscode-extension; all current-release doc references synchronized.
1755
- - Documentation sync performed for README, RELEASE.md, docs/CHANGELOG.md and Current release markers.
1756
-
1757
- ### Fixed
1758
- - Eliminated ToolRegistry drift for `vision_analyze` (handler existed in tools/ but missing from core registry governance surface used by diagnostics, MCP, and permission views).
1759
-
1760
- ## [8.4.0] - 2026-07-01
1761
-
1762
- ### Added
1763
- - Added a chat-to-agent file action gate so explicit file create/write/save/edit
1764
- requests from Brain Chat execute through the governed workspace file tool.
1765
- - Added regression coverage that verifies `/chat` routes file creation intent to
1766
- the workspace file tool and returns created artifact metadata.
1767
-
1768
- ### Changed
1769
- - Kept ordinary Q&A on `/chat` while routing only explicit side-effect file
1770
- requests into the planner/executor/reviewer tool loop.
1771
- - Synchronized package/runtime/static/Tauri metadata and current-release docs to
1772
- 8.4.0.
1773
-
1774
- ### Fixed
1775
- - Allowed literal `/chat` file writes with user-provided content to execute
1776
- before model loading, while still using a loaded model when content must be
1777
- synthesized.
1778
- - Narrowed file target and content parsing to avoid treating surrounding prose
1779
- as the workspace path or literal file body.
1780
- - Restored model loading dependency exports after the runtime/loading split so
1781
- `/models/load` can prepare local MLX models again.
1782
- - Added the common Gemma 4 26B shorthand alias to the canonical
1783
- `mlx-community/gemma-4-26b-a4b-it-4bit` model id.
1784
- - Updated the local server launcher to run `python -m uvicorn` from the active
1785
- virtual environment, avoiding stale console-script interpreter bindings.
1786
-
1787
- ## [8.3.0] - 2026-07-01
1788
-
1789
- ### Added
1790
- - Added a managed legacy compatibility report for remaining root shims,
1791
- including owners, replacements, reasons, removal phases, and readiness
1792
- metrics.
1793
- - Added AgentRuntime/workflow maturity evidence through lifecycle helper reuse,
1794
- legacy event compatibility, WorkflowEngine boundary/config inspection, and
1795
- centralized legacy workflow step projection.
1796
- - Added graph ingestion coverage for upload-to-pipeline behavior and
1797
- workspace-safe duplicate content.
1798
- - Added 8.3.0 onboarding and community/plugin growth documentation.
1799
-
1800
- ### Changed
1801
- - Routed `/knowledge-graph/ingest` through the unified `IngestionPipeline` when
1802
- available, preserving provenance and hook lifecycle behavior for MCP notes and
1803
- messages.
1804
- - Isolated text/web/note graph node identity by workspace while preserving the
1805
- content hash used for duplicate detection.
1806
- - Converted `mcp_registry.py` and `llm_router.py` into physical module aliases
1807
- for their current implementations.
1808
- - Improved upload client error handling so failed uploads cannot look
1809
- successful.
1810
- - Synchronized package/runtime/static/Tauri metadata and current-release docs to
1811
- 8.3.0.
1812
-
1813
- ### Upgrade Notes
1814
- - Existing legacy-global text/web/note graph nodes are not rewritten in place.
1815
- Re-ingesting the same content with a workspace id can create a separate
1816
- workspace-scoped node; re-index existing sources after upgrading when you want
1817
- provenance to converge on workspace scopes.
1818
-
1819
- ## [8.2.0] - 2026-06-27
1820
-
1821
- ### Added
1822
- - Added an evidence-backed Brain Brief to Brain Home so users can see what to
1823
- notice, what evidence supports it, and what action to take next.
1824
- - Added `GET /api/memory/brain-brief`, backed by `MemoryService.brain_brief()`,
1825
- with honest empty-state guidance and recall/graph/model-proof actions.
1826
- - Added unit coverage for Brain Brief service behavior and the memory API route.
1827
-
1828
- ### Changed
1829
- - Completed the remaining model loading/runtime extraction into
1830
- `model_loading.py` and `model_engines.py` while preserving compatibility
1831
- delegations from `model_runtime.py`.
1832
- - Extracted WorkspaceOS graph trace, agent/workflow run, skill, and snapshot
1833
- comparison ownership into focused manager modules.
1834
- - Wired Knowledge Graph embedding dimensions from the central resolved `Config`
1835
- embedder at app startup.
1836
- - Synchronized Python, npm, VS Code extension, Tauri, workspace, readiness,
1837
- static asset, and current-release documentation versions to 8.2.0.
1838
-
1839
- ## [8.1.0] - 2026-06-27
1840
-
1841
- ### Changed
1842
- - Rebuilt Brain Home around an intuitive first screen with LivingBrain, recent
1843
- memory, connected topic, next-best action, and the composer visible together.
1844
- - Replaced dashboard-style Brain growth metrics with narrative, product-facing
1845
- copy and focused primary actions.
1846
- - Tightened mobile and narrow viewport behavior so the Brain and composer remain
1847
- visible without horizontal overflow.
1848
- - Refreshed release screenshots, walkthrough GIF/WebM, static app assets, and
1849
- exact 8.1.0 artifact metadata.
1850
- - Synchronized Python, npm, VS Code extension, Tauri, workspace, readiness, and
1851
- current-release documentation versions to 8.1.0.
1852
-
1853
- ## [8.0.0] - 2026-06-24
1854
-
1855
- ### Changed
1856
- - Added `lattice-architecture-contract/v1` to make the AgentRuntime,
1857
- ToolRegistry, Config, server decomposition, and Knowledge Graph stabilization
1858
- boundaries explicit and testable for the major architecture line.
1859
- - Added `tool-registry-contract/v1` to the ToolRegistry manifest, including
1860
- dispatch, policy, and permission ownership.
1861
- - Updated architecture and product readiness targets to 8.0.0.
1862
- - Synchronized package/runtime/static/Tauri metadata to 8.0.0.
1863
- - Updated current-release docs and exact artifact names to 8.0.0 while
1864
- setting 8.0.0 as the oldest retained release-history entry.
1865
-
1866
- ### Fixed
1867
- - Made logical Knowledge Graph `replace` imports transactional so malformed
1868
- imports roll back without clearing the existing graph.
1869
- - Locked v2 read-equivalence coverage for `list_documents`, `get_node`,
1870
- `relationship_search`, and `traverse`.
1871
- - Preserved colliding legacy edge labels during logical import/backfill while
1872
- keeping native write-door synonym dedupe canonical.
@@ -1,6 +1,6 @@
1
1
  # Community And Plugins
2
2
 
3
- Current release: **10.9.0 — Never Blocks**.
3
+ Current release: **10.10.0 — Quiet Station**.
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: **10.9.0 — Never Blocks**.
6
+ Current release: **10.10.0 — Quiet Station**.
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
@@ -1,6 +1,6 @@
1
1
  # Lattice AI Onboarding
2
2
 
3
- Current release: **10.9.0 — Never Blocks**.
3
+ Current release: **10.10.0 — Quiet Station**.
4
4
 
5
5
  The first-run goal is a five-minute path from "I opened the app" to "my Brain
6
6
  has a source, a question, and proof." This page is the product contract behind
@@ -1,4 +1,4 @@
1
- # Lattice AI — Operations Guide (v10.9.0)
1
+ # Lattice AI — Operations Guide (v10.10.0)
2
2
 
3
3
  > **Status: canonical** — kept in sync with the current release. Storage layout
4
4
  > below reflects the SQLite live Brain store and workspace scoping, not the
@@ -1,6 +1,6 @@
1
1
  # Lattice AI Trust Model
2
2
 
3
- Current release: **10.9.0 — Never Blocks**.
3
+ Current release: **10.10.0 — Quiet Station**.
4
4
 
5
5
  Lattice AI is local-first, explicit about external communication, and honest
6
6
  when a capability is unavailable.
@@ -1,6 +1,6 @@
1
1
  # Why Lattice AI Exists
2
2
 
3
- Current release: **10.9.0 — Never Blocks**.
3
+ Current release: **10.10.0 — Quiet Station**.
4
4
 
5
5
  **Lattice AI is a local-first Digital Brain that keeps your knowledge durable
6
6
  across any AI model.**
package/docs/kg-schema.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Knowledge Graph Schema
2
2
 
3
- Current release: **10.9.0 — Never Blocks**.
3
+ Current release: **10.10.0 — Quiet Station**.
4
4
 
5
5
  명세 출처: `lattice_ai_full_spec.pptx` 슬라이드 20·21·22
6
6
  구현: `lattice_brain/graph/schema.py`
@@ -26,7 +26,7 @@ from .storage import (
26
26
  storage_from_env,
27
27
  )
28
28
 
29
- __version__ = "10.9.0"
29
+ __version__ = "10.10.0"
30
30
 
31
31
  __all__ = [
32
32
  "AgentRuntime",
@@ -49,7 +49,7 @@ from typing import Any, Callable, Dict, List, Optional
49
49
  from ..utils import now_iso as _now
50
50
  from .contracts import multi_agent_contract
51
51
 
52
- MULTI_AGENT_VERSION = "10.9.0"
52
+ MULTI_AGENT_VERSION = "10.10.0"
53
53
 
54
54
  AGENT_ROLES = ("researcher", "planner", "executor", "reviewer", "release")
55
55
  CORE_PIPELINE = ("planner", "executor", "reviewer")
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "10.9.0"
3
+ __version__ = "10.10.0"
@@ -13,7 +13,7 @@ from dataclasses import dataclass
13
13
  from pathlib import Path
14
14
  from typing import Any, Dict, List
15
15
 
16
- LEGACY_COMPATIBILITY_VERSION = "10.9.0"
16
+ LEGACY_COMPATIBILITY_VERSION = "10.10.0"
17
17
 
18
18
 
19
19
  @dataclass(frozen=True)
@@ -10,7 +10,7 @@ from __future__ import annotations
10
10
  from copy import deepcopy
11
11
  from typing import Any, Dict, List, Optional
12
12
 
13
- MARKETPLACE_VERSION = "10.9.0"
13
+ MARKETPLACE_VERSION = "10.10.0"
14
14
  TEMPLATE_KINDS = ("plugin", "workflow", "agent", "ingestion_bridge")
15
15
 
16
16
 
@@ -10,7 +10,7 @@ from __future__ import annotations
10
10
 
11
11
  from typing import Dict
12
12
 
13
- WORKSPACE_OS_VERSION = "10.9.0"
13
+ WORKSPACE_OS_VERSION = "10.10.0"
14
14
 
15
15
  # Workspace types separate single-user Personal workspaces from shared
16
16
  # Organization workspaces. Both keep the same local-first JSON store; the type
@@ -16,7 +16,7 @@ from typing import Any, Dict, List
16
16
 
17
17
  from latticeai.core.legacy_compatibility import legacy_shim_report
18
18
 
19
- ARCHITECTURE_VERSION_TARGET = "10.9.0"
19
+ ARCHITECTURE_VERSION_TARGET = "10.10.0"
20
20
 
21
21
  PREFERRED_REFACTORING_ORDER = [
22
22
  "agent-runtime",
@@ -18,7 +18,7 @@ from typing import Any, Dict, List
18
18
 
19
19
  from latticeai.services.architecture_readiness import architecture_readiness
20
20
 
21
- PRODUCT_VERSION_TARGET = "10.9.0"
21
+ PRODUCT_VERSION_TARGET = "10.10.0"
22
22
 
23
23
 
24
24
  @dataclass(frozen=True)
@@ -37,8 +37,10 @@ PRODUCT_GATES: List[ProductGate] = [
37
37
  evidence=[
38
38
  "docs/ONBOARDING.md::five-minute",
39
39
  "frontend/src/components/ProductFlow.tsx::WakeBrainScreen",
40
- "frontend/src/features/brain/BrainConversation.tsx::brain-home-insights",
41
- "frontend/src/features/brain/BrainConversation.tsx::BrainBriefPanel",
40
+ # 10.10.0: the insight panels left the home shelf for the dock —
41
+ # a rail (대화 · 통계 · 기억 지도) whose drawer hosts the brief.
42
+ "frontend/src/features/brain/BrainConversation.tsx::BrainHomeDock",
43
+ "frontend/src/features/brain/BrainHomeDock.tsx::BrainBriefPanel",
42
44
  "frontend/src/features/brain/BrainHome.tsx",
43
45
  "frontend/src/App.tsx::brain-mobile-nav",
44
46
  "latticeai/setup/auto_setup.py",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ltcai",
3
- "version": "10.9.0",
3
+ "version": "10.10.0",
4
4
  "description": "Lattice AI — local-first Digital Brain that keeps your knowledge durable across any AI model.",
5
5
  "homepage": "https://github.com/TaeSooPark-PTS/LatticeAI#readme",
6
6
  "repository": {
@@ -6,7 +6,7 @@ const root = process.cwd();
6
6
  const pkg = JSON.parse(readFileSync(path.join(root, "package.json"), "utf8"));
7
7
  const version = pkg.version;
8
8
  const releaseDir = `output/release/v${version}`;
9
- const releaseTheme = "Never Blocks";
9
+ const releaseTheme = "Quiet Station";
10
10
  const title = `${version} — ${releaseTheme}`;
11
11
  const escapedVersion = version.replaceAll(".", "\\.");
12
12
 
@@ -96,7 +96,9 @@ requireIncludes("RELEASE.md", `## v${version} — ${releaseTheme}`);
96
96
  requireIncludes("docs/CHANGELOG.md", `## [${version}]`);
97
97
  requireIncludes("RELEASE_NOTES.md", `[v${version} - ${releaseTheme}]`);
98
98
  requireIncludes("CHANGELOG.md", "starts at v8.0.0");
99
- requireIncludes("RELEASE_NOTES.md", `8.0.0 through ${version}`);
99
+ // 10.10.0 moved the public history floor from 8.0.0 to 9.0.0 — the 8.x notes
100
+ // left the tree, so this gate follows the boundary the docs now state.
101
+ requireIncludes("RELEASE_NOTES.md", `9.0.0 through ${version}`);
100
102
  requireIncludes("SECURITY.md", `${version.split(".").slice(0, 2).join(".")}.x (latest)`);
101
103
 
102
104
  for (const rel of ["README.md", "RELEASE.md", "docs/CHANGELOG.md", "RELEASE_NOTES.md"]) {
@@ -28,6 +28,20 @@
28
28
  }
29
29
  },
30
30
 
31
+ "10.10.0": {
32
+ "04-brain-chat-home.png": {
33
+ "_why": [
34
+ "The quiet-station redesign: the memory stats left the hero sentence",
35
+ "for a hover badge, the six capture chips folded behind the composer's",
36
+ "+ control, the model banner became a status pill on the hero's right,",
37
+ "the two bottom shelves became a dock rail (대화 · 통계 · 기억 지도),",
38
+ "cards dropped their borders for soft shadows, and the accent colour",
39
+ "was pulled back to the send CTA and the model action."
40
+ ],
41
+ "min_pct": 3.0
42
+ }
43
+ },
44
+
31
45
  "10.9.0": {
32
46
  "_why": [
33
47
  "This release claims no screen redesign, and the empty claim is the",