ltcai 8.9.0 → 9.1.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 +81 -58
- package/auto_setup.py +7 -904
- package/desktop/electron/README.md +9 -0
- package/desktop/electron/main.cjs +5 -3
- package/docs/CHANGELOG.md +221 -238
- package/docs/COMMUNITY_AND_PLUGINS.md +3 -2
- package/docs/DEVELOPMENT.md +53 -14
- package/docs/LEGACY_COMPATIBILITY.md +4 -4
- package/docs/ONBOARDING.md +10 -2
- package/docs/OPERATIONS.md +8 -4
- package/docs/PRODUCT_DIRECTION_REVIEW.md +4 -0
- package/docs/ROADMAP_RECOMMENDATIONS.md +61 -36
- package/docs/TRUST_MODEL.md +5 -2
- package/docs/WHY_LATTICE.md +15 -10
- package/docs/WORKFLOW_DESIGNER.md +22 -0
- package/docs/kg-schema.md +13 -2
- package/docs/mcp-tools.md +17 -6
- package/docs/privacy.md +19 -3
- package/docs/public-deploy.md +32 -3
- package/docs/security-model.md +46 -11
- package/lattice_brain/__init__.py +1 -1
- package/lattice_brain/archive.py +4 -14
- package/lattice_brain/context.py +66 -9
- package/lattice_brain/embeddings.py +38 -2
- package/lattice_brain/graph/_kg_common.py +27 -462
- package/lattice_brain/graph/_kg_constants.py +243 -0
- package/lattice_brain/graph/_kg_fsutil.py +293 -0
- package/lattice_brain/graph/discovery.py +0 -948
- package/lattice_brain/graph/discovery_index.py +1126 -0
- package/lattice_brain/graph/documents.py +44 -9
- package/lattice_brain/graph/ingest.py +47 -20
- package/lattice_brain/graph/provenance.py +13 -6
- package/lattice_brain/graph/retrieval.py +141 -610
- package/lattice_brain/graph/retrieval_docgen.py +243 -0
- package/lattice_brain/graph/retrieval_vector.py +460 -0
- package/lattice_brain/graph/store.py +6 -0
- package/lattice_brain/ingestion.py +69 -4
- package/lattice_brain/portability.py +29 -23
- package/lattice_brain/quality.py +98 -4
- package/lattice_brain/runtime/agent_runtime.py +169 -7
- package/lattice_brain/runtime/hooks.py +30 -13
- package/lattice_brain/runtime/multi_agent.py +27 -8
- package/lattice_brain/runtime/statuses.py +10 -0
- package/lattice_brain/utils.py +46 -0
- package/lattice_brain/workflow.py +1 -5
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/admin.py +1 -1
- package/latticeai/api/agent_registry.py +10 -8
- package/latticeai/api/agents.py +22 -3
- package/latticeai/api/auth.py +78 -16
- package/latticeai/api/browser.py +303 -34
- package/latticeai/api/chat.py +355 -952
- package/latticeai/api/chat_agent_http.py +356 -0
- package/latticeai/api/chat_contracts.py +54 -0
- package/latticeai/api/chat_documents.py +256 -0
- package/latticeai/api/chat_helpers.py +250 -0
- package/latticeai/api/chat_history.py +99 -0
- package/latticeai/api/chat_intents.py +302 -0
- package/latticeai/api/chat_stream.py +115 -0
- package/latticeai/api/computer_use.py +211 -40
- package/latticeai/api/health.py +9 -3
- package/latticeai/api/hooks.py +17 -6
- package/latticeai/api/knowledge_graph.py +78 -14
- package/latticeai/api/local_files.py +7 -2
- package/latticeai/api/marketplace.py +11 -0
- package/latticeai/api/mcp.py +102 -23
- package/latticeai/api/models.py +72 -33
- package/latticeai/api/network.py +5 -5
- package/latticeai/api/permissions.py +70 -29
- package/latticeai/api/plugins.py +21 -7
- package/latticeai/api/portability.py +5 -5
- package/latticeai/api/realtime.py +33 -5
- package/latticeai/api/setup.py +2 -2
- package/latticeai/api/static_routes.py +123 -24
- package/latticeai/api/tools.py +97 -14
- package/latticeai/api/workflow_designer.py +37 -0
- package/latticeai/api/workspace.py +2 -1
- package/latticeai/app_factory.py +185 -405
- package/latticeai/core/agent.py +19 -9
- package/latticeai/core/agent_registry.py +1 -5
- package/latticeai/core/config.py +23 -3
- package/latticeai/core/context_builder.py +21 -3
- package/latticeai/core/invitations.py +1 -4
- package/latticeai/core/io_utils.py +45 -0
- package/latticeai/core/legacy_compatibility.py +24 -3
- package/latticeai/core/local_embeddings.py +2 -4
- package/latticeai/core/marketplace.py +33 -2
- package/latticeai/core/mcp_catalog.py +450 -0
- package/latticeai/core/mcp_registry.py +2 -441
- package/latticeai/core/plugins.py +15 -0
- package/latticeai/core/policy.py +1 -1
- package/latticeai/core/realtime.py +38 -15
- package/latticeai/core/sessions.py +7 -2
- package/latticeai/core/timeutil.py +10 -0
- package/latticeai/core/tool_registry.py +90 -18
- package/latticeai/core/users.py +5 -14
- package/latticeai/core/workspace_graph_trace.py +31 -5
- package/latticeai/core/workspace_memory.py +3 -1
- package/latticeai/core/workspace_os.py +18 -7
- package/latticeai/core/workspace_os_utils.py +2 -21
- package/latticeai/core/workspace_permissions.py +2 -1
- package/latticeai/core/workspace_plugins.py +1 -1
- package/latticeai/core/workspace_runs.py +14 -5
- package/latticeai/core/workspace_skills.py +1 -1
- package/latticeai/core/workspace_snapshots.py +2 -1
- package/latticeai/core/workspace_timeline.py +2 -1
- package/latticeai/integrations/telegram_bot.py +96 -40
- package/latticeai/models/model_providers.py +111 -0
- package/latticeai/models/router.py +189 -173
- package/latticeai/runtime/access_runtime.py +62 -4
- package/latticeai/runtime/audit_runtime.py +27 -16
- package/latticeai/runtime/automation_runtime.py +22 -7
- package/latticeai/runtime/brain_runtime.py +19 -7
- package/latticeai/runtime/chat_wiring.py +2 -0
- package/latticeai/runtime/config_runtime.py +58 -26
- package/latticeai/runtime/context_runtime.py +16 -4
- package/latticeai/runtime/history_runtime.py +163 -0
- package/latticeai/runtime/hooks_runtime.py +1 -1
- package/latticeai/runtime/model_wiring.py +33 -5
- package/latticeai/runtime/namespace_runtime.py +163 -0
- package/latticeai/runtime/network_config_runtime.py +56 -0
- package/latticeai/runtime/platform_runtime_wiring.py +4 -3
- package/latticeai/runtime/review_wiring.py +1 -1
- package/latticeai/runtime/router_registration.py +34 -1
- package/latticeai/runtime/security_runtime.py +110 -13
- package/latticeai/runtime/sso_config_runtime.py +128 -0
- package/latticeai/runtime/stages.py +27 -0
- package/latticeai/runtime/user_key_runtime.py +106 -0
- package/latticeai/server_app.py +5 -1
- package/latticeai/services/architecture_readiness.py +74 -5
- package/latticeai/services/brain_automation.py +3 -26
- package/latticeai/services/chat_service.py +205 -15
- package/latticeai/services/local_knowledge.py +423 -0
- package/latticeai/services/memory_service.py +268 -21
- package/latticeai/services/model_engines.py +48 -33
- package/latticeai/services/model_errors.py +17 -0
- package/latticeai/services/model_loading.py +28 -25
- package/latticeai/services/model_runtime.py +228 -162
- package/latticeai/services/p_reinforce.py +22 -3
- package/latticeai/services/platform_runtime.py +92 -24
- package/latticeai/services/product_readiness.py +19 -17
- package/latticeai/services/review_queue.py +76 -11
- package/latticeai/services/router_context.py +1 -0
- package/latticeai/services/run_executor.py +25 -9
- package/latticeai/services/search_service.py +203 -28
- package/latticeai/services/setup_detection.py +80 -0
- package/latticeai/services/tool_dispatch.py +28 -5
- package/latticeai/services/triggers.py +53 -4
- package/latticeai/services/upload_service.py +13 -2
- package/latticeai/setup/__init__.py +25 -0
- package/latticeai/setup/auto_setup.py +857 -0
- package/latticeai/setup/wizard.py +1264 -0
- package/latticeai/tools/__init__.py +278 -0
- package/{tools → latticeai/tools}/commands.py +67 -7
- package/{tools → latticeai/tools}/computer.py +1 -1
- package/{tools → latticeai/tools}/documents.py +1 -1
- package/{tools → latticeai/tools}/filesystem.py +3 -3
- package/latticeai/tools/knowledge.py +178 -0
- package/{tools → latticeai/tools}/local_files.py +7 -1
- package/{tools → latticeai/tools}/network.py +0 -1
- package/local_knowledge_api.py +4 -342
- package/package.json +22 -2
- package/scripts/brain_quality_eval.py +3 -1
- package/scripts/bump_version.py +3 -0
- package/scripts/capture_release_evidence.mjs +180 -0
- package/scripts/check_current_release_docs.mjs +142 -0
- package/scripts/check_i18n_literals.mjs +107 -31
- package/scripts/check_openapi_drift.mjs +56 -0
- package/scripts/export_openapi.py +67 -7
- package/scripts/i18n_literal_allowlist.json +22 -24
- package/scripts/run_integration_tests.mjs +72 -10
- package/scripts/validate_release_artifacts.py +49 -7
- package/scripts/wheel_smoke.py +5 -0
- package/setup_wizard.py +3 -1304
- package/src-tauri/Cargo.lock +1 -1
- package/src-tauri/Cargo.toml +1 -1
- package/src-tauri/tauri.conf.json +1 -1
- package/static/app/asset-manifest.json +11 -11
- package/static/app/assets/Act-Bzz0bUyW.js +1 -0
- package/static/app/assets/Brain-Dj2J20YA.js +321 -0
- package/static/app/assets/Capture-CqlEl1Ga.js +1 -0
- package/static/app/assets/Library-B03FP1Yx.js +1 -0
- package/static/app/assets/System-80lHW0Ux.js +1 -0
- package/static/app/assets/index-BiMofBTM.js +17 -0
- package/static/app/assets/index-Bmx9rzTc.css +2 -0
- package/static/app/assets/primitives-Q1A96_7v.js +1 -0
- package/static/app/assets/textarea-D13RtnTo.js +1 -0
- package/static/app/index.html +2 -2
- package/static/css/tokens.css +4 -2
- package/static/sw.js +1 -1
- package/tools/__init__.py +21 -269
- package/docs/CODE_REVIEW_2026-07-06.md +0 -764
- package/latticeai/runtime/app_context_runtime.py +0 -13
- package/latticeai/runtime/sso_runtime.py +0 -52
- package/latticeai/runtime/tail_wiring.py +0 -21
- package/scripts/com.pts.claudecode.discord.plist +0 -31
- package/scripts/pts-claudecode-discord-bridge.mjs +0 -207
- package/scripts/start-pts-claudecode-discord.sh +0 -51
- package/static/app/assets/Act-fZokUnC0.js +0 -1
- package/static/app/assets/Brain-DtyuWubr.js +0 -321
- package/static/app/assets/Capture-D5KV3Cu7.js +0 -1
- package/static/app/assets/Library-C9kyFkSt.js +0 -1
- package/static/app/assets/System-VbChmX7r.js +0 -1
- package/static/app/assets/index-DCh5AoXt.css +0 -2
- package/static/app/assets/index-DPdcPoF0.js +0 -17
- package/static/app/assets/primitives-DFeanEV6.js +0 -1
- package/static/app/assets/textarea-CD8UNKIy.js +0 -1
- package/tools/knowledge.py +0 -95
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Electron compatibility shell
|
|
2
|
+
|
|
3
|
+
Electron is an experimental compatibility client. The supported desktop build
|
|
4
|
+
is the Tauri application in `src-tauri/`; release artifacts and validation use
|
|
5
|
+
that path. Electron shares the standard local backend at `127.0.0.1:4825` and
|
|
6
|
+
can be launched for development with `npm run desktop:electron`.
|
|
7
|
+
|
|
8
|
+
Override the backend only for development with
|
|
9
|
+
`LATTICEAI_DESKTOP_BACKEND_ORIGIN` or `LATTICEAI_DESKTOP_BACKEND_CMD`.
|
|
@@ -2,7 +2,9 @@ const { app, BrowserWindow, dialog, ipcMain } = require("electron");
|
|
|
2
2
|
const { spawn } = require("node:child_process");
|
|
3
3
|
const path = require("node:path");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// Experimental compatibility shell. Tauri is the primary desktop client; use
|
|
6
|
+
// the same backend port as every other Lattice client to avoid split defaults.
|
|
7
|
+
const origin = process.env.LATTICEAI_DESKTOP_BACKEND_ORIGIN || "http://127.0.0.1:4825";
|
|
6
8
|
let backend = null;
|
|
7
9
|
|
|
8
10
|
ipcMain.handle("lattice:select-folder", async (event) => {
|
|
@@ -18,12 +20,12 @@ ipcMain.handle("lattice:select-folder", async (event) => {
|
|
|
18
20
|
|
|
19
21
|
function startBackend() {
|
|
20
22
|
if (process.env.LATTICEAI_DESKTOP_NO_BACKEND) return;
|
|
21
|
-
const command = process.env.LATTICEAI_DESKTOP_BACKEND_CMD || "python3 ltcai_cli.py --host 127.0.0.1 --port
|
|
23
|
+
const command = process.env.LATTICEAI_DESKTOP_BACKEND_CMD || "python3 ltcai_cli.py --host 127.0.0.1 --port 4825";
|
|
22
24
|
const [bin, ...args] = command.split(/\s+/).filter(Boolean);
|
|
23
25
|
if (!bin) return;
|
|
24
26
|
backend = spawn(bin, args, {
|
|
25
27
|
cwd: process.env.LATTICEAI_DESKTOP_BACKEND_CWD || path.resolve(__dirname, "../.."),
|
|
26
|
-
env: { ...process.env, LATTICEAI_HOST: "127.0.0.1", LATTICEAI_PORT: "
|
|
28
|
+
env: { ...process.env, LATTICEAI_HOST: "127.0.0.1", LATTICEAI_PORT: "4825", LATTICEAI_TUNNEL: "false" },
|
|
27
29
|
stdio: "ignore",
|
|
28
30
|
});
|
|
29
31
|
}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,226 @@ 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
|
-
## [
|
|
7
|
+
## [9.1.0] - 2026-07-11
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- Added required Telegram chat/callback allowlisting through
|
|
11
|
+
`LATTICEAI_TELEGRAM_ALLOWED_CHAT_IDS` and authenticated local API bridging
|
|
12
|
+
through `LATTICEAI_SERVER_SESSION_TOKEN`.
|
|
13
|
+
- Added signed, expiring invitation authorization, explicit legacy-global graph
|
|
14
|
+
read opt-in, and fail-closed regression coverage for broken or unknown
|
|
15
|
+
Knowledge Graph scope.
|
|
16
|
+
- Added optional permission-review deep links through
|
|
17
|
+
`LATTICEAI_PERMISSION_UI_URL` while keeping approval tokens out of outbound
|
|
18
|
+
notifications.
|
|
19
|
+
- Added Vitest coverage for API empty/result shapes, Brain proof state,
|
|
20
|
+
conversation sessions, shared primitives, and i18n, plus visual assertions
|
|
21
|
+
for unavailable core services.
|
|
22
|
+
- Added continuous vital rings, heartbeat echoes, neural sparks, body motion,
|
|
23
|
+
and Brain-to-graph particles whose speed and intensity reflect real listening,
|
|
24
|
+
recall, synthesis, and automation activity. Reduced-motion preferences still
|
|
25
|
+
disable nonessential animation.
|
|
26
|
+
- Added a living knowledge flow that shows chat, files, folders, notes, and web
|
|
27
|
+
pages entering the Brain, then renders a lightweight graph from actual
|
|
28
|
+
Knowledge Graph nodes and edges on the first screen.
|
|
29
|
+
- Added persistent conversation-to-knowledge traces, truthful ingestion
|
|
30
|
+
emergence counts and provenance, native desktop folder selection, and
|
|
31
|
+
evidence-linked Brain automation actions.
|
|
32
|
+
- Added a consent-preserving recipe lifecycle: create a reviewable disabled
|
|
33
|
+
draft, inspect its memory focus and evidence, then explicitly enable it.
|
|
34
|
+
- Added scoped MemoryService recall to workflow agents and researcher-first
|
|
35
|
+
execution for triggered and review-queue automation runs.
|
|
36
|
+
- Added a visible task-oriented desktop navigation, mobile bottom navigation,
|
|
37
|
+
accessible secondary menu, skip link, focus trap/restoration, keyboard-driven
|
|
38
|
+
tabs, and reduced-motion behavior for the React workspace.
|
|
39
|
+
- Added a dedicated human-first experience stylesheet that owns the product
|
|
40
|
+
shell, conversation canvas, shared content rhythm, responsive behavior, and
|
|
41
|
+
warm paper/ink/jade visual tokens.
|
|
42
|
+
- Added regression gates for model-request concurrency, workspace/identity
|
|
43
|
+
authorization, graph ID isolation, command sandbox escapes, SSRF and redirect
|
|
44
|
+
rebinding, approval ownership, release archive hygiene, browser-extension byte
|
|
45
|
+
limits/timeouts, OpenAPI drift, and disposable test harness state.
|
|
46
|
+
- Added a checked OpenAPI drift command and browser-extension test command to the
|
|
47
|
+
normal lint gate.
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
- Replaced ambient app-factory namespace assembly with typed config, security,
|
|
51
|
+
Brain, model, and router stages while retaining an explicit compatibility
|
|
52
|
+
surface.
|
|
53
|
+
- Replaced model-runtime dual globals with injected typed state and split chat
|
|
54
|
+
contracts, documents, history, and streaming into focused modules.
|
|
55
|
+
- Split Brain feature hooks, translation namespaces, and experience CSS by
|
|
56
|
+
product surface; frontend version copy now comes from package metadata.
|
|
57
|
+
- Consolidated shallow runtime pass-through modules, timestamps and run-status
|
|
58
|
+
constants, and moved setup/local-knowledge implementations behind package
|
|
59
|
+
owned modules with root compatibility shims.
|
|
60
|
+
- Archived code-review documents under `docs/reviews/`, removed obsolete local
|
|
61
|
+
VSIX artifacts, and documented Electron as an experimental compatibility shell.
|
|
62
|
+
- Compressed the empty Brain home into a single desktop/mobile viewport: the
|
|
63
|
+
living Brain, real graph, source dock, composer, primary grounded action, and
|
|
64
|
+
flow status remain visible without page scrolling. Conversation history,
|
|
65
|
+
deeper proof, and the complete automation action set now open in bounded
|
|
66
|
+
overlays instead of stacking below the fold.
|
|
67
|
+
- Rebuilt Brain Home around the visible source-to-memory-to-graph-to-automation
|
|
68
|
+
journey, while keeping the greeting, composer, suggested starts, recent
|
|
69
|
+
conversations, and optional deeper Brain proof.
|
|
70
|
+
- Renamed and regrouped the primary experience around Chat, Sources, Memory, and
|
|
71
|
+
Work. Memory now opens with search, basic Work leads with one goal composer,
|
|
72
|
+
and basic mode hides pipeline, agent-registry, runtime-metric, plugin, and
|
|
73
|
+
operator tabs until requested.
|
|
74
|
+
- Synced major tab choices to canonical hash routes so refresh, browser history,
|
|
75
|
+
and bookmarked Sources, Memory, Work, Model, and Settings subviews preserve
|
|
76
|
+
the user's place.
|
|
77
|
+
- Restyled shared panels, entity lists, empty states, statistics, onboarding,
|
|
78
|
+
source capture, and active messages to use solid surfaces, whitespace, and
|
|
79
|
+
separators instead of nested glass cards and dashboard grids.
|
|
80
|
+
- Brain Home now fetches a bounded graph preview so it can show real knowledge
|
|
81
|
+
relationships immediately; heavier proof and the full graph explorer remain
|
|
82
|
+
deferred until requested.
|
|
83
|
+
- Model generation, streaming, and document generation now use request-scoped
|
|
84
|
+
model snapshots without mutating the global selected model.
|
|
85
|
+
- New workspace-scoped graph nodes derive IDs from workspace identity, preventing
|
|
86
|
+
identical messages/files/concepts in separate workspaces from overwriting or
|
|
87
|
+
reassigning one another while preserving legacy unscoped reads.
|
|
88
|
+
- Workspace and identity transitions synchronously clear frontend query and
|
|
89
|
+
conversation state; the client-only egress toggle that claimed server-wide
|
|
90
|
+
enforcement was removed.
|
|
91
|
+
- Hook/model/network/registry/whole-graph portability and graph-curation operations now use administrator
|
|
92
|
+
boundaries, and chat/browser/upload/KG writes resolve workspace write access.
|
|
93
|
+
- MCP graph calls now enforce authenticated identity and workspace-scoped reads
|
|
94
|
+
and writes; local MCP environment values are never returned by the API, and
|
|
95
|
+
MCP/plugin tool dispatch cannot bypass the dedicated local-file approval flow.
|
|
96
|
+
- Memory, hybrid-search, and garden-note context assembly now use the active
|
|
97
|
+
workspace instead of blending content from every workspace the user can access.
|
|
98
|
+
- Document-generation RAG, answer traces, trace timeline events, and realtime
|
|
99
|
+
unscoped events now fail closed at the active workspace boundary.
|
|
100
|
+
- Long-lived realtime streams revalidate the session and workspace membership
|
|
101
|
+
before replay, every queued event, and each heartbeat, so revocation takes
|
|
102
|
+
effect without waiting for the SSE connection to reconnect.
|
|
103
|
+
- Realtime presence now validates workspace membership, prevents cross-user
|
|
104
|
+
client-id takeover/eviction, and assigns authenticated joins to an allowed
|
|
105
|
+
workspace instead of an unscoped global presence record.
|
|
106
|
+
- Local data directories and atomic JSON/session files now use private POSIX
|
|
107
|
+
permissions where supported.
|
|
108
|
+
- Docker packaging now uses a small build context, a non-root runtime user, and
|
|
109
|
+
a healthcheck; personal OpenClaw/bot bridge files are excluded from Git,
|
|
110
|
+
Docker, and every release archive while remaining available as ignored
|
|
111
|
+
machine-local files.
|
|
112
|
+
|
|
113
|
+
### Fixed
|
|
114
|
+
- Closed every actionable item in the July 11 code review across fail-closed
|
|
115
|
+
security, typed runtime/model/chat ownership, honest frontend failures/tests,
|
|
116
|
+
and repository hygiene.
|
|
117
|
+
- Telegram now rejects unknown chats before registration; invitation gates no
|
|
118
|
+
longer trust a static cookie or built-in code, including SSO just-in-time
|
|
119
|
+
provisioning; and graph projection failures cannot expose cross-workspace
|
|
120
|
+
nodes.
|
|
121
|
+
- Agent and Computer Use history/run persistence now retains authenticated
|
|
122
|
+
user and workspace ownership, and recent model context is selected through
|
|
123
|
+
fail-closed storage scopes before prompt assembly.
|
|
124
|
+
- Desktop, knowledge, Obsidian, and network-status tools now use explicit
|
|
125
|
+
policy/capability/consent checks. Permission queues use atomic private writes,
|
|
126
|
+
notifications expose token hints only, and MCP paths are masked.
|
|
127
|
+
- Failed API results no longer become quiet healthy Brain state, proof is not
|
|
128
|
+
synthesized after failure, and action success callbacks run only on success.
|
|
129
|
+
- Fixed ingestion deltas that compared against truncated display lists instead
|
|
130
|
+
of complete graph/readiness baselines, and replaced simulated stage timers
|
|
131
|
+
with post-response memory and graph verification.
|
|
132
|
+
- Fixed global Brain recall pulses being ignored by Brain instances without a
|
|
133
|
+
local callback, relationship visuals inventing fallback endpoints, and SVG
|
|
134
|
+
gradient IDs colliding when multiple living Brains appear on one page.
|
|
135
|
+
- Fixed Brain automation hook/agent configuration mismatches, missing scoped
|
|
136
|
+
recall, trigger runs that skipped agent execution, and review-queue runs that
|
|
137
|
+
did not execute the workflow's agent node.
|
|
138
|
+
- Fixed local-folder graph nodes and Brain events trusting unvalidated or absent
|
|
139
|
+
workspace scope, losing scope on watcher restart, appearing in another
|
|
140
|
+
workspace's graph/search, or waking another workspace/owner's recipe. Legacy
|
|
141
|
+
personal nodes are reprojected without changing their IDs.
|
|
142
|
+
- Fixed recipe activation replacing reviewed user edits with the starter
|
|
143
|
+
definition, and stopped empty web captures from being presented as newly
|
|
144
|
+
remembered knowledge.
|
|
145
|
+
- Blocked permission request self-approval, stale disabled/deleted-account
|
|
146
|
+
sessions, agent approval forgery and cross-user resume, body identity spoofing,
|
|
147
|
+
command traversal/symlink/interpreter escapes, and authenticated scope lookup
|
|
148
|
+
fail-open behavior.
|
|
149
|
+
- Hardened URL ingestion against localhost/private/link-local/multicast/reserved
|
|
150
|
+
targets, mixed DNS answers, redirect-to-metadata attacks, environment proxies,
|
|
151
|
+
binary payloads, and unbounded response buffering.
|
|
152
|
+
- Isolated integration and OpenAPI generation from real `~/.ltcai` state and
|
|
153
|
+
made missing required npm tarballs a release-validation failure.
|
|
154
|
+
|
|
155
|
+
## [9.0.0] - 2026-07-08
|
|
156
|
+
|
|
157
|
+
### Added
|
|
158
|
+
- Added Brain Brief suggested questions that turn current memory, recall proof,
|
|
159
|
+
graph concepts, and conversation history into clickable first-screen prompts.
|
|
160
|
+
- Suggested Brain questions now send immediately from the first screen instead
|
|
161
|
+
of only filling the composer.
|
|
162
|
+
- Added one-click follow-up prompts under the latest Brain answer for turning a
|
|
163
|
+
reply into a checklist, evidence review, or prioritized next steps.
|
|
164
|
+
- Added a Brain chat to Review Center handoff so users can save an answer as a
|
|
165
|
+
reviewable task draft and manage it alongside automation suggestions.
|
|
166
|
+
- Added direct Brain-to-Agent delegation and successful agent-run synthesis into
|
|
167
|
+
durable Brain memory/graph context.
|
|
168
|
+
- Surfaced recent agent-synthesis memories in Brain overview and memory rings
|
|
169
|
+
so delegated work is visibly reflected on the home screen.
|
|
170
|
+
- Improved agent-run Brain synthesis quality by splitting successful results
|
|
171
|
+
into key facts, decisions, and follow-up memories with structured metadata.
|
|
172
|
+
- Agent follow-ups now enter Review Center as task drafts so delegated work
|
|
173
|
+
produces actionable approval candidates instead of passive memory only.
|
|
174
|
+
- Approving an Agent follow-up review item now promotes it into a manual
|
|
175
|
+
workflow draft with trigger, agent, and output nodes.
|
|
176
|
+
- Added large-feature foundations for KG/Retrieval scale diagnostics,
|
|
177
|
+
background ingestion scheduling, offline multimodal image captions,
|
|
178
|
+
proactive contradiction detection, and ingestion bridge marketplace templates.
|
|
179
|
+
- Added proactive Brain action cards that turn Brain Brief evidence into
|
|
180
|
+
one-click ask, Agent delegation, Review Center draft, or graph navigation
|
|
181
|
+
actions on the Brain home screen.
|
|
182
|
+
- Added a visible proactive Brain action trail so one-click suggestions show
|
|
183
|
+
their running/completed/failed state after the user acts on them.
|
|
184
|
+
|
|
185
|
+
### Changed
|
|
186
|
+
- Continued app-factory decomposition by extracting user profile/API-key helper
|
|
187
|
+
wiring into `latticeai.runtime.user_key_runtime`, keeping the legacy
|
|
188
|
+
`server_app` callable surface while making keyring/plaintext fallback policy
|
|
189
|
+
independently testable.
|
|
190
|
+
- Split additional runtime and static-data seams out of app, chat, MCP, model,
|
|
191
|
+
and Knowledge Graph modules while preserving re-export compatibility for
|
|
192
|
+
existing imports.
|
|
193
|
+
- Routed Computer Use direct `/cu/*` actions through the shared ToolRegistry
|
|
194
|
+
policy gate and audit lifecycle, preserving route paths while blocking
|
|
195
|
+
non-admin direct desktop control by default.
|
|
196
|
+
- Moved blocked-system-prefix protection into `tools.local_write` itself so
|
|
197
|
+
local filesystem writes fail closed even when called outside the HTTP approval
|
|
198
|
+
route.
|
|
199
|
+
- Narrowed the lazy `server_app` compatibility namespace by filtering
|
|
200
|
+
app-factory scratch imports and runtime wiring dictionaries while preserving
|
|
201
|
+
explicit legacy helpers, and added a typed `RuntimeBundle` migration target
|
|
202
|
+
behind the legacy `_RUNTIME_BUNDLE` dict.
|
|
203
|
+
|
|
204
|
+
### Fixed
|
|
205
|
+
- Added regression coverage for provider API-key lookup/storage behavior,
|
|
206
|
+
including keyring precedence, plaintext fallback gating, legacy plaintext
|
|
207
|
+
cleanup after keyring writes, and identity creation on plaintext fallback.
|
|
208
|
+
- Added regression coverage for Computer Use policy enforcement, audit-safe
|
|
209
|
+
typed-text metadata, and direct local-write system-prefix blocking.
|
|
210
|
+
- Fixed functional findings from the July 8 code review: file generation now
|
|
211
|
+
fails cleanly when no model is loaded, chat/document streams preserve a
|
|
212
|
+
terminal SSE event on generation errors, agent runs persist failed status on
|
|
213
|
+
executor exceptions, Brain delegation treats HTTP failures as failures, and
|
|
214
|
+
local permission expiry cleanup no longer corrupts the active token lookup.
|
|
215
|
+
- Tightened non-security chat intent detection, Telegram bot server URL
|
|
216
|
+
configuration, LATTICE_TZ-aware runtime audit timestamps, local embedding
|
|
217
|
+
dimension consistency, and stale Brain UI version copy.
|
|
218
|
+
- Paid down the remaining July 8 cleanup debt by moving duplicated JSON/ISO/hash
|
|
219
|
+
and setup detection helpers into shared modules, switching runtime audit
|
|
220
|
+
appends to JSONL while preserving legacy JSON reads, making the legacy runtime
|
|
221
|
+
namespace allowlist-based, clarifying static-vs-SPA design token ownership,
|
|
222
|
+
and consolidating duplicated frontend helper functions.
|
|
223
|
+
- Reduced the remaining chat-router risk by extracting repeated chat history,
|
|
224
|
+
bridge notification, no-model, single-answer, direct-file, and agent-file
|
|
225
|
+
response paths out of the main `/chat` handler, with regression coverage for
|
|
226
|
+
the shared fast-path epilogue.
|
|
8
227
|
|
|
9
228
|
## [8.9.0] - 2026-07-06
|
|
10
229
|
|
|
@@ -233,7 +452,7 @@ existed at that release.
|
|
|
233
452
|
- Updated architecture and product readiness targets to 8.0.0.
|
|
234
453
|
- Synchronized package/runtime/static/Tauri metadata to 8.0.0.
|
|
235
454
|
- Updated current-release docs and exact artifact names to 8.0.0 while
|
|
236
|
-
|
|
455
|
+
setting 8.0.0 as the oldest retained release-history entry.
|
|
237
456
|
|
|
238
457
|
### Fixed
|
|
239
458
|
- Made logical Knowledge Graph `replace` imports transactional so malformed
|
|
@@ -242,239 +461,3 @@ existed at that release.
|
|
|
242
461
|
`relationship_search`, and `traverse`.
|
|
243
462
|
- Preserved colliding legacy edge labels during logical import/backfill while
|
|
244
463
|
keeping native write-door synonym dedupe canonical.
|
|
245
|
-
|
|
246
|
-
## [7.9.0] - 2026-06-23
|
|
247
|
-
|
|
248
|
-
### Changed
|
|
249
|
-
- Added `SingleAgentRuntime` as the explicit name for the legacy single-agent
|
|
250
|
-
state machine while preserving `AgentRuntime` as a compatibility alias.
|
|
251
|
-
- Updated tool dispatch to build `SingleAgentRuntime` directly.
|
|
252
|
-
- Moved single-agent git rollback behind an injected `rollback_file` port owned
|
|
253
|
-
by `ToolDispatchService`, keeping shell execution out of the core state
|
|
254
|
-
machine.
|
|
255
|
-
- Added a shared `runtime-boundary/v1` descriptor so product and single-agent
|
|
256
|
-
runtime boundaries are machine-readable in config/tests.
|
|
257
|
-
- Added `RuntimeBoundaryProtocol` as the minimal shared inspection surface for
|
|
258
|
-
runtime-boundary-aware dependency injection.
|
|
259
|
-
- Updated architecture and product readiness targets to 7.9.0.
|
|
260
|
-
|
|
261
|
-
## [7.8.0] - 2026-06-22
|
|
262
|
-
|
|
263
|
-
### Changed
|
|
264
|
-
- Rebuilt Brain Chat Home around immediate conversation: chat purpose, starter
|
|
265
|
-
prompts, and the composer now occupy the first viewport.
|
|
266
|
-
- Collapsed source ingestion, readiness, proof, timeline, overview, model
|
|
267
|
-
continuity, and care controls behind one utility drawer.
|
|
268
|
-
- Kept workspace navigation visible on the default Brain surface.
|
|
269
|
-
- Hid default depth controls until the user intentionally travels deeper.
|
|
270
|
-
- Integrated the six post-7.7 UX drafts into the canonical Brain experience:
|
|
271
|
-
first-run value cards, stronger recommendation affordances, product-toned
|
|
272
|
-
Brain Home copy, and routed legacy Brain conversation entry points to the
|
|
273
|
-
canonical Brain Home surface.
|
|
274
|
-
- Removed obsolete Brain conversation and first-run guide components.
|
|
275
|
-
- Moved draft onboarding polish out of inline styles and into the shared design
|
|
276
|
-
stylesheet with responsive behavior and bilingual copy.
|
|
277
|
-
- Updated architecture and product readiness targets to 7.8.0.
|
|
278
|
-
- Refreshed 7.8.0 release screenshots, walkthrough video/GIF, and capture
|
|
279
|
-
notes under `output/release/v7.8.0/`.
|
|
280
|
-
|
|
281
|
-
## [7.7.0] - 2026-06-22
|
|
282
|
-
|
|
283
|
-
> 7.7.0 marks the complete, finished product stage for Lattice AI.
|
|
284
|
-
> After 7.6.0 architecture closure, this release polishes every surface so that anyone looking at the code, UI, docs, or running app immediately recognizes: "this is now a product".
|
|
285
|
-
|
|
286
|
-
Lattice AI v7.7 delivers the Living Brain as the undeniable center, production-grade runtime contracts, stable ToolRegistry, full ingestion-to-graph flows, bilingual professional UX, and zero-beta signals. Classifiers moved to Production/Stable. All prior gates remain enforced under finished product contract.
|
|
287
|
-
|
|
288
|
-
Package metadata, Tauri, frontend, Python all aligned to 7.7.0. UI/UX microcopy and signals updated to convey finished professional tool.
|
|
289
|
-
|
|
290
|
-
### Productization Highlights
|
|
291
|
-
- Extreme self + claude-code (pts_claudecode) used for polish, evaluation, iteration.
|
|
292
|
-
- "This is a product" bar: clear durable knowledge ownership, no loose ends.
|
|
293
|
-
- Validation: typecheck, unit, cargo, build scripts exercised.
|
|
294
|
-
|
|
295
|
-
### Changed
|
|
296
|
-
- Package/runtime/static metadata synchronized to 7.7.0.
|
|
297
|
-
- Development status to Production/Stable.
|
|
298
|
-
- All current-release references point to 7.7.0.
|
|
299
|
-
|
|
300
|
-
## [7.6.0] - 2026-06-22
|
|
301
|
-
|
|
302
|
-
> Brain-Centered UX & Architecture Closure. Incorporates the two local review
|
|
303
|
-
> files into the release line with a Wake Brain first-run surface, memory rings
|
|
304
|
-
> plus direct depth controls, and machine-checkable architecture readiness gates.
|
|
305
|
-
|
|
306
|
-
### Added
|
|
307
|
-
- Wake Brain first-run entry before owner/profile setup, reducing onboarding to
|
|
308
|
-
the product promise first and the setup mechanics second.
|
|
309
|
-
- Concentric memory rings around Brain Home plus direct controls for Now, Memory,
|
|
310
|
-
Topics, Relationships, and Full Graph navigation.
|
|
311
|
-
- `latticeai.services.architecture_readiness.architecture_readiness()` and
|
|
312
|
-
`tests/unit/test_v76_review_completion.py` to keep AgentRuntime, ToolRegistry,
|
|
313
|
-
Config, server decomposition, KG hardening, and Brain UX review closure under
|
|
314
|
-
test.
|
|
315
|
-
|
|
316
|
-
### Changed
|
|
317
|
-
- Package/runtime/static metadata is synchronized to 7.6.0; package publish and
|
|
318
|
-
deployment remain owner-run only.
|
|
319
|
-
- README and release docs now describe 7.6.0 as the current release and point to
|
|
320
|
-
refreshed 7.6.0 screenshots, walkthrough GIF, and release evidence index under
|
|
321
|
-
`output/release/v7.6.0/`.
|
|
322
|
-
|
|
323
|
-
## [7.5.0] - 2026-06-20
|
|
324
|
-
|
|
325
|
-
> Runtime Debt Burn-down & Release Risk Cleanup. Turns the 7.4.0 contract
|
|
326
|
-
> envelope into a consumed API surface, expands retrieval quality to a 250+
|
|
327
|
-
> record local corpus fixture, and removes release/security warnings.
|
|
328
|
-
|
|
329
|
-
### Added
|
|
330
|
-
- `extract_contract`, `require_contract`, `contract_view`, and `contract_views`
|
|
331
|
-
helpers for consumers that need a surface-agnostic `agent-run-contract/v1`
|
|
332
|
-
projection.
|
|
333
|
-
- AgentRuntime status/list/detail/events and realtime feed responses now expose
|
|
334
|
-
compact `contracts` views alongside legacy payloads.
|
|
335
|
-
- Deterministic 250+ record retrieval benchmark corpus while keeping 12 judged
|
|
336
|
-
queries and real `KnowledgeGraphStore` + `SearchService` execution.
|
|
337
|
-
- Refreshed README release evidence screenshots and walkthrough GIF under
|
|
338
|
-
`output/release/v7.5.0/`.
|
|
339
|
-
|
|
340
|
-
### Changed
|
|
341
|
-
- Tauri Rust/CLI dependencies are updated within the Tauri 2 line, removing the
|
|
342
|
-
old transitive `block v0.1.6` future-incompatibility warning.
|
|
343
|
-
- npm dependency overrides move `js-yaml` to a non-vulnerable version; `npm
|
|
344
|
-
audit` reports 0 vulnerabilities.
|
|
345
|
-
- CI lint compatibility is restored for the Brain quality gate script.
|
|
346
|
-
- Local MLX model preparation now recognizes valid existing Hugging Face cache
|
|
347
|
-
snapshots, avoiding an unnecessary re-download when the model already exists
|
|
348
|
-
outside Lattice's managed `~/.ltcai/hf-models` directory.
|
|
349
|
-
- Package/runtime/static metadata is synchronized to 7.5.0; package publish and
|
|
350
|
-
deployment remain owner-run only.
|
|
351
|
-
|
|
352
|
-
## [7.4.0] - 2026-06-20
|
|
353
|
-
|
|
354
|
-
> Runtime Contract Convergence & Corpus Retrieval. Completes the
|
|
355
|
-
> agent-run-contract/v1 family across run storage, workflow execution, audit
|
|
356
|
-
> events, realtime events, and a real corpus-scale retrieval quality gate.
|
|
357
|
-
|
|
358
|
-
### Added
|
|
359
|
-
- Persisted agent and workflow run rows now carry refreshed contract metadata
|
|
360
|
-
for queued, running, terminal, cancelled, and interrupted states.
|
|
361
|
-
- Workflow engine results, replay payloads, audit log events, and realtime SSE
|
|
362
|
-
feed events now expose the same `agent-run-contract/v1` family envelope while
|
|
363
|
-
preserving existing top-level compatibility fields.
|
|
364
|
-
- Corpus-scale retrieval fixture with 30+ documents, judged queries,
|
|
365
|
-
must-include expectations, and thresholds for recall, precision, NDCG, and
|
|
366
|
-
hit rate.
|
|
367
|
-
- `scripts/brain_quality_eval.py` now exercises the real local
|
|
368
|
-
`KnowledgeGraphStore` + `SearchService` hybrid retrieval path before scoring.
|
|
369
|
-
|
|
370
|
-
### Changed
|
|
371
|
-
- `RetrievalBenchmarkRunner` reports dynamic metric aliases for the selected
|
|
372
|
-
`top_k` and a `must_include_hit_rate`.
|
|
373
|
-
- Package/runtime/static metadata is synchronized to 7.4.0; package publish and
|
|
374
|
-
deployment remain owner-run only.
|
|
375
|
-
|
|
376
|
-
## [7.3.0] - 2026-06-20
|
|
377
|
-
|
|
378
|
-
> Runtime Contract & Retrieval Quality. Turns the next AgentRuntime extraction
|
|
379
|
-
> step and the uploaded roadmap's hybrid-search quality goals into a small,
|
|
380
|
-
> tested release: shared run contracts and deterministic recall regression.
|
|
381
|
-
|
|
382
|
-
### Added
|
|
383
|
-
- `lattice_brain.runtime.contracts.AgentRunContract`, a serializable
|
|
384
|
-
`agent-run-contract/v1` payload shared by single-agent and multi-agent
|
|
385
|
-
execution paths.
|
|
386
|
-
- Multi-agent API result/run patches now include the shared contract with
|
|
387
|
-
runtime, mode, status, roles, retries, timeline, and terminal-state data.
|
|
388
|
-
- Single-agent runtime exposes the same contract helper for UI/API/storage
|
|
389
|
-
convergence in the next extraction pass.
|
|
390
|
-
- `scripts/brain_quality_eval.py` now runs deterministic hybrid recall/ranking
|
|
391
|
-
regression checks with recall and precision thresholds.
|
|
392
|
-
|
|
393
|
-
### Changed
|
|
394
|
-
- Package/runtime/static metadata is synchronized to 7.3.0; package publish and
|
|
395
|
-
deployment remain owner-run only.
|
|
396
|
-
|
|
397
|
-
## [7.2.0] - 2026-06-20
|
|
398
|
-
|
|
399
|
-
> Runtime Trust Baseline. Adds execution preview and registry diagnostics so
|
|
400
|
-
> agent runs and tool permissions become inspectable contracts before action.
|
|
401
|
-
|
|
402
|
-
### Added
|
|
403
|
-
- `POST /agents/api/run/preview` for AgentRuntime readiness, role selection,
|
|
404
|
-
input keys, retry clamping, and blocking reasons without starting a run.
|
|
405
|
-
- `GET /tools/registry` for the live ToolRegistry manifest across dispatch
|
|
406
|
-
handlers, governance policy, catalog descriptions, and permissions.
|
|
407
|
-
- `GET /tools/registry/diagnostics` for a compact drift check suitable for CI,
|
|
408
|
-
admin views, and runtime health panels.
|
|
409
|
-
- Unit coverage for AgentRuntime preview and ToolRegistry manifest diagnostics.
|
|
410
|
-
|
|
411
|
-
### Changed
|
|
412
|
-
- Tool governance now covers `read_document`, and the catalog describes
|
|
413
|
-
`create_web_project`, closing the current dispatch/governance/catalog drift.
|
|
414
|
-
- Package/runtime/static metadata is synchronized to 7.2.0; package publish and
|
|
415
|
-
deployment remain owner-run only.
|
|
416
|
-
|
|
417
|
-
## [7.1.0] - 2026-06-20
|
|
418
|
-
|
|
419
|
-
> Brain Usability Completion. Completes the 7.1.0 first-run through editor-sync
|
|
420
|
-
> usability pass: clear onboarding, visible ingestion, graph controls, inline
|
|
421
|
-
> proof, workspace/admin discovery, feedback states, and VS Code sync status.
|
|
422
|
-
|
|
423
|
-
### Added
|
|
424
|
-
- Hardware visualization, expected timing, install timeline, and next-action
|
|
425
|
-
copy in first-run onboarding.
|
|
426
|
-
- Brain Home ingestion stage disclosure and memory emergence timeline for file,
|
|
427
|
-
folder, note, and URL sources.
|
|
428
|
-
- Knowledge Graph search suggestions, entity type filters, recent/all-time time
|
|
429
|
-
exploration, focus clearing, and neighbor highlighting.
|
|
430
|
-
- Inline answer citation markers with keyboard-accessible proof cards.
|
|
431
|
-
- Workspace/profile switcher, Admin Console gate, consent revoke feedback, and
|
|
432
|
-
shared empty/error feedback surfaces in the Brain shell.
|
|
433
|
-
- VS Code extension heartbeat/status endpoint plus extension and main-app sync
|
|
434
|
-
indicators for connected/indexing/synced/offline states.
|
|
435
|
-
|
|
436
|
-
### Changed
|
|
437
|
-
- Package/runtime/static metadata is synchronized to 7.1.0; package publish and
|
|
438
|
-
deployment remain owner-run only.
|
|
439
|
-
|
|
440
|
-
## [7.0.0] - 2026-06-18
|
|
441
|
-
|
|
442
|
-
> Brain Productization Loop. Turns the Brain proof work into a first-five-minute
|
|
443
|
-
> product flow: add sources, ask a question, see proof/citations, and verify the
|
|
444
|
-
> same Brain evidence after switching models.
|
|
445
|
-
|
|
446
|
-
### Added
|
|
447
|
-
- Brain Home ingestion panel for files, local folder paths, notes, and web URLs,
|
|
448
|
-
all backed by existing workspace-scoped ingestion routes.
|
|
449
|
-
- Answer-level Memory proof and source citation cards rendered under assistant
|
|
450
|
-
responses after Brain proof refreshes for the user's query.
|
|
451
|
-
- Model-continuity demo strip that lets the user recheck the same Brain
|
|
452
|
-
evidence and jump to model switching from the Brain flow.
|
|
453
|
-
- Deterministic `scripts/brain_quality_eval.py` recall/KG quality gate, wired
|
|
454
|
-
into CI after the unit suite.
|
|
455
|
-
- Visual mock coverage for Brain proof, document upload, note ingest, folder
|
|
456
|
-
indexing, and web URL ingestion endpoints.
|
|
457
|
-
|
|
458
|
-
### Changed
|
|
459
|
-
- Brain Home is now ingestion-first instead of chat-first: first screen action
|
|
460
|
-
labels are files/folders/notes/web, with deeper graph/model/settings still
|
|
461
|
-
reachable from the shell.
|
|
462
|
-
- Package/runtime/static metadata is synchronized to 7.0.0; package publish and
|
|
463
|
-
deployment remain owner-run only.
|
|
464
|
-
|
|
465
|
-
- Completed ALL Recommended next refactor items from report #15 in this session:
|
|
466
|
-
- Server decomp wave (model_runtime globals/wiring): model_loading.py for prepare_and_load and stream, _MODEL_RUNTIME_STATE, model_engines.
|
|
467
|
-
- Deeper WorkspaceOSStore (timeline + plugins + snapshots + memory).
|
|
468
|
-
- KG embed: set_embed_dim.
|
|
469
|
-
- All refactoring needed finished this session per AGENTS. 767 tests, builds, greps clean.
|
|
470
|
-
|
|
471
|
-
### Added (this session features)
|
|
472
|
-
- `vision_analyze` tool: new multimodal vision analysis tool using screenshot b64 + prompt. Leverages existing VLM support (image_data in generate). Added to computer-use agent prompt and general tools. Fits seamlessly with computer_use, agent runtime, tool registry, and VLM models without affecting text-only paths.
|
|
473
|
-
- More recent multimodal models in user recommendations (Llama 3.2 11B Vision, Phi-3.5 Vision, Qwen2.5-VL 7B, Moondream2) + family order update in model_recommendation. Expanded curated list in model_capability_registry for better local VLM choices on Apple Silicon and other.
|
|
474
|
-
- All additions checked for compatibility with existing KG (descriptions can be ingested), agents/tools dispatch, chat/computer_use (image pass-through), model rec logic, and non-multimodal fallbacks.
|
|
475
|
-
|
|
476
|
-
- Perfect completion of report #15 recommended refactor:
|
|
477
|
-
- Server decomp wave: ModelRuntimeState class (not dict) for globals/wiring in model_runtime; sync_to_module_globals for compat; further clean.
|
|
478
|
-
- Deeper WorkspaceOSStore: timeline/plugins managers fully delegated and composed (record, has_permission etc all through).
|
|
479
|
-
- KG embed: set_embed_dim available for optional central handling.
|
|
480
|
-
- All changes preserve legacy exactly, full composition, small modules.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Community And Plugins
|
|
2
2
|
|
|
3
|
-
Current release: **
|
|
3
|
+
Current release: **9.1.0 — Code Review Completion & Fail-Closed Runtime**.
|
|
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
|
|
7
7
|
reliability, 8.7.0 runtime-state hygiene, 8.8.0 Brain Core extraction
|
|
8
|
-
readiness,
|
|
8
|
+
readiness, 8.9.0 scoped Tool API hardening, 9.0.0 cleanup closure, and 9.1.0
|
|
9
|
+
fail-closed review completion) to a product ecosystem. The
|
|
9
10
|
immediate goal is small and practical: make it clear how
|
|
10
11
|
contributors can extend the Brain without weakening local-first trust,
|
|
11
12
|
workspace scoping, or release quality.
|
package/docs/DEVELOPMENT.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Lattice AI Development
|
|
2
2
|
|
|
3
|
-
Current release: **
|
|
3
|
+
Current release: **9.1.0 — Code Review Completion & Fail-Closed Runtime**.
|
|
4
4
|
|
|
5
5
|
This document is for contributors working on the local-first Digital Brain
|
|
6
6
|
codebase. Product positioning and quick start stay in `README.md`; release
|
|
7
|
-
history is intentionally limited to
|
|
7
|
+
history is intentionally limited to 8.0.0-9.1.0 in `docs/CHANGELOG.md` and
|
|
8
8
|
`RELEASE.md`.
|
|
9
9
|
|
|
10
10
|
## Product Contract
|
|
@@ -51,12 +51,14 @@ API, UI, or release work, run:
|
|
|
51
51
|
npm run check:python
|
|
52
52
|
npm run lint
|
|
53
53
|
npm run typecheck
|
|
54
|
+
npm run test:frontend
|
|
54
55
|
npm run test:unit
|
|
55
56
|
npm run docs:check-links
|
|
56
57
|
```
|
|
57
58
|
|
|
58
59
|
`npm run lint` runs the Python Ruff baseline, frontend TypeScript lint gate,
|
|
59
|
-
visual smoke syntax checks,
|
|
60
|
+
visual smoke syntax checks, an exact generated-OpenAPI drift check, i18n literal
|
|
61
|
+
checks, and browser-extension syntax/behavior tests.
|
|
60
62
|
|
|
61
63
|
Use these when the change touches the relevant surface:
|
|
62
64
|
|
|
@@ -64,10 +66,42 @@ Use these when the change touches the relevant surface:
|
|
|
64
66
|
npm run test:integration
|
|
65
67
|
npm run test:visual
|
|
66
68
|
npm run desktop:tauri:check
|
|
69
|
+
npm run release:evidence
|
|
67
70
|
npm run release:artifacts
|
|
68
71
|
npm run release:validate
|
|
69
72
|
```
|
|
70
73
|
|
|
74
|
+
Run `npm run build:assets` before `npm run release:evidence`. The capture command
|
|
75
|
+
reads the current package version, writes only to `output/release/vX.Y.Z/`, and
|
|
76
|
+
requires Playwright Chromium plus `ffmpeg` for the checked-in GIF/WebM evidence.
|
|
77
|
+
|
|
78
|
+
`npm run test:integration` starts its own loopback server with disposable HOME,
|
|
79
|
+
data, Brain, agent, XDG, temp, SQLite, and vault paths. It refuses non-loopback
|
|
80
|
+
external base URLs so validation cannot mutate a developer's real local Brain.
|
|
81
|
+
|
|
82
|
+
Regenerate committed API artifacts with `npm run frontend:openapi`; CI and
|
|
83
|
+
`npm run lint` fail when either `frontend/openapi.json` or
|
|
84
|
+
`frontend/src/api/openapi.ts` differs from a fresh isolated export.
|
|
85
|
+
|
|
86
|
+
## Frontend Experience Ownership
|
|
87
|
+
|
|
88
|
+
`frontend/src/styles/tokens.css` owns React color tokens and
|
|
89
|
+
`frontend/src/styles/experience.css` imports the focused shell, conversation,
|
|
90
|
+
graph, capture, and responsive layers under `frontend/src/styles/experience/`.
|
|
91
|
+
Keep ownership in the narrowest surface file; do not add another competing
|
|
92
|
+
shell or composer rule to `styles.css`.
|
|
93
|
+
|
|
94
|
+
Brain behavior belongs in the focused `useBrainChat`, `useBrainHistory`,
|
|
95
|
+
`useBrainIngestion`, and `useBrainProof` hooks. Translation namespaces live in
|
|
96
|
+
`frontend/src/i18n/`. Failed `ApiResult` values must remain unavailable/error
|
|
97
|
+
states rather than being normalized to healthy empty data, and affected paths
|
|
98
|
+
must have Vitest coverage.
|
|
99
|
+
|
|
100
|
+
Default mode should expose user tasks and outcomes. Runtime metrics, registry
|
|
101
|
+
identifiers, pipeline controls, and administrator tools belong in progressive
|
|
102
|
+
disclosure or advanced/admin mode. New navigation and tabs must preserve
|
|
103
|
+
keyboard access, visible focus, mobile safe areas, and reduced-motion behavior.
|
|
104
|
+
|
|
71
105
|
## Runtime Assembly
|
|
72
106
|
|
|
73
107
|
`latticeai.app_factory` is the composition root. Keep it import-safe:
|
|
@@ -77,13 +111,18 @@ npm run release:validate
|
|
|
77
111
|
- no filesystem writes at module import time;
|
|
78
112
|
- no external network calls at module import time.
|
|
79
113
|
|
|
80
|
-
Runtime assembly seams live under `latticeai.runtime
|
|
114
|
+
Runtime assembly seams live under `latticeai.runtime` as typed stages:
|
|
81
115
|
|
|
82
|
-
- `config_runtime.py` derives app config values from `Config`;
|
|
116
|
+
- `config_runtime.py` derives immutable app config values from `Config`;
|
|
83
117
|
- `security_runtime.py` applies trusted proxy/security-derived settings;
|
|
84
|
-
- `brain_runtime.py` constructs Brain Core and conversation primitives
|
|
85
|
-
- model
|
|
86
|
-
|
|
118
|
+
- `brain_runtime.py` constructs Brain Core and conversation primitives;
|
|
119
|
+
- model, platform, and router stages receive explicit dependencies and return
|
|
120
|
+
typed bundles rather than ambient `locals()` maps.
|
|
121
|
+
|
|
122
|
+
The module-level `server_app` compatibility surface is an explicit allowlist.
|
|
123
|
+
Model services use injected state, and HTTP exceptions belong at the API
|
|
124
|
+
boundary. Readiness tests should reject forbidden patterns instead of treating
|
|
125
|
+
symbol presence alone as architectural completion.
|
|
87
126
|
|
|
88
127
|
Future extraction should continue with AgentRuntime, ToolRegistry, config,
|
|
89
128
|
server decomposition, and Knowledge Graph stabilization in that order when
|
|
@@ -114,10 +153,10 @@ For user-facing, API, runtime, release, or packaging changes, check:
|
|
|
114
153
|
Release/publish examples must use exact target-version filenames. Do not
|
|
115
154
|
document wildcard artifact upload commands.
|
|
116
155
|
|
|
117
|
-
For
|
|
156
|
+
For 9.1.0 release work, exact artifacts are:
|
|
118
157
|
|
|
119
|
-
- `dist/ltcai-
|
|
120
|
-
- `dist/ltcai-
|
|
121
|
-
- `ltcai-
|
|
122
|
-
- `dist/ltcai-
|
|
123
|
-
- `src-tauri/target/release/bundle/dmg/Lattice
|
|
158
|
+
- `dist/ltcai-9.1.0-py3-none-any.whl`
|
|
159
|
+
- `dist/ltcai-9.1.0.tar.gz`
|
|
160
|
+
- `ltcai-9.1.0.tgz`
|
|
161
|
+
- `dist/ltcai-9.1.0.vsix`
|
|
162
|
+
- `src-tauri/target/release/bundle/dmg/Lattice AI_9.1.0_aarch64.dmg`
|