SpecPi 0.29.0
SpecPi 0.29.0, with SpecPi Chat 0.14.0.
Warning
Turn Jev's compaction system off.
/jev disable compaction
Early long-session measurement has the Jev layer finishing 12 of 16 tasks where the same harness with the layer off finishes 15 of 16. On the long task specifically it is 5 of 8 against 8 of 8.
Compaction is the suspect because it did nearly all of the acting. Across 533 advisor calls the layer changed something 71 times, and 70 of those 71 were compaction. Retention applied nothing in 144 calls; the guard applied nothing in 266.
This is a signal, not a settled result. Sixteen attempts an arm is not many and that difference does not clear chance on its own (p = 0.2), so it is not proof that compaction costs you a solve. It is published as a recommendation anyway, because the trade is one-sided: compaction has not been shown to improve an outcome in any run so far. Switching it off gives up nothing that has been demonstrated, and may recover a solve.
The rest of the layer is unaffected and can stay on. In SpecPi Chat the same switch is a toggle under package settings. If you are running with Jev off, which is the default, none of this applies to you.
Last release folded the command guard into Jev. This one puts it back, because the reasons for folding it in stopped being true.
The command guard is its own package again
0.28.0 made the guard Jev's eighth system for three reasons: the specpi-jev-guard package had no way to switch on for a single session, it could not see the key /login openrouter had already saved, and it blocked every command whenever it could not reach the service.
Two of those are fixed upstream. Guard 0.4.0 has its own on and off, with --global to save the choice, and it reads Pi's saved login before the environment — so one /login openrouter serves both it and Jev. The third is unchanged: the guard still fails closed. That is a trade it states plainly rather than a defect.
So it is a pinned package again, and this time it stays out of Jev completely. There is no /jev guard command, no guard row in the Chat settings panel, and no guard line in /jev status. SpecPi installs it switched off and never switches it on. /jev-guard setup does that, and /jev-guard tells you what it is doing.
If you had the guard switched on, it is off after this upgrade. That is deliberate. The system you turned on stepped aside when it could not reach the service; the package refuses the command instead. Those are different things to agree to, and the upgrade does not agree to the second one for you. /jev-guard setup turns it back on.
Worth knowing for later: specpi update writes the guard's off switch on every run, so it survives an update only if you switch it on again afterwards. The update says so when it has done that to you.
Chat shows what the guard has done
While the guard is gating, SpecPi Chat's session footer now shows its counter beside the token and cache readouts — how many commands it has sent to the classifier this session, turning amber once it has blocked something. Hover for the full line, including the last verdict.
It is a readout, not a control. The guard is configured in Pi, and Chat only reports what it says. The counter disappears when the guard is off, and /jev-guard audit off hides it without affecting the audit trail Pi keeps in the session file.
Jev can make more calls before it stops
The per-session ceiling goes from 512 calls to 2048. 512 was set against shorter sessions than Jev now runs in; a long session that compacts several times can spend in the hundreds, which brought a limit meant to catch runaway loops close enough to ordinary work to interrupt it. The per-system ceilings move with it.
This is still a backstop rather than a budget. A full task uses four to seven calls, and the busiest ever recorded used twelve — so if you reach 2048, something is looping. The whole ceiling costs about six cents.
Everything here is still off by default
Jev and the command guard both ship switched off and send nothing until you turn them on. A fresh install behaves exactly as it did before either existed.
Upgrading
npm install --global specpi@latest
specpi updateSpecPi Chat 0.14.0 is attached below. Restart Pi and reconnect Chat afterwards so the new versions load.