Skip to content

Release v0.1.18

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Apr 04:30
· 4 commits to main since this release
054bd0e

Highlights

  • Hooks system — New interceptor hooks with tool-level pipeline integration and HTTP hook support
  • Interactive shell — Full REPL mode with rustyline line editing, tab completion, and streaming output
  • Security hardening — SSRF prevention, MCP rate limiting, template injection fixes, secret redaction, and host key verification
  • Expansion fixes — Correct ${@/#/prefix} per positional param, mixed literal+quoted ${var#pattern}, and backreferences in sed
  • Async Python callbacks — ScriptedTool now supports async Python callbacks with ContextVar propagation

What's Changed

  • chore: pre-release maintenance pass (2026-04-14) (#1280) by @chaliy
  • chore(bench): add 2026-04-13 benchmark results (#1276) by @chaliy
  • docs(hooks): add public hooks guide with examples (#1275) by @chaliy
  • docs: add contributing section to README and emphasize issues in CONTRIBUTING.md (#1274) by @chaliy
  • feat(cli): add cargo-binstall metadata (#1273) by @chaliy
  • feat(scripted_tool): async Python callbacks + ContextVar propagation (#1272) by @chaliy
  • fix(bench): enable jq feature and fix expected outputs for jq bench cases (#1271) by @chaliy
  • chore(specs): simplify specs — remove duplication, trim stale content (#1270) by @chaliy
  • feat(bench): add gbash and gbash-server benchmark runners (#1269) by @chaliy
  • feat(hooks): wire tool hooks into builtin pipeline, add HTTP hooks (#1255) by @chaliy
  • feat(python): bump monty to 0.0.11, add datetime/json support (#1254) by @chaliy
  • feat(hooks): implement interceptor hooks system (#1253) by @chaliy
  • fix(mount): add path validation, allowlist, and writable warnings (#1252) by @chaliy
  • fix(ln): allow symlinks in ReadWrite RealFs mounts (#1251) by @chaliy
  • fix(expansion): handle mixed literal+quoted var in ${var#pattern} (#1250) by @chaliy
  • chore(deps): bump the rust-dependencies group with 2 updates (#1249) by @dependabot
  • chore(ci): bump softprops/action-gh-release from 2 to 3 in the github-actions group (#1248) by @dependabot
  • fix(expansion): apply ${@/#/prefix} per positional param (#1247) by @chaliy
  • fix(sed): support backreferences in search patterns (#1246) by @chaliy
  • fix(bashkit-js): bump langsmith 0.5.16 → 0.5.18 (#1244) by @chaliy
  • fix(mcp): add request rate limiting for MCP tool calls (#1243) by @chaliy
  • fix(snapshot): add keyed HMAC API and document forgery limitation (#1242) by @chaliy
  • fix(interpreter): suppress DEBUG trap inside trap handlers (#1241) by @chaliy
  • fix(template): prevent injection via #each data values (#1240) by @chaliy
  • fix(tool): sanitize ScriptedTool callback errors (#1239) by @chaliy
  • fix(trace): extend redaction to common CLI secret flags (#1238) by @chaliy
  • fix(cli): emit warning when --mount-rw is used in MCP mode (#1237) by @chaliy
  • feat: add hooks system with on_exit interceptor for interactive mode (#1236) by @chaliy
  • fix(date): resolve relative paths in date -r against CWD (#1234) by @chaliy
  • fix(network): block private IPs in allowlist check (SSRF) (#1233) by @chaliy
  • fix(interpreter): re-validate budget after alias expansion (#1232) by @chaliy
  • fix(ai): add output sanitization and length limiting to AI integrations (#1231) by @chaliy
  • feat(builtins): add --help and --version support to all tools (#1230) by @chaliy
  • fix(python): add mutex timeout to prevent execute_sync deadlock (#1229) by @chaliy
  • fix(ssh): add host key verification to SSH client (#1227) by @chaliy
  • fix(interactive): flush stdout/stderr after streaming command output (#1226) by @chaliy
  • fix(interactive): avoid nested tokio runtime panic in tab completion (#1224) by @chaliy
  • refactor(deps): simplify dependency tree (#1223) by @chaliy
  • fix(interpreter): seed $RANDOM PRNG per-instance (#1222) by @chaliy
  • fix(interpreter): clean up process substitution temp files (#1221) by @chaliy
  • fix(mcp): sanitize JSON-RPC error responses (#1220) by @chaliy
  • fix(logging): add runtime guard for unsafe logging methods (#1219) by @chaliy
  • fix(interpreter): filter SHOPT_ variables from set/declare output (#1218) by @chaliy
  • fix(vfs): emit warnings when tar extraction skips unsupported entry types (#1217) by @chaliy
  • fix(limits): treat zero limit values as "use default" (#1216) by @chaliy
  • feat(cli): interactive shell mode with rustyline (#1215) by @chaliy
  • fix(interpreter): filter additional internal variables from declare -p and set (#1212) by @chaliy
  • fix(date): preserve spaces in format string from variable expansion (#1211) by @chaliy
  • fix(git): sanitize control characters in git output (#1210) by @chaliy
  • fix(integrations): propagate framework timeout to bashkit execution limits (#1207) by @chaliy

Full Changelog: https://github.com/everruns/bashkit/commits/v0.1.18