Skip to content

Commit 7b7e2a0

Browse files
authored
chore(release): prepare v0.1.14
## Summary - Bump version to 0.1.14 in workspace `Cargo.toml` - Add CHANGELOG.md entry for v0.1.14 with 50 changes since v0.1.13 ### Highlights - **Massive Bash compatibility push** — 25+ interpreter fixes covering errexit, namerefs, associative arrays, arithmetic expansion, redirects, glob patterns, and ANSI-C quoting - **AWK engine hardened** — 8 fixes for regex literals, newline handling, printf, keyword tokenization, and multi-file FILENAME support - **New Bash features** — `set -a` (allexport), `BASH_SOURCE` array, `exec` with command replacement, `declare -f`, `compgen -c` PATH scanning - **Prebuilt CLI binaries** — macOS (ARM64/x86_64) and Linux x86_64 binaries now published to GitHub Releases with Homebrew formula - **Dependency upgrades** — jaq 3.0, digest crates 0.11 ## Verification - [x] `cargo fmt --check` — clean - [x] `cargo clippy --all-targets --all-features -- -D warnings` — clean - [x] `cargo test --all-features` — all tests pass
1 parent 1eb29b2 commit 7b7e2a0

File tree

4 files changed

+69
-4
lines changed

4 files changed

+69
-4
lines changed

CHANGELOG.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,71 @@
22

33
## [Unreleased]
44

5+
## [0.1.14] - 2026-03-28
6+
7+
### Highlights
8+
9+
- **Massive Bash compatibility push** — 25+ interpreter fixes covering errexit, namerefs, associative arrays, arithmetic expansion, redirects, glob patterns, and ANSI-C quoting
10+
- **AWK engine hardened** — 8 fixes for regex literals, newline handling, printf, keyword tokenization, and multi-file FILENAME support
11+
- **New Bash features**`set -a` (allexport), `BASH_SOURCE` array, `exec` with command replacement, `declare -f`, `compgen -c` PATH scanning
12+
- **Prebuilt CLI binaries** — macOS (ARM64/x86_64) and Linux x86_64 binaries now published to GitHub Releases with Homebrew formula
13+
- **Dependency upgrades** — jaq 3.0, digest crates 0.11
14+
15+
### What's Changed
16+
17+
* feat(deps): upgrade jaq to 3.0, digest crates to 0.11 ([#893](https://github.com/everruns/bashkit/pull/893)) by @chaliy
18+
* chore(deps): require major version upgrades in maintenance checklist ([#892](https://github.com/everruns/bashkit/pull/892)) by @chaliy
19+
* ci(js): add Bun and Deno to JS CI matrix with runtime-compat tests ([#889](https://github.com/everruns/bashkit/pull/889)) by @chaliy
20+
* fix(interpreter): handle compound array assignment in local builtin ([#888](https://github.com/everruns/bashkit/pull/888)) by @chaliy
21+
* fix(interpreter): expand special variables ($#, $?, etc.) in arithmetic ([#887](https://github.com/everruns/bashkit/pull/887)) by @chaliy
22+
* chore: pre-release maintenance (test counts, fuzz fix, code cleanup) ([#885](https://github.com/everruns/bashkit/pull/885)) by @chaliy
23+
* fix(interpreter): set -e should not trigger on compound commands with && chain failure ([#879](https://github.com/everruns/bashkit/pull/879)) by @chaliy
24+
* fix(interpreter): expand assoc array keys with command substitutions ([#878](https://github.com/everruns/bashkit/pull/878)) by @chaliy
25+
* feat(release): add prebuilt CLI binary builds and Homebrew formula ([#871](https://github.com/everruns/bashkit/pull/871)) by @chaliy
26+
* fix(builtins): preserve raw bytes from /dev/urandom through pipeline ([#870](https://github.com/everruns/bashkit/pull/870)) by @chaliy
27+
* fix(interpreter): resolve namerefs in parameter expansion for assoc array subscripts ([#869](https://github.com/everruns/bashkit/pull/869)) by @chaliy
28+
* fix(interpreter): propagate errexit_suppressed through compound commands ([#868](https://github.com/everruns/bashkit/pull/868)) by @chaliy
29+
* test(parser): unskip parse_unexpected_do and parse_unexpected_rbrace ([#866](https://github.com/everruns/bashkit/pull/866)) by @chaliy
30+
* fix(parser): expand $'\n' ANSI-C quoting in concatenated function args ([#865](https://github.com/everruns/bashkit/pull/865)) by @chaliy
31+
* fix(interpreter): treat assoc array subscripts as literal strings ([#864](https://github.com/everruns/bashkit/pull/864)) by @chaliy
32+
* fix(interpreter): correct left-to-right redirect ordering for fd dup + file combos ([#863](https://github.com/everruns/bashkit/pull/863)) by @chaliy
33+
* fix(parser): handle $'...' ANSI-C quoting in parameter expansion patterns ([#856](https://github.com/everruns/bashkit/pull/856)) by @chaliy
34+
* fix(awk): check word boundary before emitting keyword tokens ([#859](https://github.com/everruns/bashkit/pull/859)) by @chaliy
35+
* fix(builtins): preserve full path in ls output for file arguments ([#858](https://github.com/everruns/bashkit/pull/858)) by @chaliy
36+
* fix(builtins): suppress rg line numbers by default (non-tty behavior) ([#857](https://github.com/everruns/bashkit/pull/857)) by @chaliy
37+
* fix(interpreter): resolve nameref for ${!ref[@]} key enumeration ([#855](https://github.com/everruns/bashkit/pull/855)) by @chaliy
38+
* fix(interpreter): fire EXIT trap inside command substitution subshell ([#854](https://github.com/everruns/bashkit/pull/854)) by @chaliy
39+
* fix(js): update exec security test for sandbox-safe exec behavior ([#851](https://github.com/everruns/bashkit/pull/851)) by @chaliy
40+
* fix(interpreter): reset last_exit_code in VFS subprocess isolation ([#850](https://github.com/everruns/bashkit/pull/850)) by @chaliy
41+
* fix(interpreter): treat invalid glob bracket expressions as literals ([#845](https://github.com/everruns/bashkit/pull/845)) by @chaliy
42+
* fix(awk): support backslash-newline line continuation ([#841](https://github.com/everruns/bashkit/pull/841)) by @chaliy
43+
* fix(awk): treat # inside regex literals as literal, not comment ([#840](https://github.com/everruns/bashkit/pull/840)) by @chaliy
44+
* fix(interpreter): resolve namerefs before nounset check ([#839](https://github.com/everruns/bashkit/pull/839)) by @chaliy
45+
* fix(builtins): sort -n extracts leading numeric prefix from strings ([#838](https://github.com/everruns/bashkit/pull/838)) by @chaliy
46+
* feat(interpreter): implement BASH_SOURCE array variable ([#832](https://github.com/everruns/bashkit/pull/832)) by @chaliy
47+
* fix(awk): treat newlines as statement separators in action blocks ([#831](https://github.com/everruns/bashkit/pull/831)) by @chaliy
48+
* feat(api): add BashBuilder::tty() for configurable terminal detection ([#830](https://github.com/everruns/bashkit/pull/830)) by @chaliy
49+
* fix(awk): accept expressions as printf format string ([#829](https://github.com/everruns/bashkit/pull/829)) by @chaliy
50+
* fix(vfs): preserve raw bytes when reading /dev/urandom ([#828](https://github.com/everruns/bashkit/pull/828)) by @chaliy
51+
* fix(awk): evaluate regex literals against $0 in boolean context ([#827](https://github.com/everruns/bashkit/pull/827)) by @chaliy
52+
* fix(parser): preserve double quotes inside $() in double-quoted strings ([#826](https://github.com/everruns/bashkit/pull/826)) by @chaliy
53+
* fix(interpreter): set -e respects AND-OR lists in functions and loops ([#824](https://github.com/everruns/bashkit/pull/824)) by @chaliy
54+
* test(allexport): add regression tests for set -a behavior ([#823](https://github.com/everruns/bashkit/pull/823)) by @chaliy
55+
* fix(builtins): implement `declare -f` for function display and lookup ([#822](https://github.com/everruns/bashkit/pull/822)) by @chaliy
56+
* feat(interpreter): nameref resolution for associative array operations ([#821](https://github.com/everruns/bashkit/pull/821)) by @chaliy
57+
* test(awk): add spec tests for delete array (already implemented) ([#820](https://github.com/everruns/bashkit/pull/820)) by @chaliy
58+
* feat(compgen): scan PATH directories for executables in compgen -c ([#819](https://github.com/everruns/bashkit/pull/819)) by @chaliy
59+
* feat(test): configurable -t fd terminal detection ([#818](https://github.com/everruns/bashkit/pull/818)) by @chaliy
60+
* feat(awk): route /dev/stderr and /dev/stdout to interpreter streams ([#817](https://github.com/everruns/bashkit/pull/817)) by @chaliy
61+
* feat(awk): implement FILENAME built-in variable for multi-file processing ([#816](https://github.com/everruns/bashkit/pull/816)) by @chaliy
62+
* feat(interpreter): exec with command argument — execute and don't return ([#815](https://github.com/everruns/bashkit/pull/815)) by @chaliy
63+
* feat(interpreter): implement set -a (allexport) ([#814](https://github.com/everruns/bashkit/pull/814)) by @chaliy
64+
* feat(interpreter): subprocess isolation for VFS script-by-path execution ([#813](https://github.com/everruns/bashkit/pull/813)) by @chaliy
65+
* feat(interpreter): pipe stdin to VFS script execution ([#812](https://github.com/everruns/bashkit/pull/812)) by @chaliy
66+
* refactor(scripted_tool): ScriptingToolSet returns tools() instead of implementing Tool ([#789](https://github.com/everruns/bashkit/pull/789)) by @chaliy
67+
68+
**Full Changelog**: https://github.com/everruns/bashkit/compare/v0.1.13...v0.1.14
69+
570
## [0.1.13] - 2026-03-23
671

772
### Highlights

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ resolver = "2"
77
members = ["crates/*"]
88

99
[workspace.package]
10-
version = "0.1.13"
10+
version = "0.1.14"
1111
edition = "2024"
1212
license = "MIT"
1313
authors = ["Everruns"]

crates/bashkit-js/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/bashkit-js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@everruns/bashkit",
3-
"version": "0.1.13",
3+
"version": "0.1.14",
44
"description": "Sandboxed bash interpreter for JavaScript/TypeScript",
55
"main": "wrapper.js",
66
"browser": "bashkit.wasi-browser.js",

0 commit comments

Comments
 (0)