unstale

pypi / bashkit

bashkit

What changed in bashkit 0.18 to 0.19, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.

7 breaking2 security13 new APIs and options7 behavior and defaults15 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

bashkit 0.1932 changes

Breaking changes 5

  • ScriptedTool moved to its own Rust package; callers replace the bashkit scripted_tool feature and imports with this crate.

    0.19.0release notes

  • Python ScriptedTool imports move from bashkit to bashkit.scripted.

    0.19.0release notes

  • JavaScript ScriptedTool imports move from @everruns/bashkit to this subpath.

    0.19.0release notes

  • Rust callers install the registry with registry.install(builder) instead of builder.tool_registry(registry).

    0.19.0release notes

  • Allocation, recursion, input, and output accounting makes resource refusals explicit instead of silently truncating or allowing unbounded growth.

    0.19.0release notes

Security 2

  • Reduces browser transfer size and verifies package identity.

    0.19.0release notes

  • NAT64 and 6to4 addresses are classified by their embedded IPv4 address, and reserved ranges are blocked.

    0.19.0release notes

New APIs and options 10

  • Interactive shell support adds history, fc, completion, bind, and prompts.

    0.19.0release notes

  • Enables Python and TypeScript in BashTool.

    0.19.0release notes

  • The opt-in feature runs CPython 3.14 as python3 through WebAssembly, with VFS access and HTTP routed through Bashkit's egress boundary.

    0.19.0release notes

  • An opt-in cpython-native feature is available.

    0.19.0release notes

  • A default root filesystem including /etc, /proc, and /usr/bin is available.

    0.19.0release notes

  • Python requests and httpx modules can make HTTP requests through Bashkit's egress boundary.

    0.19.0release notes

  • The jq builtin adds halt and debug, several output and input modes, $__loc__, and ?//, with date and base64 fixes.

    0.19.0release notes

  • A GNU make subset is available in the sandbox shell.

    0.19.0release notes

  • An in-process interactive terminal provides screen text, scrollback, input, interrupts, and editor and pager commands.

    0.19.0release notes

  • A terminal tool for LLM agents is available, with support for multiple terminal sessions.

    0.19.0release notes

Behavior and default changes 5

  • The awk builtin was rewritten to match gawk 5.2 and can run gawk, mawk, and nawk scripts.

    0.19.0release notes

  • Background jobs run concurrently.

    0.19.0release notes

  • Pipeline stages run concurrently and stream data through pipelines with SIGPIPE behavior.

    0.19.0release notes

  • Additional everyday commands and GNU-oriented coreutils behavior improve compatibility for shell scripts.

    0.19.0release notes

  • The VFS can follow symlinks.

    0.19.0release notes

Fixes and other changes 10

  • Expands aliases per line and closes remaining Oils specification gaps.

    0.19.0release notes

  • Unifies indirect subscript consumption and preserves nested subscripts with a complete-reference boundary.

    0.19.0release notes

  • Reads a backquoted substitution after a quoted segment.

    0.19.0release notes

  • Interpreter and parser behavior was brought closer to bash across expansion, arrays, redirects, traps, shell options, and diagnostics.

    0.19.0release notes

  • Coprocesses run concurrently over in-process pipes.

    0.19.0release notes

  • Accepts HH:MM date-times and zone suffixes, and reads weekday names instead of returning the current time.

    0.19.0release notes

  • Truncates array targets at the first ] to stop operand recursion and preserves nested subscripts.

    0.19.0release notes

  • Ignores invalid stdin when stdin is unread under -n.

    0.19.0release notes

  • Releases mapfile budgets and surfaces refusals.

    0.19.0release notes

  • Falls back to a direct write when creation of a hidden temporary file is refused.

    0.19.0release notes

bashkit 0.1812 changes

Breaking changes 2

  • Untrusted workflow code no longer receives the checkout token.

    0.18.2release notes

  • With additionalProperties set to false, unrecognised flags now produce an error naming the valid flags instead of silently dropping the property.

    0.18.1release notes

New APIs and options 3

  • Adds GNU-style case conversion escapes for uppercasing and lowercasing text.

    0.18.2release notes

  • Adds GNU-style getopt support, including -s, -z, -f, -l, and attached -i.bak.

    0.18.2release notes

  • Registers a raw-argv builtin alongside ToolDef tools, enabling positionals, short flags, --, and parse-time required-argument checking inside a ScriptedTool.

    0.18.1release notes

Behavior and default changes 2

Fixes and other changes 5

  • Verification now outlasts the registry cache, improving release pipeline reliability.

    0.18.2release notes

  • Adds the missing GNU sed commands: y, =, l, n, N, P, D, T, z, F, r, R, w, and W.

    0.18.2release notes

  • Implements GNU range-address semantics, bringing sed address behavior closer to GNU sed 4.9.

    0.18.2release notes

  • Preserves a missing final newline instead of adding one.

    0.18.2release notes

  • VFS paths now use forward slashes on every host, fixing Windows path handling.

    0.18.2release notes