GhostCache. GHOST IN THE MACHINE / 2026 Source on GitHub
Recorded local Gemma evaluation — no live inference Every answer, count, timing and check below is copied from a saved report written by GhostCache running gemma4:e2b-it-qat on a laptop through Ollama. This page runs no model, sends no questions and deletes nothing.

✳ A field guide to things an agent remembers

Gone from the source.
Still in the machine.

AI assistants don’t only keep your documents. They cut them into search chunks, summarize them, merge summaries and save past answers. Delete the original and those copies can stay behind, still searchable, still quotable.

GhostCache plants a fictional secret in one document, deletes only the source, catches the model repeating the secret anyway, then removes everything derived from it by following recorded provenance, and checks what remains.

RECORDED RUN

THE MEMORY TRAIL

ActiveHolds the marker Depends on a deleted sourceDeleted, or purged (ID kept, content emptied)Rebuilt after cleanup

Statuses come from the report’s audits at each stage. “From” links are labelled by origin: recorded (in the report’s event log), seed design (the fixed seeding code, the same in every run) or inferred (from the order of recorded events). This is not a complete run-specific provenance graph.

RECORDED QUESTIONS

PRESET · NO NEW ANSWERS

What the model actually said.

These are the six questions the evaluation asked, with Gemma’s recorded answers. You can’t ask new questions here: nothing on this page can reach a model.

COLD START VS WARM

RECORDED MODEL-CALL DURATIONS

One call explains most of the wait.

The slow first call is consistent with Ollama loading the model into memory on its first request after starting, but GhostCache doesn’t record Ollama’s load time, so that cause is inferred, not measured. Both runs passed all checks; the timings, not the pass/fail result, show the difference.

WHY LOCAL, OPEN-WEIGHT AI

The memory you can inspect.

Running Gemma locally through Ollama lets this experiment generate and inspect its application-managed memory without a hosted model API, so no document is sent to a hosted model. GhostCache audits the synthetic artifact title and body fields it manages in SQLite, follows each managed artifact back to its source documents, and tests defined retrieval and answer paths. Model weights, runtime caches, backups and retained evidence remain outside that audit. Because the model is open-weight, anyone can rerun the experiment with the same model.

WHAT THIS PAGE IS NOT

Evidence keeps the ghost on purpose.

The fictional marker (MOTH-…) still appears on this page because the saved reports are the evaluator’s evidence, kept separate from the assistant’s memory. Cleanup applies to GhostCache’s managed memory store in the original local app: titles, bodies, provenance and retrieval. It does not cover this evidence page, model weights, backups, logs or secure disk erasure.

RUN IT YOURSELF

Live mode stays local.

The interactive app and live Gemma runs only work on your own machine (Python 3.12; Ollama with gemma4:e2b-it-qat for live mode):

python3.12 -m ghostcache serve --port 8765
python3.12 -m ghostcache evaluate --mode live --output results/my-run.json

Setup and local-run instructions · All saved reports and screenshots