chore: bump to v0.17.0 - #427
Merged
Merged
Conversation
The workspace version and all 17 inter-crate pins move to 0.17.0, and CHANGELOG.md's Unreleased section is stamped as [0.17.0] - 2026-08-31. The release review turned up one undeclared break and four documentation defects, all fixed here rather than left for a reader to trip over. ExecContext gained kill_grace and background_job this cycle. It is public, re-exported at the crate root, and every one of its 30 fields is pub, with no #[non_exhaustive] — so a struct literal in an embedder stopped compiling while the changelog filed the change under Changed. Six public constructors already exist (new, with_backend, with_scope, and three more), so the supported construction path was never the literal. Marked BREAKING and made the struct #[non_exhaustive], which costs the literal once and buys silence on every field the kernel adds after this. The changelog claimed the symlink conformance suite has 19 cases; it registers 20, and it said "any Filesystem backend" runs them when the runners are LocalFs, MemoryFs and OverlayFs. DevFs is exempt because it has no symlinks, which is a reason worth stating rather than implying. PlannedStatement.plan still promised "with every credential redacted" after 0.14.0 removed the credential and this release removed the redaction. LANGUAGE.md read as though bare true and false were numeric literals. They are variable names, pinned as unset by arithmetic_adversarial_tests.rs:362; only a variable holding a Bool coerces to 1 or 0. EMBEDDING.md's plan-JSON sample showed kaish_version 0.16.0 carrying the three build-identity keys. 0.16.0 never emitted them — they ship here — so the example described a document that could not exist. The glued-argv error span from #413 had no changelog bullet; it has one now. The "Require kaish 0.16 or newer" line stays as written: it is about --plan existing at all, not about the version fields, which the same section already tells a consumer to read as optional. Gates on this branch: clippy -D warnings, cargo test --all (203 suites, 6485 passed), insta --check, no-default-features, wasi build, and rustdoc -D warnings all clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version bump and changelog stamp for the 0.17.0 release. The workspace version and all 17 inter-crate
path + versionpins move to 0.17.0, andCHANGELOG.md'sUnreleasedsection becomes[0.17.0] - 2026-08-31.0.17.0 is a large release: 215 commits and 19 merged PRs since v0.16.0, landing four arcs — the
$(( ))arithmetic rewrite, a symlink policy across the VFS with a conformance suite, wrapped commands, and the leading-zero-is-text rule.A pre-release review found one undeclared break and four documentation defects. They are fixed here rather than left for a reader to trip over.
ExecContextgainedkill_graceandbackground_jobthis cycle. It is public, re-exported at the crate root, and all 30 of its fields arepubwith no#[non_exhaustive], so a struct literal in an embedder stopped compiling while the changelog filed the change under Changed. Six public constructors already exist, so the supported path was never the literal:The entry is now marked BREAKING and the struct is
#[non_exhaustive], which costs the literal once and buys silence on every field the kernel adds after this.The other four: the changelog said the conformance suite has 19 cases when it registers 20, and said "any
Filesystembackend" when the runners are LocalFs, MemoryFs and OverlayFs (DevFs is exempt, having no symlinks);PlannedStatement.planstill promised "with every credential redacted" after this release removed the redaction;LANGUAGE.mdread as though baretrue/falsewere numeric literals when they are variable names; andEMBEDDING.md's plan-JSON sample showedkaish_version0.16.0carrying the three build-identity keys that 0.16.0 never emitted. The glued-argv error span from #413 also had no changelog bullet and has one now.The "Require kaish 0.16 or newer" line in
EMBEDDING.mdstays as written — it is about--planexisting at all, not about the version fields, which the same section already tells a consumer to read as optional.Gates on this branch:
clippy -D warnings,cargo test --all(203 suites, 6485 passed, 0 failed),insta --check,no-default-features, the WASI build, and rustdoc-D warningsall clean.