|
2 | 2 |
|
3 | 3 | ## [Unreleased] |
4 | 4 |
|
| 5 | +## [0.1.10] - 2026-03-15 |
| 6 | + |
| 7 | +### Highlights |
| 8 | + |
| 9 | +- **Node.js native bindings** (`@everruns/bashkit`): Full npm package with NAPI-RS, async execute API, VFS file helpers, lazy file values — 6 platforms, tested on Node 20/22/24, with 200+ tests and 6 examples including OpenAI, Vercel AI, and LangChain integrations |
| 10 | +- **Pi coding agent integration**: Bashkit extension for [pi.dev](https://pi.dev/) terminal coding agent — replaces shell, read, write, and edit tools with bashkit-backed virtual implementations, zero real filesystem access |
| 11 | +- **39 new builtins** (109→148): rg, patch, zip/unzip, iconv, compgen, json, csv, tomlq, yaml, template, parallel, http, help, fc, tree, readlink, clear, fold, expand/unexpand, envsubst, join, split, and more |
| 12 | +- **Performance**: Criterion benchmark harness with auto-save, 7-runner comparison suite, lazy-init HTTP client, trimmed CLI one-shot startup path |
| 13 | +- **Coprocess & background execution**: `coproc` support with named FD pairs, background `&` execution with `wait` builtin, cancellation via AtomicBool token |
| 14 | + |
| 15 | +### New Tools & Builtins |
| 16 | + |
| 17 | +- 14 new builtins batch 2: rg, patch, zip/unzip, iconv, compgen, json, csv, tomlq, yaml, template, parallel, http, help, fc |
| 18 | +- 7 non-standard builtins + alias/unalias docs |
| 19 | +- join and split commands |
| 20 | +- clear, fold, expand/unexpand, envsubst |
| 21 | +- tree, readlink |
| 22 | +- ScriptingToolSet with exclusive/discovery modes |
| 23 | +- MCP: expose ScriptedTool as MCP tool |
| 24 | +- help builtin for runtime schema introspection |
| 25 | + |
5 | 26 | ### What's Changed |
6 | 27 |
|
| 28 | +* feat(pi-integration): add Pi coding agent extension with bashkit VFS ([#638](https://github.com/everruns/bashkit/pull/638)) |
| 29 | +* feat(find): add -printf format flag support ([#637](https://github.com/everruns/bashkit/pull/637)) |
| 30 | +* test: un-ignore exec_azure_query_capacity, now passing ([#636](https://github.com/everruns/bashkit/pull/636)) |
| 31 | +* feat(awk): add Unicode \u escape sequences ([#635](https://github.com/everruns/bashkit/pull/635)) |
| 32 | +* feat(jq): upgrade jaq crates to latest stable versions ([#634](https://github.com/everruns/bashkit/pull/634)) |
| 33 | +* feat(vfs): add /dev/urandom and /dev/random to virtual filesystem ([#632](https://github.com/everruns/bashkit/pull/632)) |
| 34 | +* feat: fix bindings stderr, agent prompt, jq 1.8, awk --csv ([#631](https://github.com/everruns/bashkit/pull/631)) |
| 35 | +* fix(errexit): assignment-only commands now return exit code 0 ([#630](https://github.com/everruns/bashkit/pull/630)) |
| 36 | +* chore: pre-release maintenance pass ([#627](https://github.com/everruns/bashkit/pull/627)) |
| 37 | +* fix(awk): implement output redirection for print/printf ([#626](https://github.com/everruns/bashkit/pull/626)) |
| 38 | +* feat(js): expose VFS file helpers for agent integrations ([#624](https://github.com/everruns/bashkit/pull/624)) |
| 39 | +* fix(builtins): preserve empty fields in read IFS splitting ([#623](https://github.com/everruns/bashkit/pull/623)) |
| 40 | +* fix(interpreter): correct &&/|| operator precedence in [[ ]] conditional ([#622](https://github.com/everruns/bashkit/pull/622)) |
| 41 | +* fix(js): prevent invalid pointer access in napi bindings ([#621](https://github.com/everruns/bashkit/pull/621)) |
| 42 | +* fix(builtins): correct -a/-o operator precedence in test/[ builtin ([#620](https://github.com/everruns/bashkit/pull/620)) |
| 43 | +* refactor(net): lazy-init http client ([#613](https://github.com/everruns/bashkit/pull/613)) |
| 44 | +* feat(cancel): add cancellation support via AtomicBool token ([#612](https://github.com/everruns/bashkit/pull/612)) |
| 45 | +* fix(eval): stop scoring tool-call trajectory ([#611](https://github.com/everruns/bashkit/pull/611)) |
| 46 | +* refactor(cli): trim one-shot startup path ([#609](https://github.com/everruns/bashkit/pull/609)) |
| 47 | +* fix(parser): track bracket/brace depth in array subscript reader ([#603](https://github.com/everruns/bashkit/pull/603)) |
| 48 | +* fix(lexer): track brace depth in unquoted ${...} tokenization ([#602](https://github.com/everruns/bashkit/pull/602)) |
| 49 | +* fix(interpreter): expand ${...} syntax in arithmetic contexts ([#601](https://github.com/everruns/bashkit/pull/601)) |
| 50 | +* feat(js): support lazy file values in VFS ([#598](https://github.com/everruns/bashkit/pull/598)) |
| 51 | +* feat(js): add async execute API ([#597](https://github.com/everruns/bashkit/pull/597)) |
| 52 | +* feat(history): persistent searchable history across Bash instances ([#596](https://github.com/everruns/bashkit/pull/596)) |
| 53 | +* feat(git): add show/ls-files/rev-parse/restore/merge-base/grep ([#595](https://github.com/everruns/bashkit/pull/595)) |
| 54 | +* feat(interpreter): implement coproc (coprocess) support ([#594](https://github.com/everruns/bashkit/pull/594)) |
| 55 | +* feat(eval): improve discovery prompts and bump to gpt-5.4 ([#593](https://github.com/everruns/bashkit/pull/593)) |
| 56 | +* fix(tool): align toolkit library contract ([#592](https://github.com/everruns/bashkit/pull/592)) |
| 57 | +* feat(vfs): add mkfifo and named pipe (FIFO) support ([#591](https://github.com/everruns/bashkit/pull/591)) |
| 58 | +* feat(interpreter): implement background execution with & and wait ([#590](https://github.com/everruns/bashkit/pull/590)) |
| 59 | +* feat(bench): add Criterion parallel bench with auto-save ([#589](https://github.com/everruns/bashkit/pull/589)) |
| 60 | +* feat(builtins): add 14 new builtins batch 2 ([#588](https://github.com/everruns/bashkit/pull/588)) |
| 61 | +* feat(eval): improve scripted tool evals with ScriptingToolSet ([#587](https://github.com/everruns/bashkit/pull/587)) |
| 62 | +* fix(fs): flush RealFs append to prevent data loss race ([#586](https://github.com/everruns/bashkit/pull/586)) |
| 63 | +* feat(builtins): add 7 non-standard builtins + alias/unalias docs ([#585](https://github.com/everruns/bashkit/pull/585)) |
| 64 | +* feat(builtins): add join and split commands ([#584](https://github.com/everruns/bashkit/pull/584)) |
| 65 | +* feat(bench): 7-runner benchmark comparison with expanded test suite ([#583](https://github.com/everruns/bashkit/pull/583)) |
| 66 | +* feat(builtins): add clear, fold, expand/unexpand, envsubst commands ([#582](https://github.com/everruns/bashkit/pull/582)) |
| 67 | +* feat(builtins): add tree command ([#581](https://github.com/everruns/bashkit/pull/581)) |
| 68 | +* chore(maintenance): extract /maintain skill, add simplification ([#580](https://github.com/everruns/bashkit/pull/580)) |
| 69 | +* feat(builtins): add readlink command ([#579](https://github.com/everruns/bashkit/pull/579)) |
| 70 | +* feat(scripted_tool): add ScriptingToolSet with discovery mode support ([#534](https://github.com/everruns/bashkit/pull/534)) |
| 71 | +* chore(agents): clarify worktree sync and commit identity ([#533](https://github.com/everruns/bashkit/pull/533)) |
| 72 | +* feat(mcp): expose ScriptedTool as MCP tool ([#532](https://github.com/everruns/bashkit/pull/532)) |
| 73 | +* docs(scripted_tool): shared context and state patterns ([#530](https://github.com/everruns/bashkit/pull/530)) |
| 74 | +* feat(scripted_tool): help builtin for runtime schema introspection ([#529](https://github.com/everruns/bashkit/pull/529)) |
| 75 | +* feat(js): add JavaScript/TypeScript package with npm publishing ([#528](https://github.com/everruns/bashkit/pull/528)) |
| 76 | +* feat: upgrade to Rust edition 2024 + add doppler to cloud setup ([#527](https://github.com/everruns/bashkit/pull/527)) |
| 77 | +* feat(eval): add scripting tool evals with multi-dataset support ([#525](https://github.com/everruns/bashkit/pull/525)) |
7 | 78 | * fix: prevent fuzz-found panics on multi-byte input ([#513](https://github.com/everruns/bashkit/pull/513)) |
8 | 79 |
|
| 80 | +**Full Changelog**: https://github.com/everruns/bashkit/compare/v0.1.9...v0.1.10 |
| 81 | + |
9 | 82 | ## [0.1.9] - 2026-03-04 |
10 | 83 |
|
11 | 84 | ### Highlights |
|
0 commit comments