Skip to content

v0.31.1

Choose a tag to compare

@anthonyrisinger anthonyrisinger released this 04 Aug 07:18
· 158 commits to main since this release

Highlights

  • The RTK command rewriter is now trustworthy or inert. Six defects in the agent shell's rg/grep rewrite 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 misread egrep as a basic-regex search and missed a narrowing when rg or egrep appeared 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 pytest names 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-Project metadata
  • Release tag: v0.31.1