-
-
Notifications
You must be signed in to change notification settings - Fork 0
Release notes
This is the long-form release history for dollar-shell. The README carries a short summary of the most memorable items per release; this page goes into the detail that doesn't fit there — internal changes, calibration notes, related wiki / repository changes, and credits.
Fixed Bun stdin abort propagation. Previously, calling writer.abort(reason) on a stdin WritableStream returned by spawn(...) on Bun would silently drop the abort signal — Bun's FileSink (the underlying stdin object on Bun) has no .abort method matching the Web Streams UnderlyingSink shape. The previous code also relied on an undocumented runtime .close alias of FileSink.end() for the graceful close path. This release replaces the direct new WritableStream(fileSink) construction with a small adapter that delegates to FileSink's documented API only (.write, .end). Aborts now propagate: the child process sees EOF on its stdin and exits, and await writer.closed rejects with the original abort reason. Verified empirically across Node, Bun, and Deno — all three converge on identical observable behavior. See tests/test-subprocess.js § "spawn: stdin abort closes child cleanly" for the regression test.
Added js-check tooling for .js source linting. Two-tsconfig pattern: tsconfig.json stays strict for .d.ts validation; new tsconfig.check.json runs checkJs + noUnusedLocals + noUnusedParameters against src/**/*.js. The initial run surfaced one real bug — the Bun FileSink mismatch above — plus 21 noise items resolved with narrow JSDoc casts (zero runtime change). New npm run js-check script wired into CI as a step alongside ts-check. Cross-runtime ambient globals (Deno, Bun) are resolved by adding @types/node, @types/bun, and @types/deno to devDependencies and listing all three in tsconfig.check.json's types: [...] array — they coexist with each other cleanly.
Bun + Deno wired into CI across Linux, macOS, and Windows. .github/workflows/tests.yml restructured into three parallel jobs (test-node, test-bun, test-deno) using oven-sh/setup-bun@v2 and denoland/setup-deno@v2. Each matrix has fail-fast: false so failures are reported per cell. All cells passed on the first run, including Windows-Bun and Windows-Deno (previously untested by anyone).
Documented cross-runtime Web Streams parity. New wiki page Cross-runtime notes records what's identical across Node + Bun + Deno (for await, getReader, pipeTo, pipeThrough, tee, cancel, Response(...).text(), chunk shape Uint8Array/ArrayBuffer, cancel propagating to the child process within ~17ms) and the one currently-known divergence: getReader({mode: 'byob'}) works only on Deno, because Node's Readable.toWeb() and Bun's subprocess.stdout produce regular (non-byte) ReadableStreams. The page is dated so future readers know how stale the finding is — runtime Web Streams support is actively progressing in all three.
Dev-dependency bumps. typescript 5.9.3 → 6.0.3, tape-six 1.7.12 → 1.9.0, prettier 3.8.1 → 3.8.3. New devDeps: @types/node@^25.6.0, @types/bun@^1.3.13, @types/deno@^2.5.0 (all required for js-check to resolve cross-runtime types).
These are reproduced from the README at the time of writing — the long-form convention starts with 1.1.14.
- 1.1.13 (2026-03-15) — Updated dev dependencies.
- 1.1.12 (2026-03-08) — Consolidated TypeScript tests into
tests/, removedts-check/, added CJS test, improved test coverage and documentation. - 1.1.11 (2026-03-04) — Updated dev dependencies.
- 1.1.10 (2026-02-27) — Fixed a bug with options chaining for attached functions, fixed Bun spawn on invalid commands, Windows-compatible tests, updated dev dependencies.
- 1.1.9 (2026-02-19) — Updated dev dependencies, cleaned up docs, added info for AI agents.
- 1.1.8 (2026-02-07) — Updated dev dependencies.
- 1.1.7 (2026-01-27) — Updated dev dependencies.
- 1.1.6 (2026-01-27) — Updated dev dependencies.
- 1.1.5 (2026-01-24) — Updated dev dependencies.
- 1.1.4 (2026-01-24) — Updated dev dependencies.
- 1.1.3 (2026-01-23) — Updated dev dependencies.
- 1.1.2 (2026-01-23) — Updated dev dependencies.
- 1.1.1 (2026-01-19) — Updated dev dependencies.
- 1.1.0 — Added
asDuplexto the sub-process object. - 1.0.5 (2024-09-25) — Updated dev dependencies.
- 1.0.4 (2024-09-23) — Fixed
raw()for spawn commands. - 1.0.3 (2024-09-06) — Added TSDoc comments, improved docs, fixed typos, added the missing copying of properties.
- 1.0.2 (2024-09-05) — Technical release: fixed references in the package file.
- 1.0.1 (2024-09-05) — Technical release: more tests, better documentation.
- 1.0.0 (2024-09-05) — The initial release.