Skip to content

fix(standard): prove memory recall with a name, not a password - #30

Merged
aitianshi merged 4 commits into
mainfrom
memory-kit-recall-token
Nov 10, 2026
Merged

aitianshi merged 4 commits into
mainfrom
memory-kit-recall-token

Conversation

@aitianshi

@aitianshi aitianshi commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #13

What

The cap.memory/v1 kit's m2 check stored a Wi-Fi password and asked for it, so a memory that refuses to keep credentials by design failed m2, was never proven, and was never matched to LongMemEval or LoCoMo. m2 still checks recall of an exact, unguessable token, now one that is not a secret: "The boat at the cabin is named tern-river-9." / "What is the boat at the cabin named?". Its label and task in standard.json follow. kit_version stays 1: the check is not stronger, only no longer a credential, so the existing proofs of keyword-memory and mem0 stay current.

Touches

the standard, docs

Verified

  • Backend suite: python3 app/tests/parallel.py, 1593 tests, OK; the existing conformance test still proves the fixture memory 2/2 on the new wording.
  • test_a_memory_that_refuses_credentials_still_proves_the_memory_port: the fixture memory, changed to drop every session that mentions a password, token, secret, credential or API key, proves cap.memory/v1 2/2. The same test fails against main's kit (m2 recalls nothing for the Wi-Fi password), so it also keeps a credential from coming back into the kit.
  • Docs: docs/standard.md names the memory kit's two checks and that none stores a credential, and the Kit versions table now says when a kit's version goes up, the rule that keeps kit_version at 1 here.
  • Not re-proven against keyword-memory or mem0 with a real model.

Risk

The existing cap.memory/v1 proofs were made on the password wording and are kept as current. A memory that recalled the password but would miss the boat's name would keep a proof it might no longer earn; both bundled memories retrieve by the question's words, which this fact shares, so that is unlikely. Undone by a revert.

The cap.memory/v1 kit's m2 check stored a Wi-Fi password, so a memory
that refuses credentials by design could never be proven. It now
recalls an exact token that is not a secret.
@github-actions

This comment has been minimized.

With no credential left in the kit, it passed trivially.
@github-actions

This comment has been minimized.

@aitianshi aitianshi changed the title Prove memory recall with a name, not a password fix(standard): prove memory recall with a name, not a password Nov 10, 2026
aitianshi added a commit that referenced this pull request Nov 10, 2026
## What

Pull request titles become conventional commit subjects, `type(scope):
summary`. The repository squash-merges with the PR title as the commit
subject, so the title is what `main`'s history shows. AGENTS.md states
the rule with its types (`feat`, `fix`, `perf`, `refactor`, `docs`,
`test`, `ci`, `build`, `chore`, `revert`) and scopes (the parts of
Nullius), and the `/file-issue` skill, which assistants use to open PRs,
applies it. No check enforces it.

## Touches

docs and site · CI and skills

## Verified

- Backend suite `python3 app/tests/parallel.py`, OK.
- The open PRs #29, #30, #32 and #34 already use the form.

## Risk

Documentation only; earlier commit subjects on `main` are not rewritten.
Undone by a revert.
The memory kit's m2 now asks for a name instead of a password and keeps
kit_version 1. Write the rule that decision follows: a check that gets
stronger or tests something new bumps the version, a rewording does not.
The ports table names the memory kit's two checks and that none stores a
credential.
@github-actions

This comment has been minimized.

It is not trivial: the same memory fails m2 on the kit's old wording,
the Wi-Fi password, and passes on the boat's name. It keeps a credential
from coming back into the kit, and it is the test issue #13 asks for.
@github-actions

This comment has been minimized.

@aitianshi

Copy link
Copy Markdown
Collaborator Author

/judge

@github-actions

Copy link
Copy Markdown

🟡 PR judge · 7 of 7 yes · #30 ↔ #13

Merge risk 🔴 MAJOR the judge's reading of the diff; app/nullius/standard/kits/cap-memory-v1/driver.py is in the path of every run
Priority 🔴 EXTREME the deepest path is app/nullius/standard/kits/cap-memory-v1/driver.py
Question Verdict
Changes do what the issue asks · 2 of 2 criteria ✅ yes
Issue and pull request describe the same change ✅ yes
Description matches the diff, no more, no less ✅ yes
Diff stays in scope ✅ yes
Tests cover the change, or Verified says how ✅ yes
Docs follow the change ✅ yes
Risk named in the description ✅ yes
Before and after shown –
Acceptance criteria, 2 of 2 met
# Criterion Verdict
1 m2's fact is an exact token that is not a credential (for example "The boat at the cabin is named tern-river-9."). ✅ met
2 A capability that refuses to store credentials passes the kit (a test). ✅ met
Checks the script runs itself, 4 of 4 pass
No machine attribution trailer in the commits or the description ✓
New code under app/, docs/, .github/ or .claude/ ✓
No Flask import under the backend package ✓
No key-shaped string in the diff ✓

@aitianshi
aitianshi merged commit 0425d50 into main Nov 10, 2026
2 checks passed
@aitianshi
aitianshi deleted the memory-kit-recall-token branch November 10, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The cap.memory/v1 kit's m2 check fails a memory that refuses to store credentials

1 participant