The post-Gap-7 dogfood pass against the v0.7.0 release-candidate binary. The full provenance stack (Gaps 1 through 7, schema v44 through v47) had landed earlier the same day; the dogfood is the AI NHI sitting in front of the live system and exercising the provenance write + read paths via raw MCP wire calls, against a fresh sqlite DB, with SQL-level verification of every persisted side effect.
The dogfood surfaced 4 real production defects that the prior Track A NHI campaign and the requirements-coverage audit had both missed. All four are filed; three are closed in v0.7.0 with retest evidence; one is filed and open as a Track C parity blocker that will land in the next agent dispatch.
This campaign was executed per the prime directive pm-v3 (memory cd8ede94-3376-4837-b570-9d975290ae08, namespace global/policies) — verify-before-claiming, no-operator-handoffs, no deferral to a later release, no banned framings.
SHIP-READY for v0.7.0 sqlite path. Track C (postgres + Apache AGE) is parity-gapped on schema v44-v47 + 6 SAL methods; issue #894 is filed and open for the next agent dispatch.
Test count: every dogfood probe that ran returned the expected wire shape and SQL state after the in-campaign fix batch. All 4 cargo gates are green on the post-fix binary (39aa158f9 for the wire-schema + handler fix; 19b08543c for the Gap 5 docstring fix).
| File | Audience | Purpose |
|---|---|---|
README.md |
All readers | Campaign index (this file) |
audience-non-technical.md |
End users / curious observers | Plain-English version |
audience-c-level.md |
Executive / PM / decision-maker | Verdict + risk + cost + roadmap |
audience-engineer.md |
SME engineers + architects | Deep-dive: every finding, every commit, every reproduction step |
findings.md |
All readers | Flat enumerated list of every anomaly the dogfood surfaced |
memory_store MCP wire schema omitted the source_uri property AND the store handler at /Users/fate/v07/v07-fixes/src/mcp/tools/store/validation.rs:224 hard-coded source_uri: None, dropping any caller-supplied URI on the floor. CLOSED in commit 39aa158f9 with end-to-end SQL proof that doc:dogfood-2026-05-19-verify now persists through the full MCP path.memory_update MCP wire schema omitted expected_version and edit_source (the request-handler code already read them, so the gap was wire-schema-only — but an NHI could not discover the parameters via tools/list). source_uri update was also exposed. CLOSED in the same commit 39aa158f9.SupersedeResult docstring drift: the docstrings on SupersedeResult and the supersede sequence step 4 promised a memory_links row with relation supersedes was written; the implementation correctly skips it (the foreign-key constraint target_id REFERENCES memories(id) would reject pointing at an archived id). Lineage is preserved via archived_memories.archive_reason='superseded' and new_memory.metadata.superseded_id. CLOSED in commit 19b08543c with a doc-only fix that restates the actual two-mechanism lineage; relaxing the FK or adding a parallel archive_links table remains a deeper design choice tracked under the same issue body.version column, Gap 2 source_uri upgrade path, Gap 3 recall_observations table, Gap 5 edit_source column) + 6 SAL methods + AGE Cypher snippets for the superseded edge. FILED + OPEN. Approximately 600 LOC of postgres + AGE code. Scheduled for the next agent dispatch. Track C cross-store parity stays gapped until this lands.local/install-815-816)| SHA | Scope |
|---|---|
913a2ffb0 |
test(#886): MCP recall_observations tool param-branch coverage — pre-dogfood baseline |
39aa158f9 |
fix(#892,#893): expose Gap 1/2/5 params via MCP wire schemas + thread source_uri through the store validation path |
19b08543c |
docs(#895): fix Gap 5 SupersedeResult docstring drift |
All three commits are on local/install-815-816. The pre-dogfood SHA is 913a2ffb0; the post-dogfood HEAD is 19b08543c.
| Gate | Result |
|---|---|
cargo fmt --check |
GREEN |
cargo clippy --release --all-targets -- -D warnings -D clippy::all -D clippy::pedantic |
GREEN |
cargo audit |
GREEN |
AI_MEMORY_NO_CONFIG=1 cargo test --release (targeted dogfood-related tests) |
GREEN |
The schema additions for #892 + #893 added wire-schema text to two tools. To stay under the 10,000-token verbose ceiling, the schema-fix commit trimmed docstring prose on on_conflict, force, source, kind, session_id, session_default, budget_tokens, and depth. Net result:
| Metric | Pre-fix | Post-fix | Ceiling |
|---|---|---|---|
full_profile_total_tokens (verbose) |
10,196 | 9,998 | 10,000 |
The 9,998 sits 2 tokens under the ceiling. The CI guard at tests/token_budget_guard.rs continues to enforce the cap forward.
All artifacts live under /Users/fate/v07/v07-fixes/.local-runs/dogfood-2026-05-18/:
| File | Purpose |
|---|---|
probe_source_uri.sh |
End-to-end probe used to surface #892 (single-shot source_uri round-trip) |
phase_b_revalidate.sh |
Full Phase B retest script (5 Gap probes with raw MCP wire + SQL verification) |
phase_b_v2.log |
Phase B v2 retest output, captured post-#892/#893 fix |
phase_b_v2.db |
Fresh sqlite DB used for the v2 retest |
post-schema-fix.db |
DB from the probe_source_uri.sh round-trip |
expected_version + edit_source handler code at the request-parsing layer worked end-to-end in unit tests because the tests constructed the request structs directly. The wire-schema omission was only discoverable by an NHI driving the surface via raw tools/list + tools/call. The dogfood pass caught it because the test method was end-to-end raw MCP, not handler-direct.SupersedeResult docstring claimed a memory_links row was written; the impl had correctly chosen not to write it (FK constraint). The drift sat in the codebase from #888 land until the dogfood retest tried to assert on the empty memory_links table. Per pm-v3, docstring drift between code behavior and prose is a real defect and is fixed in the same release — not deferred.OK. A response-body assertion alone would have passed for #892 (the response carried no source_uri field; the absence of an SQL row was the giveaway).19b08543c on branch local/install-815-816 in worktree /Users/fate/v07/v07-fixes/. The wire-schema fix is at 39aa158f9; the doc-drift fix is at 19b08543c./Users/fate/v07/v07-fixes/.cargo-shared-target/release/ai-memory (release build)./Users/fate/v07/v07-fixes/.local-runs/dogfood-2026-05-18/phase_b_v2.db (fresh; auto-migrated to schema v47 on first MCP open).nomic-ai/nomic-embed-text-v1.5 (768-dim embedder), cross-encoder/ms-marco-MiniLM-L-6-v2 (reranker), gemma4:e4b (LLM via Ollama). Tier semantic was sufficient for the dogfood probes (no LLM-dependent surfaces tested).ai:claude-code@FROSTYi.local:pid-1060 (Claude Opus 4.7, 1M context).df-pb-v2 (Phase B v2 retest).Per the prime directive pm-v3 (canonical memory cd8ede94-3376-4837-b570-9d975290ae08) and the testing-loop addendum:
| Item | Namespace | Title pattern |
|---|---|---|
| Dogfood phase results | ai-memory/v0.7.0-dogfood-2026-05-18 |
Dogfood-{Gap-N}-{result} |
| Verdict | ai-memory/v0.7.0-dogfood-2026-05-18 |
Dogfood ship-readiness verdict 2026-05-18 |
| Prime directive pm-v3 | global/policies |
memory cd8ede94-3376-4837-b570-9d975290ae08 |
| Orchestrator safeguards | _v070_orchestrator_safeguards |
memory a1cc142d-053a-49ab-83bd-1a99992fa93e |
| Strategic tracking | _v070_strategic_tracking |
lane index f970d6f6-7bde-4d6b-9a53-500734961e04 |
| Item | Value |
|---|---|
| Campaign date | 2026-05-18 (evening dogfood; post-Gap-7 + post-Track-A) |
| Operator | justin@alpha-one.mobi |
| Authoring agent | Claude Opus 4.7 (1M context) |
| Authority | Autonomous execution under pm-v3 (verify-before-claiming + no-operator-handoffs + fix-all-in-current-release) |
| Prior campaign | /Users/fate/v07/v07-fixes/docs/v0.7.0/test-campaign-2026-05-18/ (Track A NHI re-run + in-campaign fix batch) |
| Binary at write time | SHA 19b08543c on branch local/install-815-816 |
Drafted by Claude Opus 4.7 (1M context).