Repository navigation
v0.31.1
Highlights
-
The RTK command rewriter is now trustworthy or inert. Six defects in the agent shell's
rg/greprewrite path are closed: ERE alternation was silently dropped and returned exit 1 instead of erroring, argv quoting was dropped so spaced patterns and paths split apart, the dialect guard misreadegrepas a basic-regex search and missed a narrowing whenrgoregrepappeared as an argument, and a rewrite that split an argument on a non-space character survived both guards. An rtk that fails its own faithfulness probe now stops rewriting entirely rather than merely stopping advertising itself. -
Operator steering survives a refused restart. A restart refusal used to park steering permanently with no redelivery once the hold expired. Lapsed redelivery now gets a wake of its own instead of relying on the ensure it had just emptied, and the parked-lane timer's termination and end-to-end lapse drive are covered.
-
Launch outcomes report what actually happened. The rapid-death restart guard distinguishes a clean short run from a crash, and Codex launch activity is read from the rollout rather than stdout, which had recorded every launch as 0 activity.
-
The agent command hot path got much cheaper. The wrapper no longer spawns 19 git subprocesses per agent command.
-
Long-running gates are legible while they run. The task-done suite seam is teed, so a green run that takes minutes is visibly alive, and
spice dev pytestnames the path or node id it could not find instead of reporting that no tests ran.
Task-level changes
Changes by project
Lifecycle Wrapper
- Wrapper hot path spawns 19 git subprocesses per agent command. (025b021)
CLI Wrapper
- Rtk rg rewrite silently drops ERE alternation and returns exit 1 instead of erroring. (2466071)
- Rtk argv rewrite drops quoting so spaced patterns and paths silently split. (7b43e6d)
- Dialect guard misreads egrep as a basic-regex search. (83f4f55)
- Dialect guard misses a narrowing when an argument is spelled rg or egrep. (483deba)
- Rewrite that splits an argument on a non-space character survives both guards. (f31c9bf)
Lifecycle Launch
- Rapid-death restart guard cannot tell a clean short run from a crash. (0cfa976)
- Codex launch outcomes record 0 activity because scan_launch_log reads stdout, not the rollout. (6467ab5)
Serve Agent
- Restart refusal parks operator steering permanently with no redelivery when the hold expires. (31e1e0e)
- Lapsed refusal redelivery needs a wake of its own, not the ensure it emptied. (4d7e8a7)
- Cover the parked-lane timer's termination and its end-to-end lapse drive. (5f8c8d8)
Hooks Pytest
- Spice dev pytest names the path or node id it could not find instead of reporting no tests ran. (418f34f)
Task Done
- Tee the suite-seam subprocess so a long green run is visibly alive. (921f5c4)
Hooks Rtk
- Made an unfaithful rtk stop rewriting, not just stop advertising. (34c7244)
Package Notes
- PyPI release:
spice-harness==0.31.1 - Release commit:
75c54a2d - Commit range:
v0.31.0..75c54a2d - Commit source: first-parent history grouped by
Task-Projectmetadata - Release tag:
v0.31.1