Mulligan — memory that earns trust

Every memory system has a database. Ours also has a graveyard. Mem0 remembers what was said; Mulligan remembers what worked.
Static dashboard, seeded from frozen official run · actor qwen-plus · reflector qwen-plus · 80 tasks · drift @ task 56 · 4 seeds

The horse race — rolling-10 accuracy

Four memory systems, same 80-task text-to-SQL stream, deterministic verifier. The world drifts at task 56 (dashed line). This run (seed 1): Mulligan's rolling accuracy climbs 30%→70% pre-drift — test-time learning. (4-seed pre-drift mean 44.5%.)

Benchmark table — 4 seeds, reported undisguised

Accuracy is a statistical tie (mem0 marginally ahead). Mulligan wins on the axes the track names: efficiency, preferences, forgetting.

Drift recovery — the centerpiece

Isolated soft-delete drift: the rule is_active=1 silently goes stale; the new truth is deleted_at IS NULL. Post-drift accuracy on the changed quirk. Only Mulligan detects the staleness, retires the rule, and re-learns.

Mulligan craters at the drift, then its reborn deleted_at card earns trust and locks at 100%. Mem0 and no-memory stay flat at 0% — no mechanism to unlearn the stale rule.

The deck — live lesson cards

From the headline run. Each card is a hypothesis earned from a failure. Green = trusted (proven), blue = candidate (unproven), purple = human preference. Trust is win-rate, not vibes.

The graveyard — retired knowledge + its successors

When a trusted card stops working (the world drifted), Mulligan retires it and links a reborn successor. This lineage is the drift-recovery run: is_active died, deleted_at took over.

Headline-run tombstones

Retired cards from the 80-task race.