Memory: BootHealthProbe evidence misleading post-FK-fix; no end-to-end writer probe #17
Open
opened 2026-05-12 19:04:10 +00:00 by KofTwentyTwo
·
0 comments
No Branch/Tag Specified
develop
ci/secrets-historical-baseline
feature/security-findings-2026-10
dependabot/npm_and_yarn/webview/npm_and_yarn-3ac77625be
dependabot/npm_and_yarn/webview/packages/bus/npm_and_yarn-c86b58a346
dependabot/npm_and_yarn/webview/vitejs/plugin-react-6.0.2
dependabot/npm_and_yarn/webview/vite-8.0.13
dependabot/npm_and_yarn/webview/zustand-5.0.13
dependabot/npm_and_yarn/webview/types/node-25.9.1
dependabot/npm_and_yarn/webview/vitest-4.1.6
dependabot/github_actions/actions/setup-node-6
dependabot/github_actions/github/codeql-action-4
dependabot/github_actions/actions/checkout-6
dependabot/github_actions/actions/cache-5
dependabot/github_actions/pnpm/action-setup-6
feat/local-first-llm-routing
docs/local-first-llm-routing-spec
fix/v0.2-wave-1-code-fixes
docs/v0.2-wave-1-doc-drift
docs/handoff-2026-05-14
docs/multi-runner-inventory
docs/ollama-baseline-58
fix/ci-env-harness-sqlite-voice-warmup
fix/ci-xcode-26-and-batcher-timing
chore/typecheck-blocking
fix/hud-typecheck-strict-undefined
wip/voice-log-menu-stash4
v0.1.0-dev.71
v0.1.0-dev.68
v0.1.0-dev.64
v0.1.0-dev.50
Labels
Clear labels
area:agent
area:build
area:bus
area:devtool
area:hud
area:logging
area:mcp
area:memory
area:vision
area:voice
audit-finding
bug
carry-forward
comment-cleanup
dependencies
documentation
duplicate
enhancement
epic
good first issue
help wanted
invalid
javascript
migration
question
severity:critical
severity:high
severity:low
severity:medium
wontfix
Something isn't working
Comment / docstring cleanup per .planning/code-commenting-guide.md
Dependency updates
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
This doesn't seem right
Pull requests that update javascript code
Further information is requested
This will not be worked on
Milestone
No items
No Milestone
v0.2 — Observable + stable (audit punch-list)
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: KofTwentyTwo/Jarvis#17
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
MemoryBootHealthProbeevidence is misleading after today's FK fix. The probe still reportsstate=ok evidence="N turns, 0/0 facts, vec=v0.1.6"when memory has been written successfully — it just reports row counts at probe time. Today's user-burning bug was caught because the probe was happy with0/0while every insert failed; after the FK fix,0/0 factsis genuinely a legit empty state and the probe doesn't know the difference between "extractor never fired", "extractor fired and got NOOP", and "extractor fired and FK-failed".Evidence
App/Boot/BootHealthProbes.swift:32-55(probe)App/Boot/BootHealthProbes.swift:179-181(stale comment about "the Toby case")subsystem=memory state=ok evidence="0 turns, 0/0 facts, vec=v0.1.6, sqlite=3.51.0"from 18:47:35; by 19:00 user had submitted turns but probe ran once at boot — evidence stale by constructionRoot cause / hypothesis
Probe asserts schema queryability + vec0 loadability + DB openness — three real things — but doesn't probe the writer end-to-end. After the M-1 fix (no
facts_vecwrites), a stronger probe would assertfacts_vecrow count tracksfactsrow count within ±1. After M-2 is fixed, the probe could checkreplay.sqliteevents table has recent rows.Recommended fix
Two complementary improvements:
Update the stale comment at
BootHealthProbes.swift:179-181. Current: "missing models = the Toby case. Embedding step fails, no row inserted infacts" — no longer accurate. Rewrite as: "missing models = embedder fails → search degrades to FTS-only; extractor fails → no facts inserted at all."Add parity check to
MemoryStats:factsTotal == factsVecCount ± tolerance, surface as the probe's degraded path. This is the structural defense against M-1-style impedance bugs.Test
facts_vecrow count differs fromfactsrow count by > tolerance, probe state isdegradednotokSource
.planning/audit-2026-05-12/memory-audit.md(2026-05-12) — finding M-6 MEDIUMCross-references