ltcai 10.5.0 → 10.6.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 (74) hide show
  1. package/README.md +53 -45
  2. package/docs/CHANGELOG.md +86 -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/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 +1 -1
  18. package/package.json +1 -1
  19. package/scripts/capture_release_evidence.mjs +13 -5
  20. package/scripts/check_current_release_docs.mjs +1 -1
  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 +40 -38
  25. package/static/app/assets/{Act-CLsUUE4V.js → Act-B3MSgNsJ.js} +1 -1
  26. package/static/app/assets/AdminConsole-Ds8u36lf.js +1 -0
  27. package/static/app/assets/Brain-XdHCIB6a.js +321 -0
  28. package/static/app/assets/{BrainHome-DMMhKb8j.js → BrainHome-Dp8gzQoF.js} +2 -2
  29. package/static/app/assets/{BrainSignals-CcvYpBGn.js → BrainSignals-D4yZflVt.js} +1 -1
  30. package/static/app/assets/Capture-BwSZmiZ8.js +1 -0
  31. package/static/app/assets/CommandPalette-Ds0DnRSC.js +1 -0
  32. package/static/app/assets/Library-SqzHjyfx.js +1 -0
  33. package/static/app/assets/{LivingBrain-BVFU-llN.js → LivingBrain-DpKt-NKE.js} +1 -1
  34. package/static/app/assets/{ProductFlow-CZp8oHh_.js → ProductFlow-BimeVtWH.js} +1 -1
  35. package/static/app/assets/{ReviewCard-DODh3z_D.js → ReviewCard-DVPi1LPZ.js} +1 -1
  36. package/static/app/assets/System-w-9miIG8.js +1 -0
  37. package/static/app/assets/{activity-DYlZpTrt.js → activity-C0QavXjd.js} +1 -1
  38. package/static/app/assets/arrow-left-TsAKz-s_.js +1 -0
  39. package/static/app/assets/{bot-BBmfPYKv.js → bot-C1-MbzCF.js} +1 -1
  40. package/static/app/assets/brain-CeRqzJVc.js +1 -0
  41. package/static/app/assets/{button-DXSLgXUl.js → button-Z-2N8PUb.js} +1 -1
  42. package/static/app/assets/{circle-pause-B8TPRvnt.js → circle-pause-CgjCLdmO.js} +1 -1
  43. package/static/app/assets/{circle-play-C5aQnYUv.js → circle-play-Bj45uClm.js} +1 -1
  44. package/static/app/assets/{cpu-BvOUS0hg.js → cpu-B-2Chwfy.js} +1 -1
  45. package/static/app/assets/{download-BM2Y4baa.js → download-CKmiOG3C.js} +1 -1
  46. package/static/app/assets/{folder-open-DATq5giq.js → folder-open-fE7lLvhZ.js} +1 -1
  47. package/static/app/assets/{hard-drive-D2iumtyP.js → hard-drive-rDl1xsJ1.js} +1 -1
  48. package/static/app/assets/index-AEIqmjwZ.js +10 -0
  49. package/static/app/assets/index-DcMODGjM.css +2 -0
  50. package/static/app/assets/{input-Ptpha52f.js → input-BflJYT5-.js} +1 -1
  51. package/static/app/assets/{permissionCopy-DLSOKW1h.js → permissionCopy-BNNvkXSX.js} +1 -1
  52. package/static/app/assets/{primitives-BvxTiz4R.js → primitives-CP68OWk2.js} +1 -1
  53. package/static/app/assets/search-B4O4iIgg.js +1 -0
  54. package/static/app/assets/share-2-CyjG2_yY.js +1 -0
  55. package/static/app/assets/{shield-alert-B6RHxSXi.js → shield-alert-C_JBPWYd.js} +1 -1
  56. package/static/app/assets/{textarea-CCZqVitr.js → textarea-Ds1Exelb.js} +1 -1
  57. package/static/app/assets/{useFocusTrap-QR9BiUDX.js → useFocusTrap-BgIZQ4if.js} +1 -1
  58. package/static/app/assets/{useQuery-B42HOaUm.js → useQuery-6Bu27NQe.js} +1 -1
  59. package/static/app/assets/{users-D9PLGmAE.js → users-31lxlciQ.js} +1 -1
  60. package/static/app/assets/{utils-CAuwfT8i.js → utils-C0-C5mZc.js} +1 -1
  61. package/static/app/assets/workspace-DAB-urHL.js +1 -0
  62. package/static/app/index.html +4 -4
  63. package/static/sw.js +1 -1
  64. package/static/app/assets/AdminConsole-D1PBR5Mk.js +0 -1
  65. package/static/app/assets/Brain-Cnb_YCYH.js +0 -321
  66. package/static/app/assets/Capture-DU1HZWqB.js +0 -1
  67. package/static/app/assets/CommandPalette-tU229JbI.js +0 -1
  68. package/static/app/assets/Library-BeutJd8j.js +0 -1
  69. package/static/app/assets/System-CTYfZXfv.js +0 -1
  70. package/static/app/assets/brain-RRpEg40e.js +0 -1
  71. package/static/app/assets/index-B1n87vO-.css +0 -2
  72. package/static/app/assets/index-D10Yd0gh.js +0 -10
  73. package/static/app/assets/search-DtMikKf0.js +0 -1
  74. package/static/app/assets/workspace-DT2v1d3T.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.5.0 Living Brain walkthrough](output/release/v10.5.0/gifs/v10.5.0-living-brain-walkthrough.gif)
14
+ ![v10.6.0 Living Brain walkthrough](output/release/v10.6.0/gifs/v10.6.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.5.0/screenshots/04-brain-chat-home.png) | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v10.5.0/screenshots/05-memory-graph.png) |
28
- | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v10.5.0/screenshots/06-capture.png) | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v10.5.0/screenshots/12-review-center.png) |
29
- | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v10.5.0/screenshots/02-recommended-models.png) | **Stay in control** — audit, roles, retention in a separate admin surface ![Admin Console](output/release/v10.5.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.5.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.5.0/screenshots/08-system.png) |
27
+ | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v10.6.0/screenshots/04-brain-chat-home.png) | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v10.6.0/screenshots/05-memory-graph.png) |
28
+ | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v10.6.0/screenshots/06-capture.png) | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v10.6.0/screenshots/12-review-center.png) |
29
+ | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v10.6.0/screenshots/02-recommended-models.png) | **Stay in control** — audit, roles, retention in a separate admin surface ![Admin Console](output/release/v10.6.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.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/v10.6.0/screenshots/08-system.png) |
31
31
 
32
32
  ## Why Lattice AI
33
33
 
@@ -58,55 +58,62 @@ First-run flow — wake the Brain, pick the owner, load a recommended model:
58
58
 
59
59
  | | | |
60
60
  | --- | --- | --- |
61
- | ![Login](output/release/v10.5.0/screenshots/01-login.png) | ![Model install](output/release/v10.5.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v10.5.0/screenshots/07-model-library.png) |
61
+ | ![Login](output/release/v10.6.0/screenshots/01-login.png) | ![Model install](output/release/v10.6.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v10.6.0/screenshots/07-model-library.png) |
62
62
 
63
63
  Screenshot index and capture notes:
64
- [output/release/v10.5.0/SCREENSHOT_INDEX.md](output/release/v10.5.0/SCREENSHOT_INDEX.md)
64
+ [output/release/v10.6.0/SCREENSHOT_INDEX.md](output/release/v10.6.0/SCREENSHOT_INDEX.md)
65
65
 
66
66
  ## Current Release
67
67
 
68
- The current release is **10.5.0 — Everyday Words**:
69
-
70
- 10.4.0 named the ground the code stands on. 10.5.0 renames the ground the
71
- *reader* stands on: every screen a first-time user lands on now says what
72
- Lattice is doing in the words that user would use. No feature was removed —
73
- the engine's own vocabulary moved behind the advanced mode switch, where it
74
- belongs to the people who asked for it.
75
-
76
- - **The autonomy dial is a sentence, not a mode name.** 엄격 / 신뢰 / 바이패스
77
- became 먼저 물어보기 / 웬만하면 알아서 / 거의 다 알아서, each with one line
78
- about what it will and will not do on its own. The home dial and Settings
79
- now draw that copy from one module, so the same setting is never named two
80
- ways — and a mode the server adds later still renders, from the server's own
81
- label.
82
- - **The path from a file to a memory is three named steps.** 진행 상황 was
83
- hidden from plain mode and held two raw API payloads. It now shows
84
- 내용 읽기 → 뜻 파악하기 → 기억에 연결하기 as a labelled ordered list, with
85
- each step saying what it does to your file. 파싱 · 임베딩 · 인덱싱 are gone
86
- from that screen.
87
- - **Automations are named the way you named them.** A run shows its workflow's
88
- name rather than a database id, and its state is spoken — `awaiting_approval`
89
- reads as "내 승인 기다리는 중". Unknown states say so instead of printing the
90
- token. Advanced mode still shows the id.
91
- - **A model your machine cannot run says so in one sentence** instead of a
92
- registry line half-translated word by word.
93
- - **The published screenshots were wrong before this release.** Capture ran in
94
- `advanced`, so every README frame showed payload panels, storage engines and
95
- hook logs that no first-run user is ever shown. Captures now run in the app's
96
- real default, `basic` — this page's images are what you will actually see.
97
- - **Guarded, not asserted.** A visual sweep walks ten plain-mode routes and
98
- fails if any of them renders empty or puts engine vocabulary in front of a
99
- reader who never asked for it.
68
+ The current release is **10.6.0 — Promoted Panels**:
69
+
70
+ 10.5.0 changed the words on each screen. 10.6.0 changes where things sit. Every
71
+ main screen used to open as a row of equal tabs, which asks a first-time user to
72
+ choose before they know what the choices are. Each screen now opens on the panel
73
+ that answers the question that brought you there, and everything else moves
74
+ below it. No feature was removed — every panel is still on the page, it just no
75
+ longer competes for the top of it.
76
+
77
+ - **Each screen leads with one panel instead of a row of equals.** Capture opens
78
+ on a single 자료 추가하기 card holding all three ways to add material —
79
+ 파일 올리기 / 폴더 연결하기 / 웹페이지 저장하기 — as a choice inside one card
80
+ rather than three tabs, with progress and connected folders moved to a quieter
81
+ second row. Work opens on 검토함, what is waiting on you, instead of on the
82
+ empty goal composer. The model library answers "which model is running, and
83
+ can I switch it" in a card above the tabs.
84
+ - **The Brain home is one card, not five stacked blocks.** Greeting, composer,
85
+ the add-material row and the autonomy dial now sit inside a single bordered
86
+ station that lifts when you type anywhere in it. The Brain artwork shrank so
87
+ that it introduces the composer rather than headlining the screen.
88
+ - **Everyday and management destinations stopped being one list.** 대화 · 자료 ·
89
+ 기억 stay in the primary nav; 작업 · AI 모델 · 설정 became topbar links at
90
+ desktop widths and fold into the menu below that — built from one array so the
91
+ two copies cannot drift, and shown by one breakpoint so they can never both
92
+ appear or both vanish.
93
+ - **The knowledge graph became a subview rather than a third tab.** Memory opens
94
+ on search, with 연결 지도 열기 one button away and a labelled way back.
95
+ - **Seven settings tabs became three named groups** — 나와 작업공간 · 내 데이터
96
+ 보관 · 동작 방식과 연결 — so the row reads as a short list of decisions.
97
+ - **Links that named a screen now open that screen.** `#/act/review` and its
98
+ siblings landed on the Brain home for every caller that emitted them — the
99
+ command palette, the daily briefing — because nothing parsed the
100
+ `<screen>/<tab>` form they had always used. The palette also read a private
101
+ second copy of the destination list, so 작업 opened a different screen
102
+ depending on whether you clicked it or searched for it. One list, one parser.
103
+ - **Guarded, not asserted.** The visual sweep walks ten viewport widths and
104
+ fails if a management link is visible in both places at once or in neither, if
105
+ a navigation landmark is unnamed or shares its name with another, or if the
106
+ topbar overflows.
100
107
 
101
108
  Release notes: [RELEASE.md](RELEASE.md) · Full history: [docs/CHANGELOG.md](docs/CHANGELOG.md)
102
109
 
103
- Expected artifacts for 10.5.0 release must use exact filenames:
110
+ Expected artifacts for 10.6.0 release must use exact filenames:
104
111
 
105
- - `dist/ltcai-10.5.0-py3-none-any.whl`
106
- - `dist/ltcai-10.5.0.tar.gz`
107
- - `ltcai-10.5.0.tgz`
108
- - `dist/ltcai-10.5.0.vsix`
109
- - `src-tauri/target/release/bundle/dmg/Lattice AI_10.5.0_aarch64.dmg`
112
+ - `dist/ltcai-10.6.0-py3-none-any.whl`
113
+ - `dist/ltcai-10.6.0.tar.gz`
114
+ - `ltcai-10.6.0.tgz`
115
+ - `dist/ltcai-10.6.0.vsix`
116
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_10.6.0_aarch64.dmg`
110
117
 
111
118
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
112
119
 
@@ -141,6 +148,7 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
141
148
 
142
149
  | Version | Theme |
143
150
  | --- | --- |
151
+ | 10.6.0 | Promoted Panels |
144
152
  | 10.5.0 | Everyday Words |
145
153
  | 10.4.0 | Named Ground |
146
154
  | 10.3.0 | Measured Ground |
package/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,92 @@ 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.6.0] - 2026-08-03
8
+
9
+ A layout rebuild, not a copy pass. Every main screen used to open as a row of
10
+ equal tabs; each now opens on the panel that answers the question that brought
11
+ the reader there, with everything else moved below it. No feature was removed —
12
+ every panel is still on its page. Backend behaviour is unchanged;
13
+ `frontend/openapi.json` differs from 10.5.0 only in `info.version`.
14
+
15
+ ### Changed
16
+ - **Capture leads with one card instead of four page-level tabs.** 파일 올리기 /
17
+ 폴더 연결하기 / 웹페이지 저장하기 became a `role="group"` method picker inside
18
+ a single `자료 추가하기` station, with the chosen method's form opening in the
19
+ same card. Progress, folder health, connected sources and recent documents
20
+ moved to a two-column `.capture-secondary` row that is always visible instead
21
+ of hidden behind a tab. `#/my-computer`, `#/capture-browser` and `#/pipeline`
22
+ still resolve.
23
+ - **Work opens on 검토함 instead of the empty goal composer.** The shell's 작업
24
+ entry point moved from `#/agents` to `#/review`, the Runs tab leads the tab
25
+ strip, and 검토함 leads 실행 within it. The page heading and description now
26
+ follow the selected tab instead of repeating one sentence on all five.
27
+ - **The model library answers the active model above the tab strip.** A new
28
+ `지금 작동 중인 모델` card names the loaded model in human terms and offers
29
+ one-click switching, listing only models already downloaded, supported and
30
+ loadable — never one that is still awaiting consent. With none loaded it says
31
+ so ("아직 사용할 모델이 없어요").
32
+ - **The Brain home is one bordered station instead of five stacked blocks.**
33
+ Greeting, composer, the ingestion dock and the autonomy dial now live in one
34
+ card that lifts on `:focus-within`; the dock and the dial were two competing
35
+ strips and became one `.brain-station-toolbar` row. The Brain organism shrank
36
+ from 7rem to 5.4rem.
37
+ - **The knowledge graph is a subview, not a third peer tab.** Memory keeps two
38
+ tabs and reaches the graph through a `연결 지도 열기` button, which swaps the
39
+ tab strip for a labelled `기억 화면으로 돌아가기` bar. `#/knowledge-graph`
40
+ still resolves.
41
+ - **Settings' seven flat tabs became three named groups**: 나와 작업공간
42
+ (계정, 작업공간), 내 데이터 보관 (스냅샷, 활동), 동작 방식과 연결 (설정,
43
+ 네트워크, 관리). All tab routes are unchanged.
44
+ - **Everyday and management destinations split.** 대화 · 자료 · 기억 stay in the
45
+ primary nav; 작업 · AI 모델 · 설정 render as topbar quick links at ≥960px and
46
+ inside the menu below that. Both copies are built from one array and shown by
47
+ one breakpoint in `shell.css`, so they cannot drift apart and cannot both
48
+ appear or both vanish.
49
+
50
+ ### Fixed
51
+ - **`#/act/review` never opened the review inbox.** The command palette and the
52
+ daily briefing had always emitted `<screen>/<tab>` hashes, and `parseHash`
53
+ had no case for that shape, so `#/act/review`, `#/act/workflows` and
54
+ `#/brain/graph` all fell through to the Brain home. The generic form is now
55
+ parsed as the last step, after named aliases, so an alias always wins.
56
+ - **The command palette read a private second copy of the destination list.**
57
+ `commandRoutes` in `routes.ts` was not the list the palette rendered, so
58
+ repointing 작업 there changed nothing while the palette kept the old target —
59
+ one label meaning two different screens depending on how it was reached. The
60
+ palette now reads that single list, and its entries are i18n keys rather than
61
+ hardcoded English labels.
62
+ - **The menu's focus trap counted links the browser will not focus.** The menu
63
+ holds a copy of the management links that CSS hides once the topbar shows
64
+ them; those anchors stay in the DOM, so `querySelectorAll` put the trap's
65
+ first/last boundaries on hidden elements, and opening the menu could call
66
+ `focus()` on a `display:none` anchor — which silently does nothing, leaving
67
+ focus on the trigger. Both now filter to elements that are actually rendered.
68
+ - **Both the primary nav and the menu's list were named "화면 이동".** A landmark
69
+ list showed two navigations with the same name and no way to tell them apart.
70
+ The management list is now 관리 and shares the accessible name 관리 화면 이동
71
+ with its topbar twin, which is never visible at the same time.
72
+ - **Release frame 11 shipped a byte-identical copy of frame 06.** With the
73
+ pipeline moved out of its own tab, `#/pipeline` renders the same page as
74
+ `#/capture`, so the full-page capture produced the same file twice while the
75
+ README printed them as different tiles. `scripts/capture_release_evidence.mjs`
76
+ now frames the three-step card itself.
77
+
78
+ ### Testing
79
+ - `tests/visual/v3.spec.js` asserts the new hierarchy: Brain home is one card
80
+ containing composer, dock and dial; the graph is reached by button and not by
81
+ tab; Capture has no page-level tabs and keeps its three deep links; the active
82
+ model card precedes the tab strip; the shell link and the command palette open
83
+ the same screen for 작업.
84
+ - A ten-width sweep (390px–1440px) fails if a management link is visible in both
85
+ places or in neither, if the topbar overflows, or if the menu button is
86
+ clipped. A separate check requires every visible `<nav>` to carry a unique
87
+ accessible name.
88
+ - `tests/visual/mock_server.cjs` now serves `POST /models/load` and
89
+ `GET /knowledge-graph/local/health`, so the one-click model switch and the
90
+ folder-health card render during capture instead of being photographed as
91
+ placeholders.
92
+
7
93
  ## [10.5.0] - 2026-08-03
8
94
 
9
95
  A UI/UX pass for the person who did not build this. No feature was removed;
@@ -1,6 +1,6 @@
1
1
  # Community And Plugins
2
2
 
3
- Current release: **10.5.0 — Everyday Words**.
3
+ Current release: **10.6.0 — Promoted Panels**.
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.5.0 — Everyday Words**.
6
+ Current release: **10.6.0 — Promoted Panels**.
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.5.0 — Everyday Words**.
3
+ Current release: **10.6.0 — Promoted Panels**.
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.5.0)
1
+ # Lattice AI — Operations Guide (v10.6.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.5.0 — Everyday Words**.
3
+ Current release: **10.6.0 — Promoted Panels**.
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.5.0 — Everyday Words**.
3
+ Current release: **10.6.0 — Promoted Panels**.
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.5.0 — Everyday Words**.
3
+ Current release: **10.6.0 — Promoted Panels**.
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.5.0"
29
+ __version__ = "10.6.0"
30
30
 
31
31
  __all__ = [
32
32
  "AgentRuntime",
@@ -47,7 +47,7 @@ from typing import Any, Callable, Dict, List, Optional
47
47
  from ..utils import now_iso as _now
48
48
  from .contracts import multi_agent_contract
49
49
 
50
- MULTI_AGENT_VERSION = "10.5.0"
50
+ MULTI_AGENT_VERSION = "10.6.0"
51
51
 
52
52
  AGENT_ROLES = ("researcher", "planner", "executor", "reviewer", "release")
53
53
  CORE_PIPELINE = ("planner", "executor", "reviewer")
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "10.5.0"
3
+ __version__ = "10.6.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.5.0"
16
+ LEGACY_COMPATIBILITY_VERSION = "10.6.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.5.0"
13
+ MARKETPLACE_VERSION = "10.6.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.5.0"
13
+ WORKSPACE_OS_VERSION = "10.6.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.5.0"
19
+ ARCHITECTURE_VERSION_TARGET = "10.6.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.5.0"
21
+ PRODUCT_VERSION_TARGET = "10.6.0"
22
22
 
23
23
 
24
24
  @dataclass(frozen=True)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ltcai",
3
- "version": "10.5.0",
3
+ "version": "10.6.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": {
@@ -128,12 +128,20 @@ async function main() {
128
128
  await page.waitForTimeout(250);
129
129
  await shot(page, "10-admin-console.png");
130
130
 
131
- // The three named steps a file walks on its way into memory. This tab was
132
- // hidden from plain mode and held two raw API payloads before this release,
133
- // which is why it is worth publishing now.
131
+ // The three named steps a file walks on its way into memory. 10.6.0 moved
132
+ // this out of a tab of its own and into Capture's second row, where it is now
133
+ // always on screen — so `#/pipeline` renders the same page as `#/capture`,
134
+ // and a full-page shot here came out byte-identical to 06. The README prints
135
+ // the two as different tiles, so frame the card this tile is actually about.
134
136
  await page.goto(`${baseURL}/app#/pipeline`, { waitUntil: "networkidle" });
135
- await page.getByRole("list", { name: "자료가 기억이 되는 3단계" }).waitFor();
136
- await shot(page, "11-knowledge-journey.png");
137
+ const journeyList = page.getByRole("list", { name: "자료가 기억이 되는 3단계" });
138
+ await journeyList.waitFor();
139
+ const journeyCard = page
140
+ .locator(".capture-secondary-column > *")
141
+ .filter({ has: journeyList })
142
+ .first();
143
+ await page.waitForTimeout(120);
144
+ await journeyCard.screenshot({ path: path.join(screenshots, "11-knowledge-journey.png") });
137
145
 
138
146
  await page.goto(`${baseURL}/app#/review`, { waitUntil: "networkidle" });
139
147
  await page.getByText(/Review Center|리뷰 센터|검토함/).first().waitFor();
@@ -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 = "Everyday Words";
9
+ const releaseTheme = "Promoted Panels";
10
10
  const title = `${version} — ${releaseTheme}`;
11
11
  const escapedVersion = version.replaceAll(".", "\\.");
12
12
 
@@ -1584,7 +1584,7 @@ dependencies = [
1584
1584
 
1585
1585
  [[package]]
1586
1586
  name = "lattice-ai-desktop"
1587
- version = "10.5.0"
1587
+ version = "10.6.0"
1588
1588
  dependencies = [
1589
1589
  "plist",
1590
1590
  "serde",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "lattice-ai-desktop"
3
- version = "10.5.0"
3
+ version = "10.6.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": "10.5.0",
4
+ "version": "10.6.0",
5
5
  "identifier": "ai.lattice.desktop",
6
6
  "build": {
7
7
  "beforeDevCommand": "npm run frontend:dev",
@@ -1,45 +1,47 @@
1
1
  {
2
- "version": "10.5.0",
2
+ "version": "10.6.0",
3
3
  "generated_at": "vite",
4
4
  "entrypoints": {
5
- "app": "/static/app/assets/index-D10Yd0gh.js"
5
+ "app": "/static/app/assets/index-AEIqmjwZ.js"
6
6
  },
7
7
  "assets": {
8
- "../../../../../Users/parktaesoo/Downloads/Lattice AI/node_modules/@tauri-apps/api/core.js": "/static/app/assets/core-CwxXejkd.js",
9
- "_BrainSignals-CcvYpBGn.js": "/static/app/assets/BrainSignals-CcvYpBGn.js",
10
- "_LivingBrain-BVFU-llN.js": "/static/app/assets/LivingBrain-BVFU-llN.js",
11
- "_ReviewCard-DODh3z_D.js": "/static/app/assets/ReviewCard-DODh3z_D.js",
12
- "_activity-DYlZpTrt.js": "/static/app/assets/activity-DYlZpTrt.js",
13
- "_bot-BBmfPYKv.js": "/static/app/assets/bot-BBmfPYKv.js",
14
- "_brain-RRpEg40e.js": "/static/app/assets/brain-RRpEg40e.js",
15
- "_button-DXSLgXUl.js": "/static/app/assets/button-DXSLgXUl.js",
16
- "_circle-pause-B8TPRvnt.js": "/static/app/assets/circle-pause-B8TPRvnt.js",
17
- "_circle-play-C5aQnYUv.js": "/static/app/assets/circle-play-C5aQnYUv.js",
18
- "_cpu-BvOUS0hg.js": "/static/app/assets/cpu-BvOUS0hg.js",
19
- "_download-BM2Y4baa.js": "/static/app/assets/download-BM2Y4baa.js",
20
- "_folder-open-DATq5giq.js": "/static/app/assets/folder-open-DATq5giq.js",
21
- "_hard-drive-D2iumtyP.js": "/static/app/assets/hard-drive-D2iumtyP.js",
22
- "_input-Ptpha52f.js": "/static/app/assets/input-Ptpha52f.js",
23
- "_permissionCopy-DLSOKW1h.js": "/static/app/assets/permissionCopy-DLSOKW1h.js",
24
- "_primitives-BvxTiz4R.js": "/static/app/assets/primitives-BvxTiz4R.js",
25
- "_search-DtMikKf0.js": "/static/app/assets/search-DtMikKf0.js",
26
- "_shield-alert-B6RHxSXi.js": "/static/app/assets/shield-alert-B6RHxSXi.js",
27
- "_textarea-CCZqVitr.js": "/static/app/assets/textarea-CCZqVitr.js",
28
- "_useFocusTrap-QR9BiUDX.js": "/static/app/assets/useFocusTrap-QR9BiUDX.js",
29
- "_useQuery-B42HOaUm.js": "/static/app/assets/useQuery-B42HOaUm.js",
30
- "_users-D9PLGmAE.js": "/static/app/assets/users-D9PLGmAE.js",
31
- "_utils-CAuwfT8i.js": "/static/app/assets/utils-CAuwfT8i.js",
32
- "_workspace-DT2v1d3T.js": "/static/app/assets/workspace-DT2v1d3T.js",
33
- "index.html": "/static/app/assets/index-D10Yd0gh.js",
34
- "assets/index-B1n87vO-.css": "/static/app/assets/index-B1n87vO-.css",
35
- "src/components/ProductFlow.tsx": "/static/app/assets/ProductFlow-CZp8oHh_.js",
36
- "src/features/admin/AdminConsole.tsx": "/static/app/assets/AdminConsole-D1PBR5Mk.js",
37
- "src/features/brain/BrainHome.tsx": "/static/app/assets/BrainHome-DMMhKb8j.js",
38
- "src/features/command/CommandPalette.tsx": "/static/app/assets/CommandPalette-tU229JbI.js",
39
- "src/pages/Act.tsx": "/static/app/assets/Act-CLsUUE4V.js",
40
- "src/pages/Brain.tsx": "/static/app/assets/Brain-Cnb_YCYH.js",
41
- "src/pages/Capture.tsx": "/static/app/assets/Capture-DU1HZWqB.js",
42
- "src/pages/Library.tsx": "/static/app/assets/Library-BeutJd8j.js",
43
- "src/pages/System.tsx": "/static/app/assets/System-CTYfZXfv.js"
8
+ "../node_modules/@tauri-apps/api/core.js": "/static/app/assets/core-CwxXejkd.js",
9
+ "_BrainSignals-D4yZflVt.js": "/static/app/assets/BrainSignals-D4yZflVt.js",
10
+ "_LivingBrain-DpKt-NKE.js": "/static/app/assets/LivingBrain-DpKt-NKE.js",
11
+ "_ReviewCard-DVPi1LPZ.js": "/static/app/assets/ReviewCard-DVPi1LPZ.js",
12
+ "_activity-C0QavXjd.js": "/static/app/assets/activity-C0QavXjd.js",
13
+ "_arrow-left-TsAKz-s_.js": "/static/app/assets/arrow-left-TsAKz-s_.js",
14
+ "_bot-C1-MbzCF.js": "/static/app/assets/bot-C1-MbzCF.js",
15
+ "_brain-CeRqzJVc.js": "/static/app/assets/brain-CeRqzJVc.js",
16
+ "_button-Z-2N8PUb.js": "/static/app/assets/button-Z-2N8PUb.js",
17
+ "_circle-pause-CgjCLdmO.js": "/static/app/assets/circle-pause-CgjCLdmO.js",
18
+ "_circle-play-Bj45uClm.js": "/static/app/assets/circle-play-Bj45uClm.js",
19
+ "_cpu-B-2Chwfy.js": "/static/app/assets/cpu-B-2Chwfy.js",
20
+ "_download-CKmiOG3C.js": "/static/app/assets/download-CKmiOG3C.js",
21
+ "_folder-open-fE7lLvhZ.js": "/static/app/assets/folder-open-fE7lLvhZ.js",
22
+ "_hard-drive-rDl1xsJ1.js": "/static/app/assets/hard-drive-rDl1xsJ1.js",
23
+ "_input-BflJYT5-.js": "/static/app/assets/input-BflJYT5-.js",
24
+ "_permissionCopy-BNNvkXSX.js": "/static/app/assets/permissionCopy-BNNvkXSX.js",
25
+ "_primitives-CP68OWk2.js": "/static/app/assets/primitives-CP68OWk2.js",
26
+ "_search-B4O4iIgg.js": "/static/app/assets/search-B4O4iIgg.js",
27
+ "_share-2-CyjG2_yY.js": "/static/app/assets/share-2-CyjG2_yY.js",
28
+ "_shield-alert-C_JBPWYd.js": "/static/app/assets/shield-alert-C_JBPWYd.js",
29
+ "_textarea-Ds1Exelb.js": "/static/app/assets/textarea-Ds1Exelb.js",
30
+ "_useFocusTrap-BgIZQ4if.js": "/static/app/assets/useFocusTrap-BgIZQ4if.js",
31
+ "_useQuery-6Bu27NQe.js": "/static/app/assets/useQuery-6Bu27NQe.js",
32
+ "_users-31lxlciQ.js": "/static/app/assets/users-31lxlciQ.js",
33
+ "_utils-C0-C5mZc.js": "/static/app/assets/utils-C0-C5mZc.js",
34
+ "_workspace-DAB-urHL.js": "/static/app/assets/workspace-DAB-urHL.js",
35
+ "index.html": "/static/app/assets/index-AEIqmjwZ.js",
36
+ "assets/index-DcMODGjM.css": "/static/app/assets/index-DcMODGjM.css",
37
+ "src/components/ProductFlow.tsx": "/static/app/assets/ProductFlow-BimeVtWH.js",
38
+ "src/features/admin/AdminConsole.tsx": "/static/app/assets/AdminConsole-Ds8u36lf.js",
39
+ "src/features/brain/BrainHome.tsx": "/static/app/assets/BrainHome-Dp8gzQoF.js",
40
+ "src/features/command/CommandPalette.tsx": "/static/app/assets/CommandPalette-Ds0DnRSC.js",
41
+ "src/pages/Act.tsx": "/static/app/assets/Act-B3MSgNsJ.js",
42
+ "src/pages/Brain.tsx": "/static/app/assets/Brain-XdHCIB6a.js",
43
+ "src/pages/Capture.tsx": "/static/app/assets/Capture-BwSZmiZ8.js",
44
+ "src/pages/Library.tsx": "/static/app/assets/Library-SqzHjyfx.js",
45
+ "src/pages/System.tsx": "/static/app/assets/System-w-9miIG8.js"
44
46
  }
45
47
  }