ltcai 2.2.1 → 2.2.7

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 (44) hide show
  1. package/README.md +183 -140
  2. package/codex_telegram_bot.py +6 -2
  3. package/docs/CHANGELOG.md +100 -23
  4. package/docs/EDITION_STRATEGY.md +8 -8
  5. package/docs/ENTERPRISE.md +5 -5
  6. package/docs/PLUGIN_SDK.md +4 -4
  7. package/docs/V2_ARCHITECTURE.md +9 -9
  8. package/docs/architecture.md +18 -17
  9. package/docs/images/admin-dashboard.png +0 -0
  10. package/docs/images/knowledge-graph.png +0 -0
  11. package/docs/images/lattice-ai-demo.gif +0 -0
  12. package/docs/images/lattice-ai-hero.png +0 -0
  13. package/docs/images/mobile-responsive.png +0 -0
  14. package/docs/images/pipeline.png +0 -0
  15. package/docs/images/workspace-dark.png +0 -0
  16. package/docs/images/workspace-light.png +0 -0
  17. package/latticeai/__init__.py +1 -1
  18. package/latticeai/api/static_routes.py +10 -0
  19. package/latticeai/core/logging_safety.py +62 -0
  20. package/latticeai/core/workspace_os.py +1 -1
  21. package/package.json +10 -5
  22. package/static/account.html +9 -4
  23. package/static/activity.html +4 -4
  24. package/static/admin.html +8 -3
  25. package/static/agents.html +4 -4
  26. package/static/chat.html +15 -10
  27. package/static/css/reference/account.css +303 -0
  28. package/static/css/reference/admin.css +610 -0
  29. package/static/css/reference/base.css +1658 -0
  30. package/static/{lattice-reference.css → css/reference/chat.css} +243 -3599
  31. package/static/css/reference/graph.css +1016 -0
  32. package/static/css/responsive.css +226 -4
  33. package/static/css/tokens.css +16 -5
  34. package/static/favicon.ico +0 -0
  35. package/static/graph.html +9 -4
  36. package/static/platform.css +1 -1
  37. package/static/plugins.html +4 -4
  38. package/static/scripts/chat.js +187 -69
  39. package/static/scripts/ux.js +1 -1
  40. package/static/sw.js +5 -3
  41. package/static/workflows.html +4 -4
  42. package/static/workspace.css +75 -14
  43. package/static/workspace.html +5 -5
  44. package/telegram_bot.py +18 -14
package/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,77 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.2.7] - 2026-06-05
4
+
5
+ > Visual Stabilization Release — browser-rendered screens were reviewed and
6
+ > polished until Chat, onboarding, graph, Workspace OS, and operational panels
7
+ > felt like one product.
8
+
9
+ ### Fixed
10
+
11
+ - **Chat composer haze** — removed the dark-mode white/milky bottom composer
12
+ effect and the legacy inner textarea border; the shell now owns the focus
13
+ state and the attachment/send controls stay readable.
14
+ - **Knowledge Graph canvas** — replaced the washed-out light graph work surface
15
+ with an intentional dark canvas treatment.
16
+ - **Workspace OS dark surfaces** — relationship/list cards, inputs, tags,
17
+ health cards, and capability cards no longer fall back to hardcoded white.
18
+ - **Onboarding/modals** — workspace select, PC environment analysis,
19
+ recommendation result, auto setup, mode select, pipeline, My Computer,
20
+ profile, settings, Private VPC, and model-state panels now share the same
21
+ dark panel language.
22
+ - **Account dark contrast** — account/register logo text, inputs, and window
23
+ controls remain readable in dark mode.
24
+
25
+ ### Changed
26
+
27
+ - **Cache-busting** — all versioned frontend assets now use `?v=2.2.7`,
28
+ including `/static/scripts/chat.js?v=2.2.7`.
29
+ - **Version sync** — Python package, npm package, VS Code extension, Workspace
30
+ OS, lockfiles, and runtime metadata aligned at `2.2.7`.
31
+
32
+ ### Validation
33
+
34
+ - Release target includes Python compile/pytest, npm lint/typecheck/test/build,
35
+ Python build + twine check, npm pack, VSIX package, and Playwright visual QA.
36
+ - Package-store publishing remains manual; release artifacts are version-scoped
37
+ and must use exact `2.2.7` filenames.
38
+
39
+ ## [2.2.5] - 2026-06-04
40
+
41
+ > Release Hygiene Hotfix — dark-mode overlay clarity, modal state protection,
42
+ > static asset version alignment, favicon routing, and Telegram log redaction.
43
+
44
+ ### Added
45
+
46
+ - **Modal manager** — Chat overlays now share one blocking-modal controller with
47
+ Escape close, backdrop close, pagehide/navigation cleanup, and body scroll-lock
48
+ restoration.
49
+ - **Favicon asset** — `static/favicon.ico` is packaged and served by
50
+ `/favicon.ico`.
51
+ - **Sensitive-log helper** — Telegram bot tokens are normalized to
52
+ `bot123:REDACTED` before HTTP, exception, or response text reaches logs.
53
+ - **Validation coverage** — unit tests for token masking and static release
54
+ hygiene, plus Playwright checks for modal stack behavior and favicon response.
55
+
56
+ ### Changed
57
+
58
+ - **Overlay theme tokens** — full-screen overlays use `--overlay-scrim` and no
59
+ blur-heavy backdrop, preventing washed-out dark-mode UI.
60
+ - **Surface token coverage** — modal, drawer, file manager, My Computer,
61
+ onboarding, model switcher, pipeline, and admin surfaces are remapped to
62
+ semantic tokens (`--modal`, `--surface`, `--surface-elevated`, `--input`).
63
+ - **Cache-busting** — all versioned frontend assets now use `?v=2.2.5`, including
64
+ `/static/scripts/chat.js?v=2.2.5`.
65
+ - **Version sync** — Python package, npm package, VS Code extension, Workspace
66
+ OS, lockfiles, and runtime metadata aligned at `2.2.5`.
67
+
68
+ ### Validation
69
+
70
+ - Release target includes Python compile/pytest, npm lint/typecheck/test/build,
71
+ Python build + twine check, npm pack, VSIX package, and Playwright visual QA.
72
+ - Package-store publishing remains manual; release artifacts are version-scoped
73
+ and must use exact `2.2.5` filenames.
74
+
3
75
  ## [2.2.1] - 2026-06-04
4
76
 
5
77
  > Frontend / UX Overhaul Release — Lattice AI keeps feature behavior stable
@@ -30,6 +102,11 @@
30
102
  plain language.
31
103
  - **Manual release scripts** — local publish scripts now build exact-version
32
104
  artifacts before upload and validate the same artifact set used by CI.
105
+ - **Marketplace positioning** — README, VS Code Marketplace/Open VSX README,
106
+ npm metadata, VSIX metadata, and release copy now use the local-first AI
107
+ workspace / AI pipeline / Knowledge Graph / multi-agent workflow positioning.
108
+ - **Release media refresh** — v2.2.1 screenshots and demo GIF regenerated from
109
+ the live local app under `docs/images/`.
33
110
 
34
111
  ### Validation
35
112
 
@@ -58,7 +135,7 @@
58
135
  ### Changed
59
136
 
60
137
  - **README / architecture rewrite** — current docs now describe Lattice AI as an
61
- AI Knowledge OS rather than a chat app or model launcher.
138
+ AI Knowledge Graph workspace rather than a chat app or model launcher.
62
139
  - **Multimodal recommendation logic** — local recommendation catalogs and setup
63
140
  flows use current multimodal model families only: Gemma 4, Qwen3-VL, and
64
141
  Llama 4.
@@ -122,7 +199,7 @@
122
199
 
123
200
  ### Changed
124
201
 
125
- - Python package, npm package, VS Code extension, Workspace OS, FastAPI app, and
202
+ - Python package, npm package, VS Code extension, workspace, FastAPI app, and
126
203
  `/health` version metadata aligned at `2.1.0`.
127
204
  - Multi-Agent Runtime, Plugin SDK, Workflow Engine, and Realtime surface
128
205
  versions now report `2.1.0`.
@@ -139,13 +216,13 @@
139
216
 
140
217
  ## [2.0.0] - 2026-06-01
141
218
 
142
- > Agentic Workspace Platform — Lattice AI becomes a local-first **Agentic
219
+ > Multi-Agent Workflow Platform — Lattice AI becomes a local-first **Agentic
143
220
  > Workspace Platform** with four integrated subsystems: Plugin SDK, Workflow
144
221
  > Designer, Multi-Agent Runtime 2.0, and Realtime Collaboration. Backward
145
222
  > compatible and additive: API paths/schemas, `server:app`,
146
223
  > `latticeai.server_app.app`, CLI, Workspace/Chat/Model/MCP/KG APIs, existing
147
224
  > skills/snapshots/memories/agent & workflow history, and VS Code extension
148
- > commands remain stable. New Workspace OS state keys (`plugin_registry`,
225
+ > commands remain stable. New workspace state keys (`plugin_registry`,
149
226
  > `workflow_runs`) are backfilled on load via deep-merge — no destructive
150
227
  > migration.
151
228
 
@@ -173,7 +250,7 @@
173
250
  `/agents/api/*`, page `/agents`.
174
251
  - **Realtime Collaboration** (`latticeai/core/realtime.py`,
175
252
  `latticeai/api/realtime.py`) — in-process pub/sub bus, presence, and an
176
- activity feed over SSE. Wired as the Workspace OS `event_sink`, so every
253
+ activity feed over SSE. Wired as the workspace `event_sink`, so every
177
254
  timeline event flows to the feed automatically. Workspace isolation enforced;
178
255
  single-user local mode preserved. Routes `/realtime/stream` (SSE),
179
256
  `/realtime/feed`, `/realtime/presence*`, page `/activity`.
@@ -191,7 +268,7 @@
191
268
 
192
269
  ### Changed
193
270
 
194
- - Python package, npm package, VS Code extension, Workspace OS, FastAPI app, and
271
+ - Python package, npm package, VS Code extension, workspace, FastAPI app, and
195
272
  `/health` version metadata aligned at `2.0.0`.
196
273
  - `server_app` cross-system wiring extracted into
197
274
  `latticeai/services/platform_runtime.py` to keep the assembly file lean.
@@ -234,7 +311,7 @@
234
311
 
235
312
  ### Changed
236
313
 
237
- - Python package, npm package, VS Code extension, Workspace OS, FastAPI app, and
314
+ - Python package, npm package, VS Code extension, workspace, FastAPI app, and
238
315
  `/health` version metadata aligned at `1.7.0`.
239
316
  - CI package validation is version-scoped instead of a broad `dist/*` check.
240
317
 
@@ -255,7 +332,7 @@
255
332
 
256
333
  ### Added
257
334
 
258
- - **Knowledge Graph Explorer (Workspace OS)** — an Entity Explorer (importance-
335
+ - **Knowledge Graph Explorer (workspace)** — an Entity Explorer (importance-
259
336
  ranked entity cards + search) with a detail panel showing inbound/outbound
260
337
  relationships, related entities, and the shortest path back to you; plus a
261
338
  Recent Activity feed and a Workspace Memory feed. Built entirely on the existing
@@ -271,7 +348,7 @@
271
348
  - **Skill Marketplace tabs** — Recommended / Popular / Installed / Updates tabs
272
349
  with version, category, and source, plus install / enable / disable actions on
273
350
  the existing skill lifecycle API.
274
- - **Enterprise capability panel** — a 12-capability status matrix in Workspace OS
351
+ - **Enterprise capability panel** — a 12-capability status matrix in the workspace
275
352
  (Community reports all disabled; nothing gates a Community feature).
276
353
 
277
354
  ### Changed
@@ -373,7 +450,7 @@
373
450
  lines. The file now owns FastAPI construction, lifespan, middleware, static
374
451
  mount, router wiring, and compatibility globals only.
375
452
  - **Chat/history/agent extracted** — `/chat`, `/history*`, `/agent*`, streaming
376
- generator, document-generation session handling, Graph RAG trace recording,
453
+ generator, document-generation session handling, Knowledge Graph context trace recording,
377
454
  and AgentRuntime wiring moved to `latticeai/api/chat.py` with behavior and
378
455
  SSE chunk format preserved.
379
456
  - **Model runtime/provider extracted** — provider catalogs, engine aliases,
@@ -449,7 +526,7 @@
449
526
 
450
527
  - **server_app.py modularization (phase 2)** — reduced
451
528
  `latticeai/server_app.py` from ~6,585 to ~5,948 lines by extracting the
452
- Workspace OS / Organization API and the health/engine-summary endpoints into
529
+ workspace / Organization API and the health/engine-summary endpoints into
453
530
  dedicated routers backed by a new service layer. `server_app` now focuses on
454
531
  app assembly, lifespan, middleware, and router include. The historical
455
532
  `server:app` import path, all API paths, and request/response shapes are
@@ -496,7 +573,7 @@
496
573
 
497
574
  ### Added
498
575
 
499
- - **Organization Workspace foundation** — Workspace OS now distinguishes
576
+ - **Organization Workspace foundation** — workspace now distinguishes
500
577
  `personal` and `organization` workspace types. A full workspace model
501
578
  (`workspace_id`, `name`, `type`, `owner_user_id`, `members`, `roles`,
502
579
  `settings`, `created_at`, `updated_at`, `status`) is stored in the existing
@@ -524,9 +601,9 @@
524
601
  verifies that exactly the expected `whl`/`tar.gz`/`vsix`/`tgz` exist for a
525
602
  single version, that internal versions match, that the VSIX contains
526
603
  `extension/out/extension.js`, and warns when `dist/` mixes other versions.
527
- - **Workspace OS UI** — Personal/Organization workspace switcher, current
604
+ - **workspace UI** — Personal/Organization workspace switcher, current
528
605
  workspace indicator, and a minimal organization create / member / role panel
529
- wired into the existing Workspace OS command center.
606
+ wired into the existing workspace command center.
530
607
 
531
608
  ### Changed
532
609
 
@@ -535,7 +612,7 @@
535
612
  `actions/setup-node@v5`, `actions/setup-python@v6`. Artifact upload and
536
613
  `twine check` are now scoped to the tagged version only — never a `dist/*`
537
614
  glob — and the build runs the release artifact validator before upload.
538
- - Existing 1.0.x Workspace OS state is migrated non-destructively to the v1.1
615
+ - Existing 1.0.x workspace state is migrated non-destructively to the v1.1
539
616
  workspace model on load; legacy records map to the Personal workspace.
540
617
  - Release metadata aligned to `1.1.0` across Python, npm, VS Code extension,
541
618
  FastAPI app metadata, and `/health`.
@@ -563,18 +640,18 @@
563
640
 
564
641
  ## [1.0.0] - 2026-05-31
565
642
 
566
- > AI Workspace OS integration release.
643
+ > AI workspace integration release.
567
644
 
568
645
  ### Added
569
646
 
570
- - **Workspace OS foundation** — new `/workspace` UI and `/workspace/*` API surface
647
+ - **workspace foundation** — new `/workspace` UI and `/workspace/*` API surface
571
648
  organize LatticeAI around Graph, Snapshot, Memory, Agent, Workflow, Skills,
572
649
  and Timeline areas while preserving existing chat, graph, admin, CLI, and MCP
573
650
  compatibility.
574
651
  - **First-run onboarding wizard** — reentrant step state, completion API,
575
652
  hardware scan, model recommendations, folder connection state, and recovery
576
653
  from failed/skipped steps.
577
- - **Graph RAG answer trace** — each generated answer records source files,
654
+ - **Knowledge Graph context answer trace** — each generated answer records source files,
578
655
  graph nodes, graph edges, confidence, retrieval metadata, graph jumps, and
579
656
  source jumps.
580
657
  - **Local indexing dashboard** — indexed folder status, watcher state, success
@@ -594,7 +671,7 @@
594
671
  - **Local Computer Memory** — defaults OFF, requires explicit approval, tracks
595
672
  activity summaries only after consent, and links approved records to graph.
596
673
  - **Skill Marketplace registry** — install, uninstall, update, enable, disable,
597
- version tracking, and metadata state surfaced in Workspace OS.
674
+ version tracking, and metadata state surfaced in the workspace.
598
675
  - **Workflow Graph** — stores workflow timelines and searchable workflow graphs
599
676
  for repeatable actions such as Upload -> Summarize -> Generate -> Export.
600
677
  - **VS Code workflow** — added Refactor Selection, Generate Tests, Send To
@@ -1142,7 +1219,7 @@ latticeai/
1142
1219
  `언급함` · `포함함` · `해결함` · `의존함` · `설명함` · `비교함` · `사용함` · `연결함` · `확장함` · `생성함` · `대체함` · `지원함` · `발생함` · `관련됨` · `작성함` · `업로드함`
1143
1220
 
1144
1221
  **핵심 개선**
1145
- - `_extract_concepts()` — 고유명사·복합어·기술 용어 추출 (Lattice AI, Graph RAG, VS Code 등)
1222
+ - `_extract_concepts()` — 고유명사·복합어·기술 용어 추출 (Lattice AI, Knowledge Graph context, VS Code 등)
1146
1223
  - `_classify_node_type()` — 개념별 노드 타입 자동 분류 (윈도우 컨텍스트 기반)
1147
1224
  - `_infer_edge()` — 문장 내 동사·조사 패턴으로 엣지 레이블 자동 결정
1148
1225
  - `_extract_triples()` — 문장 단위 개념 쌍 → (주어, 동사, 목적어) 트리플 추출
@@ -1230,7 +1307,7 @@ latticeai/
1230
1307
  #### VS Code 익스텐션 메타데이터 개선
1231
1308
  - **카테고리** `Other` → `AI, Machine Learning, Chat, Other` (Marketplace 검색 노출 증가)
1232
1309
  - **키워드** 8개 → 16개 추가 (`copilot`, `apple-silicon`, `groq`, `graph-rag` 등)
1233
- - **설명 문구** 구체화 — 핵심 차별점(MLX, MCP, Graph RAG, zero telemetry) 명시
1310
+ - **설명 문구** 구체화 — 핵심 차별점(MLX, MCP, Knowledge Graph context, local-first data handling) 명시
1234
1311
  - **익스텐션 README 전면 재작성** — 기능표 · 빠른 시작 · 단축키 · 지원 모델 · 설정 · 비교표 포함
1235
1312
 
1236
1313
  #### 리포지터리 정리
@@ -1290,7 +1367,7 @@ latticeai/
1290
1367
  - clear 동작을 `ClearEvent` 노드로 그래프에 기록 (언제 누가 clear 했는지 감사 추적)
1291
1368
  - **민감정보 검사** — 문서 업로드 텍스트를 감사 로그에 기록
1292
1369
 
1293
- ### Graph RAG / Data Graph
1370
+ ### Knowledge Graph context / Data Graph
1294
1371
 
1295
1372
  - **한국어 단어 검색 개선** — 2글자 키워드(`문서`, `모델` 등) RAG 검색 누락 문제 수정
1296
1373
  - **`graph.html` 독립 페이지 유지** — 채팅 사이드바 `Data Graph` 버튼으로 연결, New Chat 버튼은 대화 검색 아래로 이동
@@ -1587,7 +1664,7 @@ latticeai/
1587
1664
 
1588
1665
  ### Added
1589
1666
  - **Data Graph** — 채팅·AI 답변·업로드 문서를 SQLite 지식 그래프로 자동 구조화, `/graph`에서 Canvas 기반 Force-directed 시각화
1590
- - **Graph RAG** — 그래프 검색 결과를 채팅 컨텍스트에 자동 주입하여 이전 대화·문서 참조 능력 강화
1667
+ - **Knowledge Graph context** — 그래프 검색 결과를 채팅 컨텍스트에 자동 주입하여 이전 대화·문서 참조 능력 강화
1591
1668
  - **Telegram 원격 제어** — 인라인 키보드 메뉴로 상태 조회, 모델 관리, 스크린샷, 그래프 통계, 문서 업로드 등 원격 제어
1592
1669
  - `knowledge_graph.py` — KnowledgeGraphStore (node/edge/chunk/event), `ingest_message()`, `ingest_document()`, `context_for_query()`, `search()`, `neighbors()`
1593
1670
  - `static/graph.html` — 타입별 색상, 줌/패닝, 핀치 줌, 이웃 하이라이트, 노드 상세 정보, 채팅 연결 링크
@@ -5,12 +5,12 @@ the boundary stays predictable for contributors and users.
5
5
 
6
6
  ## Editions
7
7
 
8
- - **Community** — this repository, MIT licensed. Local-first **Agentic Workspace
9
- Platform**: local LLMs, knowledge graph, Personal **and** Organization
10
- workspaces, role-based membership, snapshots, memory, agents, workflows,
11
- skills, the auditable timeline, and the full v2.0 platform — **Plugin SDK**,
12
- **Workflow Designer**, **Multi-Agent Runtime 2.0**, and **Realtime
13
- Collaboration**. Community is a complete product.
8
+ - **Community** — this repository, MIT licensed. Local-first **AI workspace
9
+ platform**: local models, knowledge graph, Personal **and** Organization
10
+ workspaces, role-based membership, snapshots, durable context, AI pipelines,
11
+ multi-agent workflows, skills, the auditable timeline, and the full v2
12
+ platform — **Plugin SDK**, **Workflow Designer**, **Multi-Agent Runtime**, and
13
+ **Realtime Collaboration**. Community is a complete product.
14
14
  - **Enterprise** — a separately-distributed plugin adding organization-scale
15
15
  governance, identity, compliance, and deployment capabilities. Distributed and
16
16
  licensed separately. See [ENTERPRISE.md](ENTERPRISE.md).
@@ -40,7 +40,7 @@ the boundary stays predictable for contributors and users.
40
40
  |--------|------------------------|------------------------|
41
41
  | Personal & Organization workspaces | ✅ | — |
42
42
  | Base roles (owner/admin/member/viewer) | ✅ | — |
43
- | Snapshots / memory / agents / workflows / skills | ✅ | — |
43
+ | Snapshots / durable context / AI pipelines / multi-agent workflows / skills | ✅ | — |
44
44
  | Plugin SDK (manifest, lifecycle, permission boundary) | ✅ | RBAC/ABAC over plugin permissions |
45
45
  | Workflow Designer (build/run/run-history) | ✅ | Org approval gates, scheduled triggers |
46
46
  | Multi-Agent Runtime 2.0 (roles/handoff/retry) | ✅ | Policy-bounded autonomous runs |
@@ -55,7 +55,7 @@ the boundary stays predictable for contributors and users.
55
55
  ## Detecting edition at runtime
56
56
 
57
57
  - `GET /workspace/editions` → edition + per-capability matrix.
58
- - `GET /workspace/os` → `edition` block in the Workspace OS summary.
58
+ - `GET /workspace/os` → `edition` block in the workspace summary.
59
59
  - `/admin#enterprise` → Admin policy, audit export, SIEM preview,
60
60
  organization settings, and capability status UI.
61
61
  - `GET /admin/enterprise` and `GET /admin/enterprise/siem-export` → descriptive
@@ -8,10 +8,10 @@
8
8
  Lattice AI follows an **open-core** model:
9
9
 
10
10
  - **Community** (this repository, MIT) is fully functional on its own: local
11
- LLMs, knowledge graph, Personal and Organization workspaces, roles, snapshots,
12
- memory, agents, workflows, skills, the auditable timeline, and the full v2.0
13
- Agentic Workspace Platform (Plugin SDK, Workflow Designer, Multi-Agent Runtime
14
- 2.0, Realtime Collaboration).
11
+ models, knowledge graph, Personal and Organization workspaces, roles,
12
+ snapshots, durable context, AI pipelines, multi-agent workflows, skills, the
13
+ auditable timeline, and the full v2 workspace platform (Plugin SDK, Workflow
14
+ Designer, Multi-Agent Runtime, Realtime Collaboration).
15
15
  - **Enterprise** is a separately-distributed plugin that attaches advanced,
16
16
  organization-scale governance and deployment capabilities through a stable
17
17
  runtime seam. It is never bundled into the Community build.
@@ -36,7 +36,7 @@ Community code consults the seam at extension points via
36
36
  always `False`, so the Community code path is taken and nothing is gated off.
37
37
 
38
38
  The live edition + capability matrix is exposed at `GET /workspace/editions`,
39
- surfaced in the Workspace OS summary (`GET /workspace/os` → `edition`), and
39
+ surfaced in the workspace summary (`GET /workspace/os` → `edition`), and
40
40
  shown in the Enterprise Admin UI at `/admin#enterprise`.
41
41
 
42
42
  Community also exposes descriptive admin surfaces at `GET /admin/enterprise`
@@ -14,7 +14,7 @@ through the existing skill registry rather than owning a parallel one.
14
14
 
15
15
  > **Compatibility.** v1.x data and APIs are preserved. The Plugin SDK adds new
16
16
  > code (`latticeai/core/plugins.py`, `latticeai/api/plugins.py`) and new
17
- > persisted state (`plugin_registry` inside the Workspace OS store). Nothing in
17
+ > persisted state (`plugin_registry` inside the workspace store). Nothing in
18
18
  > the v1.x contract changes. The new HTTP routes live under `/plugins/registry`
19
19
  > and friends, which do **not** collide with the pre-existing
20
20
  > `/plugins/directory` marketplace routes.
@@ -28,7 +28,7 @@ PLUGIN_SDK_VERSION = "2.2.0"
28
28
  ## v2.2 additions
29
29
 
30
30
  - `execute_action(...)` emits `plugin_started`, `plugin_completed`, and
31
- `execution_failed` through the existing Workspace OS timeline/realtime feed.
31
+ `execution_failed` through the existing workspace timeline/realtime feed.
32
32
  - Plugin outputs can be carried inside agent context packets and replayed from
33
33
  agent/workflow run history.
34
34
  - The local template catalog (`latticeai.core.marketplace`) adds Plugin,
@@ -228,7 +228,7 @@ discover -> validate -> install -> enable / disable -> uninstall
228
228
  ```
229
229
 
230
230
  Lifecycle *state* (installed / enabled / version / status) is delegated to the
231
- Workspace OS store via a small `store` port, so plugins reuse the same
231
+ workspace store via a small `store` port, so plugins reuse the same
232
232
  local-first JSON persistence, workspace scoping, and timeline events as skills.
233
233
  The registry itself owns only manifest parsing and the execution boundary.
234
234
 
@@ -355,7 +355,7 @@ A persisted entry looks like:
355
355
  }
356
356
  ```
357
357
 
358
- Each lifecycle mutation also records a Workspace OS timeline event
358
+ Each lifecycle mutation also records a workspace timeline event
359
359
  (`plugin_installed`, `plugin_uninstalled`, `plugin_enabled`, `plugin_disabled`)
360
360
  under the `plugins` channel.
361
361
 
@@ -1,11 +1,11 @@
1
- # Lattice AI v2 Architecture — Agentic Workspace Platform
1
+ # Lattice AI v2 Architecture — AI Workspace, Pipeline, and Workflow Platform
2
2
 
3
- Lattice AI v2.0.0 turned the local-first Workspace OS into a full **Agentic
4
- Workspace Platform**. v2.2.0 keeps that architecture and matures the operational
5
- layer: explicit handoffs, context packets, review/retry loops, memory snapshots,
6
- planning records, replay, marketplace templates, and realtime execution
7
- observability all compose over the same local-first JSON store and Knowledge
8
- Graph.
3
+ Lattice AI v2.0.0 introduced the local-first AI workspace, AI pipeline,
4
+ Knowledge Graph, and multi-agent workflow foundation. v2.2.1 keeps that
5
+ architecture and matures the operational layer: explicit handoffs, context
6
+ packets, review/retry loops, durable context snapshots, planning records,
7
+ replay, marketplace templates, and realtime workflow observability all compose
8
+ over the same local-first JSON store and Knowledge Graph.
9
9
 
10
10
  This document describes how the v2 platform pillars fit together, the small set of
11
11
  **additive integration seams** that wire them, the cross-integration matrix that
@@ -47,7 +47,7 @@ templates / actions under one versioned, permissioned unit.
47
47
 
48
48
  Design rules enforced by the module: no import-time I/O (the filesystem is only
49
49
  touched on `discover()`), no FastAPI and no globals (lifecycle state lives in the
50
- Workspace OS store), and permissions are an allow-list — the execution boundary
50
+ workspace store), and permissions are an allow-list — the execution boundary
51
51
  refuses any capability a plugin did not declare *and* was not granted.
52
52
 
53
53
  A validated `plugin.json` manifest:
@@ -213,7 +213,7 @@ class RealtimeBus:
213
213
  v2.2.0 adds a local marketplace foundation rather than a cloud marketplace
214
214
  service. `TemplateCatalog` manages Plugin, Workflow, and Agent templates with
215
215
  metadata, export/import, install hooks, and a template registry stored through
216
- Workspace OS. Marketplace templates are local extension points for the existing
216
+ workspace. Marketplace templates are local extension points for the existing
217
217
  Plugin SDK, Workflow Engine, and Multi-Agent Runtime; they do not bypass plugin
218
218
  permissions, workflow execution guards, or workspace scoping.
219
219
 
@@ -1,9 +1,10 @@
1
1
  # Lattice AI Architecture
2
2
 
3
- Lattice AI is a local-first **AI Workspace and Knowledge Graph platform**. The
4
- architecture is organized around one durable center: the Knowledge Graph.
5
- Models, tools, agents, workflows, and UI modes are replaceable layers that
6
- operate on top of the graph.
3
+ Lattice AI is a local-first **AI workspace, AI pipeline platform, Knowledge
4
+ Graph platform, and multi-agent workflow platform**. The architecture is
5
+ organized around one durable center: the Knowledge Graph. Models, tools,
6
+ agents, workflows, and UI modes are replaceable layers that operate on top of
7
+ workspace and graph context.
7
8
 
8
9
  ## Architecture Goals
9
10
 
@@ -15,7 +16,7 @@ operate on top of the graph.
15
16
  - Keep basic and advanced modes feature-equivalent.
16
17
  - Keep admin-only capabilities explicit and auditable.
17
18
 
18
- ## System View
19
+ ## Workspace View
19
20
 
20
21
  ```mermaid
21
22
  flowchart TD
@@ -24,9 +25,9 @@ flowchart TD
24
25
  Extract["Entity, relation, evidence extraction"]
25
26
  Graph["Knowledge Graph"]
26
27
  Context["Graph context builder"]
27
- Models["Multimodal model runtime"]
28
- Agents["Agent runtime and workflows"]
29
- Outputs["Advice, analysis, documents, automation"]
28
+ Models["Local or cloud model workflow"]
29
+ Agents["Multi-agent workflow"]
30
+ Outputs["Coding actions, analysis, documents, team workflows"]
30
31
  Admin["Admin policy and audit"]
31
32
 
32
33
  User --> Ingestion
@@ -42,7 +43,7 @@ flowchart TD
42
43
 
43
44
  ## Durable Core
44
45
 
45
- The Knowledge Graph stores the durable user and organization memory:
46
+ The Knowledge Graph stores durable personal and organization workspace context:
46
47
 
47
48
  - files and document evidence
48
49
  - images and screenshots
@@ -52,8 +53,8 @@ The Knowledge Graph stores the durable user and organization memory:
52
53
  - generated artifacts
53
54
  - agent and workflow events
54
55
 
55
- The LLM is not the product core. It is an execution worker that can be replaced
56
- when hardware, policy, or user preference changes.
56
+ The model is not the product core. It is a replaceable participant in the
57
+ workspace pipeline.
57
58
 
58
59
  ## Multimodal Ingestion
59
60
 
@@ -75,9 +76,9 @@ input set includes:
75
76
  The architecture must not ask users to convert these to plain text before AI can
76
77
  work on them.
77
78
 
78
- ## Model Runtime Policy
79
+ ## Local Model Management Policy
79
80
 
80
- Local recommended models must be multimodal. The v2.2 local runtime policy is:
81
+ Local recommended models must be multimodal. The v2.2 local model workflow policy is:
81
82
 
82
83
  - macOS Apple Silicon: MLX-VLM first
83
84
  - Windows: llama.cpp multimodal path, with LM Studio as a user-friendly option
@@ -130,11 +131,11 @@ Basic mode and advanced mode have the same feature access.
130
131
  | --- | --- |
131
132
  | `latticeai/services/model_catalog.py` | Multimodal model catalog, source metadata, aliases |
132
133
  | `latticeai/services/model_recommendation.py` | Hardware-aware multimodal recommendation |
133
- | `latticeai/services/model_runtime.py` | Download, load, server, and runtime orchestration |
134
+ | `latticeai/services/model_runtime.py` | Download, load, server, and model workflow orchestration |
134
135
  | `llm_router.py` | MLX-VLM and OpenAI-compatible model routing |
135
- | `knowledge_graph.py` | Graph storage, extraction, local folder graph RAG |
136
+ | `knowledge_graph.py` | Graph storage, extraction, local folder knowledge graph context |
136
137
  | `latticeai/core/context_builder.py` | Graph context for generation |
137
- | `latticeai/core/workspace_os.py` | Workspace state, timeline, snapshots, memory |
138
+ | `latticeai/core/workspace_os.py` | Workspace state, timeline, snapshots, durable context |
138
139
  | `latticeai/core/multi_agent.py` | Planner/executor/reviewer/researcher orchestration |
139
140
  | `latticeai/core/workflow_engine.py` | Workflow definitions and run history |
140
141
  | `latticeai/core/plugins.py` | Plugin manifest, registry, permission boundary |
@@ -142,7 +143,7 @@ Basic mode and advanced mode have the same feature access.
142
143
 
143
144
  ## Compatibility
144
145
 
145
- v2.2.0 preserves the additive Workspace OS and API compatibility posture from
146
+ v2.2.1 preserves the additive workspace and API compatibility posture from
146
147
  v2.x. Existing graph/workspace data is migrated non-destructively. The release
147
148
  does remove current recommendation entries for old or text-only model paths, but
148
149
  it does not destructively mutate existing user graph data.
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "2.2.1"
3
+ __version__ = "2.2.7"
@@ -82,6 +82,16 @@ def create_static_routes_router(
82
82
  if not p.exists():
83
83
  raise HTTPException(status_code=404)
84
84
  return FileResponse(str(p), media_type="application/manifest+json")
85
+
86
+ @api_router.api_route("/favicon.ico", methods=["GET", "HEAD"])
87
+ async def favicon():
88
+ ico = STATIC_DIR / "favicon.ico"
89
+ png = STATIC_DIR / "icons" / "favicon-32.png"
90
+ if ico.exists():
91
+ return FileResponse(str(ico), media_type="image/x-icon")
92
+ if png.exists():
93
+ return FileResponse(str(png), media_type="image/png")
94
+ raise HTTPException(status_code=404)
85
95
 
86
96
 
87
97
  @api_router.get("/sw.js")
@@ -0,0 +1,62 @@
1
+ """Helpers for keeping sensitive values out of logs."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import logging
6
+ import re
7
+ from typing import Any
8
+
9
+ _TELEGRAM_BOT_TOKEN_RE = re.compile(r"\bbot(\d{5,20}):([A-Za-z0-9_-]{8,})")
10
+ _TELEGRAM_BARE_TOKEN_RE = re.compile(
11
+ r"(?<![A-Za-z0-9_:-])(\d{5,20}):([A-Za-z0-9_-]{8,})(?![A-Za-z0-9_-])"
12
+ )
13
+ _LOG_FILTER_INSTALLED = False
14
+
15
+
16
+ def mask_telegram_bot_token(value: Any) -> str:
17
+ """Return ``value`` as text with Telegram bot token secrets redacted."""
18
+
19
+ text = str(value)
20
+ text = _TELEGRAM_BOT_TOKEN_RE.sub(r"bot\1:REDACTED", text)
21
+ return _TELEGRAM_BARE_TOKEN_RE.sub(r"bot\1:REDACTED", text)
22
+
23
+
24
+ def safe_log_text(value: Any) -> str:
25
+ """Sanitize text before it is sent to application logs."""
26
+
27
+ return mask_telegram_bot_token(value)
28
+
29
+
30
+ def _safe_log_arg(value: Any) -> Any:
31
+ if isinstance(value, str):
32
+ return mask_telegram_bot_token(value)
33
+ if isinstance(value, tuple):
34
+ return tuple(_safe_log_arg(item) for item in value)
35
+ if isinstance(value, list):
36
+ return [_safe_log_arg(item) for item in value]
37
+ if isinstance(value, dict):
38
+ return {_safe_log_arg(key): _safe_log_arg(item) for key, item in value.items()}
39
+
40
+ text = str(value)
41
+ masked = mask_telegram_bot_token(text)
42
+ return masked if masked != text else value
43
+
44
+
45
+ def install_sensitive_log_filter() -> None:
46
+ """Install a process-wide log-record sanitizer for known secret shapes."""
47
+
48
+ global _LOG_FILTER_INSTALLED
49
+ if _LOG_FILTER_INSTALLED:
50
+ return
51
+
52
+ original_factory = logging.getLogRecordFactory()
53
+
54
+ def factory(*args: Any, **kwargs: Any) -> logging.LogRecord:
55
+ record = original_factory(*args, **kwargs)
56
+ record.msg = _safe_log_arg(record.msg)
57
+ if record.args:
58
+ record.args = _safe_log_arg(record.args)
59
+ return record
60
+
61
+ logging.setLogRecordFactory(factory)
62
+ _LOG_FILTER_INSTALLED = True
@@ -18,7 +18,7 @@ from pathlib import Path
18
18
  from typing import Any, Callable, Dict, Iterable, List, Optional
19
19
 
20
20
 
21
- WORKSPACE_OS_VERSION = "2.2.1"
21
+ WORKSPACE_OS_VERSION = "2.2.7"
22
22
 
23
23
  # Workspace types separate single-user Personal workspaces from shared
24
24
  # Organization workspaces. Both keep the same local-first JSON store; the type