Skip to content

v0.14.1

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Nov 01:56
· 15 commits to main since this release
v0.14.1
349f86f

[0.14.1] - 2026-11-05

0.14.1 fixes problems found after the 0.14.0 upgrade, mostly in repositories with several worktrees or branches. The vault format is unchanged, so 0.14.1 and 0.14.0 read each other's vaults.

Upgrade notes

  • Upgrade the vault on your default branch first. All worktrees of a repository share one trust record on each machine. In 0.14.0, the first 0.14 save on any branch made every other branch refuse its pre-0.14 vault, with the message "rolled back: generation 0". In 0.14.1 each branch is judged on its own:
    • A branch that has not taken the upgrade yet can still read its pre-0.14 vault.
    • Writing to that vault needs murk trust --vault .murk once, on that branch. After that, the next write upgrades it.
    • The simplest route is still to make the first 0.14 save on the default branch, commit it, and merge it into each branch.
  • New message. A refusal of this kind now says the vault "is in the pre-0.14 format, but this repository's vault has already been upgraded on this branch", instead of "rolled back: generation 0".
  • CI. Runners need MURK_TRUSTED_SIGNERS (murk-action: trusted-signers), as in 0.14.0. murk trust --print-key prints the entry for each signer.

Trust

  • Another vault's pre-0.14 file is refused once this machine has pinned a vault id. This holds on every branch, and for loads, merges, murk diff and murk trust.
  • A pre-0.14 vault on a branch without the upgrade is read-only until you accept it with murk trust. This covers every write command and keyed merges. A refused merge writes nothing.
  • Accepting an older copy never removes anyone. murk trust on an older pre-0.14 copy records that copy as accepted for the branch. It never records a current member as removed. Real removals still come only from a vault this machine accepts as current.
  • murk init with a key that cannot sign (ssh-rsa, hardware and plugin keys) now records the new vault as unsigned, so the next command loads it with the usual warning instead of refusing it.
  • Repositories that use git's reftable ref format keep a separate trust mark per branch.
  • Branch names that differ only in case map to the same branch on case-insensitive filesystems.

Fixes

  • rotate --values-from, circle revoke and agent revoke refuse a values file that contains a line they cannot read, such as an unquoted multi-line key, and write nothing. Before this fix, rotate could save only the first line of a private key and exit 0.
  • murk diff applies the agent read policy. Under an agent grant, it shows keys the policy forbids as changed but never prints their values.
  • edit, rotate, circle revoke and agent revoke refuse to save when the vault changed on disk while they waited for input.
  • "unsupported vault version" names the component and its version: the murk CLI, the Node binding or the Python binding.

Known limits

  • Read side of the pre-0.14 rule. On a branch without the upgrade, another vault's pre-0.14 file whose created and vault_name were copied from this vault is still read as this vault. The pre-0.14 format does not sign those two fields, so anyone with write access to the repository can copy them. Writes over that file are refused until you run murk trust, so new secrets can't reach the other vault's recipients. Merge the upgrade into each branch to close this.
  • An agent can fall back to your stored key. If an agent unsets MURK_AGENT, MURK_KEY and MURK_KEY_FILE in its own shell, murk finds your stored key from the vault's path. A grant doesn't stop an agent running as your OS user. See AI agents for isolation options. A change to the stored-key lookup is planned for 0.15.

bb plugin 0.1.1 (separate tag)

  • bb murk grant mint refuses to upgrade a pre-0.14 vault on a feature branch unless you pass --upgrade. Upgrade on the default branch instead.
  • When the vault format is newer than the loaded binding, the error names the loaded version and says to restart bb. A plugin reload does not replace a loaded native binding.
  • Requires @interrupted/murk-secrets 0.14.0 or later.

All changes

Documentation

  • docs: use one grant key file secret with murk-action v1.2
  • docs: show the whole grant key file in the ci grant demo
  • docs: warn that an agent can fall back to the owner's stored key

Fixed

  • fix: auto-merge a grouped dependabot update only when every dependency is a patch
  • fix: refuse a save that would push the vault past its generation limit
  • fix: update block-buffer to fix a panic-corruption advisory
  • fix: let the bb plugin read format 3 vaults
  • fix: judge a pre-0.14 vault per branch and keep it read-only until trusted
  • fix: stop partial secret files, agent diff leaks, prompted overwrites and vague version errors
  • fix: keep grant mints from upgrading a vault on a feature branch and say when bb needs a restart

Other

  • chore(deps): bump astral-sh/setup-uv from 10.3.0 to 10.3.1
  • chore(deps): bump astro in /docs-site in the docs-site-minor-patch group
  • chore(deps): bump the codeql-action group with 3 updates
  • chore(deps): bump rust-lang/crates-io-auth-action from 1.0.5 to 1.0.6
  • chore(deps): bump pypa/gh-action-pypi-publish from 1.14.2 to 1.14.3
  • ci: ignore the crypto-bigint timing advisory that murk cannot reach
  • ci: keep dependabot from narrowing the bb plugin's murk-secrets range
  • ci: drop the crypto-bigint ignore only once a patched version resolves
  • chore(deps): bump actions/setup-python from 7.0.0 to 7.1.0
  • ci: run every test and build every crate before a release
  • chore(deps): bump libc from 0.2.190 to 0.2.191
  • chore(deps): bump @astrojs/starlight
  • chore(deps): bump libc from 0.2.190 to 0.2.191 in /fuzz
  • chore(deps-dev): bump the bb-plugin-minor-patch group
  • chore(deps): bump rmcp from 3.5.1 to 3.8.0 in /fuzz
  • ci: group dependabot updates so each crate opens one pull request
  • chore(deps): bump napi-derive in /
  • chore(deps): bump the actions-patch group with 2 updates
  • chore(deps): bump napi in /
  • chore(deps): bump tokio in /
  • chore(deps): bump ureq in /
  • chore(deps): bump rmcp in /
  • chore(deps-dev): bump the node-minor-patch group across 1 directory with 2 updates
  • chore(deps-dev): bump @get-bb/plugin-sdk
  • chore(deps): bump astro in /docs-site in the docs-site-minor-patch group
  • test: keep the vault-truth check on the per-key read path
  • chore: release 0.14.1
  • style: format the node binding version test