Skip to content

v0.218.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 02:22

[0.218.0] - 2026-07-30

Features

  • (cst) Parse the last three POSIX shell grammar constructs
  • (engine) Let a researched command bound what its substitution names
  • (cst) Render >| and >> as the operator that was typed
  • (engine) Bound a loop over a declared substitution
  • (cst) Parse the both-streams redirects and the |& pipe
  • (registry) Tag the config-is-code class, and gate marp

Bug Fixes

  • (perl) Gate file operands by locus, and allow -i in the worktree
  • (engine) Gate a bounded substitution in the path-gate too
  • (policy) Treat a leading ~ as a path
  • (tilt) Gate the template positional as an executor
  • (karma) Gate config positionals, and guard the pattern structurally
  • (registry) Keep [command.output] out of repo-level custom TOML
  • (targets) Abstain when the envelope names a non-shell tool
  • (agy) Self-filter on toolCall.name
  • (targets) Don't panic when a settings file has a wrong-typed key
  • (registry) Skip an invalid custom config instead of aborting
  • (pathctx) An unresolvable cd leaves the cwd UNKNOWN, not unchanged
  • (cst) Track shell state a compound changes, not just a bare statement
  • (cst) Model word splitting on unquoted expansions
  • (cst) Parse a heredoc body inside $( ) as data, not code
  • (cst) Fence a doc example so it is not compiled as a doctest
  • (hook) Name only real operands in the overreach nudge
  • (explain) Stop a command from forging a line of our own output
  • (hook) Abstain on a blank command instead of approving it
  • (targets) Don't panic or clobber on a wrong-typed key in cursor/codex setup
  • (suggest) Don't let --suggest mislead the trust decision it asks for
  • (registry) Gate the wrapper flags whose value is a program
  • (registry) Gate executor flags outside the wrapper block too
  • (registry) Gate config flags on tools whose config file is code
  • (envvars) Pair executor flags with their env twins, and tag the pairing
  • (tests) Calibrate the termination budget instead of hardcoding 1.5s
  • (tests) Floor the termination budget at 10s, not 1.5s

Documentation

  • (repo) Drop two decision records misfiled as TODO items
  • (todo) Record the ANSI-C quoting over-deny
  • (todo) Measure the gate surface, and record two clean sweeps

Testing

  • (engine) Assert a substitution never beats a path it could produce
  • (engine) Extend abstraction soundness to every path-approximating site
  • (targets) Assert each harness's decision FIELD, not just the value
  • (cst) Hold the --explain renderer to the no-panic contract