v0.18.0
Changelog
Features
- 9cadcf2 feat(cli): fail closed on a contested connection (issue #182)
- f4de91a feat(serve): start unattached — session_start is the sole workspace-pin authority
Fixes
- 5ab37ce fix(cli): a seeded shard follows the connection instead of refusing off a stale root
- 6791349 fix(cli): close the three identity forks the second round found
- eba5e89 fix(cli): close two identity forks the first pass left open
- f0aa0b3 fix(cli): conformance scenario pins its workspace; roots/list probe is bounded (#435)
- 371f830 fix(cli): defer the pre-Execute workspace-arg pin for calls that declare an identity
- 4f6179f fix(cli): fail an anonymous call on a shared connection closed to the connection
- cdc17bc fix(cli): keep
plumb stopinside its own environment, and unfreeze healed identity records - 90490b2 fix(cli): keep both arms of the identity write guard, and the legacy runtime dir
- 4f6bbd9 fix(cli): latch the shared-connection health mark; never clobber a specific note
- 93af24c fix(cli): make session identity survive a reconnect, and report it honestly
- 9ee21b8 fix(cli): re-assert the shared-connection mark after a Health-clearing re-pin
- 6fce1ea fix(cli): read the shard's root under sh.mu in followConnectionShards
- 6a16be0 fix(smoke): wait for the isolated daemon to exit before returning
- 7c49ea3 fix(tools): address review nits on the duplicated-subcommand refusal
- 59ae914 fix(tools): guard the LSP uri anchoring seam on a contested connection (issue #182)
- 97edb8e fix(tools): refuse a git call whose args repeat the subcommand
- 64ab5e7 fix(tui): persist single global settings sparsely instead of freezing defaults
- 5c2236f fix: read .gitignore in the workspace census and the topology index
- 424af6d fix: stop a gitignored tree deciding the workspace language
Others
- a2008c2 Extract gitignore matching into internal/ignore (Foundation)
- 8d6d10f Let a child .gitignore override a parent, as the walker claimed it could
- 8c3aa37 Make *.py.lock a weak marker: a locked helper is not a project root
- 42cbedd Name a language that can actually run, and pin the branch that says so
- cc0b633 Pin the language argument at the tool seam, and stop rendering "language ()"
- 20f9133 Reach a second language's tasks, and refuse an override that cannot be honoured
- 0ca9f7f Refuse a catch-all exclude by probing it, not by recognising its spelling
- c391d2c Stop a set judging its own directory, which hid re-included files
- ecd0851 chore(deps): bump charm.land/bubbles/v2 in the charm group (#438)
- 48569e1 chore(deps): bump charm.land/bubbletea/v2 in the charm group (#415)
- 59f2b2c chore(deps): bump modernc.org/sqlite in the minor-and-patch group (#417)
- dc748ad chore(deps): bump svelte and vite in the npm group, refresh generated UI assets (#433)
- 64cab44 chore(release): cut 0.18.0
- 3f2e174 ci(conformance): run the gate on every push to main (#437)
- 698ad12 ci(conformance): run the gate on the paths it asserts on
- 4fb419d ci(lint): pin golangci-lint to v2.13.1, matching the binary in use
- 835b187 ci(release): fail fast on a lapsed Homebrew tap token, and make it checkable
- 86ed695 ci(release): fail the release when the conformance gate is skipped
- 763d7ce docs(changelog): consolidate the duplicated 0.17.8 section headings
- 953dce1 docs: correct the layer seam claim and document run_command
- c54ca9f docs: slim agent brief and move reference detail
- 8328b69 site: five claims drift fixes — plumb tui, HTML tier, language count, tool groups, version stamp
- 3c94ead test(cli): guard the roots/list probe bound; split timeout from unsupported logs (#436)
- 967ad74 test(cli): pin the symlink canonicalisation on both sides of the ownership probe
- 38e2214 test(clientsmoke): run plumb setup inside the isolated HOME
Install
Homebrew (macOS + Linux):
brew install plumbkit/plumb/plumbDirect download: grab the archive for your OS/arch below, extract it, and
put the plumb binary on your PATH.
| Platform | Archive |
|---|---|
| macOS, Apple Silicon (M-series) | plumb_0.18.0_darwin_arm64.tar.gz |
| macOS, Intel | plumb_0.18.0_darwin_amd64.tar.gz |
| Linux, Intel/AMD 64-bit | plumb_0.18.0_linux_amd64.tar.gz |
| Linux, ARM 64-bit | plumb_0.18.0_linux_arm64.tar.gz |
Verify your download against checksums.txt.
macOS note: these binaries are not yet code-signed. On a direct download
Gatekeeper may block the first run — clear the quarantine flag once:
xattr -dr com.apple.quarantine ./plumb. Homebrew installs are unaffected.