# Reported issues for Nuzo Memory

Pod holds 20 of 61 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [Nuzo Memory](/mcp/nuzo-memory).

## Most discussed

### Measure and batch relation hydration for recall and list

## Context

MCP `memory.recall` and `memory.list` enrich each returned memory by calling `service.relations(...)` separately. The storage adapter already has a batch primitive (`listRelationsForMemoryIds`), but it is not exposed through an authorized core use case for these handlers.

This is a confirmed N+1 query shape, not yet a demonstrated user-facing regression. Measure before optimizing.

## Tasks

- [ ] Add a deterministic benchmark/query-count fixture for sparse and relation-dense stores

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/323) · 2026-07-13 · closed · 3 comments

### Define and enforce scope authorization boundaries

## Finding

Nuzo scopes currently organize records but do not authorize access. A process connected to one SQLite store can request another scope or use unscoped list/export/bulk-forget operations. This matters once multiple hosts, projects, teams, or trust levels share a user store.

The `0.1.x` documentation now states this boundary and recommends separate stores when isolation is required.

## Design work

- define whether authorization belongs in core policy, MCP session configuration, host 

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/34) · 2026-06-19 · closed · 3 comments

### Publish the first Nuzo npm runtime packages

Nuzo now generates and validates publish candidates for the three shared runtime packages. This issue tracks the external publication step needed before fresh Codex and Claude Code plugin installs can launch the version-pinned MCP server.

Packages:
- `@nuzo/memory-core`
- `@nuzo/memory-cli`
- `@nuzo/mcp-server`

Current release contract:
- host plugin command: `npx --yes @nuzo/mcp-server@<plugin-version>`
- core, CLI, MCP server, and host plugin versions move together
- source workspace package

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/16) · 2026-06-18 · closed · 3 comments

### Define distributable package layout for Codex and Claude Code plugins

Nuzo now generates distributable Codex and Claude Code plugin layouts that launch a version-pinned shared MCP runtime through:

```text
npx --yes @nuzo/mcp-server@<plugin-version>
```

Completed:
- [x] Select the shared published MCP package instead of bundling duplicate host runtimes.
- [x] Define the release artifact layout for Codex.
- [x] Define the release artifact layout for Claude Code.
- [x] Validate release layouts independently from monorepo development paths.
- [x] Add `npm run packag

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/13) · 2026-06-18 · closed · 3 comments

### Add read-only relation governance review for legacy memory

## Context

Nuzo now supports explicit relations and confirmed challenge flows, but older/imported stores can contain memories that were created before those governance tools existed. Operators need a bounded way to find likely duplicate, conflicting, or superseded records without enabling silent inferred writes.

This is a focused child slice of #305. The useful idea from Engram is easier discovery of evolving project knowledge; Nuzo must keep all proposed relations read-only drafts until a use

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/334) · 2026-07-22 · closed · 2 comments

### Evaluate tamper-evident binding for stateless capture confirmation

## Context

Nuzo's `memory.confirm_capture` is deliberately stateless: `confirm: true` is the host's attestation that it displayed the final draft and received an explicit user decision. The server does not persist suggestions and cannot prove that a human interaction occurred.

Issue #321 makes this boundary explicit in MCP metadata and documentation. This follow-up should evaluate whether a tamper-evident draft binding would materially reduce accidental or compromised-host field substitution w

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/325) · 2026-07-13 · closed · 2 comments

### Define the 1.0.0 CLI-first developer experience release gate

## Goal

Turn the documented 1.0.0 developer experience contract into a release gate that can be validated before the stable release.

## Scope

- Fresh npm global install plus explicit `nuzo setup`.
- Codex and Claude Code plugin visibility, enablement, and hook trust flow.
- Cross-session recall of confirmed memory.
- Explicit remember, update, and forget through host tools.
- Draft-first inferred capture with confirmation-gated writes.
- Managed update through `nuzo update --yes` without repe

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/214) · 2026-06-30 · closed · 2 comments

### Freeze and audit public MCP/CLI contract compatibility before 1.0.0

## Context

0.9.0 is the contract-stabilization release. Before 1.0.0, the public MCP tool schemas, CLI JSON outputs, export/import format, error codes, and semantic fallback diagnostics need one focused compatibility audit.

## Done when

- `docs/spec/tools.md`, `docs/spec/api-versioning.md`, CLI command outputs, and MCP server responses are cross-checked for drift.
- Public error codes and JSON fields are classified as stable, experimental, or deprecated.
- Any breaking change needed before 1.

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/178) · 2026-06-29 · closed · 2 comments

## Most recent

### Fix restricted reads poisoned by cross-scope memory relations

## Context

Restricted MCP and host sessions use `NUZO_AUTHORIZED_SCOPES` to fail closed around memory scopes. An administrator can legitimately create a relation between memories in different scopes in a shared store.

The core relation read path authorizes the requested memory and then throws while checking every returned endpoint. One forbidden endpoint therefore poisons an otherwise-authorized read. Because `memory.recall`, `memory.recall_hook`, `memory.list`, and `memory.show` hydrate relat

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/330) · 2026-07-22 · closed · 0 comments

### Harden MCP confirmation and audit boundaries before Registry publication

## Context

A cross-review of the `1.1.0` Registry candidate reproduced trust-boundary gaps that should be fixed before publishing immutable npm/Registry artifacts. These are existing core/MCP behaviors surfaced more broadly by generic MCP discovery, not Registry-package business logic.

## Reproduced failures

- Two identical concurrent `memory.confirm_capture` create decisions can both return `created` and persist duplicate active memories because duplicate lookup happens before the write tran

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/321) · 2026-07-13 · closed · 0 comments

### Design memory governance lifecycle for provenance, review, and challenge

## Context

Nuzo needs memory governance to be a first-class product contract, not an accidental side effect of storage and recall.

The core risk is stale or weakly-attributed memory that sounds authoritative. A memory such as "this repo uses deployment flow X" may be correct when captured, wrong later, and still harmful if every new agent session recalls it without enough context, provenance, confidence, or review state.

The goal of this issue is to design the contract that keeps Nuzo memory 

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/294) · 2026-07-06 · closed · 1 comment

### Enforce the lifecycle-hook input bound while reading stdin

## Problem

The lifecycle hook defines a 65,536-character input limit, but the executable entrypoint calls `readFileSync(0, "utf8")` before checking that limit. A very large host payload is therefore fully allocated first, so the advertised resource bound does not protect the process from excessive stdin memory use.

## Scope

- Read stdin incrementally and stop after the configured bound plus minimal UTF-8 decoding slack.
- Preserve the existing fail-open hook behavior and error message.
- Cove

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/269) · 2026-07-04 · closed · 0 comments

### Bound audit event-type filters at the core boundary

## Problem

The MCP schema bounds `event_type`, but the public core `audit()` path accepts an arbitrarily long `eventTypes` array. The SQLite adapter expands one named parameter per item, so repeated valid values can cause excessive SQL construction or exceed SQLite variable limits instead of producing a stable validation error.

## Scope

- Add a core-level bound based on the finite public event-type set.
- Decide whether duplicate filters are rejected or normalized deterministically.
- Keep MC

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/264) · 2026-07-04 · closed · 0 comments

### Reject fractional limits at the core service boundary

## Problem

The public core policy validates recall, list, audit, and history limits by range but not by integer-ness. Fractional values can therefore reach SQLite `LIMIT` clauses and fail as adapter errors instead of stable domain validation errors. MCP schemas already require integers, but library-level callers are part of the supported integration surface.

## Scope

- Require finite positive integers for every bounded limit at the core boundary.
- Preserve existing maximums and error codes w

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/262) · 2026-07-04 · closed · 0 comments

### Enforce compiler hygiene across production and test TypeScript

## Problem

The shared TypeScript configuration does not currently enforce unused declarations, implicit returns, switch fallthrough, override annotations, unreachable code, or unused labels. Package checks also omit test-source typechecking.

A strict audit found stale production imports and three test-only type errors that normal CI does not detect.

## Scope

- Enable the applicable built-in TypeScript hygiene flags centrally.
- Add no-emit test-source typechecks for core, CLI, and MCP packag

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/259) · 2026-07-04 · closed · 0 comments

### Reduce MCP handler and protocol-test review surface

## Context

The pre-0.9.0 repository footprint audit found two MCP files that are correct but large enough to increase review cost:

- packages/mcp-server/src/handlers.ts: 1,073 lines, about 31 KB, 23 exports.
- packages/mcp-server/src/__tests__/protocol.test.ts: 1,477 lines, about 48 KB.

Handlers currently combine input interfaces, handler creation, doctor diagnostics, output mapping, pagination cursors, recall hook query helpers, scope resolution, and diagnostic formatting. Protocol tests cov

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/236) · 2026-07-01 · closed · 0 comments

### Prove host chat memory flows for remember, update, and forget

## Goal

Ensure normal Codex and Claude Code usage can manage Nuzo memory through user intent in the host session, without requiring manual shell commands during day-to-day work.

## Scope

- Direct user requests such as remember this, save this for this project, update that memory, and remove that from memory.
- Draft-first capture for inferred durable memories.
- Duplicate and update-candidate handling before writes.
- Confirmed update with displayed memory ID and expected revision.
- Archive/

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/215) · 2026-06-30 · closed · 0 comments

### Align MCP and host doctor diagnostics with CLI store integrity reports

## Finding

The 0.9.0 data-integrity work adds rich SQLite store integrity diagnostics to the local CLI (`nuzo memory integrity` and `nuzo memory doctor --json`). MCP and host hook diagnostics still expose a narrower health view, so Codex/Claude-hosted troubleshooting cannot see the same FTS consistency, SQLite `integrity_check`, schema, and count details without shelling out to the CLI.

## Done when

- `memory.doctor` includes the same safe, content-free integrity fields as CLI doctor: schema 

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/208) · 2026-06-29 · closed · 0 comments

### Add explicit host bootstrap commands for Codex and Claude Code

## User problem

Installing `@nuzo/memory` currently installs the Nuzo CLI, MCP server, and hook runner, but Codex and Claude Code do not automatically discover the Nuzo plugin. Users must separately know the marketplace and plugin commands.

The desired onboarding is explicit and simple:

```bash
npm install --global @nuzo/memory
nuzo host install codex
nuzo host install claude-code
```

The npm package and host plugin systems are separate. Nuzo should bridge them through an intentional CLI act

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/206) · 2026-06-29 · closed · 1 comment

### Publish installable Codex and Claude Code marketplace catalogs

## Finding

Generated Codex and Claude Code release artifacts are validated, but the public
repository does not currently contain installable marketplace catalogs. The
user docs can only say "install or enable Nuzo" or describe local development
marketplaces; they cannot offer a complete public install/update path backed by
tracked distribution metadata.

## Done when

- Choose a repository marketplace layout compatible with the current official
  Codex and Claude Code plugin systems, or documen

[Read the thread](https://github.com/fabionfsc/nuzo-memory/issues/197) · 2026-06-29 · closed · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/fabionfsc/nuzo-memory/issues).
