A guard for your test suite: it restores what breaks, refuses what it cannot prove, and never spends a token. Every decision is a ruling from one integer law, judged by your own tests.
→ / space to advance · N for speaker notes · F for full screen · hover and click anything amber
A regression is usually one line. Finding it is a person's afternoon, or a few thousand tokens of an agent reading files it does not need.
fluidfix runs where the suite runs. It does not read your code as prose. It measures.
Gold: it edits your code. Grey: it refuses, and says why. One expression over one byte: 178 integer operations, 2.01 ns per ruling, no floats, no branches, no weights.
the repair
The candidate that greens the suite is written byte for byte and committed as fluidfix: restore file:line.
the refusal
Two green candidates are two programs until proven otherwise. The differential probe finds the input that separates them; the law rules BUILT+AMB → ADD_STATE; a pinning test is written and the file is left alone.
Killed mid-write? The next run restores the original bytes from the journal before judging anything. Nothing is re-queued; there is no queue.
When it refuses, the refusal is the teach-me signal. Write the incident down once, as structure, not prose.
Kinds 4–7 are yours. The act code is derived from the example on every call, never stored: 4,096 / 4,096 routes verified by selfcheck.
| defect, shipped vocabulary | released 0.15.0 | master, fixed oracle |
|---|---|---|
| cglm D3 · ray.h:140 comparison | refused | repaired byte-exact · 56 runs |
| Box2D D5 · aabb.c:13 comparison | refused (0.13.0) | repaired byte-exact · 9 runs · 20 s |
| cglm D1, D2, D4 | refused | correct line green, withheld as unproven-unique |
| wrong bytes written, 32 C runs | 0 | 0 |
Refusals carry the law's ruling and every rejected candidate with the test that killed it. research/maintenance-2026-09-10/RESULT.md
the finding
GNU make 3.81 compares timestamps at whole seconds. A candidate written in the same second as the previous compile was never rebuilt, so the suite judged the previous candidate's binary: 7 of 8 fast cycles judged the pristine line red. Fixed, pinned with a fake whole-second make: 0 of 8 after.
seven fixes from one run
Two vocabulary signals, the stale build, a suite testing the installed package, a fixture weaker than the vocabulary, a harness path, a report that undercounted. None was a ruling.
No per-seat pricing: it runs on your machine and costs nothing per repair.
Every decision a ruling. Every ruling verifiable. Every repair judged by your own tests.