memorix 1.3.4 → 1.4.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "description": "Shared workspace memory for Codex and other AI coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "description": "Shared local workspace memory for GitHub Copilot CLI and other AI coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "mcpServers": {
5
5
  "memorix": {
6
6
  "command": "memorix",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix-omp-package",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "description": "Memorix shared workspace memory package for Oh-my-Pi.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "description": "Shared workspace memory for OpenClaw and other AI coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix-pi-package",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "description": "Memorix shared workspace memory package for Pi coding agent.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
package/server.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://github.com/AVIDS2/memorix",
8
8
  "source": "github"
9
9
  },
10
- "version": "1.3.4",
10
+ "version": "1.4.1",
11
11
  "websiteUrl": "https://github.com/AVIDS2/memorix#readme",
12
12
  "icons": [
13
13
  {
@@ -22,7 +22,7 @@
22
22
  {
23
23
  "registryType": "npm",
24
24
  "identifier": "memorix",
25
- "version": "1.3.4",
25
+ "version": "1.4.1",
26
26
  "runtimeHint": "npx",
27
27
  "packageArguments": [
28
28
  {
@@ -129,6 +129,7 @@ function detectStaleProgressNotes(input: {
129
129
  now: Date;
130
130
  }): ProjectStaleNote[] {
131
131
  const candidates = [
132
+ 'ACTIVE_WORK.md',
132
133
  'progress.txt',
133
134
  'docs/dev-log/progress.txt',
134
135
  'docs/memcode/dev-log/progress.txt',
@@ -1,388 +0,0 @@
1
- # Memorix Development Progress
2
-
3
- > Current handoff note for new agent sessions. Code and release facts outrank
4
- > older notes when they conflict.
5
-
6
- ## Current State
7
- - Phase: 1.2.5 retrieval performance and reliability release candidate
8
- - Branch: `codex/1.2.5-retrieval-performance`
9
- - Last updated: 2026-07-27
10
- - Released baseline: `memorix@1.2.4`, tag `v1.2.4`, `origin/main` at
11
- `24f3b9b`.
12
- - Goal: make ordinary retrieval deterministic and bounded without changing the
13
- local SQLite + in-process Orama architecture.
14
-
15
- ## 1.2.5 Retrieval Performance and Reliability
16
- - Retrieval now has three explicit profiles: `fast` is fully local, `balanced`
17
- is the default vector-capable path without LLM query work, and `thorough`
18
- explicitly opts into configured LLM query rewrite/reranking.
19
- - `OPENROUTER_API_KEY` remains an embedding fallback only. It activates the
20
- memory LLM lane only when that lane explicitly names an OpenRouter provider
21
- or base URL, preventing embedding-only configurations from adding hidden
22
- network work to normal search.
23
- - Embedding, rerank, MCP search, and maintenance share one timeout helper that
24
- clears watchdog timers after settlement. This removes the previously measured
25
- avoidable CLI exit delay from a completed rerank path while preserving real
26
- timeouts for stalled work.
27
- - Read-only memory CLI commands skip session-store and maintenance-target setup
28
- while retaining the existing project/identity visibility boundary.
29
- - Local verification completed before release: TypeScript check; focused
30
- timeout/config/search/CLI/SDK tests; a full serial suite that reached a
31
- single stale Codex plugin-manifest version assertion, followed by its
32
- dedicated passing recheck after the template was synced; production build;
33
- package SDK benchmark; real CLI smoke; and an in-memory MCP client smoke
34
- confirming `memorix_search.quality` and `fast` mode.
35
- - Current benchmark evidence on Windows/Node 22: a 1,000-record hot in-process
36
- SDK lexical fixture measured specific lookup p50 44.603 ms / p95 96.085 ms
37
- and broad-query p50 160.903 ms / p95 171.878 ms. This excludes CLI startup,
38
- MCP transport, remote embeddings, and LLM work by design; the two query
39
- shapes are reported separately rather than averaged into a marketing number.
40
-
41
- ## 1.2.4 Persistent Memory Delivery
42
- - Continuation is now a bounded delivery projection over existing sessions and
43
- durable observations, not a second handoff database. `TaskWorkset` keeps its
44
- task lens (`bugfix`, `feature`, and so on) while independently recognizing a
45
- continuation request.
46
- - A continuation Workset includes at most the latest meaningful completed
47
- session summary plus three readable durable memory anchors. Each item is
48
- visible in the existing `ContextReceipt`; ordinary tasks do not receive it.
49
- - `memorix resume "<task>"` is the CLI-equivalent continuation entry. The
50
- existing MCP `memorix_project_context` receives the same behavior from the
51
- user's task text, so the micro MCP profile stays at seven tools.
52
- - Setup-generated rules now use a single fallback call when MCP is genuinely
53
- unavailable: `memorix resume` for prior work or `memorix context` for new
54
- work. They explicitly forbid help probing, command enumeration, and broad
55
- search loops before the first brief.
56
- - The visibility reader is carried into continuation retrieval, preserving
57
- project aliases while failing closed for other agents' personal memory.
58
- - Continuation text preserves whole technical identifiers instead of emitting a
59
- misleading partial token. MCP Project Context also establishes a short-lived
60
- delivery boundary: a follow-up search/detail request does not re-send an
61
- already represented record unless the caller names a missing fact or the user
62
- explicitly asks for the underlying detail.
63
- - A read-only or "do not modify files" Autopilot task blocks `memorix_store`
64
- by default. The only override is an explicit user request to persist a
65
- record, represented by `overrideReadOnly: true`.
66
- - A real Codex user-path smoke, in a fresh Git fixture seeded only through the
67
- public CLI, made one natural-language continuation request. Codex received
68
- the bounded brief, used one specific Context Pack expansion, was stopped
69
- from re-reading already-covered memory, made no `memorix_store` write, and
70
- returned the correct read-only next step.
71
- - Completed local gates: TypeScript check, production build, focused
72
- continuation/hook/CLI regressions, and the full suite (`237` files / `2677`
73
- tests). A fresh packed install with optional native dependencies omitted used
74
- Node SQLite to persist the same `memorix.db`; CLI resume retained
75
- `AUTH_REFRESH_V2`; the micro MCP package surface exposed exactly seven tools
76
- and enforced duplicate-retrieval plus read-only-write boundaries; and an
77
- isolated Codex global setup wrote/activated the versioned Personal-marketplace
78
- plugin with the matching skill guidance. Pending release gates: CI and
79
- publish.
80
-
81
- ## 1.2.3 Session Context Visibility Hotfix
82
- - A real installed-package CLI smoke found that a second coordination identity
83
- could receive the first identity's personal observation in automatic session
84
- context. The root cause was a reader-less core session-context call.
85
- - `getSessionContext()` now accepts an `ObservationReader`; CLI, MCP, and TUI
86
- session entry points pass their resolved caller identity. Alias-backed
87
- project-visible records remain readable, while personal/team records fail
88
- closed.
89
- - Graph-neighbor routing is omitted whenever a reader is present because graph
90
- relations are not yet visibility-scoped. Core, CLI, MCP, and alias regression
91
- tests cover the boundary.
92
-
93
- ## 1.1.13 Closeout
94
- - Codex setup now stamps plugin versions and doctor distinguishes bundle,
95
- marketplace, installed/enabled state, declared hooks, and hook trust.
96
- - Root package publishing is isolated from internal `@memorix/*` workspaces.
97
- - Full tests, build, pack inspection, isolated MCP smoke, isolated Codex smoke,
98
- and Ubuntu/Windows CI all passed before release.
99
-
100
- ## 1.2 Accepted Direction
101
- - The [1.2 Product Story](../1.2.0-PRODUCT-STORY.md) is the canonical
102
- user-facing narrative; the Development Charter is its implementation
103
- contract.
104
- - The [Knowledge and Workflow Research](../1.2.0-KNOWLEDGE-WORKFLOW-RESEARCH.md)
105
- establishes Knowledge Workspace and Workflow Inheritance as 1.2 core product
106
- layers, with an explicit boundary against claiming the existing memory map is
107
- already a semantic graph or maintained LLM Wiki.
108
- - The [1.2 Implementation Plan](../1.2.0-IMPLEMENTATION-PLAN.md) is the
109
- execution contract for the single complete 1.2 goal. All phases are internal
110
- gates in one continuous delivery path, not separate user approval points.
111
- - Use the [1.2 Development Charter](../1.2.0-DEVELOPMENT-CHARTER.md) as the
112
- working product contract.
113
- - Keep the current SQLite CodeGraph tables and incremental refresh as the base;
114
- do not discard working 1.1 Code Memory.
115
- - Add versioned Code State and evidence-quality semantics before new parsers,
116
- external providers, or user-visible tool surfaces.
117
- - Treat natural-language `memorix_project_context` as the product surface;
118
- internal graph/provider complexity must stay behind it.
119
-
120
- ## Phase 0 Evaluation Foundation
121
- - Existing UI/API projections now identify themselves honestly as a read-only
122
- Memory Overview and deterministic Memory Map. They are not presented as a
123
- maintained wiki or semantic graph.
124
- - The Workset evaluation harness has fixture repositories for TypeScript,
125
- Python, Go, docs-only, dirty worktree, deleted-symbol, and incomplete-scan
126
- cases. Its seed manifest covers observations, Git facts, test evidence,
127
- mini-skills, and explicit graph relations.
128
- - The harness compares memory-only, current-context, and candidate Worksets
129
- against source/evidence/caution requirements and variant token ceilings.
130
- - The current Auto Context path is smoke-tested against real local TypeScript
131
- and dirty-worktree fixtures with embeddings disabled. The candidate budget is
132
- 180 tokens; the current baseline budget is 320 tokens.
133
- - The former memory map remains separate from the formal Claim Ledger. Phase 2
134
- owns claim provenance, conflict, and supersession semantics; Phase 0 only
135
- prevents the old views from being mislabeled as those capabilities.
136
-
137
- ## Phase 1 Code State
138
- - Lite refresh now appends a Code State Snapshot with bounded Git revision and
139
- worktree metadata, a source epoch, a prior-snapshot link, and explicit scan
140
- completeness.
141
- - Current files, symbols, edges, and current observation-code refs are marked
142
- with the latest completed snapshot. Existing CodeGraph rows survive the
143
- additive schema migration.
144
- - Project Context, the CodeGraph MCP status payload, and the codegraph CLI
145
- status output expose the latest snapshot. A non-Git directory reports
146
- unavailable instead of clean.
147
-
148
- ## Phase 2 Claim Ledger
149
- - SQLite now has additive, transactional tables for claims, evidence
150
- references, and lifecycle events. Every stored claim requires at least one
151
- source reference and credential values are sanitized before durable writes.
152
- - Exact normalized assertions reuse their record and attach more evidence;
153
- competing approved assertions remain disputed rather than being overwritten.
154
- Evidence-aware supersession preserves an audit trail.
155
- - Explicit memories and Git-ingested facts can derive conservative claims.
156
- Hook/model output does not become approved knowledge automatically.
157
- - Observation code references inherit the latest Code State Snapshot when they
158
- are created. CodeGraph refresh requalifies bound claims: changed or deleted
159
- symbols become unknown, and incomplete scans force review instead of false
160
- certainty.
161
- - Unit and integration tests cover evidence validation, redaction, conflict,
162
- supersession, model-review policy, snapshot binding, changed-symbol
163
- requalification, and compact task selection.
164
-
165
- ## Phase 3 Knowledge Workspace
166
- - Memorix now initializes a private local Markdown workspace by default. A
167
- versioned workspace requires an explicit absolute path inside the Git project
168
- and refuses ignored or unsafe target directories.
169
- - Approved active claims compile into Markdown proposals with frontmatter,
170
- source claim ids, evidence references, snapshot context, a catalog, and an
171
- append-only change log. Proposed pages are not silently published.
172
- - The knowledge init, status, compile, apply, and lint commands provide the
173
- operator path. Applying a proposal protects a manual page edit by default;
174
- an explicit force flag is the only overwrite path and is logged.
175
- - Workspace lint detects malformed frontmatter, broken links, orphan pages,
176
- missing claims/evidence, superseded claims, unresolved conflicts, stale code
177
- snapshots, and protected manual edits.
178
- - The compiled CLI was smoke-tested in an isolated Git project through init,
179
- compile, apply, and lint with a source-backed claim.
180
-
181
- ## 1.2 Delivery Complete, Released As 1.2.1
182
- - Phase 4 added canonical Markdown workflows, safe adapter preview/apply, import,
183
- selection, and verification receipts. Agent instruction files are render
184
- targets, not the workflow source of truth.
185
- - Phase 5 routes Project Context and Context Pack through one bounded Workset
186
- assembler. It ranks current facts, claims, knowledge pages, workflows, and
187
- cautions instead of dumping unrelated narrative memory.
188
- - Phase 6 makes refresh, claim derivation/requalification, knowledge
189
- compile/lint, workflow indexing, retention, and consolidation durable
190
- maintenance work. Interactive MCP requests do not scan an entire corpus.
191
- - Phase 7 adds an optional local semantic CodeGraph boundary. Lite remains the
192
- durable local fallback; external output is used only from a healthy existing
193
- `.codegraph` index, is validated, bounded, and never persisted as raw code.
194
- - The advanced `memorix_knowledge` MCP action tool now exposes explicit
195
- workspace/proposal/workflow management only in `team` and `full` profiles.
196
- - Completed local release gates: lint, full test suite, production build,
197
- package-content audit, isolated Windows npm install, stdio MCP smoke, and
198
- HTTP dashboard/lifecycle smoke.
199
- - Release audit also incorporated #130 before publication: the optional SQLite
200
- runtime now uses the Node-26-compatible `better-sqlite3` 12.x line, with a
201
- dedicated Node 26 CI smoke that opens an in-memory database.
202
- - The release was completed as `memorix@1.2.1`. Its next development line is
203
- [1.2.2 Memory Control Plane](../1.2.2-MEMORY-CONTROL-PLANE.md), which
204
- consolidates these capabilities instead of adding another disconnected
205
- memory feature.
206
-
207
- ## 1.2.2 Control Plane
208
- - `TaskWorkset` already has bounded rendering and source-aware claims, but
209
- SessionStart handoff and legacy context surfaces need one shared admission,
210
- budget, and receipt contract.
211
- - First implementation slice complete: the shared `ContextReceipt` records
212
- delivery target, selected source ids/kinds, trust/freshness, exact budget
213
- omissions, queued refreshes, and Workset selection time without entering the
214
- agent prompt. Project Context, Context Pack, and full SessionStart injection
215
- now carry the same delivery-target semantics; `memorix explain` exposes the
216
- receipt in text and JSON.
217
- - Budget selection now keeps a knowledge page dependent on a Claim out of the
218
- prompt when its qualifying Claim could not fit. The receipt records both as
219
- withheld instead of presenting an orphaned page path as usable knowledge.
220
- - Phase 3 admission slice complete: automatic observations now persist an
221
- `ephemeral`, `candidate`, or `qualified` state and a reason. Hooks and the
222
- internal orchestrator capture concrete evidence as candidates, keep routine
223
- success/telemetry ephemeral, and drop low-signal activity without writing it.
224
- Automatic capture stays quiet in the host agent.
225
- - A deduplicated `observation-qualify` maintenance job runs after CodeGraph
226
- refresh. It requires a scan no older than the capture and at least one
227
- current code reference before upgrading a candidate. Qualification does not
228
- create a Claim; explicit saves and Git remain the Claim boundary.
229
- - Auto Project Context, automatic session L1 delivery, Wiki/Knowledge Graph
230
- compilation, and graph-context packets exclude candidates and ephemeral
231
- traces. Ordinary search prefers qualified material, while explicit lookup
232
- can still inspect pending evidence.
233
- - Pending automatic evidence is also excluded from automatic consolidation so
234
- a later qualification can still inspect its original source grain. Retention
235
- explanations no longer describe an unqualified `core` candidate as immune.
236
- - Actor and visibility enforcement is now one policy shared by MCP retrieval,
237
- auto context, CLI/TUI, dashboards, knowledge/graph projections, and scoped
238
- maintenance. Legacy observations remain project-visible; new records may be
239
- `project`, `team`, or `personal` with an explicit creator and recipients.
240
- Missing identity never grants private or team visibility.
241
- - Automatic hooks and orchestrator traces begin personal. A verified hook
242
- candidate may become project evidence only when qualification proves a
243
- current code reference. Targeted handoffs are readable by sender and
244
- recipient but writable only by sender; broadcasts require an active project
245
- team member.
246
- - Automatic orchestration lesson lookup is explicitly project-scoped, so its
247
- prompt injection cannot read personal or team-scoped records.
248
- - Topic-key writes now check mutation scope before storage, and the
249
- project-attribution guard receives only memories visible to its current
250
- reader. This closes both guessed-key overwrite and cross-project existence
251
- hints without hiding historical project knowledge after upgrade.
252
- - The embedded SDK remains project-visible when unbound. CLI and the local TUI
253
- now share the same explicit actor reader: an unbound terminal sees project
254
- memory only, while `memorix identity join|use` (or one-shot `--as`) grants
255
- only that active project member's personal/team visibility and coordination
256
- ergonomics. `identity clear` returns to project scope; private evidence
257
- cannot be promoted into shared skills or generated project skills.
258
- - CLI control-plane ergonomics now include `--cwd`, kebab-case flag aliases,
259
- action-oriented namespace help, explicit `memorix workbench`, and
260
- file/stdin transfer import/export. Root memory aliases use the same
261
- canonical command paths as `memorix memory`; CLI and MCP exports are filtered
262
- by the same active reader so an unbound backup cannot contain private/team
263
- observations.
264
- - Direct CLI and foreground Code Memory refreshes now enqueue qualification as
265
- well as claim requalification, and they register the local project target
266
- needed by the isolated control-plane worker. The host hook path persists its
267
- candidate before scheduling a refresh, avoiding a fast-worker race where a
268
- scan could predate the capture.
269
- - Compiled-artifact smoke: an isolated Codex `PostToolUse` hook returned only
270
- `continue: true`, stored a `candidate`, and the isolated background control
271
- plane upgraded it to `qualified` after a real Code Memory scan with one
272
- current reference. Embeddings were deliberately disabled for this
273
- deterministic local smoke. The full test suite, TypeScript check, and
274
- production build also passed after the admission policy was reconciled with
275
- OpenCode's concise technical response events.
276
- - #135 remains a contributor-owned session-handoff candidate for the bounded
277
- `HandoffPacket` phase. It is not copied or silently replaced.
278
- - #133/#134 remain open pending an official provider-capability layer and a
279
- safe agent-facing media path. The existing OpenRouter text embedding path is
280
- the supported baseline.
281
- - See [1.2.2 Memory Control Plane](../1.2.2-MEMORY-CONTROL-PLANE.md) for
282
- phases, acceptance gates, non-goals, and release criteria.
283
-
284
- ## 1.2.6 Pi Overlay Integrity
285
- - Replaced the stale Memcode TUI command list with one registry derived from
286
- the executable Pi-compatible built-ins plus Memorix-native memory actions.
287
- `/commands` and editor completion no longer advertise non-dispatched `/git`,
288
- `/help`, `/config`, or synthetic session commands; nested `/memory `
289
- completion is available in the live input path.
290
- - Made `/memory delete <id>` execute the intended project-memory resolution,
291
- including fresh project-store initialization. The no-argument form remains a
292
- safe list-and-select prompt.
293
- - Adopted Pi's current model-initiated bash session contract without changing
294
- general harness behavior: Memcode supplies current `PI_*` session/model
295
- metadata by default, removes stale inherited values, and lets an extension
296
- opt out explicitly.
297
- - Added a pinned, read-only Pi upstream audit manifest and maintainer command.
298
- Large upstream comparisons fall back from GitHub's capped file list to a
299
- recursive official Git-tree diff before any manual adoption decision.
300
- - Completed the Node built-in SQLite compatibility path instead of treating it
301
- as a degraded happy-path fallback: prepared statements now accept complete
302
- row objects like `better-sqlite3`, and synchronous transactions implement
303
- deferred, immediate, and exclusive entry points. This unblocks task claims,
304
- coordination, and Knowledge Workspace review when the optional native module
305
- is absent.
306
- - Release polish: bundled `memcode --version` resolves the verified public
307
- Memorix package version; `memorix context --task "..."` no longer requires a
308
- redundant positional argument; and every shipped versioned plugin manifest
309
- is aligned with the public release version.
310
- - Final verification after the last Memcode change: `npm run lint`, the root
311
- production build, the root test suite, and the complete Memcode suite all
312
- passed. The Memcode suite reported 158 passing files / 1474 passing tests
313
- (with its 5 opt-in skipped files / 43 skipped tests). Pi upstream audit
314
- through `v0.82.1` also passed.
315
- - A fresh isolated installation of the final tarball verified `memorix` and
316
- `memcode` version parity, all seven versioned plugin manifests, both Context
317
- CLI forms, and a real stdio MCP handshake: 43 tools were discoverable and
318
- `memorix_project_context` returned an Autopilot Brief.
319
-
320
- ## 1.2.7 Native Context Continuity
321
- - Added a project-scoped SQLite checkpoint store that separates host-native
322
- compaction evidence from Observations, claims, Knowledge Workspace pages,
323
- and transcript storage. It captures preflight markers, native summaries
324
- where the host exposes them, lifecycle-only completion where it does not,
325
- idempotent retry handling, one-time delivery state, and archival.
326
- - Pi and Oh-my-Pi extensions now pass through their real `compactionEntry`
327
- fields. Codex and Claude Code use their documented compact lifecycle paths
328
- without fabricating a host summary or changing the host compactor.
329
- - Codex consumes one bounded checkpoint at compact `SessionStart`; Claude Code
330
- consumes one on the next official `UserPromptSubmit` delivery point. Explicit
331
- CLI/MCP continuation can carry at most one recent source-labelled checkpoint
332
- across configured agents, while ordinary new tasks remain free of it.
333
- - Added `memorix checkpoint list|show|context|archive` and the full-profile
334
- `memorix_compaction_checkpoint` MCP action. The default MCP profile remains
335
- unchanged to protect agent context budgets.
336
- - Final verification passed: focused compaction, hook, Workset, CLI, and MCP
337
- tests; the full root test suite; TypeScript check; production build; npm
338
- package dry-run; an isolated installed-artifact Codex/CLI/MCP smoke; and an
339
- isolated Claude Code handoff/continuation smoke. `npm publish --dry-run
340
- --ignore-scripts` accepted the public 1.2.7 tarball; the full prepublish
341
- build/test path is covered by the root release gates above.
342
-
343
- ## 1.2.8 Vector Recovery and Codex Installation Clarity
344
- - Reworked vector backfill failure handling so transient provider or local
345
- index failures leave one durable, diagnosable retry with bounded backoff
346
- instead of consuming the maintenance retry budget in each new MCP process.
347
- Healthy work clears stale diagnostics, revives an old failed vector job when
348
- needed, and resolves superseded historical failure rows once recovery is
349
- complete. Provider calls are batched while process-local Orama writes remain
350
- serialized.
351
- - Corrected dashboard and HTTP control-plane vector reporting. A process that
352
- does not own a hydrated MCP search index now states that vector status belongs
353
- to the active MCP session rather than showing a misleading green `0 / 0`.
354
- - Corrected Codex install diagnostics: an enabled official Codex plugin owns
355
- its `.mcp.json` `memorix serve` endpoint, while first-use hook approval is an
356
- explicit host consent step rather than a broken installation. Plugin setup
357
- removes only the legacy source-path `memorix` entry after successful plugin
358
- installation; custom user-managed MCP entries are preserved.
359
- - Release verification: focused regression tests (96 assertions), `npm run
360
- lint`, production build, and the full root test suite (all passed, 280s).
361
- A live OpenRouter `qwen/qwen3-embedding-8b` batch returned two 4096d vectors.
362
- An isolated tarball install reported CLI version `1.2.8`; its stdio MCP
363
- handshake exposed 44 tools and completed `memorix_project_context`, and its
364
- CLI `context --json` path returned a structured Workset. `npm pack --dry-run`
365
- and `npm publish --dry-run --ignore-scripts` both accepted the final tarball
366
- without manifest normalization warnings.
367
-
368
- ## 1.3 Curated Long-Term Memory
369
- - Added an additive SQLite long-term-memory layer with explicit episodic,
370
- semantic, and procedural kinds; independent scope and portability; source
371
- evidence; and an auditable `candidate -> qualified -> approved ->
372
- archived/superseded` lifecycle. Existing Observation, Claim, Wiki, Workflow,
373
- Session, and Code State stores remain their own canonical sources.
374
- - Added the complete CLI lifecycle surface and extended the existing MCP store/
375
- detail routes without increasing the default seven-tool micro profile. Task
376
- Worksets expose at most three relevant approved or qualified records as short
377
- `durable:<id>` references for progressive expansion.
378
- - Explicit `user + portable` manual/user-confirmed records can be reused across
379
- local projects for the same owner. Code, Git, tests, sessions, workflows,
380
- observations, claims, and team/project evidence remain project-bound.
381
- - Semantic durable retrieval is an optional cross-language/paraphrase fallback
382
- after lexical selection. Provider initialization and the one batch request use
383
- a 1.8-second no-retry budget; API request cancellation is propagated to the
384
- remote fetch so an unavailable embedding service cannot retain a CLI process.
385
- - Verification in progress: focused lifecycle/CLI/MCP/embedding tests, a real
386
- packed-package cross-project Chinese-to-English retrieval smoke, and an
387
- isolated Claude Code plugin user test that returned the reviewed release
388
- procedure without inspecting project files.