ltcai 11.1.0 → 11.4.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.
- package/README.md +47 -54
- package/docs/CHANGELOG.md +94 -0
- package/docs/COMMUNITY_AND_PLUGINS.md +1 -1
- package/docs/DEVELOPMENT.md +1 -1
- package/docs/FEATURE_AUDIT_v11.2.0.md +393 -0
- package/docs/LAYOUT_REBUILD_SPEC.md +9 -1
- package/docs/MULTI_AGENT_RUNTIME.md +1 -1
- package/docs/ONBOARDING.md +1 -1
- package/docs/OPERATIONS.md +6 -2
- package/docs/PERMISSION_MODE.md +1 -1
- package/docs/TRUST_MODEL.md +1 -1
- package/docs/WHY_LATTICE.md +1 -1
- package/docs/architecture.md +6 -2
- package/docs/kg-schema.md +2 -2
- package/docs/v11.3.0_PLAN.md +202 -0
- package/docs/v11.4.0_RUST_FOUNDATION_PLAN.md +176 -0
- package/lattice_brain/__init__.py +1 -1
- package/lattice_brain/gates.py +125 -0
- package/lattice_brain/graph/_kg_common/__init__.py +287 -0
- package/lattice_brain/graph/_kg_common/extraction.py +516 -0
- package/lattice_brain/graph/_kg_common/relations.py +161 -0
- package/lattice_brain/graph/_kg_common/text.py +479 -0
- package/lattice_brain/graph/discovery_index/__init__.py +35 -0
- package/lattice_brain/graph/discovery_index/cleanup.py +182 -0
- package/lattice_brain/graph/discovery_index/extract.py +137 -0
- package/lattice_brain/graph/discovery_index/scan.py +411 -0
- package/lattice_brain/graph/discovery_index/upsert.py +495 -0
- package/lattice_brain/graph/fusion.py +35 -4
- package/lattice_brain/graph/projection/__init__.py +42 -0
- package/lattice_brain/graph/projection/curation.py +500 -0
- package/lattice_brain/graph/{projection.py → projection/v2_schema.py} +81 -485
- package/lattice_brain/graph/retrieval/__init__.py +54 -0
- package/lattice_brain/graph/retrieval/context.py +197 -0
- package/lattice_brain/graph/retrieval/graph_view.py +319 -0
- package/lattice_brain/graph/retrieval/hybrid.py +488 -0
- package/lattice_brain/graph/retrieval/maintenance.py +121 -0
- package/lattice_brain/graph/retrieval/signals.py +95 -0
- package/lattice_brain/graph/retrieval_vector/__init__.py +42 -0
- package/lattice_brain/graph/retrieval_vector/fingerprint.py +97 -0
- package/lattice_brain/graph/retrieval_vector/indexing.py +347 -0
- package/lattice_brain/graph/retrieval_vector/search.py +560 -0
- package/lattice_brain/graph/retrieval_vector/status.py +374 -0
- package/lattice_brain/graph/schema.py +9 -0
- package/lattice_brain/graph/store.py +9 -0
- package/lattice_brain/graph/vector_index/selector.py +32 -2
- package/lattice_brain/ingestion/__init__.py +130 -0
- package/lattice_brain/ingestion/_contract.py +90 -0
- package/lattice_brain/ingestion/constants.py +127 -0
- package/lattice_brain/ingestion/folder_scan.py +57 -0
- package/lattice_brain/ingestion/folders.py +258 -0
- package/lattice_brain/ingestion/hashing.py +26 -0
- package/lattice_brain/ingestion/jobs_api.py +107 -0
- package/lattice_brain/ingestion/models.py +80 -0
- package/lattice_brain/ingestion/pipeline.py +486 -0
- package/lattice_brain/ingestion/quality.py +209 -0
- package/lattice_brain/ingestion/routing.py +295 -0
- package/lattice_brain/multimodal/__init__.py +164 -0
- package/lattice_brain/multimodal/audio.py +77 -0
- package/lattice_brain/multimodal/common.py +118 -0
- package/lattice_brain/{multimodal.py → multimodal/images.py} +22 -262
- package/lattice_brain/multimodal/ports.py +169 -0
- package/lattice_brain/multimodal/video.py +410 -0
- package/lattice_brain/portability/__init__.py +90 -0
- package/lattice_brain/portability/_contract.py +42 -0
- package/lattice_brain/portability/backups.py +338 -0
- package/lattice_brain/portability/bundles.py +136 -0
- package/lattice_brain/portability/constants.py +93 -0
- package/lattice_brain/portability/fsops.py +138 -0
- package/lattice_brain/portability/service.py +41 -0
- package/lattice_brain/portability/sharing.py +714 -0
- package/lattice_brain/runtime/__init__.py +1 -1
- package/lattice_brain/runtime/multi_agent.py +1 -1
- package/lattice_brain/sealed_box.py +244 -0
- package/lattice_brain/synthesis.py +24 -1
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/brain_intelligence.py +4 -0
- package/latticeai/api/chat.py +11 -0
- package/latticeai/api/chat_helpers.py +16 -3
- package/latticeai/api/chat_hybrid.py +32 -1
- package/latticeai/api/chronicle.py +63 -0
- package/latticeai/api/features.py +70 -0
- package/latticeai/api/local_files.py +102 -0
- package/latticeai/api/portability.py +39 -4
- package/latticeai/api/review_queue.py +126 -0
- package/latticeai/api/search.py +16 -2
- package/latticeai/core/agent/__init__.py +93 -0
- package/latticeai/core/agent/_contract.py +79 -0
- package/latticeai/core/agent/context.py +57 -0
- package/latticeai/core/agent/deps.py +125 -0
- package/latticeai/core/agent/execution.py +622 -0
- package/latticeai/core/agent/planning.py +145 -0
- package/latticeai/core/agent/recovery.py +157 -0
- package/latticeai/core/agent/runtime.py +210 -0
- package/latticeai/core/agent/verification.py +231 -0
- package/latticeai/core/config.py +4 -1
- package/latticeai/core/context_builder.py +6 -3
- package/latticeai/core/embedding_providers/__init__.py +151 -0
- package/latticeai/core/embedding_providers/base.py +199 -0
- package/latticeai/core/embedding_providers/captions.py +162 -0
- package/latticeai/core/embedding_providers/profiles.py +126 -0
- package/latticeai/core/embedding_providers/text.py +350 -0
- package/latticeai/core/embedding_providers/vision.py +352 -0
- package/latticeai/core/file_generation/__init__.py +115 -0
- package/latticeai/core/file_generation/bundles.py +76 -0
- package/latticeai/core/file_generation/extraction.py +154 -0
- package/latticeai/core/file_generation/inference.py +235 -0
- package/latticeai/core/file_generation/orchestration.py +152 -0
- package/latticeai/core/file_generation/prompting.py +117 -0
- package/latticeai/core/file_generation/repair.py +114 -0
- package/latticeai/core/file_generation/sanitize.py +61 -0
- package/latticeai/core/file_generation/validation.py +201 -0
- package/latticeai/core/legacy_compatibility.py +1 -1
- package/latticeai/core/marketplace.py +1 -1
- package/latticeai/core/messages.py +152 -0
- package/latticeai/core/model_compat.py +73 -2
- package/latticeai/core/workspace_os_constants.py +1 -1
- package/latticeai/integrations/telegram_bot/__init__.py +123 -0
- package/latticeai/integrations/telegram_bot/__main__.py +17 -0
- package/latticeai/integrations/telegram_bot/config.py +86 -0
- package/latticeai/integrations/telegram_bot/dispatch.py +311 -0
- package/latticeai/integrations/telegram_bot/flows.py +478 -0
- package/latticeai/integrations/telegram_bot/helpers.py +322 -0
- package/latticeai/integrations/telegram_bot/screens.py +394 -0
- package/latticeai/models/model_providers.py +12 -4
- package/latticeai/models/router/__init__.py +88 -0
- package/latticeai/models/router/_contract.py +66 -0
- package/latticeai/models/router/branding.py +56 -0
- package/latticeai/models/router/catalog.py +69 -0
- package/latticeai/models/router/documents.py +199 -0
- package/latticeai/models/router/errors.py +37 -0
- package/latticeai/models/router/generation.py +258 -0
- package/latticeai/models/router/loading.py +291 -0
- package/latticeai/models/router/local_models.py +85 -0
- package/latticeai/models/router/registry.py +147 -0
- package/latticeai/runtime/build_phases/__init__.py +82 -0
- package/latticeai/runtime/build_phases/features.py +407 -0
- package/latticeai/runtime/build_phases/foundation.py +555 -0
- package/latticeai/runtime/build_phases/web.py +492 -0
- package/latticeai/runtime/chat_wiring.py +4 -0
- package/latticeai/runtime/feature_toggle_wiring.py +163 -0
- package/latticeai/runtime/router_registration.py +11 -0
- package/latticeai/runtime/runtime_context.py +1 -0
- package/latticeai/services/app_context.py +8 -0
- package/latticeai/services/architecture_readiness.py +48 -19
- package/latticeai/services/automation_intelligence.py +22 -2
- package/latticeai/services/brain_intelligence/__init__.py +58 -0
- package/latticeai/services/brain_intelligence/_contract.py +71 -0
- package/latticeai/services/brain_intelligence/consistency.py +193 -0
- package/latticeai/services/brain_intelligence/constants.py +47 -0
- package/latticeai/services/brain_intelligence/digest.py +258 -0
- package/latticeai/services/brain_intelligence/health.py +331 -0
- package/latticeai/services/brain_intelligence/proposals.py +264 -0
- package/latticeai/services/brain_intelligence/sampling.py +84 -0
- package/latticeai/services/brain_intelligence/service.py +48 -0
- package/latticeai/services/chronicle.py +557 -0
- package/latticeai/services/command_center.py +10 -4
- package/latticeai/services/feature_toggles.py +502 -0
- package/latticeai/services/folder_watch.py +122 -1
- package/latticeai/services/hybrid_chat.py +56 -5
- package/latticeai/services/interop_bridges.py +978 -0
- package/latticeai/services/memory_service/__init__.py +52 -0
- package/latticeai/services/memory_service/_contract.py +100 -0
- package/latticeai/services/memory_service/brief.py +431 -0
- package/latticeai/services/memory_service/constants.py +57 -0
- package/latticeai/services/memory_service/maintenance.py +138 -0
- package/latticeai/services/memory_service/manager.py +186 -0
- package/latticeai/services/memory_service/proof.py +136 -0
- package/latticeai/services/memory_service/recall.py +225 -0
- package/latticeai/services/memory_service/service.py +48 -0
- package/latticeai/services/memory_service/stores.py +110 -0
- package/latticeai/services/model_capability_registry.py +434 -261
- package/latticeai/services/model_catalog.py +95 -61
- package/latticeai/services/model_recommendation.py +18 -11
- package/latticeai/services/model_runtime/__init__.py +322 -0
- package/latticeai/services/model_runtime/cloud.py +87 -0
- package/latticeai/services/model_runtime/download.py +282 -0
- package/latticeai/services/model_runtime/engines.py +341 -0
- package/latticeai/services/model_runtime/loading.py +178 -0
- package/latticeai/services/model_runtime/service.py +129 -0
- package/latticeai/services/model_runtime/state.py +131 -0
- package/latticeai/services/model_runtime/status.py +255 -0
- package/latticeai/services/multimodal_ports.py +26 -1
- package/latticeai/services/obsidian_bridge.py +16 -25
- package/latticeai/services/product_readiness.py +15 -7
- package/latticeai/services/search_service.py +149 -2
- package/latticeai/services/tool_dispatch.py +4 -0
- package/latticeai/setup/auto_setup.py +27 -30
- package/latticeai/setup/wizard/__init__.py +126 -0
- package/latticeai/setup/wizard/catalog.py +172 -0
- package/latticeai/setup/wizard/detect.py +323 -0
- package/latticeai/setup/wizard/install.py +348 -0
- package/latticeai/setup/wizard/paths.py +168 -0
- package/latticeai/setup/wizard/plans.py +74 -0
- package/latticeai/setup/wizard/recommend.py +320 -0
- package/package.json +6 -2
- package/scripts/bump_version.py +14 -0
- package/scripts/capture_release_evidence.mjs +33 -21
- package/scripts/check_current_release_docs.mjs +1 -1
- package/scripts/check_i18n_namespace_coverage.mjs +41 -4
- package/scripts/check_max_file_lines.mjs +102 -0
- package/scripts/check_release_evidence_bound.mjs +30 -15
- package/scripts/check_screenshot_pixel_delta.py +34 -4
- package/scripts/check_server_i18n.mjs +2 -0
- package/scripts/generate_rust_parity_fixtures.py +562 -0
- package/scripts/lib/mock_server_fingerprint.mjs +94 -0
- package/scripts/release_screen_claims.json +44 -2
- package/scripts/verify_hf_model_registry.py +253 -218
- package/src-tauri/Cargo.lock +361 -3
- package/src-tauri/Cargo.toml +6 -1
- package/src-tauri/src/backend.rs +349 -0
- package/src-tauri/src/folder.rs +33 -0
- package/src-tauri/src/main.rs +97 -399
- package/src-tauri/tauri.conf.json +1 -1
- package/static/app/asset-manifest.json +41 -37
- package/static/app/assets/Act-yYpYnn0v.js +1 -0
- package/static/app/assets/AdminConsole-DL3Cr5pL.js +1 -0
- package/static/app/assets/{Brain-CzCsI1mi.js → Brain-C1HBN0Wf.js} +2 -2
- package/static/app/assets/BrainHome-DoXRhUUC.js +2 -0
- package/static/app/assets/BrainSignals-6yR6ir5t.js +1 -0
- package/static/app/assets/Capture-CFIRsFNE.js +1 -0
- package/static/app/assets/Chronicle-BZbEgiwN.js +1 -0
- package/static/app/assets/CommandPalette-D2pMxC2I.js +1 -0
- package/static/app/assets/Library-DwO3yZST.js +1 -0
- package/static/app/assets/{LivingBrain-BXMWIK_2.js → LivingBrain-Jn1GK0-S.js} +1 -1
- package/static/app/assets/ProductFlow-B-w1R4Oo.js +1 -0
- package/static/app/assets/ReviewCard-6B27X8Vg.js +3 -0
- package/static/app/assets/System-DW8F-2xL.js +1 -0
- package/static/app/assets/arrow-left-DXvKg9U6.js +1 -0
- package/static/app/assets/{bot-4BvN07ux.js → bot-IM_E_Y12.js} +1 -1
- package/static/app/assets/brain-Ci1CkWjM.js +1 -0
- package/static/app/assets/{button-CDjtnAoU.js → button-COwyqfHM.js} +1 -1
- package/static/app/assets/circle-check-DfInj-qD.js +1 -0
- package/static/app/assets/{circle-pause-D_RMn7tp.js → circle-pause-DEM4A1Y5.js} +1 -1
- package/static/app/assets/{circle-play-B5OpB8ae.js → circle-play-C9djDuLd.js} +1 -1
- package/static/app/assets/{cpu-BIlWInHf.js → cpu-DFdo1gw-.js} +1 -1
- package/static/app/assets/{download-BtjXfL3z.js → download-SnJL6oqk.js} +1 -1
- package/static/app/assets/{folder-open-DefMpxI2.js → folder-open-CqZeDkjE.js} +1 -1
- package/static/app/assets/{hard-drive-BQ8NZVkw.js → hard-drive-j1jJXYYf.js} +1 -1
- package/static/app/assets/{index-vtEfYvQY.css → index-BLPb5lmE.css} +1 -1
- package/static/app/assets/index-_u5iUHDr.js +10 -0
- package/static/app/assets/input-B0lPdRQZ.js +1 -0
- package/static/app/assets/link-2-CoFbooHS.js +1 -0
- package/static/app/assets/{permissionCopy-BqZ5tsgL.js → permissionCopy-BsyLxtao.js} +1 -1
- package/static/app/assets/primitives-DEbN-d6p.js +1 -0
- package/static/app/assets/search-BybIWPNd.js +1 -0
- package/static/app/assets/{share-2-D5zg_0fY.js → share-2-CVtZ_ewX.js} +1 -1
- package/static/app/assets/{shield-alert-B5pZzkUb.js → shield-alert-CBi2GNWM.js} +1 -1
- package/static/app/assets/{textarea-nEVIweKY.js → textarea-DNMpB5ih.js} +1 -1
- package/static/app/assets/{useFocusTrap-Cm99AHlz.js → useFocusTrap-C83t3GXF.js} +1 -1
- package/static/app/assets/useMutation-DtbJDoyz.js +1 -0
- package/static/app/assets/{useQuery-Dm__N6bL.js → useQuery-Dcp1OChy.js} +1 -1
- package/static/app/assets/utils-BlZr7Pd4.js +4 -0
- package/static/app/assets/workspace-jJY4RuAV.js +1 -0
- package/static/app/index.html +4 -4
- package/static/sw.js +1 -1
- package/lattice_brain/graph/_kg_common.py +0 -1331
- package/lattice_brain/graph/discovery_index.py +0 -1141
- package/lattice_brain/graph/retrieval.py +0 -1120
- package/lattice_brain/graph/retrieval_vector.py +0 -1293
- package/lattice_brain/ingestion.py +0 -1377
- package/lattice_brain/portability.py +0 -1210
- package/latticeai/core/agent.py +0 -1412
- package/latticeai/core/embedding_providers.py +0 -1196
- package/latticeai/core/file_generation.py +0 -1047
- package/latticeai/integrations/telegram_bot.py +0 -1390
- package/latticeai/models/router.py +0 -1007
- package/latticeai/runtime/build_phases.py +0 -1422
- package/latticeai/services/brain_intelligence.py +0 -967
- package/latticeai/services/memory_service.py +0 -1177
- package/latticeai/services/model_runtime.py +0 -1281
- package/latticeai/setup/wizard.py +0 -1277
- package/static/app/assets/Act-D0HWqtn0.js +0 -1
- package/static/app/assets/AdminConsole-D-QDW-A4.js +0 -1
- package/static/app/assets/BrainHome-Btns-_TA.js +0 -2
- package/static/app/assets/BrainSignals-2dHQNkns.js +0 -1
- package/static/app/assets/Capture-CT8v1StE.js +0 -1
- package/static/app/assets/CommandPalette-DoLXC2KH.js +0 -1
- package/static/app/assets/Library-DDoxFE5c.js +0 -1
- package/static/app/assets/ProductFlow-DOYf7JIs.js +0 -1
- package/static/app/assets/ReviewCard-COQsqidK.js +0 -3
- package/static/app/assets/System-BRllvYXd.js +0 -1
- package/static/app/assets/arrow-left-DnyMzss-.js +0 -1
- package/static/app/assets/brain-uMb_5hnO.js +0 -1
- package/static/app/assets/index-0AvoEBzJ.js +0 -10
- package/static/app/assets/input-B_5ZJ9oy.js +0 -1
- package/static/app/assets/primitives-CVwew78r.js +0 -1
- package/static/app/assets/search-DkhnOKZt.js +0 -1
- package/static/app/assets/utils-DcDMoZIe.js +0 -4
- package/static/app/assets/workspace-LtRRSKTf.js +0 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml)
|
|
12
12
|
[](LICENSE)
|
|
13
13
|
|
|
14
|
-

|
|
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
|
-
| **
|
|
28
|
-
| **
|
|
29
|
-
| **
|
|
30
|
-
| **Watch a file become memory** — three named steps, not a pipeline diagram  | **Chat with a Brain that remembers** — every conversation grows durable, source-linked memory  |
|
|
28
|
+
| **See how knowledge connects** — a real relationship graph, not a file list  | **Capture anything** — files, whole folders, notes, screenshots, web pages  |
|
|
29
|
+
| **Automate with review** — agent changes become proposals you approve first  | **Pick a model in one click** — recommended local models for your hardware  |
|
|
30
|
+
| **Watch a file become memory** — three named steps, not a pipeline diagram  | **Say how much it may do alone** — one dial in plain words; dangerous actions stay blocked either way  |
|
|
31
31
|
|
|
32
32
|
## Why Lattice AI
|
|
33
33
|
|
|
@@ -58,64 +58,54 @@ First-run flow — wake the Brain, pick the owner, load a recommended model:
|
|
|
58
58
|
|
|
59
59
|
| | | |
|
|
60
60
|
| --- | --- | --- |
|
|
61
|
-
|  |  |  |
|
|
62
62
|
|
|
63
63
|
Screenshot index and capture notes:
|
|
64
|
-
[output/release/v11.
|
|
64
|
+
[output/release/v11.4.0/SCREENSHOT_INDEX.md](output/release/v11.4.0/SCREENSHOT_INDEX.md)
|
|
65
65
|
|
|
66
66
|
## Current Release
|
|
67
67
|
|
|
68
|
-
The current release is **11.
|
|
69
|
-
|
|
70
|
-
The
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- **
|
|
90
|
-
(
|
|
91
|
-
|
|
92
|
-
(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
fully listable and deletable. Agents can propose whole-folder
|
|
100
|
-
reorganizations — structurally incapable of proposing deletions.
|
|
101
|
-
- **Connected, selectively.** An approval-gated Obsidian vault bridge
|
|
102
|
-
(wikilinks become edges, idempotent re-runs) and a signed, encrypted
|
|
103
|
-
subgraph-share prototype where received knowledge arrives as proposals —
|
|
104
|
-
off by default behind `LATTICEAI_BRAIN_NETWORK`.
|
|
105
|
-
|
|
106
|
-
All of it lands with the floor intact: **6,261 tests, 100.00% of 37,590
|
|
107
|
-
statements and 10,658 branches**, verified on macOS 3.14, a fresh-resolve
|
|
108
|
-
python 3.11 environment, and a clean linux python:3.14 container.
|
|
68
|
+
The current release is **11.4.0 — Rust Foundation**:
|
|
69
|
+
|
|
70
|
+
The Rust migration begins — not as a rewrite, but as **working, proven
|
|
71
|
+
pieces**, while the Python server keeps serving every product surface.
|
|
72
|
+
|
|
73
|
+
- **A `rust/` workspace with three crates.** `lattice-core` reads the
|
|
74
|
+
same `knowledge_graph.sqlite` (read-only, WAL) and carries a
|
|
75
|
+
bit-for-bit port of the local hash embedder. `lattice-retrieval` is the
|
|
76
|
+
native hybrid/keyword/vector engine — proven against committed Python
|
|
77
|
+
goldens at **75/75 exact parity, zero epsilon**, with a bidirectional
|
|
78
|
+
contract: a Python test suite re-runs the same goldens so neither side
|
|
79
|
+
can drift silently. `lattice-host` is the worker supervisor (HTTP
|
|
80
|
+
`/health` gating, crash auto-restart with backoff, graceful shutdown,
|
|
81
|
+
unified port selection) plus a loopback-only gateway: `/host/*` status,
|
|
82
|
+
native `/rust/search/*`, and a streaming reverse proxy for everything
|
|
83
|
+
else — an opt-in front door, with 194 Rust tests behind it.
|
|
84
|
+
- **The desktop shell rides the new foundation.** The Tauri `main.rs`
|
|
85
|
+
shrank from 451 to 149 lines by consuming `lattice-host`; its five IPC
|
|
86
|
+
commands keep their exact contracts, a candidate-resolution
|
|
87
|
+
priority-order bug is fixed, and the TCP probe became a real health
|
|
88
|
+
check.
|
|
89
|
+
- **The same discipline, extended.** CI gained a dedicated `rust` job
|
|
90
|
+
(fmt, clippy `-D warnings`, tests); the 1,000-line file ceiling now
|
|
91
|
+
covers `*.rs`; the version bump keeps the Rust workspace in lockstep
|
|
92
|
+
(25 synchronized targets). The full migration roadmap lives in
|
|
93
|
+
[docs/v11.4.0_RUST_FOUNDATION_PLAN.md](docs/v11.4.0_RUST_FOUNDATION_PLAN.md).
|
|
94
|
+
|
|
95
|
+
All of it lands with the floor intact: **6,643 Python + 1,761 frontend
|
|
96
|
+
tests at 100.00% statement and branch coverage, 194 Rust tests**, mypy
|
|
97
|
+
and clippy clean, verified on macOS 3.14 and a fresh-resolve python 3.11
|
|
98
|
+
environment.
|
|
109
99
|
|
|
110
100
|
Release notes: [RELEASE.md](RELEASE.md) · Full history: [docs/CHANGELOG.md](docs/CHANGELOG.md)
|
|
111
101
|
|
|
112
|
-
Expected artifacts for 11.
|
|
102
|
+
Expected artifacts for 11.4.0 release must use exact filenames:
|
|
113
103
|
|
|
114
|
-
- `dist/ltcai-11.
|
|
115
|
-
- `dist/ltcai-11.
|
|
116
|
-
- `ltcai-11.
|
|
117
|
-
- `dist/ltcai-11.
|
|
118
|
-
- `src-tauri/target/release/bundle/dmg/Lattice AI_11.
|
|
104
|
+
- `dist/ltcai-11.4.0-py3-none-any.whl`
|
|
105
|
+
- `dist/ltcai-11.4.0.tar.gz`
|
|
106
|
+
- `ltcai-11.4.0.tgz`
|
|
107
|
+
- `dist/ltcai-11.4.0.vsix`
|
|
108
|
+
- `src-tauri/target/release/bundle/dmg/Lattice AI_11.4.0_aarch64.dmg`
|
|
119
109
|
|
|
120
110
|
Do not use wildcard artifact uploads. Package registry publishing remains owner-run.
|
|
121
111
|
|
|
@@ -150,6 +140,9 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for details and
|
|
|
150
140
|
|
|
151
141
|
| Version | Theme |
|
|
152
142
|
| --- | --- |
|
|
143
|
+
| 11.4.0 | Rust Foundation |
|
|
144
|
+
| 11.3.0 | Time Remembers |
|
|
145
|
+
| 11.2.0 | All Systems On |
|
|
153
146
|
| 11.1.0 | Product Intelligence |
|
|
154
147
|
| 11.0.1 | Both Branches |
|
|
155
148
|
| 11.0.0 | Full Measure |
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,100 @@ 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.4.0] - 2026-08-11 — Rust Foundation
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **`rust/` cargo workspace** (Rust 전환 Phase 1,
|
|
11
|
+
docs/v11.4.0_RUST_FOUNDATION_PLAN.md): `lattice-core`(같은
|
|
12
|
+
`knowledge_graph.sqlite` 읽기 전용 층 + 해시 임베더 bit-for-bit 포트,
|
|
13
|
+
FTS5 trigram 프로브), `lattice-retrieval`(hybrid/keyword/vector
|
|
14
|
+
네이티브 엔진 — 커밋된 Python 골든과 25질의×3엔진 **75/75 완전
|
|
15
|
+
일치**, `tests/unit/test_rust_parity_contract.py` 80테스트가 Python
|
|
16
|
+
쪽을 상시 잠금), `lattice-host`(워커 수퍼바이저: HTTP /health 게이팅
|
|
17
|
+
·크래시 백오프 자동 재시작·SIGTERM 유예 종료·포트 통일 4825+스캔;
|
|
18
|
+
axum 게이트웨이: `/host/*`, 네이티브 `/rust/search/*`, 스트리밍
|
|
19
|
+
리버스 프록시 — 옵트인 front-door). Rust 테스트 194개.
|
|
20
|
+
- CI `rust` 잡(ubuntu: cargo fmt --check / clippy -D warnings /
|
|
21
|
+
test --workspace, SHA 핀 액션), `npm run rust:test`/`rust:lint`.
|
|
22
|
+
- `check_max_file_lines.mjs`가 `*.rs` 검사(43파일, 최장 491줄).
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- Tauri 데스크톱 셸이 `lattice-host` 수퍼바이저에 올라탐: `main.rs`
|
|
26
|
+
451→149줄, IPC 커맨드 5종 계약 보존(+추가 상태 필드), 백엔드 후보
|
|
27
|
+
해석의 `sort()+dedup()` 우선순위 파괴 버그 수정, TCP 프로브 →
|
|
28
|
+
HTTP /health, 포트 기본 8765→4825(+빈 포트 탐색,
|
|
29
|
+
`LATTICEAI_PORT`/`LATTICEAI_DESKTOP_BACKEND_ORIGIN` 존중).
|
|
30
|
+
- `bump_version.py`·`test_version_consistency.py`가 rust workspace
|
|
31
|
+
버전(크레이트 3종 × 락파일 2종 포함)을 동기 — 타깃 18→25.
|
|
32
|
+
|
|
33
|
+
## [11.3.0] - 2026-08-11 — Time Remembers
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- **기억의 연대기 (Brain Chronicle)**: 7번째 주 화면 `#/chronicle`(별칭
|
|
37
|
+
`#/timeline`) — SVG 성장 곡선 + 키보드/터치 시간 핸들, 주×요일 활동
|
|
38
|
+
히트맵, 그날의 이야기 카드(자료·새 개념·대화·달라진 사실, 기존 화면
|
|
39
|
+
딥링크), `store.as_of()` 기반 되감기 패널. 신규 읽기 전용 API 3종:
|
|
40
|
+
`GET /api/chronicle/{overview,day/{date},as-of}` (앱 시간대 일 버킷,
|
|
41
|
+
워크스페이스 스코프, 그룹 200 상한+참값 counts). 서버 메시지 ko/en
|
|
42
|
+
등록(19번째 로컬라이즈 라우터), 신규 i18n 네임스페이스 `chronicle`,
|
|
43
|
+
릴리스 캡처 `13-chronicle.png`, visual mock 라우트 + Playwright 스펙.
|
|
44
|
+
- **`scripts/check_max_file_lines.mjs`**: git 추적 1st-party 소스 전체
|
|
45
|
+
(py/ts/tsx/js/mjs/cjs/css)에 1,000줄 상한을 강제하는 lint 게이트.
|
|
46
|
+
생성물·벤더만 사유 명시 제외. 1,319개 파일 스캔, 초과 0.
|
|
47
|
+
- 픽셀 게이트가 이번 릴리스에 새로 생긴 화면(베이스라인 태그에 없음)을
|
|
48
|
+
"new"로 보고하고 게이트하지 않되, 클레임된 화면의 베이스라인 누락은
|
|
49
|
+
여전히 실패로 처리.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- **No Big Files 분해**: 1,000줄 초과 1st-party 파일 28개 전부 분해,
|
|
53
|
+
동작 변화 0 증명 동반 — `frontend/src/styles.css` 10,956→48줄
|
|
54
|
+
엔트리+core/ 20파일(빌드 산출 CSS byte-identical, cmp+sha256),
|
|
55
|
+
i18n `brain`/`workspace` 사전 → 도메인 파트 14개(key→value 맵 동일
|
|
56
|
+
증명), Python 18개 모듈 → 동명 패키지(모든 top-level 심볼 AST 동등성
|
|
57
|
+
증명, monkeypatch 대상 317+ 사이트 실위치 재표적, mypy files 목록·
|
|
58
|
+
setuptools packages 목록 갱신), `vscode-extension/extension.ts` →
|
|
59
|
+
7개 모듈, 대형 테스트 5개 + visual mock 서버 분해(576응답 동등성
|
|
60
|
+
대조). 공개 import 경로 불변.
|
|
61
|
+
- 릴리스 증거 결속이 mock 서버 엔트리+라우트 모듈 전체를 지문화
|
|
62
|
+
(`scripts/lib/mock_server_fingerprint.mjs`, capture/check가 한 코드
|
|
63
|
+
경로 공유). i18n 고아 키 스캔·정의 수집이 네임스페이스 파트 파일
|
|
64
|
+
구조를 인식.
|
|
65
|
+
- everyday 내비 4항목(대화·자료·기억·연대기)에 맞춰 상단바 축약
|
|
66
|
+
분기점 960px→1120px, 모바일 하단바 5탭(캡션 말줄임).
|
|
67
|
+
|
|
68
|
+
## [11.2.0] - 2026-08-11 — All Systems On
|
|
69
|
+
|
|
70
|
+
### Changed
|
|
71
|
+
- 모델 카탈로그 전수 최신화: HF API 무부하 검증(가중치 다운로드 0, 실로드
|
|
72
|
+
0) 후 추천 10종을 2025–2026 세대(Gemma 4 · Qwen3.5/3.6 · gpt-oss-20b ·
|
|
73
|
+
LFM2.5)로 재구성. Hub 소멸 2종·gated 3종·vllm 전용·구세대 제거(완전
|
|
74
|
+
삭제), 기존 다운로드 모델은 인식 전용 목록으로 보호. 검증기에서
|
|
75
|
+
`--deep`/`--test-load` 제거(무부하 원칙 구조화). 크기 오기(11.8→61.1GB)
|
|
76
|
+
등 부수 결함 8건 수정.
|
|
77
|
+
- 빈 Brain이 가용 1차원만으로 100/excellent를 받던 건강 채점을 정직화
|
|
78
|
+
(측정 불가 차원은 사유와 함께 unavailable, 전무 시 등급 없음).
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
- Brain 홈 dock **기능 서랍**: opt-in 10종(멀티모달·비디오·브레인 네트워크
|
|
82
|
+
·볼트 감시·사진 의미 검색·RRF·이웃 확장·자동 합성·배경 인덱싱·벡터
|
|
83
|
+
백엔드)의 서버 카탈로그 라이브 토글 — `GET/POST /api/features`,
|
|
84
|
+
FeatureGate 시임으로 재시작 없이 반영, 사용자>env>기본.
|
|
85
|
+
- Interop 브릿지: Notion export · Git 히스토리 · 메일(.eml)/캘린더(.ics)
|
|
86
|
+
— 단일 인제스트 게이트+승인+dry_run(`/api/ingestion/interop`).
|
|
87
|
+
- 서브그래프 공유 수신자 공개키 암호화(X25519 sealed box, ephemeral 키)
|
|
88
|
+
+ `GET /api/knowledge-graph/share/recipient-key`.
|
|
89
|
+
- 비디오 인제스트(ffmpeg 가드 키프레임 + .srt/.vtt, NodeType.VIDEO),
|
|
90
|
+
볼트 감시 모드, 일괄 리뷰 승인/기각, Self-Model 요약의 에이전트 루프
|
|
91
|
+
도달, 텍스트→이미지 의미 검색(`/api/search/image-query`).
|
|
92
|
+
- 58행 증거 기반 기능 감사 문서 docs/FEATURE_AUDIT_v11.2.0.md.
|
|
93
|
+
|
|
94
|
+
### Fixed
|
|
95
|
+
- 오늘의 브리핑 건강 섹션 영구 공백(스키마 불일치), 클라우드 유래 지식이
|
|
96
|
+
리뷰 센터에 도달하지 않던 write-back 미배선(+auto_commit 정책 연결),
|
|
97
|
+
vector-freshness 세분화 미노출, 멀티모달 context_quality 신호 미배선,
|
|
98
|
+
`kgv2_edges`가 canonical 엣지 타입을 ''로 읽던 뷰(`COALESCE(NULLIF)`),
|
|
99
|
+
죽은 자동화 저신뢰 게이트, 사어 grok id(→grok-4.5).
|
|
100
|
+
|
|
7
101
|
## [11.1.0] - 2026-08-10 — Product Intelligence Layer
|
|
8
102
|
|
|
9
103
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Community And Plugins
|
|
2
2
|
|
|
3
|
-
Current release: **11.
|
|
3
|
+
Current release: **11.4.0 — Rust Foundation**.
|
|
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
|
package/docs/DEVELOPMENT.md
CHANGED
|
@@ -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
|
+
Current release: **11.4.0 — Rust Foundation**.
|
|
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
|