Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions docs/reviews/2026-10-20-memo082-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Memo document evidence and project review

Readers gathering a project's sources can inspect the paragraphs around cited documents, understand
which proposals an agent may decide and choose owner-only project decisions. This review updates
Memo from the portal's reviewed 0.81.0 to 0.82.0 without changing other tools' pins.

## Sources and scope

Runtime: Memo0.82.0, source `93fc21b692260d9ffaefbaef799b01a46be18a8f`, Core0.371.0 and Base0.47.1.
Five prose-only guide overrides (`index`, `security`, `how-it-works`, `memories`, `usage`) use the
compatible immutable commit `a46159857442f2008324001468b440f009ea9b8c`, merged by
[Memo #353](https://github.com/WireCatLabs/cli-memo/pull/353). Other native guides come from the release.
The runtime feature is [Memo #350](https://github.com/WireCatLabs/cli-memo/pull/350).

Behavior evidence: released `src/knowledge/project-actions.ts`, `project-actions-documents.test.ts`,
`project-actions-command.ts` and their tests; `src/author.ts`, project decision handlers, direct
memory/fact handlers and meeting findings handlers establish the separate permission boundaries.
Core's shared `documentPassage` supplies paragraph context. Key-document suggestions have no saved
source fingerprint and report `untracked`; findings continue to compare their saved fingerprints.

A retained synthetic driver exercised the packaged and installed real CLI and stdio MCP server
with temporary state. It checked document paragraphs, untracked key documents, brief/zero-context
omission, unknown-field rejection, proposed state and zero accepted facts. This is functional
validation, not an extraction-accuracy or performance measurement. Reproducible driver, hashes and
private workflow metadata are retained in cli-private under the same dated Memo082 review names.

## Page and locale inventory

Reviewer: Codex. Changed task/explanation pages were read with openings and endings, alongside the
native source. The command reference review covers changed generated sections and exact literals,
not a fresh prose review of every unchanged command. Changelog technical entries retain the existing
English-source disclosure in both translations.

| Page / locale | Reader task | Review and result |
| --- | --- | --- |
| index / en | Choose Memo and start | Project decisions and local-store claim corrected at source |
| index / ru | Same | Full reader page checked; decision control localized |
| index / es | Same | Full reader page checked; decision control localized |
| security / en | Choose data and permissions | Project, direct record and meeting permissions distinguished |
| security / ru | Same | Full page checked; old heading anchors preserved |
| security / es | Same | Full page checked; old heading anchors preserved |
| how-it-works / en | Understand imports and authorship | Memo-only import lock and automatic network checks clarified |
| how-it-works / ru | Same | Full page checked; old heading anchors preserved |
| how-it-works / es | Same | Full page checked; old heading anchors preserved |
| memories / en | Review retained facts and actions | Correct facts-confirm command and source field; project review linked |
| memories / ru | Same | Full page checked; direct facts and meeting findings remain distinct |
| memories / es | Same | Full page checked; direct facts and meeting findings remain distinct |
| usage / en | Find, retain and review | Owner memory confirmation versus fact acceptance explicit |
| usage / ru | Same | Full page checked; project review and configuration links included |
| usage / es | Same | Full page checked; project review and configuration links included |
| mcp / en | Connect and use an agent client | Actual write tools, decisions, paragraph context and untracked state |
| mcp / ru | Same | Changed guide read; permissions and evidence states localized |
| mcp / es | Same | Changed guide read; rejection and refusal kept distinct |
| recipes / en | Gather and review a project | Paragraph windows, untracked documents and partially stale batches |
| recipes / ru | Same | Reader flow and unchanged-finding review checked |
| recipes / es | Same | Reader flow and unchanged-finding review checked |
| search / en | Retrieve evidence | Large-document continuation and paragraph context explained |
| search / ru | Same | Reader flow and coverage boundaries checked |
| search / es | Same | Reader flow and coverage boundaries checked |
| commands / en | Look up exact syntax | Generated changed sections compared with released discovery |
| commands / ru | Same | Exact changed literals; technical help stays in English |
| commands / es | Same | Exact changed literals; technical help stays in English |
| changelog / en | Understand the release | Released 0.82 entry reviewed |
| changelog / ru | Same | Existing technical-entry disclosure retained |
| changelog / es | Same | Existing technical-entry disclosure retained |

Unchanged pages keep their existing source fingerprints and prior review evidence; this is not a
claim that every unrelated page was newly read. The complete sync and contract checks still cover
all published guides and tools.

## Findings and corrections

- Native overview, security, explanation, memory and usage pages said agents could never decide
anything through MCP. Fixed upstream: default project decisions may create accepted facts,
numbered tasks or confirmed key documents; `agent_decisions: false` requires owner decisions.
Direct memories/facts and outbound action proposals remain proposed; meeting findings are owner-only.
- Native memory prose named `accept` and `origin`, contradicting its command example and record shape.
Fixed upstream to `memo facts confirm` and `source`; retired the portal's obsolete `accept` correction.
- The explanation promised nothing could access the network unless requested. Updated it to link the
existing update/sender-domain policy; source-text analysis remains opt-in.
- Translation structure found a missing usage-to-project-review link. Added it in both locales and
checked all ten updated prose-only translations before accepting their source fingerprints.
- The broader portal release update landed during preparation. Rebased on `6155c96`, preserving its
tg0.77/MAX0.66/Zoom0.31/Drive0.19 pins and reviews. Memo-only conflicts retain the newer reviewed text.

## Validation

Passed: source/translation structure, full sync, all five released command contracts with network
blocked during discovery, strict docs checks (0 reference gaps; 0 invalid examples), release-note
checks and typecheck. The quality report's manual-review constructs remain separately reported;
syntax validation does not establish task success. Local verification also passed lint (three existing warnings), 322 unit tests and seven browser smoke
cases. A separate one-off browser read checked 24 changed HTML pages and 24 Markdown twins across
EN/RU/ES at390px, preserving old heading anchors, the configuration links and untracked evidence
state, with no page errors or horizontal overflow. The dev server still emits the existing shared
Sidebar React key warning; no runtime code changed. Full export, link, SEO and browser deployment
gates remain unchanged. Production verification follows the successful deployment.
25 changes: 0 additions & 25 deletions scripts/docs-corrections.json
Original file line number Diff line number Diff line change
Expand Up @@ -1784,31 +1784,6 @@
]
}
},
{
"tool": "memo",
"slug": "memories",
"reason": "Memo 0.41.0 exposes facts confirm, replacing facts accept; keep native surrounding prose consistent with the generated command example.",
"replacements": {
"en": [
{
"before": "`accept`",
"after": "`confirm`"
}
],
"ru": [
{
"before": "`accept`",
"after": "`confirm`"
}
],
"es": [
{
"before": "`accept`",
"after": "`confirm`"
}
]
}
},
{
"tool": "memo",
"slug": "installation",
Expand Down
11 changes: 9 additions & 2 deletions tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,14 @@
"ru": "Заметки, почта и сообщения в одном месте для вашего ИИ-агента: поиск, теги, люди и память, на вашем компьютере.",
"es": "Tus notas, correo y mensajes en un solo lugar para tu agente de IA: búsqueda, etiquetas, personas y recuerdos, en tu ordenador."
},
"docsRef": "v0.81.0",
"profile": false
"docsRef": "v0.82.0",
"profile": false,
"guideRefs": {
"index": "a46159857442f2008324001468b440f009ea9b8c",
"security": "a46159857442f2008324001468b440f009ea9b8c",
"how-it-works": "a46159857442f2008324001468b440f009ea9b8c",
"memories": "a46159857442f2008324001468b440f009ea9b8c",
"usage": "a46159857442f2008324001468b440f009ea9b8c"
}
}
]
15 changes: 15 additions & 0 deletions translations/memo/changelog.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,21 @@ la API.

Las notas técnicas exactas de las nuevas versiones se conservan en inglés; las instrucciones de uso están traducidas en sus guías.

## Unreleased

## 0.82.0 — 20.10.2026

### Fixed

- The MCP guide describes project-decision permissions and the accepted facts and numbered tasks that
confirming a proposal can create, alongside the owner-only review of meeting findings.
- Key-document suggestions report `state: "untracked"` because no source fingerprint was saved with
the suggestion. They no longer incorrectly report unchanged text; reread the document before deciding.
- **Project proposal review includes document paragraphs**, using the shared Core passage helper around
the finding's words. `projects actions list`, its MCP counterpart and key-document review now show this
context; `--brief` or zero before/after counts still omit it. The guides also explain oversized evidence
and accepting unchanged findings from a partly stale batch.

## 0.81.0 — 20.10.2026

### Fixed
Expand Down
15 changes: 15 additions & 0 deletions translations/memo/changelog.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,21 @@ title: "История изменений"

Точные технические записи новых выпусков сохранены на английском; инструкции по использованию переведены в соответствующих руководствах.

## Unreleased

## 0.82.0 — 20.10.2026

### Fixed

- The MCP guide describes project-decision permissions and the accepted facts and numbered tasks that
confirming a proposal can create, alongside the owner-only review of meeting findings.
- Key-document suggestions report `state: "untracked"` because no source fingerprint was saved with
the suggestion. They no longer incorrectly report unchanged text; reread the document before deciding.
- **Project proposal review includes document paragraphs**, using the shared Core passage helper around
the finding's words. `projects actions list`, its MCP counterpart and key-document review now show this
context; `--brief` or zero before/after counts still omit it. The guides also explain oversized evidence
and accepting unchanged findings from a partly stale batch.

## 0.81.0 — 20.10.2026

### Fixed
Expand Down
8 changes: 4 additions & 4 deletions translations/memo/commands.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -1281,7 +1281,7 @@ memo projects actions add <file> [options]

#### `memo projects actions list`

a project's proposed key documents and findings, newest first, each with its cited evidence: whether the text changed since it was cited, the text itself and the messages around it
a project's proposed key documents and findings, newest first, with source state, cited text and nearby messages or document paragraphs; key-document text is untracked because no fingerprint was saved

```sh
memo projects actions list <project> [query] [options]
Expand All @@ -1297,9 +1297,9 @@ memo projects actions list <project> [query] [options]
| `--json` | print JSON; --json=id,status keeps only those fields. |
| `--limit <n>` | findings batches per page, at most 50. Default: `10`. |
| `--page <n>` | which page, from 1; key documents come on the first. Default: `1`. |
| `--brief` | only the references and whether their text changed, without the text around them. |
| `--before-n <n>` | messages before each cited message, at most 5. Default: `2`. |
| `--after-n <n>` | messages after each cited message, at most 5. Default: `2`. |
| `--brief` | only references and source state, without excerpts or nearby text. |
| `--before-n <n>` | messages or document paragraphs before the citation, at most 5. Default: `2`. |
| `--after-n <n>` | messages or document paragraphs after the citation, at most 5. Default: `2`. |

**Returns:** a project's proposals with the evidence to decide them

Expand Down
8 changes: 4 additions & 4 deletions translations/memo/commands.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -1281,7 +1281,7 @@ memo projects actions add <file> [options]

#### `memo projects actions list`

a project's proposed key documents and findings, newest first, each with its cited evidence: whether the text changed since it was cited, the text itself and the messages around it
a project's proposed key documents and findings, newest first, with source state, cited text and nearby messages or document paragraphs; key-document text is untracked because no fingerprint was saved

```sh
memo projects actions list <project> [query] [options]
Expand All @@ -1297,9 +1297,9 @@ memo projects actions list <project> [query] [options]
| `--json` | print JSON; --json=id,status keeps only those fields. |
| `--limit <n>` | findings batches per page, at most 50. Default: `10`. |
| `--page <n>` | which page, from 1; key documents come on the first. Default: `1`. |
| `--brief` | only the references and whether their text changed, without the text around them. |
| `--before-n <n>` | messages before each cited message, at most 5. Default: `2`. |
| `--after-n <n>` | messages after each cited message, at most 5. Default: `2`. |
| `--brief` | only references and source state, without excerpts or nearby text. |
| `--before-n <n>` | messages or document paragraphs before the citation, at most 5. Default: `2`. |
| `--after-n <n>` | messages or document paragraphs after the citation, at most 5. Default: `2`. |

**Returns:** a project's proposals with the evidence to decide them

Expand Down
21 changes: 10 additions & 11 deletions translations/memo/how-it-works.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Una importación lee tus carpetas y tus cuentas de correo y pone al día el alma
importación también prepara el texto nuevo para la búsqueda por significado. `--no-embed` se salta
este paso.

Dos importaciones nunca se ejecutan a la vez, y una fuente que falla no detiene las demás.
Dos importaciones de Memo nunca se ejecutan a la vez, y una fuente que falla no detiene las demás.

## Carpetas en más de un ordenador

Expand Down Expand Up @@ -102,7 +102,10 @@ indica cómo se encontró.
Un resultado vacío solo significa que el almacén local no tiene nada que coincida. No demuestra que
algo nunca ocurrió: puede que el chat no esté descargado o que la carpeta no esté importada.

## Los agentes sugieren, tú decides
<a id="agents-suggest-you-decide"></a>
<a id="los-agentes-sugieren-tú-decides"></a>

## Autoría del agente y revisión

Tu agente puede añadir tres tipos de registros:

Expand All @@ -111,16 +114,12 @@ Tu agente puede añadir tres tipos de registros:
- una **acción propuesta**: algo que hacer, como una respuesta. Siempre espera hasta que la apruebes o
la rechaces. Aprobarla la convierte en una tarea para ti. Memo nunca envía un mensaje ni un correo.

Lo que una aplicación añade a través del [servidor MCP](./mcp.md) queda como **propuesto** hasta que
confirmes el recuerdo o aceptes el hecho. A través de MCP, un agente no puede confirmar, aceptar,
aprobar ni rechazar, y cada llamada que hace queda escrita en el registro de agentes
(`memo agents log`), sin los detalles que envió.
Los recuerdos y los hechos registrados directamente mediante el [servidor MCP](./mcp.md) empiezan como **propuestos**. MCP no confirma recuerdos, no acepta directamente hechos propuestos existentes ni aprueba acciones en cuentas externas. Cada llamada se escribe en el registro de agentes (`memo agents log`), sin los detalles enviados.

Por defecto, un agente puede confirmar o rechazar propuestas de proyecto con un motivo registrado: confirmarlas puede crear hechos aceptados y tareas numeradas o confirmar un documento clave. Configura [`agent_decisions: false`](./configuration.md#agent_decisions) para que solo el propietario decida las propuestas de proyecto. Leer y proponer siguen disponibles. Las conclusiones de reuniones siguen requiriendo al propietario.

El comando `memo` reconoce el terminal de un agente por `AI_AGENT` o `CLAUDECODE`, variables que establecen agentes como Claude Code. Un hecho, recuerdo, vínculo o acción propuesta se atribuye al agente y espera tu revisión, como mediante MCP. Sin ellas, o con `--as-owner`, se atribuye a ti y se confirma al instante. Las variables y `--as-owner` son etiquetas, no un bloqueo: un agente puede establecerlas y escribir como tú.
El comando `memo` reconoce el terminal de un agente por `AI_AGENT` o `CLAUDECODE`, variables que establecen agentes como Claude Code. Allí, un hecho registrado directamente, recuerdo o vínculo se atribuye al agente y empieza como propuesto. Sin ellas, o con `--as-owner`, se atribuye a ti: los recuerdos y vínculos se confirman y los hechos se aceptan al instante. Las acciones propuestas siguen esperando aprobación. Las variables y `--as-owner` son etiquetas, no un bloqueo: un agente puede establecerlas y escribir como tú.

## Qué puede salir de tu ordenador

Nada, a menos que lo pidas. Por defecto, `memo ask` prepara fuentes para tu propio agente. Envía
texto a un proveedor de IA solo cuando configuras uno y añades `--analyze`, y a un proveedor remoto
solo si además añades `--allow-remote`. Lo que tu agente hace con el texto que lee depende de ese
agente. Consulta [Seguridad](./security.md).
El envío de fuentes a un proveedor de IA requiere tu autorización. Por defecto, `memo ask` prepara fuentes para tu agente. Envía texto a un proveedor de IA solo cuando configuras uno y añades `--analyze`, y a uno remoto solo con `--allow-remote` además. Lo que tu agente hace con el texto depende de él. Las comprobaciones automáticas de actualizaciones y dominios de remitentes también pueden hacer peticiones de red; [Seguridad](./security.md) explica qué envían y qué ajustes se aplican.
Loading
Loading