@korrlabs/mnemospi 4.1.0 → 4.3.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 CHANGED
@@ -114,7 +114,7 @@ One local server — and a connected agent harness gets the full memory stack.
114
114
  | **Lifecycle hooks** | `pre_llm_call` context injection, `on_session_start`, `post_tool_call` auto-compression of tool outputs |
115
115
  | **Publication v3.0.0** | Entries visible immediately after save, background refinement with seamless swap, quarantine with neutral retraction |
116
116
  | **Self-protection** | Injection / secret detectors on input and publication, every output scanned, full per-entry audit |
117
- | **Auto-pipeline** | Background processor: clustering, deduplication, quality gate, publication |
117
+ | **Auto-pipeline** | Background processor: clustering, deduplication, quality gate, publication. Entries awaiting refinement sit at `pipeline_state=pending` until the processor runs — in CLI-only deployments (no daemon) start it with `mnemos processor start`; `mnemos doctor` reports the pending-queue depth |
118
118
 
119
119
  Autonomy for an arbitrary harness and LLM-driven enrichment are partial — the
120
120
  full, honest map lives in [docs/en/features.md](docs/en/features.md).
@@ -142,6 +142,15 @@ control surfaces, and a storage layer you can read with your own eyes.
142
142
  SQLite for metadata, a local numpy + SQLite vector index for recall, and an Obsidian-compatible vault
143
143
  for the humans in the loop.
144
144
 
145
+ **Where this is going.** The shipped, measured rung is *stores and finds*. The next rungs —
146
+ *collapse with checks* (session → project → cross-project synthesis: automatic by default, but never
147
+ unconditional in authority — every derivative traces back to its sources, nothing pins without an
148
+ operator) and, later, *builds understanding* — open only as pre-registered experiments prove them
149
+ ([ADR-0025](docs/project/adr/0025-memory-meta-level-lanes.md)). The invariant on that road is
150
+ **zero silent losses**: a fact is either retained, or its loss is visible. And the shape of the
151
+ ambition is a *nervous system, not a conductor* — memory that surfaces the right thing at the right
152
+ moment, never one that conducts the agent.
153
+
145
154
  ---
146
155
 
147
156
  ## 🤝 Connect any harness
@@ -303,3 +312,27 @@ Apache-2.0 — see [LICENSE](LICENSE) and [NOTICE](NOTICE). Source: [github.com/
303
312
 
304
313
  Contributions are welcome — [CONTRIBUTING.md](CONTRIBUTING.md) has the development setup, the branch
305
314
  and commit conventions, and the quality gate a change must pass.
315
+
316
+ ---
317
+
318
+ ## 🛠 CI / Релизы — кластерный конвейер `release-pipeline`
319
+
320
+ Этот проект подключён к общему кластерному конвейеру релизов
321
+ ([Korrnals/release-pipeline](https://github.com/Korrnals/release-pipeline),
322
+ K3s `abyss-ai-agent`, namespace `release-pipeline`). GitHub Actions не
323
+ используется (биллинг аккаунта заблокирован) — конвейер и есть штатный путь
324
+ релизов. Релизный артефакт подписывается трёхслойно: SHA256 → SBOM → cosign → GPG.
325
+
326
+ **Релиз новой версии:**
327
+ 1. `VERSION` → релизный коммит (конвенция репо) → тег `vX.Y.Z` → push.
328
+ 2. Обновить версию проекта в `projects[]` файла `~/.cache/release-pipeline-values.yaml` и применить:
329
+ ```bash
330
+ helm upgrade --install release-pipeline \
331
+ ~/LABs/Projects/Project-Umbra/release-pipeline/chart/release-pipeline \
332
+ --kube-context abyss-ai-agent -n release-pipeline \
333
+ -f ~/.cache/release-pipeline-values.yaml
334
+ ```
335
+ 3. Наблюдение: `kubectl --context abyss-ai-agent -n release-pipeline get jobs`,
336
+ логи: `kubectl ... logs -f job/release-<proj>-<ver>`.
337
+
338
+ Подробности (типы проектов, kaniko-контейнеры, teardown): README конвейера.
package/README.ru.md CHANGED
@@ -142,6 +142,15 @@ mnemos search "помнит между сессиями"
142
142
  SQLite для метаданных, локальный векторный индекс на numpy + SQLite для recall и Obsidian-совместимый
143
143
  vault для людей в контуре.
144
144
 
145
+ **Куда это движется.** Отгруженная и измеренная ступень — *хранит и находит*. Следующие ступени —
146
+ *свёртка с чеками* (синтез сессия → проект → кросс-проект: автоматическая по умолчанию, но никогда
147
+ безусловная по авторитету — каждый итог возводим к исходникам, ничто не пиннится без оператора) и
148
+ позже *строит понимание* — открываются только по мере подтверждения предрегистрированными
149
+ экспериментами ([ADR-0025](docs/project/adr/0025-memory-meta-level-lanes.md)). Инвариант этого
150
+ пути — **ноль тихих потерь**: факт либо сохранён, либо потеря видна. А форма амбиции — *нервная
151
+ система, а не дирижёр*: память, которая поднимает нужное в нужный момент, но никогда не дирижирует
152
+ агентом.
153
+
145
154
  ---
146
155
 
147
156
  ## 🤝 Подключение любого харнеса
@@ -28,6 +28,10 @@ rewrite lifecycle.
28
28
  - **Tool output compression (hooks.post_tool_call)** — a tool returned a
29
29
  huge output you want substituted by a zero-loss CCR marker, with
30
30
  provenance stamped for strict marker validation.
31
+ - **Re-assembly (mid-session)** — only when memory changed materially (a
32
+ new decision, a rewritten context block that must surface). The
33
+ assembled block is prefix-stable by design; gratuitous re-assembly
34
+ rewrites the prefix and discards the cache the session was building.
31
35
 
32
36
  ## STEPS
33
37
 
@@ -92,6 +96,22 @@ rewrite lifecycle.
92
96
  project/agent/session/supersedes/content), so re-delivery cannot
93
97
  duplicate writes.
94
98
 
99
+ 6. **Keep assembly cache-friendly** (provider-agnostic cache discipline):
100
+
101
+ - Assemble the context once per session, or on material memory
102
+ change; mid-session re-assembly is reserved for significant
103
+ changes only.
104
+ - The assembled mnemos text is per-call conversation content (tail),
105
+ NOT a standing prefix — never inject mnemos blocks into the system
106
+ prompt.
107
+ - Do not change the MCP tool set or tool schemas mid-session; a tool
108
+ change invalidates the provider's cache for the entire session.
109
+ - Prefer append-over-rewrite on compaction: append the new summary
110
+ after the stable prefix rather than rewriting the prefix.
111
+ - Align system prompts once, at assembly time
112
+ (`mnemos_align_prefix`); dynamic values (timestamps, counters,
113
+ volatile state) go to the tail, never the prefix.
114
+
95
115
  ## DISCIPLINE
96
116
 
97
117
  - **Never assemble context by hand.** The pipeline stages (context filter,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@korrlabs/mnemospi",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "description": "Mnemos memory & knowledge server — Pi extension. Spawns `mnemos mcp-server` over stdio and exposes every mnemos_* tool as a native Pi tool, plus the mnemos skill pack.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",