ltcai 11.6.0 → 11.7.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 (69) hide show
  1. package/README.md +67 -65
  2. package/docs/CHANGELOG.md +44 -0
  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/latticeai/__init__.py +1 -1
  12. package/latticeai/services/architecture_readiness.py +1 -1
  13. package/latticeai/services/product_readiness.py +1 -1
  14. package/package.json +1 -1
  15. package/scripts/check_current_release_docs.mjs +1 -1
  16. package/scripts/release_screen_claims.json +33 -0
  17. package/src-tauri/Cargo.lock +10 -10
  18. package/src-tauri/Cargo.toml +1 -1
  19. package/src-tauri/tauri.conf.json +1 -1
  20. package/static/app/asset-manifest.json +41 -41
  21. package/static/app/assets/{Act-CToZnOHz.js → Act-BPcVAbOL.js} +1 -1
  22. package/static/app/assets/AdminConsole-Bw1ATQL0.js +1 -0
  23. package/static/app/assets/{Brain-C6zCdv4S.js → Brain-CT92Kos0.js} +2 -2
  24. package/static/app/assets/{BrainHome-D4n3EDUt.js → BrainHome-CFBkt1K_.js} +1 -1
  25. package/static/app/assets/{BrainSignals-CzeZ-vQ9.js → BrainSignals-ReLWF2H8.js} +1 -1
  26. package/static/app/assets/Capture-BsTokYkk.js +1 -0
  27. package/static/app/assets/{Chronicle-D3Nx-oWS.js → Chronicle-B6f0T9id.js} +1 -1
  28. package/static/app/assets/{CommandPalette-DPPvpp28.js → CommandPalette-CuvjTv1u.js} +1 -1
  29. package/static/app/assets/{Library-Co2qTu3I.js → Library-BGJbG9Hd.js} +1 -1
  30. package/static/app/assets/{LivingBrain-Bsmzwy8_.js → LivingBrain-DGYK_Jsa.js} +1 -1
  31. package/static/app/assets/{ProductFlow-CBLdmesT.js → ProductFlow-DXBC6brE.js} +1 -1
  32. package/static/app/assets/{ReviewCard-CfR6DLs7.js → ReviewCard-HXRle3qq.js} +2 -2
  33. package/static/app/assets/System-CMHSO9qM.js +1 -0
  34. package/static/app/assets/arrow-left-BfmkskWx.js +1 -0
  35. package/static/app/assets/{bot-C5-XIww2.js → bot-Cn8bWRuq.js} +1 -1
  36. package/static/app/assets/{brain-CFRJUvdX.js → brain-CQJberbE.js} +1 -1
  37. package/static/app/assets/{button-DI1KcQP-.js → button-Ct9f2_oT.js} +1 -1
  38. package/static/app/assets/circle-check-DruOxB-4.js +1 -0
  39. package/static/app/assets/{circle-pause-C8HHyood.js → circle-pause-CmzC_apg.js} +1 -1
  40. package/static/app/assets/{circle-play-Cufc235E.js → circle-play-D8mW2aQ7.js} +1 -1
  41. package/static/app/assets/{cpu-DW2_JVsv.js → cpu-DZcdd0PZ.js} +1 -1
  42. package/static/app/assets/{download-gbdKTBb8.js → download-bv1KEPGQ.js} +1 -1
  43. package/static/app/assets/{folder-open-C9ydyX33.js → folder-open-d-Pip5gr.js} +1 -1
  44. package/static/app/assets/{hard-drive-BxNMzBM3.js → hard-drive-D20iavUb.js} +1 -1
  45. package/static/app/assets/index-D9x-kSNy.css +2 -0
  46. package/static/app/assets/{index-q9XyDY7A.js → index-Do83hDzJ.js} +3 -3
  47. package/static/app/assets/{input-GLD94Y_K.js → input-BLXVNmj1.js} +1 -1
  48. package/static/app/assets/{link-2-B4Y0gz1S.js → link-2-BPJOFlAy.js} +1 -1
  49. package/static/app/assets/{permissionCopy-CxrV0fvU.js → permissionCopy-ChdJd493.js} +1 -1
  50. package/static/app/assets/primitives-Cv5tbZBY.js +1 -0
  51. package/static/app/assets/search-CT9aho2j.js +1 -0
  52. package/static/app/assets/{share-2-DxArfiuI.js → share-2-YNX_NtMU.js} +1 -1
  53. package/static/app/assets/{shield-alert-CgftuFFs.js → shield-alert-DuQ3zrVL.js} +1 -1
  54. package/static/app/assets/{textarea-BHVBAoCr.js → textarea-DqwLnli4.js} +1 -1
  55. package/static/app/assets/{useFocusTrap-Dzq2j_OG.js → useFocusTrap-ZVI98jaW.js} +1 -1
  56. package/static/app/assets/{useMutation-BcqfMLNq.js → useMutation-CVC4qv_D.js} +1 -1
  57. package/static/app/assets/{useQuery-DBzLKCOv.js → useQuery-C7BeG4HU.js} +1 -1
  58. package/static/app/assets/{utils-B-Aah1bO.js → utils-CiFtIdZq.js} +1 -1
  59. package/static/app/assets/{workspace-B6fFhoko.js → workspace-DQz9vIId.js} +1 -1
  60. package/static/app/index.html +4 -4
  61. package/static/sw.js +1 -1
  62. package/static/app/assets/AdminConsole-D5kbrBu8.js +0 -1
  63. package/static/app/assets/Capture-DPcyTczq.js +0 -1
  64. package/static/app/assets/System-Ce-P2YL6.js +0 -1
  65. package/static/app/assets/arrow-left-DD5jFGHV.js +0 -1
  66. package/static/app/assets/circle-check-CY20XMCh.js +0 -1
  67. package/static/app/assets/index-BovSWRmQ.css +0 -2
  68. package/static/app/assets/primitives-2ANdAsu2.js +0 -1
  69. package/static/app/assets/search-DTxtjQ07.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.6.0 Living Brain walkthrough](output/release/v11.6.0/gifs/v11.6.0-living-brain-walkthrough.gif)
14
+ ![v11.7.0 Living Brain walkthrough](output/release/v11.7.0/gifs/v11.7.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
- | **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.6.0/screenshots/13-chronicle.png) | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v11.6.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.6.0/screenshots/05-memory-graph.png) | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v11.6.0/screenshots/06-capture.png) |
29
- | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v11.6.0/screenshots/12-review-center.png) | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v11.6.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.6.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.6.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.7.0/screenshots/13-chronicle.png) | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v11.7.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.7.0/screenshots/05-memory-graph.png) | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v11.7.0/screenshots/06-capture.png) |
29
+ | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v11.7.0/screenshots/12-review-center.png) | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v11.7.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.7.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.7.0/screenshots/08-system.png) |
31
31
 
32
32
  ## Why Lattice AI
33
33
 
@@ -58,67 +58,67 @@ First-run flow — wake the Brain, pick the owner, load a recommended model:
58
58
 
59
59
  | | | |
60
60
  | --- | --- | --- |
61
- | ![Login](output/release/v11.6.0/screenshots/01-login.png) | ![Model install](output/release/v11.6.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v11.6.0/screenshots/07-model-library.png) |
61
+ | ![Login](output/release/v11.7.0/screenshots/01-login.png) | ![Model install](output/release/v11.7.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v11.7.0/screenshots/07-model-library.png) |
62
62
 
63
63
  Screenshot index and capture notes:
64
- [output/release/v11.6.0/SCREENSHOT_INDEX.md](output/release/v11.6.0/SCREENSHOT_INDEX.md)
64
+ [output/release/v11.7.0/SCREENSHOT_INDEX.md](output/release/v11.7.0/SCREENSHOT_INDEX.md)
65
65
 
66
66
  ## Current Release
67
67
 
68
- The current release is **11.6.0 — One Door**:
69
-
70
- The product now has one front door, and it is Rust. `lattice-host` serves
71
- **420 operations across 41 route families** at the paths they always had,
72
- and the Python package is no longer a web application at all — it is a
73
- pure-compute **AI worker** with **28 routes**: LLM inference and streaming,
74
- embedding, extraction, parsing, four document renderers, speech-to-text,
75
- multimodal description, the model and engine catalog, `sysinfo`, and
76
- `/health`. Nine crates hold the product; the door forwards exactly the 28
77
- and answers `404 {"detail":"Not Found"}` for anything else, from a
78
- committed allowlist that a drift gate regenerates and compares.
79
-
80
- - **Every write is native.** The knowledge-graph write engine moved into
81
- `lattice-core`: ingest, curation, provenance, taxonomy and the vector
82
- queue. It is held to Python's bytes by a **32-step row-parity battery**
83
- that dumps every table after every step with zero tolerated differences,
84
- and by a schema comparison over all **67 objects** in `sqlite_master`
85
- (indexes and FTS shadow tables included). Seventeen graph tables changed
86
- owner from the worker to Rust, and the single-writer invariant is now a
87
- test rather than a convention.
88
- - **The surface is replayed, not re-described.** **1,487 recorded HTTP
89
- cases** across twelve committed fixture files — captured from the real
90
- Python app while it still served them — are replayed against the native
91
- routes, status line and body compared. The retrieval, chunking, agent
92
- kernel and agent-loop golden families are unchanged and still green.
93
- - **298 Python files and 73,617 lines were deleted.** What remains is 127
94
- files and about 20,900 lines, all of it compute, at **100.00% statement
95
- and branch coverage** with `fail_under=100` and no new pragmas.
96
- - **What the port found.** The Python oracle's own bugs are documented
97
- rather than smoothed over: four graph-write divergences (a `kgv2_*` view
98
- that updates `type` on conflict where `nodes` does not; two writers that
99
- serialise without `sort_keys`; a hash computed from CPython's default
100
- JSON separators), a documented redaction rule that never fired, and a
101
- change-proposal kind whitelist that could never approve a folder
102
- reorganization. Three known-wrong behaviours were ported **as they are**
103
- so the surface does not change under users mid-release — they are listed
104
- in [RELEASE_NOTES_v11.6.0.md](RELEASE_NOTES_v11.6.0.md).
105
- - **What was removed, and why.** The **Telegram bridge** is gone: it lived
106
- in the platform code that became the worker, and a bridge with no product
107
- server to bridge to is not a feature. **SSO/OIDC login and callback
108
- flows** are gone with it — the configuration surface remains, and
109
- password login is native. Both are consequences of the worker boundary,
110
- not decisions taken on their own merits.
111
-
112
- Full disclosure of gaps, ported bugs and removed surfaces:
113
- [RELEASE_NOTES_v11.6.0.md](RELEASE_NOTES_v11.6.0.md)
114
-
115
- Expected artifacts for 11.6.0 release must use exact filenames:
116
-
117
- - `dist/ltcai-11.6.0-py3-none-any.whl`
118
- - `dist/ltcai-11.6.0.tar.gz`
119
- - `ltcai-11.6.0.tgz`
120
- - `dist/ltcai-11.6.0.vsix`
121
- - `src-tauri/target/release/bundle/dmg/Lattice AI_11.6.0_aarch64.dmg`
68
+ The current release is **11.7.0 — Clean Sweep**:
69
+
70
+ 11.6.0 left a disclosed backlog and a visual language that still used
71
+ glass. This release closes that backlog, fixes regressions One Door did
72
+ not know it had shipped, and restyles every captured surface on an
73
+ elevation ladder — ink night, paper day, no glass. The door is unchanged:
74
+ `lattice-host` still serves **420 operations across 41 route families**,
75
+ and the Python package is still a **28-route AI worker** (LLM, embed,
76
+ extract, parse, four renderers, ASR, multimodal, catalog, `sysinfo`,
77
+ `/health`). The allowlist still includes `/worker/parse` and
78
+ `/worker/render/*`; nothing product-shaped moved back into Python.
79
+
80
+ - **The three oracle bugs 11.6.0 ported as-is are fixed.** Command-search
81
+ knowledge now reads `matches` and returns nodes. Review snooze accepts
82
+ offset-aware datetimes (unparseable `until` → 422). Double-reject is
83
+ 409, byte-identical to its dismiss sibling. Fixture bodies that pinned
84
+ the old faults were updated and marked as divergences from the oracle.
85
+ - **The §5.3 holes are closed.** Binary uploads go through `/worker/parse`.
86
+ Per-chunk supplied vectors land at the four ingest doors. User hooks
87
+ fire on native tools (`HooksStore` → `HookSink`) and write the same run
88
+ log the HTTP route writes. `sanitize_write_content` runs on the loop
89
+ path and on `POST /tools/write_file`. Every mutating review route records
90
+ `review_item_created` / `review_item_updated`. `workspace_os.json` has
91
+ one writer (`WorkspaceOsStore` + registry + ports).
92
+ - **Regressions One Door did not know it had.** Self-Model writes were
93
+ 100% dead (five routes posted into the retired `/worker/graph/mutate`;
94
+ `resolve_contradiction` claimed "applied" while writing nothing) —
95
+ restored natively, nine recorded bodies byte-identical. The security
96
+ xlsx export 502'd because it posted to a product route; it now uses
97
+ `/worker/render/xlsx`. Chat `ingest_generated` was a schema 400 even
98
+ against a live 11.5.2 worker. Vault-watch had fixtures and no poller —
99
+ it is a real native ingest loop now. A decoy-proven static gate keeps
100
+ this class from shipping again.
101
+ - **Time bombs defused.** Chronicle `@today`, briefing freshness, and the
102
+ insights/garden/proactive/health/quality cutoffs now take a frozen
103
+ clock. Falsifier tests fail on the next run if a fuse is re-armed.
104
+ - **The UI is one language.** Token-native elevation and gradients replace
105
+ backdrop-filter. Cytoscape reads theme tokens (comma-form `hsl()`).
106
+ Layout and a11y contracts stay; the first-paint bundle is still ~103 KiB
107
+ gzip.
108
+
109
+ What this release still carries openly — `open_keys` pending-only, no
110
+ extraction refiner, `delete_node` leaving `PART_OF`, review events silent
111
+ without an owner, text-only KG-api ingest, two store cycles per review
112
+ mutation, raw-English snooze 422 — is listed in
113
+ [RELEASE_NOTES_v11.7.0.md](RELEASE_NOTES_v11.7.0.md).
114
+
115
+ Expected artifacts for 11.7.0 release must use exact filenames:
116
+
117
+ - `dist/ltcai-11.7.0-py3-none-any.whl`
118
+ - `dist/ltcai-11.7.0.tar.gz`
119
+ - `ltcai-11.7.0.tgz`
120
+ - `dist/ltcai-11.7.0.vsix`
121
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_11.7.0_aarch64.dmg`
122
122
 
123
123
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
124
124
 
@@ -157,10 +157,11 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
157
157
  required dependency as of 11.6.0 (it used to be an undeclared lazy import
158
158
  that raised a 500; `ltcai[pdf]` remains as an empty alias for older
159
159
  install instructions).
160
- - Known gaps carried openly into this release — upload extraction enrichment is
161
- UTF-8-text only, supplied vectors cover the primary ingest node, and the
162
- pointer-control tools still execute in the worker — are listed with their
163
- reasons in [RELEASE_NOTES_v11.6.0.md](RELEASE_NOTES_v11.6.0.md).
160
+ - Pointer-control tools still execute in the worker. Remaining honest gaps
161
+ (`open_keys` pending-only, no Self-Model refiner, `PART_OF` left on
162
+ delete, review events silent without an owner, KG-api ingest text-only,
163
+ two store cycles per review mutation) are listed with their reasons in
164
+ [RELEASE_NOTES_v11.7.0.md](RELEASE_NOTES_v11.7.0.md).
164
165
 
165
166
  ## Release History
166
167
 
@@ -171,6 +172,7 @@ same boundary. Earlier notes stay in the tree as `RELEASE_NOTES_v*.md` files.
171
172
 
172
173
  | Version | Theme |
173
174
  | --- | --- |
175
+ | 11.7.0 | Clean Sweep |
174
176
  | 11.6.0 | One Door |
175
177
  | 11.5.2 | Tight Ship |
176
178
  | 11.5.1 | Rust Full Loop |
package/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,50 @@ 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.7.0] - 2026-08-15 — Clean Sweep
8
+
9
+ ### Added
10
+ - 네이티브 훅 싱크(`HooksStore` → `HookSink`): 사용자 `pre_tool` /
11
+ `post_tool`이 네이티브 도구에서 발화하고 `hooks_runs.json`에 같은
12
+ 13키 레코드를 남김(상한 100).
13
+ - `review_item_created` / `review_item_updated` 타임라인 이벤트 —
14
+ 모든 변이 리뷰 경로에서 저장 후 1회. `run_now`는 쓰기가 없어 무발화.
15
+ - vault-watch 폴러: enable 시 기동, 마지막 watch disable 시 정지,
16
+ 재시작 시 resume. 감시 `.pdf`/`.docx`는 `/worker/parse`.
17
+ - 좌초 워커 경로 정적 게이트(디코이 증명). 부채 레지스터 비움.
18
+ - 전면 시각 재설계: elevation 사다리, gradient/border 토큰, 유리 제거,
19
+ 토큰 네이티브 cytoscape. 13 스크린 클레임.
20
+
21
+ ### Changed
22
+ - `workspace_os.json` writer 통합 — `WorkspaceOsStore` 하나 +
23
+ 디렉터리 키 레지스트리 + retrieval/agent 포트. 스탬프는
24
+ `CARGO_PKG_VERSION`.
25
+ - 네 ingest 문(upload / browser-tab / garden note / chat turn)이
26
+ 청크 배치 임베드를 붙임. `(model_id, dim)` 불일치 시 벡터 없음.
27
+ - `/upload/document`가 바이너리 본문을 `/worker/parse`로 보냄.
28
+ - 보안보내기 xlsx가 `/worker/render/xlsx`를 사용.
29
+ - UI 표면이 먹빛 밤 / 한지 낮 elevation 언어. 번들 ~103 KiB gzip.
30
+
31
+ ### Fixed
32
+ - command-search knowledge 그룹이 `matches`를 읽어 결과를 반환
33
+ (오라클은 `results`를 읽어 항상 비었음).
34
+ - 리뷰 스누즈 offset-aware datetime → 200, 잘못된 `until` → 422.
35
+ - 이중 거절 → 409 (형제 dismiss와 바이트 동일).
36
+ - Self-Model 쓰기 5경로가 은퇴 시임으로 전면 정지 — 네이티브 복구,
37
+ 녹화된 본문 9건 바이트 동일. `resolve_contradiction`이 빈 stamps로
38
+ "적용됨"을 주장하던 거짓말 포함.
39
+ - chat `ingest_generated` 스키마 400 (11.5.2에서도 깨져 있었음)과
40
+ vault-watch 미배선.
41
+ - chronicle `@today` 달력 결합, briefing/insights/garden/proactive/
42
+ health/quality 신선도 퓨즈. 시계 시임 + falsifier + 4시간대.
43
+
44
+ ### Known issues
45
+ - `open_keys`는 `pending`만 (Python은 snoozed도). 추출 refiner 없음.
46
+ `delete_node`는 `PART_OF`를 남김. owner 없는 리뷰 이벤트는 침묵.
47
+ KG-api ingest는 텍스트 전용. 리뷰 변이 = 스토어 사이클 2회.
48
+ snooze 422 detail은 영문 리터럴. 전문은
49
+ [RELEASE_NOTES_v11.7.0.md](../RELEASE_NOTES_v11.7.0.md).
50
+
7
51
  ## [11.6.0] - 2026-08-15 — One Door
8
52
 
9
53
  ### Added
@@ -1,6 +1,6 @@
1
1
  # Community And Plugins
2
2
 
3
- Current release: **11.6.0 — One Door**.
3
+ Current release: **11.7.0 — Clean Sweep**.
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.6.0 — One Door**.
6
+ Current release: **11.7.0 — Clean Sweep**.
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`; supported
@@ -1,6 +1,6 @@
1
1
  # Lattice AI Onboarding
2
2
 
3
- Current release: **11.6.0 — One Door**.
3
+ Current release: **11.7.0 — Clean Sweep**.
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 (v11.6.0)
1
+ # Lattice AI — Operations Guide (v11.7.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: **11.6.0 — One Door**.
3
+ Current release: **11.7.0 — Clean Sweep**.
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: **11.6.0 — One Door**.
3
+ Current release: **11.7.0 — Clean Sweep**.
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: **11.6.0 — One Door**.
3
+ Current release: **11.7.0 — Clean Sweep**.
4
4
 
5
5
  명세 출처: `lattice_ai_full_spec.pptx` 슬라이드 20·21·22
6
6
  구현: `lattice_brain/graph/schema.py`
@@ -31,7 +31,7 @@ from .multimodal import (
31
31
  transcribe_audio,
32
32
  )
33
33
 
34
- __version__ = "11.6.0"
34
+ __version__ = "11.7.0"
35
35
 
36
36
  __all__ = [
37
37
  "AudioFacts",
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "11.6.0"
3
+ __version__ = "11.7.0"
@@ -19,7 +19,7 @@ from dataclasses import dataclass
19
19
  from pathlib import Path
20
20
  from typing import Any, Dict, List
21
21
 
22
- ARCHITECTURE_VERSION_TARGET = "11.6.0"
22
+ ARCHITECTURE_VERSION_TARGET = "11.7.0"
23
23
 
24
24
  PREFERRED_REFACTORING_ORDER = [
25
25
  "agent-runtime",
@@ -19,7 +19,7 @@ from typing import Any, Dict, List
19
19
 
20
20
  from latticeai.services.architecture_readiness import architecture_readiness
21
21
 
22
- PRODUCT_VERSION_TARGET = "11.6.0"
22
+ PRODUCT_VERSION_TARGET = "11.7.0"
23
23
 
24
24
 
25
25
  @dataclass(frozen=True)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ltcai",
3
- "version": "11.6.0",
3
+ "version": "11.7.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 = "One Door";
9
+ const releaseTheme = "Clean Sweep";
10
10
  const title = `${version} — ${releaseTheme}`;
11
11
  const escapedVersion = version.replaceAll(".", "\\.");
12
12
 
@@ -21,6 +21,39 @@
21
21
  "specific, not less."
22
22
  ],
23
23
 
24
+ "11.7.0": {
25
+ "_why": [
26
+ "Full visual redesign of the SPA. Tokens gained a surface ladder,",
27
+ "theme-aware elevation, gradient, border, type, radius and motion",
28
+ "vocabulary. Residual glass (backdrop-filter + translucent surfaces)",
29
+ "was replaced with solid elevated surfaces. Shell, LivingBrain, home,",
30
+ "conversation and onboarding restyle against that language; every",
31
+ "captured screen inherits the new field, type, and shadow."
32
+ ],
33
+ "01-login.png": { "min_pct": 1.5 },
34
+ "02-recommended-models.png": { "min_pct": 1.5 },
35
+ "03-install-load-progress.png": {
36
+ "_why": [
37
+ "Onboarding progress chrome inherited the Clean Sweep tokens/type.",
38
+ "Layout is the same four-step card as 11.6.0; LivingBrain animation",
39
+ "states aligned so the whole-image delta is 1.64% — above the static",
40
+ "1.5% floor, well below the 8% live-noise floor. Gating at 8% would",
41
+ "only pass by capturing a different orb frame, which is not a redesign."
42
+ ],
43
+ "min_pct": 1.5
44
+ },
45
+ "04-brain-chat-home.png": { "min_pct": 8.0 },
46
+ "05-memory-graph.png": { "min_pct": 1.5 },
47
+ "06-capture.png": { "min_pct": 1.5 },
48
+ "07-model-library.png": { "min_pct": 1.5 },
49
+ "08-system.png": { "min_pct": 1.5 },
50
+ "09-automation-runs.png": { "min_pct": 1.5 },
51
+ "10-admin-console.png": { "min_pct": 1.5 },
52
+ "11-knowledge-journey.png": { "min_pct": 1.5 },
53
+ "12-review-center.png": { "min_pct": 1.5 },
54
+ "13-chronicle.png": { "min_pct": 1.5 }
55
+ },
56
+
24
57
  "11.6.0": {
25
58
  "_why": [
26
59
  "One Door release: the product server moved from Python/FastAPI to the",
@@ -1863,7 +1863,7 @@ dependencies = [
1863
1863
 
1864
1864
  [[package]]
1865
1865
  name = "lattice-agent"
1866
- version = "11.6.0"
1866
+ version = "11.7.0"
1867
1867
  dependencies = [
1868
1868
  "axum",
1869
1869
  "base64 0.22.1",
@@ -1879,7 +1879,7 @@ dependencies = [
1879
1879
 
1880
1880
  [[package]]
1881
1881
  name = "lattice-ai-desktop"
1882
- version = "11.6.0"
1882
+ version = "11.7.0"
1883
1883
  dependencies = [
1884
1884
  "lattice-host",
1885
1885
  "lattice-jobs",
@@ -1894,7 +1894,7 @@ dependencies = [
1894
1894
 
1895
1895
  [[package]]
1896
1896
  name = "lattice-auth"
1897
- version = "11.6.0"
1897
+ version = "11.7.0"
1898
1898
  dependencies = [
1899
1899
  "axum",
1900
1900
  "base64 0.22.1",
@@ -1911,7 +1911,7 @@ dependencies = [
1911
1911
 
1912
1912
  [[package]]
1913
1913
  name = "lattice-chat"
1914
- version = "11.6.0"
1914
+ version = "11.7.0"
1915
1915
  dependencies = [
1916
1916
  "axum",
1917
1917
  "bytes",
@@ -1932,7 +1932,7 @@ dependencies = [
1932
1932
 
1933
1933
  [[package]]
1934
1934
  name = "lattice-core"
1935
- version = "11.6.0"
1935
+ version = "11.7.0"
1936
1936
  dependencies = [
1937
1937
  "blake2",
1938
1938
  "bytes",
@@ -1948,7 +1948,7 @@ dependencies = [
1948
1948
 
1949
1949
  [[package]]
1950
1950
  name = "lattice-host"
1951
- version = "11.6.0"
1951
+ version = "11.7.0"
1952
1952
  dependencies = [
1953
1953
  "axum",
1954
1954
  "lattice-agent",
@@ -1968,7 +1968,7 @@ dependencies = [
1968
1968
 
1969
1969
  [[package]]
1970
1970
  name = "lattice-ingest"
1971
- version = "11.6.0"
1971
+ version = "11.7.0"
1972
1972
  dependencies = [
1973
1973
  "axum",
1974
1974
  "lattice-auth",
@@ -1983,7 +1983,7 @@ dependencies = [
1983
1983
 
1984
1984
  [[package]]
1985
1985
  name = "lattice-jobs"
1986
- version = "11.6.0"
1986
+ version = "11.7.0"
1987
1987
  dependencies = [
1988
1988
  "axum",
1989
1989
  "lattice-auth",
@@ -1998,7 +1998,7 @@ dependencies = [
1998
1998
 
1999
1999
  [[package]]
2000
2000
  name = "lattice-platform"
2001
- version = "11.6.0"
2001
+ version = "11.7.0"
2002
2002
  dependencies = [
2003
2003
  "axum",
2004
2004
  "base64 0.22.1",
@@ -2021,7 +2021,7 @@ dependencies = [
2021
2021
 
2022
2022
  [[package]]
2023
2023
  name = "lattice-retrieval"
2024
- version = "11.6.0"
2024
+ version = "11.7.0"
2025
2025
  dependencies = [
2026
2026
  "axum",
2027
2027
  "fancy-regex",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "lattice-ai-desktop"
3
- version = "11.6.0"
3
+ version = "11.7.0"
4
4
  description = "Lattice AI Digital Brain desktop shell"
5
5
  authors = ["TaeSoo Park"]
6
6
  edition = "2021"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://schema.tauri.app/config/2",
3
3
  "productName": "Lattice AI",
4
- "version": "11.6.0",
4
+ "version": "11.7.0",
5
5
  "identifier": "ai.lattice.desktop",
6
6
  "build": {
7
7
  "beforeDevCommand": "npm run frontend:dev",
@@ -1,49 +1,49 @@
1
1
  {
2
- "version": "11.6.0",
2
+ "version": "11.7.0",
3
3
  "generated_at": "vite",
4
4
  "entrypoints": {
5
- "app": "/static/app/assets/index-q9XyDY7A.js"
5
+ "app": "/static/app/assets/index-Do83hDzJ.js"
6
6
  },
7
7
  "assets": {
8
8
  "../node_modules/@tauri-apps/api/core.js": "/static/app/assets/core-CwxXejkd.js",
9
- "_BrainSignals-CzeZ-vQ9.js": "/static/app/assets/BrainSignals-CzeZ-vQ9.js",
10
- "_LivingBrain-Bsmzwy8_.js": "/static/app/assets/LivingBrain-Bsmzwy8_.js",
11
- "_ReviewCard-CfR6DLs7.js": "/static/app/assets/ReviewCard-CfR6DLs7.js",
12
- "_arrow-left-DD5jFGHV.js": "/static/app/assets/arrow-left-DD5jFGHV.js",
13
- "_bot-C5-XIww2.js": "/static/app/assets/bot-C5-XIww2.js",
14
- "_brain-CFRJUvdX.js": "/static/app/assets/brain-CFRJUvdX.js",
15
- "_button-DI1KcQP-.js": "/static/app/assets/button-DI1KcQP-.js",
16
- "_circle-check-CY20XMCh.js": "/static/app/assets/circle-check-CY20XMCh.js",
17
- "_circle-pause-C8HHyood.js": "/static/app/assets/circle-pause-C8HHyood.js",
18
- "_circle-play-Cufc235E.js": "/static/app/assets/circle-play-Cufc235E.js",
19
- "_cpu-DW2_JVsv.js": "/static/app/assets/cpu-DW2_JVsv.js",
20
- "_download-gbdKTBb8.js": "/static/app/assets/download-gbdKTBb8.js",
21
- "_folder-open-C9ydyX33.js": "/static/app/assets/folder-open-C9ydyX33.js",
22
- "_hard-drive-BxNMzBM3.js": "/static/app/assets/hard-drive-BxNMzBM3.js",
23
- "_input-GLD94Y_K.js": "/static/app/assets/input-GLD94Y_K.js",
24
- "_link-2-B4Y0gz1S.js": "/static/app/assets/link-2-B4Y0gz1S.js",
25
- "_permissionCopy-CxrV0fvU.js": "/static/app/assets/permissionCopy-CxrV0fvU.js",
26
- "_primitives-2ANdAsu2.js": "/static/app/assets/primitives-2ANdAsu2.js",
27
- "_search-DTxtjQ07.js": "/static/app/assets/search-DTxtjQ07.js",
28
- "_share-2-DxArfiuI.js": "/static/app/assets/share-2-DxArfiuI.js",
29
- "_shield-alert-CgftuFFs.js": "/static/app/assets/shield-alert-CgftuFFs.js",
30
- "_textarea-BHVBAoCr.js": "/static/app/assets/textarea-BHVBAoCr.js",
31
- "_useFocusTrap-Dzq2j_OG.js": "/static/app/assets/useFocusTrap-Dzq2j_OG.js",
32
- "_useMutation-BcqfMLNq.js": "/static/app/assets/useMutation-BcqfMLNq.js",
33
- "_useQuery-DBzLKCOv.js": "/static/app/assets/useQuery-DBzLKCOv.js",
34
- "_utils-B-Aah1bO.js": "/static/app/assets/utils-B-Aah1bO.js",
35
- "_workspace-B6fFhoko.js": "/static/app/assets/workspace-B6fFhoko.js",
36
- "index.html": "/static/app/assets/index-q9XyDY7A.js",
37
- "assets/index-BovSWRmQ.css": "/static/app/assets/index-BovSWRmQ.css",
38
- "src/components/ProductFlow.tsx": "/static/app/assets/ProductFlow-CBLdmesT.js",
39
- "src/features/admin/AdminConsole.tsx": "/static/app/assets/AdminConsole-D5kbrBu8.js",
40
- "src/features/brain/BrainHome.tsx": "/static/app/assets/BrainHome-D4n3EDUt.js",
41
- "src/features/command/CommandPalette.tsx": "/static/app/assets/CommandPalette-DPPvpp28.js",
42
- "src/pages/Act.tsx": "/static/app/assets/Act-CToZnOHz.js",
43
- "src/pages/Brain.tsx": "/static/app/assets/Brain-C6zCdv4S.js",
44
- "src/pages/Capture.tsx": "/static/app/assets/Capture-DPcyTczq.js",
45
- "src/pages/Chronicle.tsx": "/static/app/assets/Chronicle-D3Nx-oWS.js",
46
- "src/pages/Library.tsx": "/static/app/assets/Library-Co2qTu3I.js",
47
- "src/pages/System.tsx": "/static/app/assets/System-Ce-P2YL6.js"
9
+ "_BrainSignals-ReLWF2H8.js": "/static/app/assets/BrainSignals-ReLWF2H8.js",
10
+ "_LivingBrain-DGYK_Jsa.js": "/static/app/assets/LivingBrain-DGYK_Jsa.js",
11
+ "_ReviewCard-HXRle3qq.js": "/static/app/assets/ReviewCard-HXRle3qq.js",
12
+ "_arrow-left-BfmkskWx.js": "/static/app/assets/arrow-left-BfmkskWx.js",
13
+ "_bot-Cn8bWRuq.js": "/static/app/assets/bot-Cn8bWRuq.js",
14
+ "_brain-CQJberbE.js": "/static/app/assets/brain-CQJberbE.js",
15
+ "_button-Ct9f2_oT.js": "/static/app/assets/button-Ct9f2_oT.js",
16
+ "_circle-check-DruOxB-4.js": "/static/app/assets/circle-check-DruOxB-4.js",
17
+ "_circle-pause-CmzC_apg.js": "/static/app/assets/circle-pause-CmzC_apg.js",
18
+ "_circle-play-D8mW2aQ7.js": "/static/app/assets/circle-play-D8mW2aQ7.js",
19
+ "_cpu-DZcdd0PZ.js": "/static/app/assets/cpu-DZcdd0PZ.js",
20
+ "_download-bv1KEPGQ.js": "/static/app/assets/download-bv1KEPGQ.js",
21
+ "_folder-open-d-Pip5gr.js": "/static/app/assets/folder-open-d-Pip5gr.js",
22
+ "_hard-drive-D20iavUb.js": "/static/app/assets/hard-drive-D20iavUb.js",
23
+ "_input-BLXVNmj1.js": "/static/app/assets/input-BLXVNmj1.js",
24
+ "_link-2-BPJOFlAy.js": "/static/app/assets/link-2-BPJOFlAy.js",
25
+ "_permissionCopy-ChdJd493.js": "/static/app/assets/permissionCopy-ChdJd493.js",
26
+ "_primitives-Cv5tbZBY.js": "/static/app/assets/primitives-Cv5tbZBY.js",
27
+ "_search-CT9aho2j.js": "/static/app/assets/search-CT9aho2j.js",
28
+ "_share-2-YNX_NtMU.js": "/static/app/assets/share-2-YNX_NtMU.js",
29
+ "_shield-alert-DuQ3zrVL.js": "/static/app/assets/shield-alert-DuQ3zrVL.js",
30
+ "_textarea-DqwLnli4.js": "/static/app/assets/textarea-DqwLnli4.js",
31
+ "_useFocusTrap-ZVI98jaW.js": "/static/app/assets/useFocusTrap-ZVI98jaW.js",
32
+ "_useMutation-CVC4qv_D.js": "/static/app/assets/useMutation-CVC4qv_D.js",
33
+ "_useQuery-C7BeG4HU.js": "/static/app/assets/useQuery-C7BeG4HU.js",
34
+ "_utils-CiFtIdZq.js": "/static/app/assets/utils-CiFtIdZq.js",
35
+ "_workspace-DQz9vIId.js": "/static/app/assets/workspace-DQz9vIId.js",
36
+ "index.html": "/static/app/assets/index-Do83hDzJ.js",
37
+ "assets/index-D9x-kSNy.css": "/static/app/assets/index-D9x-kSNy.css",
38
+ "src/components/ProductFlow.tsx": "/static/app/assets/ProductFlow-DXBC6brE.js",
39
+ "src/features/admin/AdminConsole.tsx": "/static/app/assets/AdminConsole-Bw1ATQL0.js",
40
+ "src/features/brain/BrainHome.tsx": "/static/app/assets/BrainHome-CFBkt1K_.js",
41
+ "src/features/command/CommandPalette.tsx": "/static/app/assets/CommandPalette-CuvjTv1u.js",
42
+ "src/pages/Act.tsx": "/static/app/assets/Act-BPcVAbOL.js",
43
+ "src/pages/Brain.tsx": "/static/app/assets/Brain-CT92Kos0.js",
44
+ "src/pages/Capture.tsx": "/static/app/assets/Capture-BsTokYkk.js",
45
+ "src/pages/Chronicle.tsx": "/static/app/assets/Chronicle-B6f0T9id.js",
46
+ "src/pages/Library.tsx": "/static/app/assets/Library-BGJbG9Hd.js",
47
+ "src/pages/System.tsx": "/static/app/assets/System-CMHSO9qM.js"
48
48
  }
49
49
  }