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.