ltcai 11.5.0 → 11.5.1

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 (77) hide show
  1. package/README.md +25 -18
  2. package/docs/CHANGELOG.md +22 -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/docs/v11.5.1_RUST_FULL_LOOP_PLAN.md +85 -0
  11. package/lattice_brain/__init__.py +1 -1
  12. package/lattice_brain/runtime/multi_agent.py +1 -1
  13. package/latticeai/__init__.py +1 -1
  14. package/latticeai/api/agent_worker_seam.py +389 -0
  15. package/latticeai/core/legacy_compatibility.py +1 -1
  16. package/latticeai/core/marketplace.py +1 -1
  17. package/latticeai/core/messages.py +35 -0
  18. package/latticeai/core/workspace_os_constants.py +1 -1
  19. package/latticeai/runtime/build_phases/features.py +23 -2
  20. package/latticeai/services/architecture_readiness.py +1 -1
  21. package/latticeai/services/product_readiness.py +1 -1
  22. package/package.json +1 -1
  23. package/scripts/check_current_release_docs.mjs +1 -1
  24. package/scripts/check_server_i18n.mjs +1 -0
  25. package/scripts/generate_agent_loop_fixtures.py +907 -0
  26. package/scripts/generate_rust_parity_fixtures.py +70 -67
  27. package/scripts/parity_fixture_corpus_docgen.py +341 -0
  28. package/scripts/release_screen_claims.json +10 -0
  29. package/src-tauri/Cargo.lock +13 -7
  30. package/src-tauri/Cargo.toml +1 -1
  31. package/src-tauri/tauri.conf.json +1 -1
  32. package/static/app/asset-manifest.json +41 -41
  33. package/static/app/assets/{Act-CWnxSCgN.js → Act-Drs_jd-O.js} +1 -1
  34. package/static/app/assets/{AdminConsole-BEQYU6kF.js → AdminConsole-BqNx5oF6.js} +1 -1
  35. package/static/app/assets/{Brain-DWu1BhFg.js → Brain-C7bdNmz-.js} +1 -1
  36. package/static/app/assets/{BrainHome-95Hilr9R.js → BrainHome-DcTnINcI.js} +1 -1
  37. package/static/app/assets/{BrainSignals-QdeqCpAF.js → BrainSignals-Df1MRIPD.js} +1 -1
  38. package/static/app/assets/{Capture-BHpCxnzb.js → Capture-Dgsxvnbx.js} +1 -1
  39. package/static/app/assets/{Chronicle-B4xYKoed.js → Chronicle-BrkTxJK1.js} +1 -1
  40. package/static/app/assets/{CommandPalette-BVXnttSz.js → CommandPalette-DDziw7Oj.js} +1 -1
  41. package/static/app/assets/{Library-DgYcHome.js → Library-CYxeuraA.js} +1 -1
  42. package/static/app/assets/{LivingBrain-CrJLDbf7.js → LivingBrain-CNp6mvCm.js} +1 -1
  43. package/static/app/assets/{ProductFlow-DFlScKoJ.js → ProductFlow-BVsowu3Z.js} +1 -1
  44. package/static/app/assets/{ReviewCard-Cy5f48Pj.js → ReviewCard-D1LbOfJS.js} +1 -1
  45. package/static/app/assets/{System-NF8IfhTa.js → System-DcRAq7wj.js} +1 -1
  46. package/static/app/assets/arrow-left-BHYmOTWU.js +1 -0
  47. package/static/app/assets/{bot-CucuhLhm.js → bot-BK2xQ9mN.js} +1 -1
  48. package/static/app/assets/{brain-BBnSryW_.js → brain-BZNztFBb.js} +1 -1
  49. package/static/app/assets/{button-C2GUj2Ai.js → button-CjueubVZ.js} +1 -1
  50. package/static/app/assets/circle-check-CLeWJr67.js +1 -0
  51. package/static/app/assets/{circle-pause-CbkWzBmG.js → circle-pause-HRjSmpyY.js} +1 -1
  52. package/static/app/assets/{circle-play-7lEaqHdJ.js → circle-play-CMcKDVwu.js} +1 -1
  53. package/static/app/assets/{cpu-DAlCXlIy.js → cpu-B_MyTfYr.js} +1 -1
  54. package/static/app/assets/{download-RNhuuJwh.js → download-CTy0EByV.js} +1 -1
  55. package/static/app/assets/{folder-open-CLW4odzM.js → folder-open-DF6bLhTg.js} +1 -1
  56. package/static/app/assets/{hard-drive-NKEiDIAJ.js → hard-drive-CpWHG77C.js} +1 -1
  57. package/static/app/assets/{index-DMurvUuR.js → index-Dd6abJHX.js} +3 -3
  58. package/static/app/assets/index-DxmOfNRi.css +2 -0
  59. package/static/app/assets/{input-D2UhPC1X.js → input-bVgIRN3s.js} +1 -1
  60. package/static/app/assets/{link-2-6amKbP_P.js → link-2-bg6CG5Vk.js} +1 -1
  61. package/static/app/assets/{permissionCopy-Cu9TZtdR.js → permissionCopy-DFTf1HDZ.js} +1 -1
  62. package/static/app/assets/{primitives-gPsccucr.js → primitives-D7D-sQ3T.js} +1 -1
  63. package/static/app/assets/search-BgSVX6NG.js +1 -0
  64. package/static/app/assets/{share-2-Bau7KkPq.js → share-2-BLzo7U4L.js} +1 -1
  65. package/static/app/assets/{shield-alert-BufNYypi.js → shield-alert-BmngqnsJ.js} +1 -1
  66. package/static/app/assets/{textarea-BQnVWhYs.js → textarea-DOSlAQQ3.js} +1 -1
  67. package/static/app/assets/{useFocusTrap-B3_w60si.js → useFocusTrap-pZhgeee4.js} +1 -1
  68. package/static/app/assets/{useMutation-BHhCflT6.js → useMutation-BMDwNk4I.js} +1 -1
  69. package/static/app/assets/{useQuery-rBWfI-5t.js → useQuery-CSjKttRo.js} +1 -1
  70. package/static/app/assets/{utils-V_5-wxr5.js → utils-D3u_yv7B.js} +1 -1
  71. package/static/app/assets/{workspace-K1zjYUHj.js → workspace-H3bMjYXC.js} +1 -1
  72. package/static/app/index.html +4 -4
  73. package/static/sw.js +1 -1
  74. package/static/app/assets/arrow-left-DwkSYrjR.js +0 -1
  75. package/static/app/assets/circle-check-CxOVPwYq.js +0 -1
  76. package/static/app/assets/index-BLPb5lmE.css +0 -2
  77. package/static/app/assets/search-Cj_TKk_2.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.5.0 Living Brain walkthrough](output/release/v11.5.0/gifs/v11.5.0-living-brain-walkthrough.gif)
14
+ ![v11.5.1 Living Brain walkthrough](output/release/v11.5.1/gifs/v11.5.1-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.5.0/screenshots/13-chronicle.png) | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v11.5.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.5.0/screenshots/05-memory-graph.png) | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v11.5.0/screenshots/06-capture.png) |
29
- | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v11.5.0/screenshots/12-review-center.png) | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v11.5.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.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/v11.5.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.5.1/screenshots/13-chronicle.png) | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory ![Brain Chat](output/release/v11.5.1/screenshots/04-brain-chat-home.png) |
28
+ | **See how knowledge connects** — a real relationship graph, not a file list ![Memory Graph](output/release/v11.5.1/screenshots/05-memory-graph.png) | **Capture anything** — files, whole folders, notes, screenshots, web pages ![Capture](output/release/v11.5.1/screenshots/06-capture.png) |
29
+ | **Automate with review** — agent changes become proposals you approve first ![Review Center](output/release/v11.5.1/screenshots/12-review-center.png) | **Pick a model in one click** — recommended local models for your hardware ![Recommended Models](output/release/v11.5.1/screenshots/02-recommended-models.png) |
30
+ | **Watch a file become memory** — three named steps, not a pipeline diagram ![Material to memory](output/release/v11.5.1/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.5.1/screenshots/08-system.png) |
31
31
 
32
32
  ## Why Lattice AI
33
33
 
@@ -58,17 +58,23 @@ First-run flow — wake the Brain, pick the owner, load a recommended model:
58
58
 
59
59
  | | | |
60
60
  | --- | --- | --- |
61
- | ![Login](output/release/v11.5.0/screenshots/01-login.png) | ![Model install](output/release/v11.5.0/screenshots/03-install-load-progress.png) | ![Model library](output/release/v11.5.0/screenshots/07-model-library.png) |
61
+ | ![Login](output/release/v11.5.1/screenshots/01-login.png) | ![Model install](output/release/v11.5.1/screenshots/03-install-load-progress.png) | ![Model library](output/release/v11.5.1/screenshots/07-model-library.png) |
62
62
 
63
63
  Screenshot index and capture notes:
64
- [output/release/v11.5.0/SCREENSHOT_INDEX.md](output/release/v11.5.0/SCREENSHOT_INDEX.md)
64
+ [output/release/v11.5.1/SCREENSHOT_INDEX.md](output/release/v11.5.1/SCREENSHOT_INDEX.md)
65
65
 
66
66
  ## Current Release
67
67
 
68
- The current release is **11.5.0 — Rust Complete**:
68
+ The current release is **11.5.1 — Rust Full Loop**:
69
69
 
70
- Phases 2–4 of the Rust roadmap land in one release — as **working, proven
71
- pieces**, with Python converging to its target role: the AI Worker.
70
+ The two explicitly-remaining items are done: the agent loop orchestrator
71
+ now runs in Rust — proven by replaying the real Python runtime on scripted
72
+ LLM transcripts (**10 trajectories, byte-identical**) and by a live smoke
73
+ against the real worker — and the document-generation context builder is
74
+ native (53 new goldens, 247 total). Every Rust box in the target diagram
75
+ is implemented; Python remains exactly the AI Worker that diagram draws:
76
+ LLM inference, tool-handler execution, and all graph writes behind three
77
+ new fully-covered worker seams with server-side circuit breakers intact.
72
78
 
73
79
  - **The desktop's front door is now the Rust gateway.** The Tauri shell
74
80
  boots the supervisor + gateway topology by default and the webview
@@ -96,19 +102,19 @@ pieces**, with Python converging to its target role: the AI Worker.
96
102
  remains for a future release, for reasons written down in the plan.
97
103
 
98
104
  All of it lands with the floor intact: **6,861 Python + 1,761 frontend
99
- tests at 100.00% statement and branch coverage, 534 Rust workspace
100
- tests**, four bidirectional golden families, mypy/ruff/clippy clean,
105
+ tests at 100.00% statement and branch coverage — now 7,006 Python +
106
+ 1,761 frontend — and 739 Rust workspace tests**, four bidirectional golden families, mypy/ruff/clippy clean,
101
107
  verified on macOS 3.14 and a fresh-resolve python 3.11 environment.
102
108
 
103
109
  Release notes: [RELEASE.md](RELEASE.md) · Full history: [docs/CHANGELOG.md](docs/CHANGELOG.md)
104
110
 
105
- Expected artifacts for 11.5.0 release must use exact filenames:
111
+ Expected artifacts for 11.5.1 release must use exact filenames:
106
112
 
107
- - `dist/ltcai-11.5.0-py3-none-any.whl`
108
- - `dist/ltcai-11.5.0.tar.gz`
109
- - `ltcai-11.5.0.tgz`
110
- - `dist/ltcai-11.5.0.vsix`
111
- - `src-tauri/target/release/bundle/dmg/Lattice AI_11.5.0_aarch64.dmg`
113
+ - `dist/ltcai-11.5.1-py3-none-any.whl`
114
+ - `dist/ltcai-11.5.1.tar.gz`
115
+ - `ltcai-11.5.1.tgz`
116
+ - `dist/ltcai-11.5.1.vsix`
117
+ - `src-tauri/target/release/bundle/dmg/Lattice AI_11.5.1_aarch64.dmg`
112
118
 
113
119
  Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
114
120
 
@@ -143,6 +149,7 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
143
149
 
144
150
  | Version | Theme |
145
151
  | --- | --- |
152
+ | 11.5.1 | Rust Full Loop |
146
153
  | 11.5.0 | Rust Complete |
147
154
  | 11.4.0 | Rust Foundation |
148
155
  | 11.3.0 | Time Remembers |
package/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@ 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.5.1] - 2026-08-12 — Rust Full Loop
8
+
9
+ ### Added
10
+ - **에이전트 루프 오케스트레이터 Rust 이식**(§4c 완결,
11
+ docs/v11.5.1_RUST_FULL_LOOP_PLAN.md): lattice-agent에 상태기계(200
12
+ 전이 캡)·실행 루프 전 규칙·검증 fail-closed 매핑·롤백 3-tier·승인
13
+ 스토어(sha256/TTL 600s/만료 410)·`POST /rust/agent/run`(SSE)/`resume`/
14
+ `approvals`. 증명: 실제 Python SingleAgentRuntime 대본 재생 궤적
15
+ 10종 byte-identical + 헬퍼 그리드(액션 파서 38·정규화 24·판정 90) +
16
+ 실워커 라이브 스모크(시임 4종 실통신, 무모델 턴 NEEDS_REVIEW 동일).
17
+ - **AI Worker 시임**(additive, 100% 커버, 22번째 로컬라이즈 라우터):
18
+ `POST /agent/llm`(부작용 0), `POST /agent/tool`(서버측 서킷 브레이커
19
+ 403·fail-closed 409 유지, `LATTICEAI_AGENT_TOOL_SEAM` 게이트 — 기본
20
+ 꺼짐, 수퍼바이즈된 워커에만 주입), `POST /agent/change-proposal`.
21
+ - **문서 생성 컨텍스트 네이티브**(§3b 이월 완결): docgen 검색·
22
+ multi_hop·retrieve_context_for_generation 전체 계약 — 골든 53 신규
23
+ (총 247) 완전 일치, `POST /rust/context/document`.
24
+
25
+ ### Changed
26
+ - ARCHITECTURE.md System Map 다이어그램을 Rust 기반 현재 구조로 재작성
27
+ (Lattice Host front-door + 6크레이트 + AI Worker 경계).
28
+
7
29
  ## [11.5.0] - 2026-08-11 — Rust Complete
8
30
 
9
31
  ### Added
@@ -1,6 +1,6 @@
1
1
  # Community And Plugins
2
2
 
3
- Current release: **11.5.0 — Rust Complete**.
3
+ Current release: **11.5.1 — Rust Full Loop**.
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.5.0 — Rust Complete**.
6
+ Current release: **11.5.1 — Rust Full Loop**.
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: **11.5.0 — Rust Complete**.
3
+ Current release: **11.5.1 — Rust Full Loop**.
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.5.0)
1
+ # Lattice AI — Operations Guide (v11.5.1)
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.5.0 — Rust Complete**.
3
+ Current release: **11.5.1 — Rust Full Loop**.
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.5.0 — Rust Complete**.
3
+ Current release: **11.5.1 — Rust Full Loop**.
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.5.0 — Rust Complete**.
3
+ Current release: **11.5.1 — Rust Full Loop**.
4
4
 
5
5
  명세 출처: `lattice_ai_full_spec.pptx` 슬라이드 20·21·22
6
6
  구현: `lattice_brain/graph/schema.py`
@@ -0,0 +1,85 @@
1
+ # v11.5.1 — Rust Full Loop (설계 문서)
2
+
3
+ > 상태: 계획 → 구현 → **출하됨(v11.5.1)**. v11.5.0이 명시한 잔여 2건 —
4
+ > §4c 에이전트 루프 오케스트레이션 이식, §3b 이월분 문서 생성용
5
+ > context_builder(B) — 을 완결한다. 이로써 사용자 목표 다이어그램의
6
+ > 모든 Rust 박스가 구현·증명되고, **Python은 다이어그램에 그려진
7
+ > 그대로의 AI Worker**(모델 추론 + 도구 핸들러 실행 + 그래프 쓰기)로
8
+ > 남는다. 이는 전환의 완성 형태이지 잔여가 아니다.
9
+
10
+ ## Y1 — 워커 AI-Worker 시임 3종 (Python, additive)
11
+
12
+ 정찰 확정: 베어 LLM 완성 엔드포인트 없음, HTTP 제안 생성 불가,
13
+ `/tools/*`는 direct-surface 게이트(enforce_policy)라 루프용으로 부적합.
14
+
15
+ - `POST /agent/llm` — `LLMRouter.generate_as` 얇은 래퍼
16
+ `{model_id?, message, context?, max_tokens?, temperature?}` → `{text}`.
17
+ 히스토리/영속 부작용 0. require_user + 레이트리밋.
18
+ - `POST /agent/tool` — 루프 전용 거버넌스 시임:
19
+ `{tool, args, user_email?, workspace_id?}` →
20
+ `check_role` + `dispatch_tool(HOOKS, source="agent")` 결과
21
+ `{result}|{error}`. **서버측 모드 불변 가드는 유지**(우회 불가):
22
+ `is_circuit_breaker`/destructive policy → 403,
23
+ `classify_tool_call.fail_closed` → 409. 게이트 뒤:
24
+ `LATTICEAI_AGENT_TOOL_SEAM=1`(기본 꺼짐 — 호스트가 자기 워커에만
25
+ 주입) 아니면 404. mode 게이팅 자체는 Rust 커널이 소유(사전 preflight).
26
+ - `POST /agent/change-proposal` — `ChangeProposalService.review(...)`
27
+ verbatim 노출(제안-우선 경로). 같은 시임 게이트.
28
+
29
+ 전부 100% 문·분기, ko/en 로컬라이즈, OpenAPI 재생성.
30
+
31
+ ## Y2 — lattice-agent: 루프 오케스트레이터 (정찰 §1 명세 1:1)
32
+
33
+ - 결정적 헬퍼 포트+골든: `extract_action_details`(관용 체인 6단),
34
+ `normalize_plan`(7규칙 순서), `infer_project_manifest`/`infer_file_target`,
35
+ `artifact_checklist`, `requirement_coverage`, `_truncate_strings`,
36
+ `filter_learnings`, PhaseBudgets/TranscriptBudget 기본값, 검증 매핑
37
+ 표(UNAVAILABLE/PASS-무증거/PASS-미충족/ROLLBACK/재시도/모순 verdict),
38
+ 실행 루프 규칙(budget, parse_failure_budget/escalate, `final`,
39
+ `_is_repeated_create`, SCOPED 강제 주입, step_index 산식).
40
+ - 상태기계: run_to_completion 전이표 + 200캡(state_history 길이 기준),
41
+ rollback 3-tier(git→snapshot→none, 종단 항상 FAILED) — snapshot/
42
+ restore는 Rust 네이티브(sandbox Workspace 재사용).
43
+ - 승인 스토어: run_id/token 생성(urlsafe 16/32), sha256 토큰 해시,
44
+ TTL 600s, 만료 후 86400s 보존→410+replan, 원자적 JSON 저장,
45
+ `serialize/restore_run_context` 필드 계약 그대로(미지 상태→
46
+ WAITING_APPROVAL).
47
+ - 워커 클라이언트: `/agent/llm`(plan/execute/verify/memory),
48
+ `/agent/tool`(비-네이티브 도구), `/agent/change-proposal`(strict
49
+ 제안), 네이티브 실행은 X4 커널의 읽기 전용 세트.
50
+ - 라우트: `POST /rust/agent/run`(SSE `agent_step` 이벤트 + 최종 페이로드
51
+ — Python `/agent` 프로토콜 동형), `POST /rust/agent/resume`,
52
+ `GET /rust/agent/approvals`. lattice-host: worker_env에
53
+ `LATTICEAI_AGENT_TOOL_SEAM=1` 주입 + mounts 시그니처 갱신.
54
+ - 골든: Python 생성기가 결정적 헬퍼 그리드 + fake-LLM 대본 기반
55
+ end-to-end 상태 궤적(plan→…→terminal, 모드 3종 × 시나리오:
56
+ 정상 DONE/파스 예산 소진/반복 생성 가드/승인 대기·재개/만료 410/
57
+ 검증 재시도→FAILED/ROLLBACK)을 JSON으로 커밋, 양방향 계약.
58
+ LLM 호출은 대본 주입(결정적) — Python 쪽도 같은 대본으로 구동.
59
+
60
+ ## Y3 — 문서 생성 컨텍스트(B) 네이티브 (lattice-retrieval)
61
+
62
+ 정찰 §4 명세 1:1: `search_for_document_generation`(2-lane LIKE 후보,
63
+ 0.5/0.3/0.2 가중 + 1.2 타입 부스트, log1p(edge)/4, half-life 14d,
64
+ 비안정 정렬의 삽입순 타이브레이크 재현), `multi_hop_context`(hop 라벨
65
+ 의미론 — 확장 라운드 기준, hop-2는 엣지 끝점으로만), `retrieve_context_
66
+ for_generation` 전체 계약(self-model 블록 예산 산식 — 결합 개행 과금
67
+ 포함, 섹션 4종 고정, `relevance: {:.2f}` 마크다운, `\n### ` 백오프 트림,
68
+ sources dedup 체인, trace). `summary_for_prompt`는 스토어 읽기 포트.
69
+ 게이트웨이 `POST /rust/context/document`. 골든: 픽스처에 docgen 타입
70
+ 노드 추가(스토어 재생성 — 기존 골든 재검증 필수), 신규 스위트 +
71
+ 계약 pytest 확장.
72
+
73
+ ## 릴리스 (11.5.1)
74
+
75
+ 전 게이트 + fresh venv → bump → 문서·테마("Rust Full Loop") →
76
+ **ARCHITECTURE.md System Map 다이어그램을 Rust 기반 현재 상태로 재작성**
77
+ (Lattice Host front-door, 6크레이트, AI Worker 경계) → evidence 재촬영
78
+ → artifacts(DMG) → main 커밋·푸시 → 태그/Release → CI 그린.
79
+
80
+ ## 완성 후 남는 것 (설계상 최종 형태 — 잔여 아님)
81
+
82
+ Python AI Worker가 소유: LLM 추론(`/agent/llm`), 도구 핸들러 실행과
83
+ 그래프·파일 쓰기(`/agent/tool`, 단일 작성자), 제안 스테이징, 문서
84
+ 파서 매트릭스, 임베딩 생산. 이것이 사용자 다이어그램의 "Python AI
85
+ Worker" 박스다.
@@ -26,7 +26,7 @@ from .storage import (
26
26
  storage_from_env,
27
27
  )
28
28
 
29
- __version__ = "11.5.0"
29
+ __version__ = "11.5.1"
30
30
 
31
31
  __all__ = [
32
32
  "AgentRuntime",
@@ -49,7 +49,7 @@ from typing import Any, Callable, Dict, List, Optional
49
49
  from ..utils import now_iso as _now
50
50
  from .contracts import multi_agent_contract
51
51
 
52
- MULTI_AGENT_VERSION = "11.5.0"
52
+ MULTI_AGENT_VERSION = "11.5.1"
53
53
 
54
54
  AGENT_ROLES = ("researcher", "planner", "executor", "reviewer", "release")
55
55
  CORE_PIPELINE = ("planner", "executor", "reviewer")
@@ -1,3 +1,3 @@
1
1
  """Lattice AI - modular server package."""
2
2
 
3
- __version__ = "11.5.0"
3
+ __version__ = "11.5.1"