Skip to content

Releases: everruns/bashkit

Release v0.1.9

04 Mar 03:46
3f7c30f

Choose a tag to compare

Highlights

  • First external contribution! Welcome @achicu, who contributed external function handler support for the Python bindings (#394) — a milestone for the project as our first community-contributed feature. Thank you!
  • Comprehensive security hardening: deep audit with 40+ fixes across VFS, parser, interpreter, network, and Python bindings
  • HTTP, git, and Python features now enabled by default in the CLI
  • Multi-byte UTF-8 safety across builtins (awk, tr, printf, expr)
  • Python runtime improvements: GIL release, tokio runtime reuse, security config preservation

What's Changed

  • feat(python): add external function handler support (#394) by Alexandru Chiculita
  • feat(cli): enable http, git, python by default (#507)
  • chore: run maintenance checklist (012-maintenance) (#508)
  • docs: convert doc examples to tested doctests (#504)
  • fix(security): batch 3 — issues #498-#499 (#503)
  • fix(security): batch 2 — issues #493-#497 (#502)
  • fix(security): batch 1 — issues #488-#492 (#501)
  • docs: align rustdoc with README, add doc review to maintenance (#500)
  • test(security): deep security audit with regression tests (#487)
  • fix(builtins): make exported variables visible to Python's os.getenv (#486)
  • refactor(interpreter): extract inline builtins from execute_dispatched_command (#485)
  • fix(parser): allow glob expansion on unquoted suffix after quoted prefix (#484)
  • fix(parser): handle quotes inside ${...} in double-quoted strings (#483)
  • fix(parser): expand variables in [[ =~ $var ]] regex patterns (#482)
  • fix(builtins): count newlines for wc -l instead of logical lines (#481)
  • fix(interpreter): reset OPTIND between bash script invocations (#478)
  • fix(builtins): awk array features — SUBSEP, multi-subscript, pre-increment (#477)
  • fix(builtins): prevent awk parser panic on multi-byte UTF-8 (#476)
  • fix(network): use byte-safe path boundary check in allowlist (#475)
  • fix(interpreter): use byte-safe indexing for arithmetic compound assignment (#474)
  • fix(builtins): add recursion depth limit to AWK function calls (#473)
  • fix(network): use try_from instead of truncating u64-to-usize cast (#472)
  • fix(network): redact credentials from allowlist error messages (#471)
  • fix(scripted_tool): use Display not Debug format in errors (#470)
  • fix(python): add depth limit to py_to_json/json_to_py (#469)
  • fix(builtins): handle multi-byte UTF-8 in tr expand_char_set() (#468)
  • fix(builtins): use char-based precision truncation in printf (#467)
  • fix(builtins): use char count instead of byte length in expr (#466)
  • fix(interpreter): detect cyclic nameref to prevent wrong resolution (#465)
  • fix(interpreter): sandbox $$ to return 1 instead of host PID (#464)
  • fix(python): preserve security config across Bash.reset() (#463)
  • fix(git): validate branch names to prevent path injection (#462)
  • fix(tool): preserve custom builtins across create_bash calls (#461)
  • fix(fs): add validate_path to all InMemoryFs methods (#460)
  • fix(fs): recursive delete whiteouts lower-layer children in OverlayFs (#459)
  • fix(fs): use combined usage for OverlayFs write limits (#458)
  • fix(fs): prevent usage double-counting in OverlayFs (#457)
  • fix(fs): enforce write limits on chmod copy-on-write (#456)
  • fix(archive): prevent tar path traversal in VFS (#455)
  • fix(fs): prevent TOCTOU race in InMemoryFs::append_file() (#454)
  • docs: add quick install section to README (#453)
  • fix(jq): prevent process env pollution in jq builtin (#452)
  • fix(python): reuse tokio runtime instead of creating per call (#451)
  • fix(python): release GIL before blocking on tokio runtime (#450)
  • fix(python): prevent heredoc delimiter injection in write() (#449)
  • fix(python): prevent shell injection in BashkitBackend (#448)
  • fix(interpreter): add depth limit to extglob pattern matching (#447)
  • fix(interpreter): block internal variable namespace injection (#445)
  • chore(ci): bump the github-actions group with 2 updates (#479)
  • chore: add tokio-macros 2.6.1 to cargo-vet exemptions (#480)

Full Changelog: v0.1.8...v0.1.9

Release v0.1.8

01 Mar 01:40
ac184be

Choose a tag to compare

Highlights

  • Stderr and combined redirects (2>, 2>&1, &>) for real-world script compatibility
  • ANSI-C quoting ($'...') and $"..." syntax support
  • New builtins: base64, md5sum/sha1sum/sha256sum, find -exec, grep -L/--exclude-dir
  • jq enhancements: setpath, leaf_paths, improved match/scan
  • Recursive variable deref and array access in arithmetic expressions
  • awk user-defined functions, curl -F multipart form data
  • tar -C/-O flags, xargs command execution
  • Per-tool-call timeout_ms in ToolRequest
  • 244 new Oils-inspired spec tests
  • 20+ interpreter/parser bug fixes: heredoc pipes, IFS splitting, subshell isolation, exit code truncation, unicode ${#x}, shift builtin, and more

What's Changed

  • fix(ci): trigger Python publish workflow on release (#403)
  • chore(eval): 2026-02-28 eval run across 5 models with v0.1.7 analysis (#402)
  • feat: process remaining issues (#308, #310, #311, #312, #321, #327, #329, #331, #332, #333, #334) (#393)
  • chore: add rebase hint to process-issues step 9 (#392)
  • fix: reduce skipped spec tests, implement cut/tr features (#309, #314) (#391)
  • fix(ci): switch tarpaulin to LLVM engine to fix coverage failures (#390)
  • fix: implement var operators, IFS splitting, parser errors, nameref, alias (#389)
  • fix(builtins): add jq -R raw input and awk printf parens (#388)
  • chore: update pin-project-lite cargo-vet exemption to 0.2.17 (#387)
  • feat(builtins): implement find -exec command execution (#386)
  • feat(builtins): add grep -L, --exclude-dir, -s, -Z flags (#385)
  • feat(builtins): implement jq setpath, leaf_paths, fix match/scan (#384)
  • fix(parser): handle heredoc pipe ordering and edge cases (#379)
  • fix(interpreter): count unicode chars in ${#x} and add printf \u/\U escapes (#378)
  • feat(interpreter): implement stderr and combined redirects (2>, 2>&1, &>) (#377)
  • fix(interpreter): isolate subshell state for functions, cwd, traps, positional params (#376)
  • chore(specs): document sort/uniq flags, update spec test counts (#375)
  • fix(interpreter): split command substitution output on IFS in list context (#374)
  • feat(interpreter): implement recursive variable deref and array access in arithmetic (#373)
  • feat(parser): implement $'...' ANSI-C quoting and $"..." syntax (#371)
  • fix(interpreter): write heredoc content when redirected to file (#370)
  • feat(eval): add OpenAI Responses API provider (#366)
  • fix(interpreter): truncate exit codes to 8-bit range (#365)
  • fix(builtins): make xargs execute commands instead of echoing (#364)
  • chore: add ignored-test review step to process-issues (#363)
  • test: add 14 Oils-inspired spec test files (244 tests) (#351)
  • feat(tool): add per-tool-call timeout_ms to ToolRequest (#350)
  • chore(eval): expand eval suite to 52 tasks, add multi-model results (#349)
  • feat(eval): add database, config, and build simulation eval categories (#344)
  • feat(tool): list all 80+ builtins in help text (#343)
  • fix(wc): match real bash output padding behavior (#342)
  • chore(tests): update spec_tests.rs skip count from 66 to 18 (#341)
  • refactor(error): add Fromregex::Error impl for Error (#340)
  • chore: add /process-issues claude command (#339)
  • chore: close verified-not-reproducible issues #279, #282 (#307)
  • test: verify issues #275, #279, #282 are not reproducible (#306)
  • feat(curl): add -F multipart form data support (#305)
  • feat(find): parse -exec flag without erroring (#304)
  • feat(awk): add user-defined function support (#303)
  • feat(tar): add -C (change directory) and -O (stdout) flags (#302)
  • feat(base64): add base64 encode/decode builtin command (#301)
  • fix(eval): add /var/log to script_health_check task files (#300)
  • fix(eval): accept both quoted and unquoted CSV in json_to_csv_export (#299)
  • fix(jq): return ExecResult::err instead of Error::Execution for stderr suppression (#298)
  • fix(test): resolve relative paths against cwd in file test operators (#297)
  • fix(interpreter): shift builtin now updates positional parameters (#296)
  • fix(lexer): handle backslash-newline line continuation between tokens (#295)
  • fix(interpreter): forward pipeline stdin to user-defined functions (#294)
  • fix(test): trim whitespace in parse_int for integer comparisons (#293)

Full Changelog: v0.1.7...v0.1.8

Release v0.1.7

26 Feb 02:44
8e10e34

Choose a tag to compare

Highlights

  • 20+ new builtins: declare/typeset, let, getopts, trap, caller, shopt, pushd/popd/dirs, seq, tac, rev, yes, expr, mktemp, realpath, and more
  • Glob options: dotglob, nocaseglob, failglob, noglob, globstar
  • Shell flags: bash -e/-x/-u/-f/-o, set -x xtrace debugging
  • select construct, case ;;& fallthrough, FUNCNAME variable
  • Nameref variables (declare -n), case conversion (declare -l/-u)
  • 10+ bug fixes for quoting, arrays, globs, and redirections

What's Changed

  • feat(interpreter): implement bash/sh -e/-x/-u/-f/-o flags (#270)
  • chore(eval): run 2026-02-25 evals across 4 models (#271)
  • feat(interpreter): implement glob options (dotglob, nocaseglob, failglob, noglob, globstar) (#269)
  • feat(builtins): implement pushd, popd, dirs (#268)
  • feat(builtins): implement file comparison test operators (#267)
  • feat(builtins): implement expr builtin (#266)
  • feat(builtins): implement yes and realpath builtins (#265)
  • feat(interpreter): implement caller builtin (#264)
  • feat(builtins): implement printf %q shell quoting (#263)
  • feat(builtins): implement tac and rev builtins (#262)
  • feat(builtins): implement seq builtin (#261)
  • chore(deps): bump pyo3 to 0.28.2 and pyo3-async-runtimes to 0.28 (#260)
  • feat(builtins): implement mktemp builtin (#259)
  • feat(interpreter): implement trap -p flag and sorted trap listing (#258)
  • feat(builtins): implement set -o / set +o option display (#257)
  • feat(interpreter): implement declare -l/-u case conversion attributes (#256)
  • feat(interpreter): implement declare -n nameref variables (#255)
  • feat(builtins): implement shopt builtin with nullglob enforcement (#254)
  • feat(interpreter): implement set -x xtrace debugging (#253)
  • feat(bash): auto-populate shell variables (PWD, HOME, USER, etc.) (#252)
  • feat(bash): implement select construct (#251)
  • feat(bash): implement let builtin and fix declare -i arithmetic (#250)
  • feat(bash): case ;& and ;;& fallthrough/continue-matching (#249)
  • feat(bash): implement FUNCNAME special variable (#248)
  • fix(bash): backslash-newline line continuation in double quotes (#247)
  • fix(bash): nested double quotes inside $() in double-quoted strings (#246)
  • fix(bash): input redirections on compound commands (#245)
  • fix(bash): glob pattern matching in [[ == ]] and [[ != ]] (#244)
  • fix(bash): negative array indexing ${arr[-1]} (#243)
  • fix(bash): BASH_REMATCH not populated when regex starts with parens (#242)
  • feat(bash): arithmetic exponentiation, base literals, mapfile (#241)
  • feat: grep binary detection, awk %.6g and sorted for-in (#240)
  • feat: bash compatibility — compound arrays, grep -f, awk getline, jq env/input (#238)
  • feat: string ops, read -r, heredoc tests (#237)
  • feat: associative arrays, chown/kill builtins, array slicing tests (#236)
  • feat: cat -v, sort -m, brace/date/lexer fixes (#234)
  • feat: type/which/declare/ln builtins, errexit, nounset fix, sort -z, cut -z (#233)
  • feat: paste, command, getopts, nounset, [[ =~ ]], glob **, backtick subst (#232)
  • feat(date): add -R, -I flags and %N format (#231)
  • fix(lexer): handle backslash-escaped metacharacters (#230)
  • feat(grep): add --include/--exclude glob patterns (#229)
  • feat(sort,uniq,cut,tr): add sort/uniq/cut/tr missing options (#228)
  • feat(sed): grouped commands, branching, Q quit, step/zero addresses (#227)
  • chore(deps): upgrade monty to latest main (87f8f31) (#226)
  • fix(ci): repair nightly CI and add fuzz compile guard (#225)

Full Changelog: v0.1.6...v0.1.7

Release v0.1.6

20 Feb 20:07
26b66e7

Choose a tag to compare

Highlights

  • ScriptedTool for composing multi-tool bash orchestration with Python/LangChain bindings
  • Streaming output support for Tool trait
  • Script file execution by path
  • 10 interpreter bug fixes surfaced by eval harness

What's Changed

  • chore: pre-release maintenance checklist (#223) by @chaliy
  • feat(interpreter): support executing script files by path (#222) by @chaliy
  • fix(jq): fix argument parsing, add test coverage, update docs (#221) by @chaliy
  • feat(tool): add streaming output support (#220) by @chaliy
  • feat(python): ScriptedTool bindings + LangChain integration (#219) by @chaliy
  • refactor(examples): extract fake tools into separate module (#218) by @chaliy
  • chore: add small-PR preference to AGENTS.md (#217) by @chaliy
  • fix(builtins): resolve 10 eval-surfaced interpreter bugs (#216) by @chaliy
  • fix: address 10 code TODOs across codebase (#215) by @chaliy
  • test: add skipped tests for eval-surfaced interpreter bugs (#214) by @chaliy
  • feat(scripted_tool): add ScriptedTool for multi-tool bash composition (#213) by @chaliy
  • ci(python): add Python bindings CI with ruff and pytest (#212) by @chaliy
  • fix(interpreter): apply brace/glob expansion in for-loop word list (#211) by @chaliy
  • feat(python): add PydanticAI integration and example (#210) by @chaliy
  • fix(ci): add --allow-dirty for cargo publish after stripping monty (#209) by @chaliy
  • fix(ci): strip git-only monty dep before crates.io publish (#208) by @chaliy

Full Changelog: v0.1.5...v0.1.6

Release v0.1.5

17 Feb 04:14
0be82a4

Choose a tag to compare

Highlights

  • Direct Monty Python integration (removed subprocess worker) for simpler embedding
  • Improved AWK parser: match, gensub, power operators, printf formats
  • PyPI publishing with pre-built wheels for all major platforms
  • Bug fixes for sed, parser redirections, array expansion, and env assignments

What's Changed

  • chore: pre-release maintenance — deps, docs, specs (#206) by @chaliy
  • test(python): regression tests for monty v0.0.5/v0.0.6 (#205) by @chaliy
  • refactor(python): direct Monty integration, remove worker subprocess (#203) by @chaliy
  • docs: add overview video to README (#202) by @chaliy
  • fix(interpreter): expand array args as separate fields (#201) by @chaliy
  • fix(interpreter): prefix env assignments visible to commands (#200) by @chaliy
  • chore(specs): add domain egress allowlist threat model (#199) by @chaliy
  • chore(deps): update pyo3 requirement from 0.24 to 0.24.2 (#198) by @chaliy
  • chore: reframe language from sandboxed bash to virtual bash (#197) by @chaliy
  • fix(builtins): fix sed ampersand replacement and escape handling (#196) by @chaliy
  • fix(parser): support output redirection on compound commands (#195) by @chaliy
  • fix(builtins): use streaming JSON deserializer in jq for multi-line input (#194) by @chaliy
  • fix(builtins): handle escape sequences in AWK -F field separator (#193) by @chaliy
  • fix(builtins): improve AWK parser with match, gensub, power, printf (#192) by @chaliy
  • docs(examples): use bashkit from PyPI instead of local build (#190) by @chaliy
  • fix(python): enable PyO3 generate-import-lib for Windows wheels (#189) by @chaliy
  • feat(python): add PyPI publishing with pre-built wheels (#188) by @chaliy
  • chore(ci): Bump taiki-e/cache-cargo-install-action from 2 to 3 (#186) by @chaliy
  • feat(eval): expand dataset to 37 tasks with JSON scenarios (#185) by @chaliy

Full Changelog: v0.1.4...v0.1.5

Release v0.1.4

09 Feb 05:53
8912750

Choose a tag to compare

Highlights

  • jq builtin now supports file arguments

What's Changed

  • fix(builtins): support file arguments in jq builtin (#183) by @chaliy
  • chore(ci): split monolithic check job and move heavy analysis to nightly (#182) by @chaliy
  • refactor(test): drop 'new_' prefix from curl/wget flag test modules (#181) by @chaliy
  • fix(publish): remove unpublished monty git dep for v0.1.3 (#180) by @chaliy
  • fix(publish): remove cargo dep on unpublished bashkit-monty-worker by @chaliy

Full Changelog: v0.1.3...v0.1.4

Release v0.1.2

06 Feb 02:31
a29d674

Choose a tag to compare

Highlights

  • Python bindings with LangChain and Deep Agents integrations
  • Sandboxed git support (branch, checkout, diff, reset)
  • Bash/sh script execution commands
  • Virtual filesystem improvements: /dev/null support, duplicate name prevention, FsBackend trait

What's Changed

  • feat(interpreter): add bash and sh commands for script execution (#154) by @chaliy
  • fix(vfs): prevent duplicate file/directory names + add FsBackend trait (#153) by @chaliy
  • feat(python): add Deep Agents integration with shared VFS (#152) by @chaliy
  • test(fs): add file size reporting tests (#150) by @chaliy
  • chore(ci): bump github-actions group dependencies (#149) by @chaliy
  • fix(sandbox): normalize paths and support root directory access (#148) by @chaliy
  • feat(python): add Python bindings and LangChain integration (#147) by @chaliy
  • docs: add security policy reference to README (#146) by @chaliy
  • chore: add .claude/settings.json (#145) by @chaliy
  • feat(examples): add git_workflow example (#144) by @chaliy
  • feat(git): add sandboxed git support with branch/checkout/diff/reset (#143) by @chaliy
  • test(find,ls): add comprehensive subdirectory recursion tests (#142) by @chaliy
  • fix(ls): add -t option for sorting by modification time (#141) by @chaliy
  • feat(jq): add --version flag support (#140) by @chaliy
  • feat(vfs): add /dev/null support at interpreter level (#139) by @chaliy
  • chore: clarify commit type for specs and AGENTS.md updates (#138) by @chaliy
  • feat(grep): add missing flags and unskip tests (#137) by @chaliy

Full Changelog: v0.1.1...v0.1.2

Release v0.1.1

04 Feb 04:35
9159db1

Choose a tag to compare

Highlights

  • Network commands: curl/wget now support timeout flags (--max-time, --timeout)
  • Parser improvements: $LINENO variable and line numbers in error messages
  • jq enhanced: new flags (-S, -s, -e, --tab, -j, -c, -n)
  • sed: in-place editing with -i flag
  • Structured logging with automatic security redaction

What's Changed

  • fix(test): fix printf format repeat and update test coverage (#135) by @chaliy
  • feat(network): implement curl/wget timeout support with safety limits (#134) by @chaliy
  • docs: consolidate intentionally unimplemented features documentation (#133) by @chaliy
  • feat(parser): add line number support for $LINENO and error messages (#132) by @chaliy
  • feat(sed): enable -i in-place editing flag (#131) by @chaliy
  • feat(tool): refactor Tool trait with improved outputs (#130) by @chaliy
  • docs(vfs): clarify symlink handling is intentional security decision (#129) by @chaliy
  • fix(test): fix failing tests and remove dead code (#128) by @chaliy
  • feat(curl): implement --max-time per-request timeout (#127) by @chaliy
  • feat(jq): add -S, -s, -e, --tab, -j flags (#126) by @chaliy
  • feat(for): implement positional params iteration in for loops (#125) by @chaliy
  • test(jq): enable group_by test that already passes (#124) by @chaliy
  • docs(agents): add testing requirements to pre-PR checklist (#123) by @chaliy
  • test(jq): enable jq_del test that already passes (#122) by @chaliy
  • chore(deps): update reqwest, schemars, criterion, colored, tabled (#121) by @chaliy
  • docs: add Everruns ecosystem reference (#120) by @chaliy
  • feat(jq): add compact output (-c) and null input (-n) flags (#119) by @chaliy
  • docs(network): remove outdated 'stub' references for curl/wget (#118) by @chaliy
  • docs: remove benchmark interpretation from README (#117) by @chaliy
  • feat(logging): add structured logging with security redaction (#116) by @chaliy
  • fix(security): prevent panics and add internal error handling (#115) by @chaliy
  • fix(parser): support quoted heredoc delimiters (#114) by @chaliy
  • fix(date): handle timezone format errors gracefully (#113) by @chaliy
  • fix: implement missing parameter expansion and fix output mismatches (#112) by @chaliy
  • docs(security): add threat model with stable IDs and public doc (#111) by @chaliy
  • chore(bench): add performance benchmark results (#110) by @chaliy
  • docs: update KNOWN_LIMITATIONS.md with current test counts (#109) by @chaliy
  • refactor(builtins): extract shared resolve_path helper (#108) by @chaliy
  • refactor(vfs): rename to mount_text/mount_readonly_text with custom fs support (#107) by @chaliy
  • fix(echo): support combined flags and fix test expectations (#106) by @chaliy

Full Changelog: v0.1.0...v0.1.1

Release v0.1.0

03 Feb 00:30
e91d635

Choose a tag to compare

Highlights

  • Initial release of BashKit sandboxed bash interpreter
  • Core interpreter with bash-compatible syntax support
  • Virtual filesystem (VFS) abstraction for sandboxed file operations
  • Resource limits: memory, execution time, operation count
  • Built-in commands: echo, printf, cat, head, tail, wc, grep, sed, awk, jq, sort, uniq, cut, tr, date, base64, md5sum, sha256sum, gzip, gunzip, etc
  • CLI tool for running scripts and interactive REPL
  • Security testing with fail-point injection

What's Changed

  • feat(test): add grammar-based differential fuzzing (#83) by @chaliy
  • feat: implement missing grep and sed flags (#82) by @chaliy
  • feat(test): add compatibility report generator (#81) by @chaliy
  • feat(grep): implement missing grep flags (-A/-B/-C, -m, -q, -x, -e) (#80) by @chaliy
  • feat(test): add script to check expected outputs against bash (#79) by @chaliy
  • feat: implement release process for 0.1.0 (#78) by @chaliy
  • test(spec): enable bash comparison tests in CI (#77) by @chaliy
  • feat: implement POSIX Shell Command Language compliance (#76) by @chaliy
  • docs: embed custom guides in rustdoc via include_str (#75) by @chaliy
  • docs: update built-in commands documentation to reflect actual implementation (#74) by @chaliy
  • test(builtins): add example and integration tests for custom builtins (#73) by @chaliy
  • docs: update KNOWN_LIMITATIONS and compatibility docs (#72) by @chaliy
  • fix: resolve cargo doc collision and rustdoc warnings (#71) by @chaliy
  • docs(specs): document 18 new CLI builtins (#70) by @chaliy
  • docs: add comprehensive rustdoc documentation for public API (#69) by @chaliy
  • docs(tests): complete skipped tests TODO list (#68) by @chaliy
  • feat: implement bash compatibility features (#67) by @chaliy
  • feat(parser): add fuel-based operation limit to prevent DoS (#66) by @chaliy
  • feat(parser): add AST depth limit to prevent stack overflow (#65) by @chaliy
  • feat(parser): add input size validation to prevent DoS (#64) by @chaliy
  • feat(parser): add parser timeout to prevent DoS (#63) by @chaliy
  • fix(interpreter): handle command not found like bash (#61) by @chaliy
  • feat(builtins): add custom builtins support (#60) by @chaliy
  • docs: document skipped tests and curl coverage gap (#59) by @chaliy
  • fix(timeout): make timeout tests reliable with virtual time (#58) by @chaliy
  • test(bash): enable bash core tests in CI (#57) by @chaliy
  • chore(clippy): enable clippy::unwrap_used lint (#56) by @chaliy
  • feat(security): add cargo-vet for supply chain tracking (#54) by @chaliy
  • ci: add AddressSanitizer job for stack overflow detection (#52) by @chaliy
  • fix(ci): add checks:write permission for cargo-audit (#51) by @chaliy
  • chore(ci): add Dependabot configuration (#50) by @chaliy
  • test: port comprehensive test cases from just-bash (#49) by @chaliy
  • fix(awk): fix multi-statement parsing and add gsub/split support (#48) by @chaliy
  • feat(time,timeout): implement time keyword and timeout command (#47) by @chaliy
  • refactor(test): optimize proptest for CI speed (#46) by @chaliy
  • feat(builtins): implement 18 new CLI commands (#45) by @chaliy
  • feat(system): add configurable username and hostname to BashBuilder (#44) by @chaliy
  • feat(security): add security tooling for vulnerability detection (#43) by @chaliy
  • feat(sed): implement case insensitive flag and multiple commands (#42) by @chaliy
  • docs: update testing docs to reflect current status (#41) by @chaliy
  • feat(grep): implement -w and -l stdin support (#40) by @chaliy
  • fix(jq): use pretty-printed output for arrays and objects (#39) by @chaliy
  • feat(jq): implement -r/--raw-output flag (#38) by @chaliy
  • feat(fs): enable custom filesystem implementations from external crates (#37) by @chaliy
  • fix(parser,interpreter): add support for arithmetic commands and C-style for loops (#36) by @chaliy
  • feat(grep): implement -o flag for only-matching output (#35) by @chaliy
  • docs(agents): add test-first principle for bug fixes (#34) by @chaliy
  • docs: update testing spec and known limitations with accurate counts (#33) by @chaliy
  • docs: add PR convention to never include Claude session links (#32) by @chaliy
  • feat(examples): add LLM agent example with real Claude integration (#31) by @chaliy
  • fix: resolve BashKit parsing and filesystem bugs (#30) by @chaliy
  • feat(bench): add parallel execution benchmark (#29) by @chaliy
  • feat(fs): add direct filesystem access via Bash.fs() (#28) by @chaliy
  • feat(bench): add benchmark tool to compare bashkit, bash, and just-bash (#27) by @chaliy
  • fix(test): isolate fail-point tests for CI execution (#26) by @chaliy
  • ci: add examples execution to CI workflow (#25) by @chaliy
  • feat: add comprehensive builtins, job control, and test coverage (#24) by @chaliy
  • feat(security): add fail-rs security testing and threat model (#23) by @chaliy
  • docs: update CONTRIBUTING and prepare repo for publishing (#22) by @chaliy
  • docs: remove MCP server mode references from README (#21) by @chaliy
  • docs: update compatibility scorecard with array fixes (#20) by @chaliy
  • docs: add acknowledgment for Vercel's just-bash inspiration (#19) by @chaliy
  • feat(bashkit): fix array edge cases (102 tests passing) (#18) by @chaliy
  • docs: add licensing and attribution files (#17) by @chaliy
  • feat(bashkit): improve spec test coverage from 78% to 100% (#16) by @chaliy
  • docs: add compatibility scorecard (#15) by @chaliy
  • feat(bashkit): Phase 12 - Spec test framework for compatibility testing (#14) by @chaliy
  • docs: update README with project overview (#13) by @chaliy
  • feat(bashkit): Phase 11 - Text processing commands (jq, grep, sed, awk) (#12) by @chaliy
  • feat(bashkit-cli): Phase 10 - MCP server mode (#11) by @chaliy
  • feat(bashkit): Phase 9 - Network allowlist and HTTP client (#10) by @chaliy
  • feat(bashkit): Phase 8 - OverlayFs and MountableFs (#9) by @chaliy
  • feat(bashkit): Phase 7 - Resource limits for sandboxing (#8) by @chaliy
  • feat(bashkit-cli): Add CLI binary for command line usage (#7) by @chaliy
  • feat(bashkit): Phase 5 - Array support (#6) by @chaliy
  • feat(bashkit): Phase 4 - Here documents, builtins, and parameter expansion (#5) by @chaliy
  • feat(bashkit): Phase 3 - Command substitution and arithmetic expansion (#4) by @chaliy
  • feat(bashkit): Phase 2 complete - control flow, functions, builtins (#3) by @chaliy
  • fe...
Read more