Skip to content

chore(deps): update ⬆️ mise-packages - #1020

Merged
renovate[bot] merged 2 commits into
mainfrom
renovate/mise-packages
Aug 16, 2026
Merged

chore(deps): update ⬆️ mise-packages#1020
renovate[bot] merged 2 commits into
mainfrom
renovate/mise-packages

Conversation

@renovate

@renovate renovate Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending Age Adoption Passing Confidence
aqua:LuaLS/lua-language-server tools minor 3.18.23.19.0 3.19.1 age adoption passing confidence
aqua:ast-grep/ast-grep tools patch 0.45.00.45.1 age adoption passing confidence
aqua:astral-sh/ruff tools patch 0.16.10.16.2 0.16.3 age adoption passing confidence
aqua:astral-sh/uv tools patch 0.12.20.12.3 0.12.5 (+1) age adoption passing confidence
aqua:earendil-works/pi tools patch 0.84.00.84.1 0.84.2 age adoption passing confidence
aqua:editorconfig-checker/editorconfig-checker tools minor 3.8.03.11.1 age adoption passing confidence
aqua:google/osv-scanner tools minor 2.4.02.5.0 age adoption passing confidence
aqua:openai/codex tools minor rust-v0.146.1rust-v0.147.0 age adoption passing confidence
aqua:sst/opencode tools patch 1.18.141.18.16 1.18.18 (+1) age adoption passing confidence
aqua:tree-sitter/tree-sitter tools patch 0.26.110.26.12 age adoption passing confidence
aqua:vercel-labs/agent-browser tools minor 0.33.20.34.0 age adoption passing confidence
aqua:walles/moor tools patch 2.16.22.16.3 2.17.0 age adoption passing confidence
github:backnotprop/plannotator tools patch v0.26.2v0.26.8 v0.27.3 (+3) age adoption passing confidence
github:max-sixty/worktrunk tools minor v0.71.0v0.72.0 v0.74.0 (+1) age adoption passing confidence
github:modem-dev/hunk tools minor v0.17.7v0.18.1 v0.18.2 age adoption passing confidence
github:nolabs-ai/nono tools minor v0.71.0v0.73.0 age adoption passing confidence
github:schpet/linear-cli tools minor v2.4.0v2.5.0 age adoption passing confidence
npm:@commitlint/cli (source) tools patch 21.2.121.2.2 age adoption passing confidence
npm:pyright (source) tools patch 1.1.4111.1.412 1.1.413 age adoption passing confidence
npm:socket tools patch 1.1.1551.1.157 age adoption passing confidence
pipx:ansible-lint (changelog) tools minor 26.6.026.8.0 age adoption passing confidence
pipx:guarddog tools minor 3.1.03.2.0 age adoption passing confidence
pipx:sqlfluff (changelog) tools minor 4.2.24.3.0 age adoption passing confidence
usage tools minor 5.0.05.1.0 age adoption passing confidence

Release notes are maintained in a PR comment by the renovate-release-notes-comment workflow.


Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • Between 03:00 AM and 05:59 AM (* 3-5 * * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from scottames as a code owner August 16, 2026 17:13
@renovate
renovate Bot enabled auto-merge (squash) August 16, 2026 17:13
@scottames-github-bot

Copy link
Copy Markdown
Contributor

Renovate Release Notes

Generated from Renovate's update table by the renovate-release-notes-comment workflow.

Packages that cannot be summarized from GitHub releases are listed explicitly below.

LuaLS/lua-language-server (aqua:LuaLS/lua-language-server)

3.19.0: 3.19.0

Compare Source

What's Changed

New Contributors

Full Changelog: LuaLS/lua-language-server@3.18.2...3.19.0

ast-grep/ast-grep (aqua:ast-grep/ast-grep)

0.45.1: 0.45.1

Compare Source

  • fix: match root metavariables against comments #2868
  • feat(outline): add C# multiline member signatures #2861
  • chore(deps): update rust crate ignore to v0.4.32 #2864
  • chore(deps): update dependency oxlint to v1.77.0 #2865
  • chore(deps): update dependency typescript to v7 #2833
  • chore(deps): update astral-sh/setup-uv action to v9 #2839
  • chore(deps): update dependency smol-toml to v1.7.1 #2848
  • chore(deps): update dependency @​napi-rs/cli to v3.8.2 #2854
  • chore(deps): update dependency chalk to v6 #2849
  • chore(deps): update rust crate clap to v4.6.5 #2860
  • chore(deps): update rust crate clap_complete to v4.6.8 #2850
  • chore(deps): update rust crate schemars to v1.2.2 #2851
  • chore(deps): update dependency oxlint to v1.76.0 #2852
  • chore(deps): update rust crate napi to v3.12.0 #2855
  • chore(deps): update rust crate napi-derive to v3.6.2 #2853
  • Use std::io::IsTerminal over atty #2857
  • chore(deps): update dependency @​ast-grep/napi to v0.45.0 #2844
  • chore: bump deps 2ac18ca
astral-sh/ruff (aqua:astral-sh/ruff)

0.16.2: 0.16.2

Compare Source

Release Notes

Released on 2026-08-06.

Bug fixes

  • [flake8-pyi] Avoid false positives on singledispatch functions (PYI041) (#27335)

Server

  • Register formatting capabilities dynamically to exclude TOML files (#27332)

Contributors

Install ruff 0.16.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.2/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.16.2/ruff-installer.ps1 | iex"

Download ruff 0.16.2

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ruff

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
astral-sh/uv (aqua:astral-sh/uv)

0.12.3: 0.12.3

Compare Source

Release Notes

Released on 2026-08-07.

Python

  • Add CPython 3.13.15 (#20997)

Preview features

  • Add --output-format to select automatic, human-readable, or raw-byte output for uv cache size (#20992)
  • Preserve JSON output from uv workspace metadata --quiet while suppressing diagnostics (#20991)
  • Reduce memory usage for large workspaces by streaming uv workspace metadata JSON output (#20990)

Performance

  • Reduce Linux startup latency by initializing the workspace cache before spawning another thread (#20989)
  • Reuse compiled workspace exclusion patterns during workspace discovery (#20988)
  • Speed up conflict-heavy resolutions by avoiding materialized range complements (#20982)
  • Avoid slow procfs reads during Python interpreter discovery on Linux (#20987)

Documentation

  • Add PEP 740 attestations to the GitHub Actions publishing example (#20986)
  • Restrict the GitHub Actions publishing example to Python version tags (#20973)
  • Correct --python-pin to --pin-python in the uv init --bare example (#20876)

Install uv 0.12.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-installer.ps1 | iex"

Download uv 0.12.3

File Platform Checksum
uv-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
uv-x86_64-apple-darwin.tar.gz Intel macOS checksum
uv-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
uv-i686-pc-windows-msvc.zip x86 Windows checksum
uv-x86_64-pc-windows-msvc.zip x64 Windows checksum
uv-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
uv-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
uv-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
uv-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
uv-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
uv-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
uv-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
uv-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
uv-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
uv-riscv64gc-unknown-linux-musl.tar.gz RISCV MUSL Linux checksum
uv-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
uv-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
uv-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/uv

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
earendil-works/pi (aqua:earendil-works/pi)

v0.84.1: v0.84.1

Compare Source

New Features

  • Qwen Token Plan Individual — Use the built-in provider for models documented for Individual subscriptions. See API Keys.
  • Authentication readiness checks — Use pi auth check to verify provider or model credentials, optionally emitting the resolved credential.
  • Improved fullscreen interaction — Select words and paragraphs with multiple clicks and configure half-page transcript scrolling. See TUI Fullscreen Viewport.
  • Terminating blocked tool calls — Extension tool_call handlers can stop all-terminating batches without another model call. See Tool Events.

Added

  • Added Qwen Token Plan Individual as a built-in provider with its documented subscription model catalog and the shared international QWEN_TOKEN_PLAN_API_KEY. See API Keys (#7659 by @​arasovic).
  • Added pi auth check provider/model auth preflight with optional credential output (#7152).
  • Added terminate support to blocked extension tool_call events so all-terminating batches can skip the automatic follow-up model call. See Tool Events (#7715 by @​muyiyr).
  • Added inherited double-click word and whitespace selection, granularity-aware drag selection, and triple-click paragraph selection in fullscreen mode (#7725, #7733 by @​volsa).
  • Added inherited unbound half-page transcript scrolling actions for fullscreen mode. See TUI Fullscreen Viewport (#7735).

Changed

  • Softened the bash tool's PI_* environment guideline in an attempt to reduce unnecessary inspection commands (#7128).
  • Reduced worst-case automatic terminal theme detection delay from 200 ms to 100 ms by probing color-scheme and background support concurrently.

Fixed

  • Fixed Bun standalone binaries crashing on startup when the cwd contains a bunfig.toml with preload by compiling with --no-compile-autoload-bunfig (#7685 by @​geril07).
  • Fixed extension TUI method wrappers recursing indefinitely when delegating to the original method (#7731).
  • Fixed right-click not pasting clipboard text in fullscreen mode on Windows.
  • Fixed inherited Agent.reset() clearing transcript and runtime state during active runs; it now rejects until the agent is idle (#7717 by @​wesleyzhangwq).
  • Fixed inherited LaTeX relation, multiplication, and named-operator spacing, and matrix composition with stacked fractions, operator limits, and adjacent matrices.
  • Reduced inherited fullscreen mouse event volume under tmux, Zellij, and GNU Screen by using button-motion tracking instead of all-motion tracking.
editorconfig-checker/editorconfig-checker (aqua:editorconfig-checker/editorconfig-checker)

v3.11.1: v3.11.1

Compare Source

3.11.1 (2026-08-08)

Features

  • immutable-release: tell goreleaser to use the existing draft release (a8e6136)

v3.11.0: v3.11.0

Compare Source

editorconfig-checker v3.11.0 (2026-08-08T10:40:38Z)

Welcome to this new release of editorconfig-checker!

Changelog

Others

  • 174c5809baf06f2d8e82c1d2de1f6433cc569a1d: chore(main): release 3.11.0 (chore: upgrade trunk #592) (@​editorconfig-checker-bot)
  • e9f143bc9d6cc5bb29030843ec42eae2a94b4dda: chore: replace deprecated goreleaser option with its current form (@​klaernie)
  • 4c08f2ccd339734ff92f2f04d146cd91af02d225: feat(immutable-release): goreleaser should publish its release (@​klaernie)

Thanks!

Those were the changes on v3.11.0!

v3.10.0: v3.10.0

Compare Source

editorconfig-checker v3.10.0 (2026-08-07T23:27:59Z)

Welcome to this new release of editorconfig-checker!

Changelog

Others

  • 77a3415d6127cc892376837b85fd2a4b5c98d40d: Revert "feat(immutable-releases): set release-please to create draft releases" (@​klaernie)
  • a85cd6ab82397f19bdd9bfa30730a487ead1ec74: chore(deps): bump docker/login-action from 4.5.2 to 4.6.0 (chore(deps): update ⬆️ aqua-packages to v15 #590) (@​dependabot[bot])
  • 74cd03a2e91c1c42deff2bec2d120c06ff1be3e8: chore(main): release 3.10.0 (chore(deps): update ⬆️ aqua-packages #588) (@​editorconfig-checker-bot)
  • 8d4f96e7a838bfb0d8b98a40e66ce8cbd8c1e075: chore: allow triggering release-please manually (@​klaernie)
  • a685b542509d0349ce6215adf6088a242fa93d84: feat(immutable-release): tell release-please to create draft releases (@​klaernie)
  • 912f4a986b7da0b22cfa3a055cc24a355dee7cbc: feat(immutable-releases): ensure that despite the release being a draft the tag is created (@​klaernie)
  • 2d48c2ecae1743614cefa660c2796e14cefd7520: feat(immutable-releases): set release-please to create draft releases (@​klaernie)

Thanks!

Those were the changes on v3.10.0!

google/osv-scanner (aqua:google/osv-scanner)

v2.5.0: v2.5.0

Compare Source

What's Changed

Features & Refactors:

  • Full OSV-Scalibr pipeline: Migrated scanning, filtering, and matching in osv-scanner to use osv-scalibr end-to-end, so most plugins that's supported in osv-scalibr should be supported via the --experimental-plugins flag (#2935).
  • New extractors and ecosystem support via osv-scalibr:
    • Add javascript/vsix extractor to support scanning VS Code extension (.vsix) packages.
    • Extend ecosystem mapping for:
      • SUSE
      • Azure Linux / Mariner
      • Alpaquita
      • Mageia
      • openSUSE Leap
      • Debian and Ubuntu PURL
  • PURL Type Resolution: Updated osvscannerjson extractor to map ecosystem names to valid PURL types (golang, gem, cargo, npm, etc.).

Fixes:

  • Bug #2915 Fix issue where osv-scanner reported already-fixed advisories as unfixed for RHEL-family RPM packages (Red Hat, AlmaLinux, Rocky Linux) with epochs by sending epoch-qualified versions.
  • Fix Python requirements.txt extractor in osv-scalibr, specifically regular expressions used to extract package names and per-requirement options (Fixes #2940, #2931)
  • Fix NPM and Composer PURL generation in osv-scalibr, separating package namespace (scope) from package name

New Contributors

Full Changelog: google/osv-scanner@v2.4.0...v2.5.0

openai/codex (aqua:openai/codex)

rust-v0.147.0: 0.147.0

Compare Source

New Features

  • Install portable Agent Plugins and search across local, personal, workspace, and remote plugin catalogs. (#36544, #36409, #36919, #36796)
  • Organize conversations into persistent, manually ordered sections and browse long transcripts incrementally. (#35722, #36007, #36380, #36948, #36950)
  • Enable automatically reviewed approvals with the new --approve-for-me CLI flag. (#36373)
  • Import Cursor-managed skills and synchronize changes to imported Claude and Cursor conversations without creating duplicates. (#36361, #36356, #35623)
  • Support the opt-in MCP 2026-07-28 protocol, including paginated discovery, multi-round requests, and non-blocking server startup. (#35724, #35725, #35590, #35742)
  • Enable cached web search and remote conversation compaction for Amazon Bedrock. (#36938, #36981)

Bug Fixes

  • Redact secrets and complete bearer tokens from displayed commands and replayed conversation history. (#36893, #36908)
  • Prevent lost or stalled terminal input when focus returns, MCP servers initialize, or Ghostty handles keyboard shortcuts. (#35649, #35957, #36834)
  • Correct rendering and cursor positioning for Japanese characters, emoji, hyperlinks, and text near viewport boundaries. (#35960, #35962, #37166)
  • Properly interrupt Windows background processes and handle Windows filesystem paths consistently. (#35655, #35851, #37129)
  • Require explicit trust for unfamiliar local projects and enforce managed authentication restrictions before credentials are used. (#36960, #37132)
  • Harden plugin isolation and deny network access when policy updates fail. (#37027, #36967, #36037)

Documentation

  • Improve the bundled OpenAI documentation skill with targeted official-source lookup and clearer guidance for Codex, model selection, and API workflows. (#36014)

Chores

  • Upgrade the MCP SDK to 3.0.0, Ratatui to 0.30.2, and V8 to 150.4.0. (#36001, #35959, #35831)
  • Secure macOS release notarization using Azure Key Vault instead of exporting private signing keys. (#37154)
  • Remove the deprecated codex exec --full-auto flag; use --sandbox workspace-write instead. (#36054)
  • Stop publishing redundant Linux bundle archives; use the standard codex-package-<target> release archives. (#36342)

Changelog

Full Changelog: openai/codex@rust-v0.146.0...rust-v0.147.0

  • #35590 Expose cached MCP tools before server startup @​copyberry
  • #35594 Recommend longer waits in the v2 wait_agent schema @​copyberry
  • #35595 Allow alpha hotfix versions in R2 releases @​copyberry
  • #35597 Add metrics for extension-rendered skill catalogs @​copyberry
  • #35607 Record metrics for empty skill catalogs @​copyberry
  • #35608 Support model-owned token budget defaults @​copyberry
  • #35621 Skip restored token usage replay for exec resumes @​copyberry
  • #35623 Parse Claude and Cursor session records separately @​copyberry
  • #35642 Make OpenTelemetry provider shutdown idempotent @​copyberry
  • #35644 Preserve thread metadata when rollout files are missing @​copyberry
  • #35649 Preserve TUI input when terminal focus returns @​copyberry
  • #35652 Enable network policy callbacks for remote exec @​copyberry
  • #35653 Test developer instruction inheritance for multi-agent workers @​copyberry
  • #35655 Terminate Windows non-TTY processes on interrupt @​copyberry
  • #35656 Preserve multi-agent settings across config representations @​copyberry
  • #35661 Place host skills before permission instructions @​copyberry
  • #35663 Evaluate character matching over skill routing metadata @​copyberry
  • #35665 Fix the async watcher test harness on Windows @​copyberry
  • #35668 Expose the network proxy spec constructor @​copyberry
  • #35670 Raise the Windows exec yield floor to 10 seconds @​copyberry
  • #35671 Route curated plugins by authentication mode @​copyberry
  • #35675 Prepare MCP and plugin recommendations concurrently @​copyberry
  • #35678 Preserve paginated thread metadata across resumes @​copyberry
  • #35685 Load cloud-managed profiles for codex sandbox @​copyberry
  • #35688 Point crossterm patch to the OpenAI OSS fork @​copyberry
  • #35689 Preserve item timestamps in thread history projections @​copyberry
  • #35691 Include empty-preview threads in relationship listings @​copyberry
  • #35693 Refresh the subagent picker in the background @​copyberry
  • #35695 Honor the configured SQLite home in the logs client @​copyberry
  • #35708 Add configurable developer instructions for v2 subagents @​copyberry
  • #35715 Support streaming bodies in route-aware HTTP requests @​copyberry
  • #35717 Reuse route-aware clients for OpenAI file uploads @​copyberry
  • #35720 Upgrade rmcp to 3.0.0-beta.3 @​copyberry
  • #35721 Honor disabled code mode fallback without a process host @​copyberry
  • #35722 Add persisted sections for organizing threads @​copyberry
  • #35724 Add MCP 2026-07-28 discovery support @​copyberry
  • #35725 Complete MCP 2026 client support @​copyberry
  • #35738 Add bounded metadata for executed tool calls @​copyberry
  • #35742 Avoid blocking turns on optional MCP startup @​copyberry
  • #35744 Keep agent registry identities consistent @​copyberry
  • #35766 Emit host skill budget warnings from world state @​copyberry
  • #35769 Share the skills budget across host and executor catalogs @​copyberry
  • #35772 Throttle models cache TTL renewals @​copyberry
  • #35773 Scale skill metadata budgets with context windows @​copyberry
  • #35777 Resolve MCP tool catalogs concurrently @​copyberry
  • #35779 Load thread titles concurrently during session startup @​copyberry
  • #35785 Support self-serve Business ProLite accounts @​copyberry
  • #35787 Gate paginated thread history on the state database @​copyberry
  • #35794 Wait for MCP readiness in the curated sync test @​copyberry
  • #35802 Tag reports with the selected turn's model and effort @​copyberry
  • #35806 Route MCP OAuth through configured HTTP clients @​copyberry
  • #35814 Use configured HTTP clients for all MCP OAuth requests @​copyberry
  • #35818 Advance latest-alpha-cli after release publishing completes @​copyberry
  • #35821 Use the shared HTTP client for TUI network checks @​copyberry
  • #35825 Use the shared HTTP client for announcement tips @​copyberry
  • #35828 Enforce centralized SQLite connection creation @​copyberry
  • #35830 Route WebRTC sideband joins to the Realtime API @​copyberry
  • #35831 Update rusty_v8 to 150.4.0 @​copyberry
  • #35835 Track parent turns for nested Codex requests @​copyberry
  • #35836 Clean up cancelled MCP elicitation requests @​copyberry
  • #35837 Expose plugin eligibility metadata in app-server summaries @​copyberry
  • #35839 Decouple recommended plugins from tool suggestions @​copyberry
  • #35840 Handle legacy MCP discovery prevalidation errors @​copyberry
  • #35843 Tie remote exec servers to their parent stdin @​copyberry
  • #35845 Support plaintext collaboration tool messages @​copyberry
  • #35850 Preserve foreign paths in background terminal listings @​copyberry
  • #35851 Normalize Windows namespace paths in path URIs @​copyberry
  • #35854 Box app-server event payloads @​copyberry
  • #35856 Resolve imported connectors by MCP server name @​copyberry
  • #35857 Add Bazel unit test targets for Rust binaries @​copyberry
  • #35859 Expose plugin installation timestamps in app-server summaries @​copyberry
  • #35870 Include session titles in external agent import history @​copyberry
  • #35874 Mark the primary environment in model context @​copyberry
  • #35875 Allow environment readiness updates in place @​copyberry
  • #35878 Use step environments for MCP file uploads @​copyberry
  • #35886 Show blocked goals as stalled in the TUI @​copyberry
  • #35887 Clean up side conversations in the background @​copyberry
  • #35895 Inherit ready step environments when spawning agents @​copyberry
  • #35937 Let unrelated tools run while MCP servers start @​copyberry
  • #35941 Bound MCP namespace descriptions @​copyberry
  • #35942 Update tests for current tool call and app-server event types @​copyberry
  • #35944 Report direct input capability for listed subagents @​copyberry
  • #35957 Fix TUI input queue handling during MCP startup @​copyberry
  • #35959 Upgrade Ratatui to 0.30.2 @​copyberry
  • #35960 Preserve hyperlink cell widths during terminal diffing @​copyberry
  • #35962 Fix TUI layout for halfwidth Japanese sound marks @​copyberry
  • #35982 Avoid cloning rollout history when truncating forks @​copyberry
  • #35989 Display title-only reasoning summaries in the TUI @​copyberry
  • #35990 Test exec-server compatibility across Codex versions @​copyberry
  • #35992 Group external agent config migration into a module @​copyberry
  • #35997 Remove obsolete rusty_v8 146.4.0 Bazel targets @​copyberry
  • #36001 Upgrade rmcp to 3.0.0 @​copyberry
  • #36002 Resolve MCP file uploads with environment-native paths @​copyberry
  • #36006 Reduce response serialization and rollout scan overhead @​copyberry
  • #36007 Add persisted manual ordering for thread sections @​copyberry
  • #36008 Route pet asset downloads through the shared HTTP client @​copyberry
  • #36011 Share optional MCP startup grace across connection sets @​copyberry
  • #36014 Refine OpenAI docs skill source routing @​copyberry
  • #36020 Avoid cloning ignored analytics notifications @​copyberry
  • #36030 Increase the app-server tracing test stack size @​copyberry
  • #36031 Load cloud-managed servers in MCP CLI commands @​copyberry
  • #36033 Use the shared HTTP client in codex-protocol @​copyberry
  • #36035 Exit the stdio app-server when its connection closes @​copyberry
  • #36036 Allow naming forked chats from the TUI @​copyberry
  • #36037 Deny network access when an allow amendment fails @​copyberry
  • #36039 Limit MCP catalog pagination @​copyberry
  • #36043 Document the Responses API proxy reqwest exception @​copyberry
  • #36045 Distinguish unknown MCP authentication status @​copyberry
  • #36047 Extract MCP environment headers into a local variable @​copyberry
  • #36049 Keep tool-call metrics out of Statsig exports @​copyberry
  • #36051 Avoid overwriting symlinked migration targets @​copyberry
  • #36054 Remove legacy --full-auto handling from codex exec @​copyberry
  • #36055 Expose MCP read-only hints in tool call items @​copyberry
  • #36076 Remove codex-core's direct reqwest dependency @​copyberry
  • #36078 Route Ollama through the shared HTTP client @​copyberry
  • #36083 Handle fractional rate limits in thread history projection @​copyberry
  • #36092 Correlate image requests and explicit interrupts with turns @​copyberry
  • #36119 Unify tool runtime assembly before router construction @​copyberry
  • #36120 Delegate readiness waits to tool runtimes @​copyberry
  • #36121 Sandbox executor skill resource reads @​copyberry
  • #36124 Respect filesystem permissions during capability discovery @​copyberry
  • #36127 Centralize tool registration and protect host tools @​copyberry
  • #36128 Preserve delegated tasks across remote compaction @​copyberry
  • #36129 Resolve normalized tool name collisions in code mode @​copyberry
  • #36133 Preserve executor workspace permissions for apply_patch @​copyberry
  • #36138 Isolate apply-patch permission test variants @​copyberry
  • #36139 Bound the code mode output termination test @​copyberry
  • #36140 Wait for memory consolidation shutdown before finishing jobs @​copyberry
  • #36146 Stabilize approval scenario tests @​copyberry
  • #36148 Harden the file change approval integration test @​copyberry
  • #36149 Strengthen session file change approval coverage @​copyberry
  • #36165 Stabilize file approval replay test @​copyberry
  • #36166 Make pending realtime sideband test deterministic @​copyberry
  • #36167 Harden the auto-review model override test @​copyberry
  • #36168 Make tool telemetry tag collection synchronous @​copyberry
  • #36171 Test workspace-root patch protection for metadata @​copyberry
  • #36177 Test remote Guardian network approval scoping @​copyberry
  • #36181 Record attempted tool calls in response metadata @​copyberry
  • #36183 Use permission profiles throughout sandbox execution @​copyberry
  • #36184 Coalesce concurrent remote metadata requests @​copyberry
  • #36187 Refresh environment dates from the configured clock @​copyberry
  • #36188 Make thread history projection resilient to malformed rollouts @​copyberry
  • #36191 Label explicit skill injection metrics @​copyberry
  • #36194 Avoid shifting bytes in streaming output buffers @​copyberry
  • #36207 Record normalized sandbox violation events @​copyberry
  • #36212 Precompute app-server protocol exports @​copyberry
  • #36217 Run code mode exclusively through the standalone host @​copyberry
  • #36218 Expose connector candidates in external agent detection @​copyberry
  • #36221 Ignore passthrough metadata when reconciling rollout items @​copyberry
  • #36223 Preserve executor paths in read command actions @​copyberry
  • #36228 Support Enterprise automation account plans @​copyberry
  • #36237 Ignore symbolic slash-tmp permissions on Windows @​copyberry
  • #36239 Refresh precomputed app-server protocol exports @​copyberry
  • #36264 Prefer the bundled resource for the code mode host @​copyberry
  • #36271 Derive report prompt hashes from persisted rollouts @​copyberry
  • #36306 Restrict hosted MCP credentials to local environments @​copyberry
  • #36309 Use the host skill provider catalog in world state @​copyberry
  • #36310 Isolate MCP OAuth credentials by environment @​copyberry
  • #36311 Include skills in debug prompt input output @​copyberry
  • #36327 Preserve discovery order for host skill path aliases @​copyberry
  • #36329 Restrict shell_command to a single local environment @​copyberry
  • #36336 Detect connectors used in external agent sessions @​copyberry
  • #36339 Enable skills in the MCP server @​copyberry
  • #36342 Stop publishing legacy Linux bundle archives @​copyberry
  • #36350 Require explicit sandbox permissions with shell justifications @​copyberry
  • #36351 Use model catalog collaboration mode messages @​copyberry
  • #36354 Pass sessions directly to session tasks @​copyberry
  • #36355 Keep MCP tool calls bound to their thread @​copyberry
  • #36356 Sync updates to imported external agent sessions @​copyberry
  • #36357 Use the step-scoped router for tool execution @​copyberry
  • #36359 Consolidate MCP config editing in codex-core @​copyberry
  • #36360 Use MCP bindings as the step tool catalog @​copyberry
  • #36361 Migrate Cursor-managed skills into Codex @​copyberry
  • #36364 Move skill catalog rendering out of core @​copyberry
  • #36365 Add strict automatic review for MCP elicitations @​copyberry
  • #36367 Keep effective tool exposure in the registry @​copyberry
  • #36372 Run native Windows Bazel tests with MSVC @​copyberry
  • #36373 Add an --approve-for-me CLI flag @​copyberry
  • #36374 Enable sandboxed V8 for code mode @​copyberry
  • #36378 Load local session pickers from the state DB first @​copyberry
  • #36380 Add thread section management APIs @​copyberry
  • #36384 Load turn summaries with paginated queries @​copyberry
  • #36385 Add acknowledged user message submission to core @​copyberry
  • #36388 Track image preparation details in turn analytics @​copyberry
  • #36389 Enforce single-writer ownership for all thread histories @​copyberry
  • #36393 Avoid redundant filesystem probes @​copyberry
  • #36402 Declare the experimental plugin search API @​copyberry
  • #36408 Allow custom Codex instructions for realtime transitions @​copyberry
  • #36409 Implement remote plugin search @​copyberry
  • #36410 Make user input blocking behavior explicit @​copyberry
  • #36411 Use Git repositories as pre-tool hook test markers @​copyberry
  • #36413 Add a realtime delegation acknowledgement control @​copyberry
  • #36440 Extract exec-server request dispatching @​copyberry
  • #36482 Avoid querying terminal size on every TUI redraw @​copyberry
  • #36485 Increase remote plugin bundle size limits @​copyberry
  • #36507 Retain attempted tool metadata across prompts @​copyberry
  • #36511 Support two-stroke TUI key chords @​copyberry
  • #36534 Raise the MCP catalog item limit to 2,048 @​copyberry
  • #36544 Support portable Agent Plugins throughout installation @​copyberry
  • #36632 Preserve SQLite thread metadata during goal mutations @​copyberry
  • #36635 Expose onboarding hints in login completion notifications @​copyberry
  • #36641 Capture rollout budget units from response usage @​copyberry
  • #36715 Use provider-reported rollout budget units @​copyberry
  • #36716 Deduplicate MCP resource operation handling @​copyberry
  • #36727 Simplify turn metadata state ownership @​copyberry
  • #36729 Correlate code mode tool analytics with model responses @​copyberry
  • #36732 Stabilize the cloud environment HTTP test @​copyberry
  • #36734 Deduplicate MCP resource list handling @​copyberry
  • #36740 Store turn skill state in extension data @​copyberry
  • #36742 Simplify contextual user fragment registration @​copyberry
  • #36744 Store the extension registry directly in its builder @​copyberry
  • #36745 Consolidate apply_patch runtime execution @​copyberry
  • #36757 Wait for patch events before reading shell snapshots @​copyberry
  • #36759 Harden the TUI focus palette regression test @​copyberry
  • #36764 Avoid building code-mode definitions during registration @​copyberry
  • #36769 Stabilize the startup Git enrichment integration test @​copyberry
  • #36770 Stabilize deferred goal fork testing @​copyberry
  • #36771 Harden Linux managed proxy helper lifecycles @​copyberry
  • #36772 Raise the host-owned Codex Apps catalog limit @​copyberry
  • #36773 Derive the active user config layer from the layer stack @​copyberry
  • #36774 Clarify config layer iteration APIs @​copyberry
  • #36779 Stabilize network policy event capture in concurrent tests @​copyberry
  • #36781 Add per-surface MCP tool exposure controls @​copyberry
  • #36782 Add Guardian session reuse and interruption tests @​copyberry
  • #36787 Consolidate model instructions in ModelMessages @​copyberry
  • #36792 Gate plugin usage instructions by model capability @​copyberry
  • #36793 Terminate timed-out Git process trees @​copyberry
  • #36796 Add Agent Plugins MCP config parsing @​copyberry
  • #36797 Normalize rusty_v8 checksum manifest line endings @​copyberry
  • #36800 Avoid reinjecting permissions after command approvals @​copyberry
  • #36807 Extract audio preparation into a utility crate @​copyberry
  • #36808 Prefer SQLite names for local session archive commands @​copyberry
  • #36809 Prefer the state database for exec resume --last @​copyberry
  • #36810 Add MCP client conformance regression gates @​copyberry
  • #36811 Honor per-environment login shell policy @​copyberry
  • #36812 Add a dual-WebSocket transport for code mode @​copyberry
  • #36815 Identify agents by name in token budget context @​copyberry
  • #36822 Fix typo in approval resolver name @​copyberry
  • #36825 Consolidate approval telemetry context @​copyberry
  • #36830 Time out stalled code-mode host requests @​copyberry
  • #36834 Avoid requesting key-release events in Ghostty @​copyberry
  • #36840 Keep API request metrics out of Statsig exports @​copyberry
  • #36856 Support deferred loading for freeform tools @​copyberry
  • #36857 Support custom tools in namespaces @​copyberry
  • #36862 Consolidate thread spawning behind a request object @​copyberry
  • #36871 Parallelize R2 asset publishing with DotSlash @​copyberry
  • #36877 Move executor skill bundle loading into the skills extension @​copyberry
  • #36880 Move direct executor skill discovery into the skills extension @​copyberry
  • #36882 Preserve complete MCP namespace descriptions @​copyberry
  • #36884 Add host skill root loading @​copyberry
  • #36892 Support leaf models in multi-agent v2 @​copyberry
  • #36893 Redact secrets from app-server command execution items @​copyberry
  • #36895 Handle late MCP startup results after lag timeout @​copyberry
  • #36898 Avoid redundant filesystem metadata probes @​copyberry
  • #36900 Register app tools independently of the connector list @​copyberry
  • #36901 Propagate updated permissions to review threads @​copyberry
  • #36903 Load skill interface metadata in the host loader @​copyberry
  • #36904 Limit RMCP logs persisted to SQLite @​copyberry
  • #36906 Preserve model providers when reloading v2 agents @​copyberry
  • #36908 Improve bearer token secret redaction @​copyberry
  • #36910 Negotiate MCP extensions per app-server session @​copyberry
  • #36912 Read approval policy from the current turn configuration @​copyberry
  • #36913 Move skill policy resolution into codex-skills @​copyberry
  • #36916 Centralize app enabled-state evaluation @​copyberry
  • #36917 Test explicit plugin mentions with disabled apps @​copyberry
  • #36919 Merge local plugins into plugin search results @​copyberry
  • #36921 Move the host skills service into the skills extension @​copyberry
  • #36924 Reject implicitly discovered bare Git repositories @​copyberry
  • #36930 Read turn permissions from the current configuration @​copyberry
  • #36935 Trust undecided local projects automatically @​copyberry
  • #36938 Enable cached web search for Amazon Bedrock @​copyberry
  • #36939 Include policy approval reasons in Guardian reviews @​copyberry
  • #36941 Use current session settings for review threads @​copyberry
  • #36943 Move host skill root resolution into the skills extension @​copyberry
  • #36945 Grant the blob size policy job read access to contents @​copyberry
  • #36947 Accept user input when starting idle turns @​copyberry
  • #36948 Paginate transcript history in the TUI @​copyberry
  • #36949 Improve paginated TUI history loading @​copyberry
  • #36950 Paginate TUI transcript history @​copyberry
  • #36951 Harden paginated history handling in the TUI @​copyberry
  • #36952 Add durable per-thread user submission queues @​copyberry
  • #36954 Add tool registry collision policy configuration @​copyberry
  • #36956 Keep image resize notices attached during remote compaction @​copyberry
  • #36959 Track connectors detected in external agent sessions @​copyberry
  • #36960 Prompt before trusting local project directories @​copyberry
  • #36963 Link Codex attribution in pull request bodies @​copyberry
  • #36964 Preserve working directories when importing external sessions @​copyberry
  • #36966 Allow disabling the built-in image viewer @​copyberry
  • #36967 Skip symlinks when installing plugins @​copyberry
  • #36970 Make token budget context identity configurable @​copyberry
  • #36976 Honor explicit-only orchestrator skills @​copyberry
  • #36977 Improve connector detection for migrated sessions @​copyberry
  • #36979 Add Fence auditing to the blob size workflow @​copyberry
  • #36981 Enable remote compaction for Amazon Bedrock @​copyberry
  • #36983 Preserve ChatGPT auth for trusted staging MCP servers @​copyberry
  • #36984 Support configured ChatGPT cookies in HTTP clients @​copyberry
  • #36986 Add process-scoped PSP routing for ChatGPT requests @​copyberry
  • #36987 Add opt-in concurrent exec-server request dispatch @​copyberry
  • #36989 Preserve shared bundled skill caches @​copyberry
  • #36990 Remove legacy collaboration mode variants @​copyberry
  • #36992 Allow injecting model catalog caches @​copyberry
  • #36993 Support includeTurns reads for paginated threads @​copyberry
  • #36998 Support deferred custom tools in tool search @​copyberry
  • #37000 Keep shared skill caches fresh across plugin loads @​copyberry
  • #37020 Enforce strict tool name collision errors @​copyberry
  • #37022 Canonicalize default tools under the functions namespace @​copyberry
  • #37027 Enforce Agent Plugin runtime boundaries @​copyberry
  • #37031 Apply permission profile updates to future turn environments @​copyberry
  • #37035 Align registry tests with canonical tool names @​copyberry
  • #37038 Use turn environment permissions for tool execution @​copyberry
  • #37040 Use turn environment permissions for context and discovery @​copyberry
  • #37053 Reject conflicting namespace descriptions in strict tool mode @​copyberry
  • #37055 Add safer TUI defaults for cyber models @​copyberry
  • #37066 Preserve longer MCP source descriptions in tool search @​copyberry
  • #37068 Fall back to per-process MCP cleanup on macOS @​copyberry
  • #37083 Consolidate unified exec output state @​copyberry
  • #37101 Reuse stable MCP bindings across sampling steps @​copyberry
  • #37103 Use Luna for API-key Guardian reviews @​copyberry
  • #37109 Bound interactive telemetry shutdown @​copyberry
  • #37114 Add per-session code-mode execution limits @​copyberry
  • #37128 Centralize tool approval handling in Session @​copyberry
  • #37129 Make Windows path URI comparisons ASCII-case-insensitive @​copyberry
  • #37132 Enforce managed authentication requirements locally @​copyberry
  • #37134 Report prompt image resizing to the model @​copyberry
  • #37144 Preserve discovery paths for symlinked skills @​copyberry
  • #37145 Gate Apps usage instructions by model capability @​copyberry
  • #37147 Track provisioned environment state across registration @​copyberry
  • #37149 Project orchestrator skills through world state @​copyberry
  • #37151 Coalesce concurrent Git status scans @​copyberry
  • #37154 Use Azure Key Vault for macOS notarization @​copyberry
  • #37156 Test remote environments reported ready before selection @​copyberry
  • #37157 Harden named session lookup in the TUI @​copyberry
  • #37162 Load host skill roots through the skills extension @​copyberry
  • #37166 Keep textarea cursors and rendering inside the viewport @​copyberry
  • #37167 Expose session sources to MCP contributors @​copyberry
  • #37168 Bound remote MCP handshake HTTP requests @​copyberry
  • #37169 Move plugin skill snapshot integration tests into core @​copyberry
  • #37174 Centralize skill invocation helpers in codex-skills @​copyberry
  • #37175 Add legacy rollout migration to paginated history @​copyberry
  • #37177 Move explicit skill selection into the skills crate @​copyberry
  • #37178 Preserve image transparency metadata in app-server items @​copyberry
  • #37188 Reserve the tool_search namespace for the search tool @​copyberry
  • #37189 Track multi-agent usage hints in world state @​copyberry
sst/opencode (aqua:sst/opencode)

v1.18.16: v1.18.16

Compare Source

Core

Bugfixes

  • Ignore unknown top-level config fields instead of failing config parsing
  • Register projects opened from Home so they are available to the rest of the app

Desktop

Improvements

  • Open the project menu with a right-click in Home

Bugfixes

  • Fall back to listing and matching local directories when the project picker server does not support search
  • Use 词元 instead of 令牌 for token-related labels in Simplified Chinese (@​Speechlessmanbilibili)
  • Keep the macOS app running after the last window closes and reopen a window when the app is activated

Thank you to 1 community contributor:

  • @​Speechlessmanbilibili:
    • fix(i18n): use 词元 instead of 令牌 for token in zh locale (#40977)

v1.18.15: v1.18.15

Compare Source

Core

Bugfixes

  • Chronological message ordering now stays correct even when imported or legacy message IDs are out of order.
  • Revert and fork actions now use real message chronology instead of message ID ordering.
  • Truncation cleanup now removes stale files by file timestamp more reliably.
  • Repeated compaction now keeps earlier tool-call history in summaries instead of dropping orphaned results.
  • Blob-based attachments now load correctly in the web UI. (@​rexdotsh)

Desktop

Improvements

  • Added much broader locale coverage across the desktop app.
  • Export full session transcripts as JSON from the UI.

Bugfixes

  • Session timelines now respect chronological message boundaries more reliably.
  • Stored messages now stay ordered by creation time.
  • Session lists now sort by persisted activity time more reliably.
  • Language names now stay native in the locale picker.
  • Filled in missing translations across existing locales.

Thank you to 3 community contributors:

  • @​rexdotsh:
    • fix(server): allow blob attachments in web UI (#40692)
  • @​ayubun:
    • fix(tui): support copying over ssh with set-clipboard on tmux config (#30472)
  • @​dangooddd:
    • feat(tui): add cursor style configuration (#32295)

@scottames-github-bot

Copy link
Copy Markdown
Contributor
tree-sitter/tree-sitter (aqua:tree-sitter/tree-sitter)

v0.26.12: v0.26.12

Compare Source

What's Changed

Full Changelog: tree-sitter/tree-sitter@v0.26.11...v0.26.12

vercel-labs/agent-browser (aqua:vercel-labs/agent-browser)

v0.34.0: v0.34.0

Compare Source

New Features

  • Added persistent session-to-tab binding for shared Chrome sessions. Named sessions connected through --cdp or --auto-connect now remember their CDP target across commands and daemon restarts, and CDP target ids can be used directly as tab references. Start each session with --pin-tab to make the binding strict, so a tab closed externally returns a stable tab_gone error instead of silently adopting a neighboring tab. JSON output includes data.targetId and an optional sanitized data.lastUrl; batch exposes the same recovery data under result (#1589)

Improvements

  • Added a Remote Agent Browser provider guide covering Vercel authentication, disposable and stable sessions, custom VCR images, snapshots, and live-view URLs (#1648)

Bug Fixes

  • Fixed parallel sessions sharing one Chrome hijacking each other's tabs. Event-discovered targets no longer steal a pinned session's active tab, re-attach restores the persisted target instead of selecting index 0, and preliminary plus existing-daemon --cdp and --auto-connect paths preserve explicit pin enable and disable. Agent skill guidance now requires a named --session before the first command (#1589)
  • Fixed agent-browser doctor hanging on Chrome version detection. Windows reads the version from the executable resource table without spawning Chrome; other platforms bound the version subprocess with a deadline, kill, and reap so inherited output handles cannot block forever or leave an orphan browser (#1641)

Contributors

  • @​Railly
  • @​huozhi
  • @​soichisumi
  • @​dandaka
  • @​mvanhorn
walles/moor (aqua:walles/moor)

v2.16.3: v2.16.3: Stop screen flash on --quit-if-one-screen

Compare Source

Before this release, --quit-if-one-screen made the terminal flash even
when the contents fit on one screen. Moor switched to the alternate
screen, painted a frame, and switched right back before printing the
contents where they belong.

With this release, when the contents fit on one screen moor prints them
without ever touching the alternate screen, so there is nothing to see
but the text.

Getting there also meant waiting for syntax highlighting before deciding
whether the contents fit: highlighting can turn one line of JSON into a
hundred, so source files and piped JSON used to flash where a .txt file
did not.

Also in this release:

  • Moor now resets the terminal style before exiting, so a colored last
    line no longer bleeds into your next shell prompt. This affected
    --no-clear-on-exit and --quit-if-one-screen output as wide as the
    screen
  • With --no-clear-on-exit-margin 0, the last line of the contents is
    no longer silently dropped on exit
  • If the reader panics, moor now keeps going with whatever it read
    instead of spinning its spinner forever
  • pkg/moor: the terminal is restored even if paging panics, rather than
    leaving the embedding process on the alternate screen in raw mode
  • pkg/moor: embedders no longer lose the last line of short contents

Known limitation: input that is short but arrives slowly can still flash.
Fixing that requires waiting a fixed amount of time before showing
anything, and nobody has picked a number yet.

backnotprop/plannotator (github:backnotprop/plannotator)

v0.26.8: v0.26.8

Compare Source

Follow @​plannotator on X for updates

Missed recent releases?
Release Highlights
v0.26.7 Pinpoint targets any element on HTML pages, smarter hover labels, zero-scan hit testing
v0.26.6 Fixed empty environment variables in sandboxed sessions (Bun 1.3.14 builds)
v0.26.5 HTML pinpoint element annotations, durable annotate submissions, installer fallback for old git, vim HUD cursor fix
v0.26.4 Skill-menu hover jitter fix (same-day patch on v0.26.3)
v0.26.3 Skill references in comments with / or $, reachable remote session URLs, worktree switcher tooltips
v0.26.2 Single-file diff tabs render fully, no more silently dropped review files, light/dark theme pairs, palette-matched code blocks
v0.26.1 GitButler 0.22.0 compatibility via capability-probed JSON flags
v0.26.0 Edit Mode (suggest by editing the diff), Guided Review virtualization, colorblind theme, safe uninstall, installer opt-outs, OpenCode 2 support
v0.25.1 Codex no longer launches on review open, annotate-last follows the live conversation, pi-todos mirror, Claude Opus 5, abandoned-gate dismissal
v0.25.0 Vim keyboard controls, Approve with Notes, scriptable annotate gates, persistent Guided Reviews, memory and file-watching hardening
v0.24.2 Annotate YAML/JSON/TOML config files, XDG data directory support, Codex model catalog update, Cursor sandbox escape hatch
v0.24.0 PR/MR artifact gallery, GitButler review support, port ranges, expanded comment editor, OpenCode + Pi fixes

What's New in v0.26.8

This release rebuilds how annotations look and behave on HTML pages, and it is the largest change to the annotate surface since pinpoint mode shipped. Nine PRs landed, three of them from first-time contributors @​Snaylaker, @​atomicflag, and @​monkhai.

Placed comment markers replace inline highlights on HTML pages

Annotating a raw HTML page used to write highlight markup directly into the page's own DOM. That caused two visible bugs: multi-paragraph selections often turned only their first paragraph blue, and on some pages the injected markup broke the page's layout. Both had the same root cause, so both are gone the same way: nothing writes into the page anymore.

Annotations now appear as numbered comment bubbles projected onto a fixed overlay above the page. A bubble sits at the exact point you clicked, not a corner of the element, and it stays glued through scrolling, page re-renders, responsive reflows, and zoom. If the annotated element disappears or scrolls out of a clipped container, its bubble hides instead of floating over unrelated content, and it returns when the target does. Selections highlight through the same overlay, so highlights now always cover the full selection and can never disturb the page beneath.

The bubbles are real buttons: click one, or click the highlighted text itself, to jump to that annotation in the panel. Highlights brighten on hover so you can tell they are clickable. Bubble numbers match the numbering in the feedback your agent receives, so "see comment 3" means the same thing on screen and in the session. Committed highlights still print; annotating with Cmd+P in mind works the way it did before.

The implementation went through three adversarial review rounds, a 25-item QA gate with independent verification of every serious finding, and a follow-up hardening pass covering clipping, visibility, print, and per-frame performance on mutation-heavy pages.

Shift-click selects multiple elements for one comment

One comment can now cover several places on an HTML page. Make a pinpoint selection, hold Shift, and click more elements: each gains an outline and a chip in the composer, Shift-clicking a selected element removes it, and removing the first selection promotes the next one rather than cancelling the draft. Up to 16 additional targets ride on one comment, and after saving, every target shows a bubble carrying the same comment number. Feedback to the agent lists every selected element, so "these three buttons need the same fix" is one comment, not three.

HTML sessions open minimal, and stale preferences reset

Opening an HTML page to annotate now shows just the page: pinpoint input ready, tools hidden, sidebar and annotations drawer closed. Anything you change persists for your next HTML session, but only while you keep using HTML annotate. A preference untouched for a week expires back to these defaults, so a mode you tried once months ago never becomes a permanent surprise. Active users keep their setup; annotating refreshes the clock.

Pages with their own Content-Security-Policy are now annotatable

An HTML file carrying its own strict CSP meta tag (common in saved pages and generated reports) silently blocked the annotation script, leaving a page you could see but not annotate. The annotate viewer now removes the document's CSP meta tags before rendering. The iframe sandbox remains the security boundary, and the file on disk is untouched.

OpenCode: Qwen3.6 no longer corrupts the planning prompt

OpenCode sessions using Qwen3.6 hit a Jinja template conflict: Plannotator injected its planning instructions as multiple system-prompt parts, and Qwen's template mangled them. @​atomicflag rewrote the injection to compose one consolidated system part. The review process surfaced a subtle evaluation-order bug and an escaping edge case, both fixed and regression-tested, and the QA gate then caught that the OpenCode 2 adapter still used the old multi-part path, so the fix now covers both OpenCode 1 and OpenCode 2 entry points.

Plan position survives window refocus in vim mode

Switching away from a plan review window and back again reset the vim cursor to the top of the document. @​Snaylaker fixed the refocus path to preserve your position, so alt-tabbing to check something no longer costs you your place in a long plan.

Additional Changes

  • File headers show a hover state in code review. Diff file headers now tint on hover with a short transition, signaling that the header is clickable (it collapses the file). Contributed by @​monkhai in #1256.
  • The legacy self-hosting docs route redirects to the canonical docs site. #1255

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@&#8203;plannotator

Then in opencode.json:

{
  "plugin": ["@&#8203;plannotator/opencode@&#8203;latest"]
}

What's Changed

  • fix(vim): preserve plan position on refocus by @​Snaylaker in #1252
  • Fix OpenCode plugin Jinja template corruption with Qwen3.6 by @​atomicflag in #1114
  • feat(annotate): shift-click multi-element selection for raw-HTML pinpoint by @​backnotprop in #1254
  • fix(marketing): redirect self-hosting guide to canonical docs by @​backnotprop in #1255
  • feat(review): add file header hover state by @​monkhai in #1256
  • feat(annotate): placed comment markers for raw-HTML annotation by @​backnotprop in #1257
  • fix: QA-gate hardening for the v0.26.8 feature set by @​backnotprop in #1258
  • fix(annotate): strip document-authored CSP meta tags that block the annotation bridge by @​backnotprop in #1259
  • feat(annotate): minimal-by-default HTML sessions with stale-preference decay by @​backnotprop in #1260

New Contributors

  • @​Snaylaker made their first contribution in #1252
  • @​atomicflag made their first contribution in #1114
  • @​monkhai made their first contribution in #1256

Contributors

Three first-time contributors landed changes in this release. @​atomicflag took on a genuinely tricky compatibility problem between Plannotator's system-prompt injection and Qwen3.6's Jinja template, and stuck with it through three review rounds until the fix was airtight. @​Snaylaker fixed the vim-mode position reset on window refocus, a small paper cut that anyone reviewing long plans felt daily. @​monkhai polished the code review diff headers with a hover state that makes the collapse affordance discoverable.

Welcome to all three, and thank you.

Full Changelog: backnotprop/plannotator@v0.26.7...v0.26.8

v0.26.7: v0.26.7

Compare Source

Follow @​plannotator on X for updates


What's New in v0.26.7

One change, and it transforms how annotating HTML pages feels: pinpoint mode now targets any element on the page.

Pinpoint targets what your cursor is on

Since v0.26.5, raw-HTML annotate sessions default to pinpoint input. But pinpoint could only target a fixed list of "semantic" HTML tags: headings, paragraphs, tables, sections. Real prototype and report pages are built from styled divs and spans, so hovering a small chip or an icon button selected the whole enclosing section, and some elements could not be selected at all.

Pinpoint now resolves the element actually painted under your cursor, whatever its tag. Chips, icon buttons, badges, custom cards: all individually annotatable. Elements smaller than 16px promote to their parent so you are not pixel-hunting, and containers are selected the natural way, by pointing at their padding or any spot not covered by a child. The whole interaction stays mouse-only and matches how pinpoint already feels on markdown documents. Hover labels got smarter too: a div with a rowchip class now labels as "rowchip", using its aria-label, role, or class names instead of a bare tag name.

Under the hood the hover path no longer rebuilds a document-wide element graph every frame; it is a per-event hit-test with zero document scans, which also retires the performance debt noted in the v0.26.5 pinpoint release. Anchor restoration keeps every fail-closed guarantee, and data-testid-style attributes (data-test-id, data-cy, data-qa) now count as trusted element identity for restoring annotations onto regenerated pages. One honest limit: an element with no text and no identifying attribute can be annotated in-session, but its pin does not restore on a later reopen; a pin that cannot verify its target refuses to guess.

The change went through two adversarial review rounds; the first round removed an anchoring mechanism that could have restored a pin onto the wrong sibling, in favor of failing closed.


Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@&#8203;plannotator

Then in opencode.json:

{
  "plugin": ["@&#8203;plannotator/opencode@&#8203;latest"]
}

Pi: Install or update the extension:

pi install npm:@&#8203;plannotator/pi-extension

What's Changed

  • feat(annotate): hit-test pinpoint targeting for raw-HTML sessions by @​backnotprop in #1251

Full Changelog: backnotprop/plannotator@v0.26.6...v0.26.7

v0.26.6: v0.26.6

Compare Source

Follow @​plannotator on X for updates


What's New in v0.26.6

v0.26.6 is a rebuild-only patch: no Plannotator code changed, but every binary is now compiled with Bun 1.3.14 instead of 1.3.11.

Env vars now work inside OS sandboxes

Binaries built with Bun 1.3.11 loaded an empty environment whenever a parent of the working directory was unreadable, which is the normal state inside OS-level sandboxes (Seatbelt on macOS, Landlock on Linux, tools like nono). Every PLANNOTATOR_* variable was silently ignored there: remote mode never activated, fixed ports were dropped, and no warning explained why. This was oven-sh/bun#27802, fixed upstream in Bun 1.3.13.

We had pinned Bun to 1.3.11 in April because 1.3.12 broke macOS binary signing outright. Before unpinning we verified both directions: a 1.3.14 build reads env vars correctly under an unreadable ancestor, and cross-compiled macOS binaries carry the same valid linker signature as the known-good releases and launch cleanly.

The release pipeline also gained two permanent guardrails: macOS binaries are now smoke-launched after every build (the April signing breakage shipped because only Linux and Windows were), and a new check runs the freshly built binary from a directory with an unreadable ancestor and asserts env vars still load.


Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@&#8203;plannotator

Then in opencode.json:

{
  "plugin": ["@&#8203;plannotator/opencode@&#8203;latest"]
}

Pi: Install or update the extension:

pi install npm:@&#8203;plannotator/pi-extension

What's Changed

  • fix(ci): bump Bun build pin to 1.3.14 for sandbox env loading by @​backnotprop in #1250

Community

@​SierraJC filed #1249 with a complete diagnosis: the exact upstream Bun issue, the fix version, and a one-line repro that distinguishes "binary cannot see the variable" from "binary mishandles the variable". Reports like this make patches fast.

Full Changelog: backnotprop/plannotator@v0.26.5...v0.26.6

v0.26.5: v0.26.5

Compare Source

Follow @​plannotator on X for updates


Missed recent releases?
Release Highlights
v0.26.4 Skill-menu hover jitter fix (same-day patch on v0.26.3)
v0.26.3 Skill references in comments with / or $, reachable remote session URLs, worktree switcher tooltips
v0.26.2 Single-file diff tabs render fully, no more silently dropped review files, light/dark theme pairs, palette-matched code blocks
v0.26.1 GitButler 0.22.0 compatibility via capability-probed JSON flags
v0.26.0 Edit Mode (suggest by editing the diff), Guided Review virtualization, colorblind theme, safe uninstall, installer opt-outs, OpenCode 2 support
v0.25.1 Codex no longer launches on review open, annotate-last follows the live conversation, pi-todos mirror, Claude Opus 5, abandoned-gate dismissal
v0.25.0 Vim keyboard controls, Approve with Notes, scriptable annotate gates, persistent Guided Reviews, memory and file-watching hardening
v0.24.2 Annotate YAML/JSON/TOML config files, XDG data directory support, Codex model catalog update, Cursor sandbox escape hatch
v0.24.1 Annotate accepts parent-relative ../ file paths
v0.24.0 PR/MR artifact gallery, GitButler review support, port ranges, expanded comment editor, OpenCode + Pi fixes
v0.23.1 Startup no longer hangs on large or slow directory trees, Ask AI input stays visible after long responses
v0.23.0 Plan approval fix for Claude Code 2.1.199+, annotate mode version diff, binary-only --minimal install, reviews post without attribution

What's New in v0.26.5

This release makes annotate feedback durable, rebuilds how you annotate raw HTML pages, and fixes real bugs reported from the field: lost Pi feedback after a reload, a vim cursor hiding behind the HUD, and an installer failure on older git. Seven PRs, two from external contributors, including a first contribution from @​Whamp.

Your annotate feedback can no longer be lost

When you submitted annotate feedback after the invoking agent had already timed out, the server settled the decision with nobody listening and deleted your draft. The feedback then existed nowhere. Reported by @​0okay after exactly this happened on Windows.

Now the server writes your submitted feedback to a durable record under your data directory before it deletes the draft, so a vanished consumer can no longer take your work with it. If the record cannot be written, the draft is kept as the recovery copy instead. This applies to single local file sessions; URL, folder, and last-message sessions stay fully stateless, and disabling annotate history keeps everything stateless as before.

Annotating HTML pages: pinpoint-first

Raw-HTML annotate sessions got a rework. Pinpoint is now the default input: hover highlights the element under your cursor, a click pins it and opens the comment composer directly, and each element annotation gets a numbered badge. Drag selection is still one toggle away, and your choice is remembered separately from markdown sessions.

Pages also open minimal: the first session hides the toolstrip, tab flags, and sidebar so you see just the page, and every session after that opens with exactly the chrome you last left visible.

Under the hood, element annotations now carry a verified CSS anchor so they restore to the same element when you re-open a page, even after the page was regenerated. Restoration is deliberately fail-closed: when the anchor cannot be trusted, the annotation falls back to text search, and text that moved elsewhere in the page is followed rather than mis-pinned. The feature shipped through two adversarial review rounds plus a 25-item QA sweep, which hardened anchor verification, capped selection sizes, kept pin badges out of printed pages, and bounded anchor building so a click on deeply nested markup can never freeze the tab.

Pi: feedback delivers after a reload

A Plannotator browser tab can outlive a Pi /reload. When feedback arrived from such a tab, the extension rejected the freshly reloaded runtime as the same stale session (reload preserves Pi's session id) and the feedback was dropped with an error. @​Whamp diagnosed the root cause and fixed it: the extension now tracks an in-process runtime token, so a reload counts as a new active runtime and both feedback and notifications route to it. Comes with a regression test simulating the exact reload scenario.

Vim: the cursor stays out from under the HUD

Document vim navigation used to pin the cursor target flush against the viewport edge, exactly where the sticky action bar and the key HUD float, so j/k motion at the top or bottom of a document hid the caret behind an overlay. @​rNoz reported it and fixed it: cursor movement now reveals its target with a scrolloff-style margin sized to the viewport, so keyboard motion keeps the caret visible the way mouse scrolling always did.

  • #1154 by @​rNoz, closing #1153 reported by @​rNoz

The installer works on older git

install.sh failed its skills step with a misleading "network or git error" on systems whose git predates 2.25 (for example a stale Xcode Command Line Tools git), because git clone --sparse does not exist there. Reported by @​dubbl-a. All three installers now probe for the capability and fall back to a plain shallow clone, surfacing the real git error when something else goes wrong. A follow-up in this release also pins the probe to a stable locale, so localized git builds take the fallback correctly too.

Additional Changes

  • Windows Codex wording corrected. The README claimed Codex hooks are disabled on native Windows while the installer called them experimental and printed setup steps. The docs now agree: experimental, with manual steps (#1241 reported by @​dustintran333)
  • Print stays clean. Printing an annotated HTML page no longer bakes pin badges or pinpoint overlays into the output; inline annotation marks remain printable on purpose (#1245)
  • CI now runs every DOM suite. Eight DOM-gated test files were silently skipping in CI, including the vim and HTML-annotate suites; they are wired in and enforced on every run

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@&#8203;plannotator

Then in opencode.json:

{
  "plugin": ["@&#8203;plannotator/opencode@&#8203;latest"]
}

Pi: Install or update the extension:

pi install npm:@&#8203;plannotator/pi-extension

What's Changed

  • Fix feedback delivery after Pi reload by @​Whamp in #1240
  • fix(install): fall back to a plain shallow clone when git lacks --sparse by @​backnotprop in #1239
  • fix(annotate): persist submitted feedback before deleting the draft by @​backnotprop in #1237
  • fix(vim): keep the j/k cursor clear of the HUD bands when scrolling by @​rNoz in #1154
  • feat(annotate): pinpoint-first raw-HTML sessions with element anchors and a minimal-first render by @​backnotprop in #1243
  • chore: fold in pre-release QA findings by @​backnotprop in #1245
  • fix: address the three pre-release sweep findings by @​backnotprop in #1246

New Contributors

  • @​Whamp made their first contribution in #1240

Community

@​Whamp hit the Pi reload bug in daily use, traced it to session identity surviving the reload, and shipped the fix with a regression test. First contribution, and a precise one.

@​rNoz continues to make vim mode better than we left it: he filed the HUD occlusion report (#1153) with a demo video and fixed it himself, including a pure scroll-math helper with its own test suite.

Issue reporters this release:

  • @​0okay reported the lost-feedback failure (#678) that drove the durable-submission work
  • @​dubbl-a reported the old-git installer failure (#1238) with the exact git version and error output that made the fix straightforward
  • @​dustintran333 caught the README contradicting the installer on Windows Codex hooks (#1241)

Full Changelog: backnotprop/plannotator@v0.26.4...v0.26.5

v0.26.4: v0.26.4

Compare Source

Follow @​plannotator on X for updates


Missed recent releases?
Release Highlights
v0.26.2 Single-file diff tabs render fully, no more silently dropped review files, light/dark theme pairs, palette-matched code blocks
v0.26.1 GitButler 0.22.0 compatibility via capability-probed JSON flags
v0.26.0 Edit Mode (suggest by editing the diff), Guided Review virtualization, colorblind theme, safe uninstall, installer opt-outs, OpenCode 2 support
v0.25.1 Codex no longer launches on review open, annotate-last follows the live conversation, pi-todos mirror, Claude Opus 5, abandoned-gate dismissal
v0.25.0 Vim keyboard controls, Approve with Notes, scriptable annotate gates, persistent Guided Reviews, memory and file-watching hardening
v0.24.2 Annotate YAML/JSON/TOML config files, XDG data directory support, Codex model catalog update, Cursor sandbox escape hatch
v0.24.1 Annotate accepts parent-relative ../ file paths
v0.24.0 PR/MR artifact gallery, GitButler review support, port ranges, expanded comment editor, OpenCode + Pi fixes
v0.23.1 Startup no longer hangs on large or slow directory trees, Ask AI input stays visible after long responses
v0.23.0 Plan approval fix for Claude Code 2.1.199+, annotate mode version diff, binary-only --minimal install, reviews post without attribution
v0.22.0 Git-status "All changes" default review view, Commits panel with per-commit diffs, Guided Review, Pi + GitHub Copilot CLI review engines

What's New in v0.26.4

v0.26.4 is a same-day patch on v0.26.3: hovering a human-only skill in the new reference menu caused a constant jitter (the hover warning changed the menu's size, which moved the row out from under the pointer, which hid the warning, in a loop). The menu no longer labels human-only skills at all; since their instructions are injected into the feedback automatically, the distinction did not need surfacing at pick time. Every row now renders identically and hovering can no longer change the menu's geometry (#1236).

The full v0.26.3 notes follow.

This release adds skill references in comments, gives remote sessions a URL you can actually open from another device, and fixes two small UI annoyances. Nine PRs, including a first contribution from @​ivgiuliani.

Reference agent skills in your comments with / or $

While writing a comment in plan review or annotate mode, type / or $ and a menu of your installed agent skills appears: everything discovered under ~/.claude/skills, ~/.codex/skills, and ~/.agents/skills, including skills installed as symlinks. Arrow keys, Tab, Enter, or a click inserts the reference; a comment can carry several. Nothing is preselected, so a stray / or $ in ordinary typing never hijacks Enter, and prose like "a POST /agents endpoint" or "$5/mo" is never mistaken for a reference.

Referenced skills change what the agent receives. The exported feedback lists each one with an explicit instruction that you are asking the agent to invoke it. Skills marked disable-model-invocation: true cannot be invoked by the agent, so for those the feedback includes the skill's instructions directly, inside clearly fenced markers, labeled as included at your request. The menu shows a quiet badge on human-only skills so you know which treatment applies before you pick one.

The feature landed alongside its own hardening pass, driven by a pre-release QA sweep: a render loop triggered by human-only references was fixed, case-colliding skill names across roots resolve exactly, and the injection markers cannot be forged by a hostile skill body, even with invisible Unicode characters.

Remote sessions advertise a URL you can reach

Until now a remote session (SSH, devcontainer, Tailscale) printed http://localhost:19432, which is useless from the phone or laptop you actually want to review on. Set PLANNOTATOR_URL_HOST to a hostname or IP that resolves on your network (a Tailscale MagicDNS name, a tailnet IP) and every advertised session URL uses it.

The override is display-only and deliberately strict: it accepts a bare hostname, IPv4, or bracketed IPv6, and anything carrying a scheme, port, path, or credentials warns once and falls back to localhost. Binding is still governed by PLANNOTATOR_REMOTE, and local sessions ignore the override entirely (with a warning telling you why), so a tailnet-only name can never break same-machine workflows. It can also be set persistently via ~/.plannotator/config.json ({ "urlHost": "host" }).

  • #1225, closing #657 requested by @​centdix

Full branch names in the worktree switcher

Long branch names in the review header's worktree switcher were truncated with no way to read the rest. Hovering an entry now shows the complete branch name as a tooltip.

  • #1223 by @​ivgiuliani

Additional Changes

  • "Hide tools" now hides everything. In HTML annotate sessions, hiding the tools also hides the collapsed sidebar tab flags on the left edge, so the page gets the full window (#1226)
  • Archive sharing docs corrected. The docs now describe what archive mode actually does with sharing (#1176, closing #1172)
  • Test reliability. The PowerShell installer tests tolerate pwsh cold starts (#1227) and the diff renderer's test mocks restore correctly regardless of file order (#1230)

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@&#8203;plannotator

Then in opencode.json:

{
  "plugin": ["@&#8203;plannotator/opencode@&#8203;latest"]
}

Pi: Install or update the extension:

pi install npm:@&#8203;plannotator/pi-extension

What's Changed

  • fix(review): show the full branch name when hovering the worktree switcher by @​ivgiuliani in #1223
  • feat: add PLANNOTATOR_URL_HOST display-only override for advertised URLs by @​backnotprop in #1225
  • fix(annotate): hide the collapsed sidebar tab flags when tools are hidden by @​backnotprop in #1226
  • test(install): give the PowerShell scanner tests room for pwsh cold start by @​backnotprop in #1227
  • feat(comments): reference agent skills with / or $ in plan review and annotate comments by @​backnotprop in #1229
  • fix(test): make the @​pierre/diffs mock restore actually restore by @​backnotprop in #1230
  • docs: correct archive sharing posture by @​backnotprop in #1176
  • fix(editor): stop the skill-content priming effect from re-render looping by @​backnotprop in #1234
  • fix(skills): harden skill references before first release by @​backnotprop in #1235
  • fix(skills): remove the human-only menu treatment and its hover jitter by @​backnotprop in #1236

New Contributors

  • @​ivgiuliani made their first contribution in #1223

Community

@​ivgiuliani noticed truncated branch names in the worktree switcher and fixed it directly. First contribution, and a clean one.

@​centdix filed the original request for network-reachable session URLs (#657), and @​maxim and @​prvnsmpth added the deployment details (Tailscale setups, concrete environment variable shape) that the implementation followed.

Full Changelog: backnotprop/plannotator@v0.26.2...v0.26.4

v0.26.3: v0.26.3

Compare Source

Follow @​plannotator on X for updates


Missed recent releases?
Release Highlights
v0.26.2 Single-file diff tabs render fully, no more silently dropped review files, light/dark theme pairs, palette-matched code blocks
v0.26.1 GitButler 0.22.0 compatibility via capability-probed JSON flags
v0.26.0 Edit Mode (suggest by editing the diff), Guided Review virtualization, colorblind theme, safe uninstall, installer opt-outs, OpenCode 2 support
v0.25.1 Codex no longer launches on review open, annotate-last follows the live conversation, pi-todos mirror, Claude Opus 5, abandoned-gate dismissal
v0.25.0 Vim keyboard controls, Approve with Notes, scriptable annotate gates, persistent Guided Reviews, memory and file-watching hardening
v0.24.2 Annotate YAML/JSON/TOML config files, XDG data directory support, Codex model catalog update, Cursor sandbox escape hatch
v0.24.1 Annotate accepts parent-relative ../ file paths
v0.24.0 PR/MR artifact gallery, GitButler review support, port ranges, expanded comment editor, OpenCode + Pi fixes
v0.23.1 Startup no longer hangs on large or slow directory trees, Ask AI input stays visible after long responses
v0.23.0 Plan approval fix for Claude Code 2.1.199+, annotate mode version diff, binary-only --minimal install, reviews post without attribution
v0.22.0 Git-status "All changes" default review view, Commits panel with per-commit diffs, Guided Review, Pi + GitHub Copilot CLI review engines

What's New in v0.26.3

This release adds skill references in comments, gives remote sessions a URL you can actually open from another device, and fixes two small UI annoyances. Nine PRs, including a first contribution from @​ivgiuliani.

Reference agent skills in your comments with / or $

While writing a comment in plan review or annotate mode, type / or $ and a menu of your installed agent skills appears: everything discovered under ~/.claude/skills, ~/.codex/skills, and ~/.agents/skills, including skills installed as symlinks. Arrow keys, Tab, Enter, or a click inserts the reference; a comment can carry several. Nothing is preselected, so a stray / or $ in ordinary typing never hijacks Enter, and prose like "a POST /agents endpoint" or "$5/mo" is never mistaken for a reference.

Referenced skills change what the agent receives. The exported feedback lists each one with an explicit instruction that you are asking the agent to invoke it. Skills marked disable-model-invocation: true cannot be invoked by the agent, so for those the feedback includes the skill's instructions directly, inside clearly fenced markers, labeled as included at your request. The menu shows a quiet badge on human-only skills so you know which treatment applies before you pick one.

The feature landed alongside its own hardening pass, driven by a pre-release QA sweep: a render loop triggered by human-only references was fixed, case-colliding skill names across roots resolve exactly, and the injection markers cannot be forged by a hostile skill body, even with invisible Unicode characters.

Remote sessions advertise a URL you can reach

Until now a remote session (SSH, devcontainer, Tailscale) printed http://localhost:19432, which is useless from the phone or laptop you actually want to review on. Set PLANNOTATOR_URL_HOST to a hostname or IP that resolves on your network (a Tailscale MagicDNS name, a tailnet IP) and every advertised session URL uses it.

The override is display-only and deliberately strict: it accepts a bare hostname, IPv4, or bracketed IPv6, and anything carrying a scheme, port, path, or credentials warns once and falls back to localhost. Binding is still governed by PLANNOTATOR_REMOTE, and local sessions ignore the override entirely (with a warning telling you why), so a tailnet-only name can never break same-machine workflows. It can also be set persistently via ~/.plannotator/config.json ({ "urlHost": "host" }).

  • #1225, closing #657 requested by @​centdix

Full branch names in the worktree switcher

Long branch names in the review header's worktree switcher were truncated with no way to read the rest. Hovering an entry now shows the complete branch name as a tooltip.

  • #1223 by @​ivgiuliani

Additional Changes

  • "Hide tools" now hides everything. In HTML annotate sessions, hiding the tools also hides the collapsed sidebar tab flags on the left edge, so the page gets the full window (#1226)
  • Archive sharing docs corrected. The docs now describe what archive mode actually does with sharing (#1176, closing #1172)
  • Test reliability. The PowerShell installer tests tolerate pwsh cold starts (#1227) and the diff renderer's test mocks restore correctly regardless of file order (#1230)

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".

OpenCode: Clear cache and restart:

rm -rf ~/.bun/install/cache/@&#8203;plannotator

Then in opencode.json:

{
  "plugin": ["@&#8203;plannotator/opencode@&#8203;latest"]
}

Pi: Install or update the extension:

pi install npm:@&#8203;plannotator/pi-extension

What's Changed

  • fix(review): show the full branch name when hovering the worktree switcher by @​ivgiuliani in #1223
  • feat: add PLANNOTATOR_URL_HOST display-only override for advertised URLs by @​backnotprop in #1225
  • fix(annotate): hide the collapsed sidebar tab flags when tools are hidden by @​backnotprop in #1226
  • test(install): give the PowerShell scanner tests room for pwsh cold start by @​backnotprop in #1227
  • feat(comments): reference agent skills with / or $ in plan review and annotate comments by @​backnotprop in #1229
  • fix(test): make the @​pierre/diffs mock restore actually restore by @​backnotprop in #1230
  • docs: correct archive sharing posture by @​backnotprop in #1176
  • fix(editor): stop the skill-content priming effect from re-render looping by @​backnotprop in #1234
  • fix(skills): harden skill references before first release by @​backnotprop in #1235

New Contributors

  • @​ivgiuliani made their first contribution in #1223

Community

@​ivgiuliani noticed truncated branch names in the worktree switcher and fixed it directly. First contribution, and a clean one.

@​centdix filed the original request for network-reachable session URLs (#657), and @​maxim and @​prvnsmpth added the deployment details (Tailscale setups, concrete environment variable shape) that the implementation followed.

Full Changelog: backnotprop/plannotator@v0.26.2...v0.26.3

@scottames-github-bot

Copy link
Copy Markdown
Contributor
max-sixty/worktrunk (github:max-sixty/worktrunk)

v0.72.0: 0.72.0

Compare Source

Release Notes

Improved

  • A host carrying a forge's name anywhere resolves to that forge again: 0.71.0 required github, gitlab, or gitea as a whole dot-separated label, which read as an ownership check but wasn't one — an attacker controls their own DNS — while shutting out self-hosters with hyphenated names. github-enterprise.acme.com, mygithub.com, and the github-personal SSH alias classify again, so CI status, wt switch --prs, and repo.provider work with no config. (#3673)

  • One [projects."…"] entry can cover every repository on a host, and can set the forge: A key containing * matches any run of characters, / included, so [projects."git.company.example/*"] covers a whole host; every matching entry applies, least- to most-specific. The table also gained forge.platform and forge.hostname, so a self-hosted host needs one entry here rather than a block in every repo. Docs (#3701, thanks @​chrishas35 for the request and @​witt-bit for the workspace-scoped case it partly serves)

  • wt merge and wt step push leave the target worktree's uncommitted changes in place: The autostash that held a dirty target's changes restored them as unstaged; both now advance the target with a compare-and-swap update-ref and read-tree -m -u, which leaves uncommitted work untouched. (Breaking: the fast-forward path no longer runs git push, so pre-push and the receive-side hooks no longer fire, and a failed sync errors with the ref rolled back.) (#3703, #3684, #3693, thanks @​gubasso for reporting)

  • Approval state and branch-removal outcomes are machine-readable: wt config approvals list --format=json reports whether a non-interactive run would stop for approval. wt remove and wt step prune replace branch_deleted with branch_outcome: deleted, deferred, not_attempted, retained_unmerged, retained_checked_out, retained_raced, retained_failed. (Breaking.) (#3710, thanks @​NathanaelRea for the requests)

  • Every commit hash worktrunk prints follows core.abbrev: The wt list table, wt switch --prs's log tab, and wt config state's CI cache table sliced to 8 characters while --format=json carried git's %h. All now ask git how wide it abbreviates in this repo. (#3676, #3677)

  • wt list --format=json schema 2 has a published JSON Schema: worktrunk.dev/schema/list-v2.json holds the contract, and wt list --print-schema prints the same document. Four fields that were bare strings are now enumerated vocabularies; the emitted JSON is unchanged. (#3747)

  • A detached worktree is named by its commit, not -: The Branch cell hardcoded -, which reads as missing data rather than a state; it now carries the row's abbreviated HEAD, and the picker and statusline name the worktree the same way. (#3675)

Fixed

  • Piped output is plain and no longer panics: wt list | head -3 exited 101 with failed printing to stdout: Broken pipe, and wt list wrote ANSI to a pipe unconditionally. Every stdout surface now exits cleanly, and the human-read ones are plain when piped unless CLICOLOR_FORCE=1. (#3746, #3766)

  • A CI check that hasn't finished no longer reads as passed: Each forge's status parser missed documented values, so a GitHub PR parked on an approval gate showed green, and GitLab's canceling and Azure DevOps's postponed read as no CI at all. (#3741, #3740)

  • The shell wrappers survive an rm alias and a failing --execute: Aliases bake into the wrapper at parse time, so alias rm='rm -v' reached its cleanup — noise on zsh and bash, and on nushell an abort that leaked three temp files, as a failing --execute body also did. (#3714, thanks @​Ar4l), (#3732, #3734)

  • An alias or hook wrapping wt switch or wt remove keeps your subdirectory: The user's position came from the wt process's cwd, which inside an alias body is the worktree root, so an aliased wt remove from feature/apps/gateway landed at the primary worktree's root. Fixes #3723. (#3724, thanks @​vivienm for reporting)

  • wt merge and wt step push refuse a target worktree parked mid-operation: The two-tree sync refuses an unmerged index but not a stopped cherry-pick or rebase whose conflict was already staged, so the push range could land in a paused target and be committed by --continue. (#3759)

  • The Claude plugin's worktree-remove hook resolves against the worktree path: The hook anchored at CLAUDE_PROJECT_DIR, which the claude agents view routinely leaves outside any repository, so wt remove died with not a git repository and the session became undeletable. Its guard now also requires a .git entry. (#3754, #3767, thanks @​judewang for the fix and the report)

  • A Gitea API error is reported as one, not as a parse failure: tea api exits 0 whatever the HTTP status, so both call sites guessed from the body's shape and blamed an API change for an API error. --include surfaces the status instead. (#3713, #3600)

  • --print-schema and the doc-generation help flags name the right command: All three found the subcommand by scanning argv for a /wt suffix, which never matches wt.exe under a backslash path, so on Windows they read the binary's own path as the command. (#3762)

  • A multibyte shell name no longer panics: extract_filename_from_path sliced at len() - 4 to test for .exe with no char-boundary check: SHELL=/bin/日本語 wt config show panicked, and on macOS every process name goes through it during shell detection. (#3727)

  • wt installed under a dotted name generates shell integration for that name: binary_name used file_stem, which cuts at the last dot, so wt config shell init bash under wt.old emitted a wrapper for wt. It now strips only the executable suffix. (#3719)

  • Concurrent wt step prune removals no longer race the worktree registry: git worktree remove reads every sibling under .git/worktrees/, so two overlapping removals could have one read a sibling mid-teardown. Registry-mutating removals now serialize behind a second lock. (#3692)

  • The wt switch first-run offer previews the legacy files it removes: Accepting "Install shell integration?" could delete a deprecated worktrunk-managed wrapper the prompt never named. What gets removed is unchanged. (#3656)

  • wt config create --project writes a resolvable link: The comment it writes into .config/wt.toml carried a raw Zola target, because the link-conversion regex stopped at the first ] — here the one closing a nested code span. (#3731)

  • wt list --branches counts a local branch containing / as local: The summary tally classified branch-only rows by branch.contains('/'), so a local feature/login counted under "N remote branches". (#3687)

  • wt step relocate's human summary counts template-error branches as skipped: --format=json already folded them into skipped; the human tally undercounted by the number of branches whose worktree-path template failed to expand. (#3688)

Documentation

  • SignPath attribution appears with the artifacts it describes: The code-signing notice and a route to the policy now sit in the install section's Windows block on the README and the docs landing page, as SignPath Foundation's OSS program requires. (#3709)

  • wt step copy-ignored's --require-include example renders as a terminal block: It was the only console block in the command's long help missing the $ prefix. (#3706)

Internal

  • Library API rework (Breaking library API): cargo-semver-checks fails five lints — LegacyForgeAlias and Repository::legacy_forge_alias removed with the forge-classification revert, Repository::forge_platform_override removed for one shared resolver, stage_worktree_removal gained two parameters, UserProjectOverrides gained a forge field, and the real-repo-benches feature was removed. (#3673, #3694, #3701, #3721)

  • One function owns the pre-removal gate: stage_worktree_removal now performs the dirty-worktree gate, the fsmonitor stop, and the rename into trash for both removal paths. (#3694)

  • The test mock stub is the wt binary itself: cargo test --test integration never rebuilt the separate mock-stub package; wt is now linked under each mock's name instead. (#3712)

  • -vv traces report a normal run's fork count: prewarm_at fast-pathed on a cache key that -vv's own logging setup had populated, so every trace overstated a normal run's config forks. (#3705)

  • Benchmarks are organized by repository shape: Groups select semantic FixtureRecipes and share table-driven cases; separate fixtures remain only for a controlled contrast, a destructive precondition, or disproportionate setup cost. (#3721)

  • az and tea spans group under network in wt-perf timeline: The trace exporter's network bucket recognized only gh and glab. (#3689)

Install worktrunk 0.72.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.72.0/worktrunk-installer.sh | sh && wt config shell install

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.72.0/worktrunk-installer.ps1 | iex"; git-wt config shell install

Install prebuilt binaries via Homebrew

brew install worktrunk && wt config shell install

Download worktrunk 0.72.0

File Platform Checksum
worktrunk-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
worktrunk-x86_64-apple-darwin.tar.xz Intel macOS checksum
worktrunk-x86_64-pc-windows-msvc.zip x64 Windows checksum
worktrunk-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
worktrunk-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

Install via Cargo

cargo install worktrunk && wt config shell install

Install via Winget (Windows)

winget install max-sixty.worktrunk && git-wt config shell install

Install via AUR (Arch Linux)

paru worktrunk-bin && wt config shell install
modem-dev/hunk (github:modem-dev/hunk)

v0.18.1: v0.18.1

Compare Source

What's Changed

Full Changelog: modem-dev/hunk@v0.18.0...v0.18.1

v0.18.0: v0.18.0

Compare Source

What's Changed

Highlights

Hunk 0.18.0 makes reviews more precise, customizable, and extensible—while improving performance and reliability across large repositories and diverse terminals.

  • A full extension platform. Install TypeScript extensions that add VCS backends, commands, sidebars, dialogs, interactive file views, themes, and workspace actions.
  • Line-level review and commenting. A visible cursor moves with j/k, and c comments exactly where you are looking.
  • Richer agent context. Experimental STML notes provide structured, terminal-native explanations with preview and layout tools.
  • Full reviews from pipelines. Piped diffs retain navigation, filtering, layouts, sidebars, and other review controls.
  • A UI that follows your preferences. Remapped shortcuts appear correctly, view settings can be saved, and tabs and syntax colors are configurable.
  • Faster and more dependable reviews. Watch mode uses less CPU, navigation retains less memory, wrapped Unicode is faster, and CJK and emoji filenames render correctly.
All 83 merged pull requests

New Contributors

Full Changelog: modem-dev/hunk@v0.17.7...v0.18.0

nolabs-ai/nono (github:nolabs-ai/nono)

v0.73.0: v0.73.0

Compare Source

What's Changed

New Contributors

Full Changelog: nolabs-ai/nono@v0.72.0...v0.73.0

v0.72.0: v0.72.0

Compare Source

What's Changed

New Contributors

Full Changelog: nolabs-ai/nono@v0.71.0...v0.72.0

schpet/linear-cli (github:schpet/linear-cli)

v2.5.0: 2.5.0 - 2026-08-11

Compare Source

Release Notes

Changed

  • document create now requires exactly one attachment target and errors clearly when none or several are given (Linear's API no longer allows workspace-level documents); the interactive prompt's broken "workspace document" option was removed

Fixed

  • document list --project now accepts a project UUID, slug ID, or name — previously it silently matched slug IDs only and returned an empty list for names

Added

  • document create, update, and list now support all six attachment targets: --project, --issue, --initiative, --team, --cycle, and --release (with --team scoping --cycle like the issue commands); document view and list display whichever target a document has
  • document update can re-point a document to a different target, including the previously missing --issue

Install linear 2.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/schpet/linear-cli/releases/download/v2.5.0/linear-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install schpet/tap/linear

Install prebuilt binaries into your npm project

npm install @&#8203;schpet/linear-cli@&#8203;2.5.0

Download linear 2.5.0

File Platform Checksum
linear-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
linear-x86_64-apple-darwin.tar.xz Intel macOS checksum
linear-x86_64-pc-windows-msvc.zip x64 Windows checksum
linear-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
linear-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
Microsoft/pyright (npm:pyright)

1.1.412: Published 1.1.412

Compare Source

Changes:

  • fceca4d133a83034fc195dbba8b3814992b0b26b Use shared authenticated npm config in pipelines (#11626)
  • e814a5e480d0076b5eef25c570fdc1b7e29dcab0 Align pyright-typeserver version with 1.1.412 (#11625)
  • 8df447d6083456f57631bba0ba3e1746edd13523 Bump version to 1.1.412 (#11624)
  • 27001c2eb6540135dd09f625505f0cccc961715f Preserve union-expanded constructor types (#11621)
  • 870afb084c8620a68cd2a2f1dd7bac7de4d9ae40 Narrow closed TypedDicts on a key membership check (#11620)
  • 69c1b12356cbf3155add14d50be2563eebd3da8d Complete TypeForm conformance (#11599)
  • eefd22541da12c4d5e7703c4ab9d1561131cacd9 Expand conditional TypedDict test coverage (#11617)
  • 273a1a8a9d0ea6589228ffaecab28e2ff425c1d2 Fix defaulted subclass type specialization (#11596)
  • 25641ef11dbe11371b4e3f026a731a1b0a58bd0e Apply overload materialization to nested Any (#11601)
  • 30e847056d8aaf4044412e5fb606e43eb5301a07 Implement PEP 800 disjoint-base semantics (#11593)
See More
  • 6b7f4c7df0d523cd2e4b2146a55dbf5714d3f625 Fix heterogeneous TypeVarTuple constraint solving (#11595)
  • fd9ddadbf7c73046dc0e29c1367d4f82c7843328 Support complete enum literal union equivalence (#11597)
  • 623b043b9ee221e81ef7ef57505b0c98e4f61a7d docs: mention MegaLinter in CI integration page (#11604)
  • e8af042e988f9b06b0c6da77b2269a8bd73e5d8d Support conditional TypedDict fields (#11594)
  • dde0aae19c91db78d9a5b9e71564a2ed18595e5f Adapt stubPath special-casing to latest changes (#11532)
  • de94b525d69e6b9554f39947d6c1eaefab5c41ab Bump brace-expansion from 5.0.6 to 5.0.8 in /packages/vscode-pyright (#11569)
  • 491ade18bc464bd58bd2a6ab82785e21f51c4c69 Bump fast-uri from 3.1.2 to 3.1.4 in /packages/pyright-internal (#11566)
  • 925dee8c790474f743fcd4bbf7a4c2b5e3edb382 Bump axios from 1.16.1 to 1.18.1 (#11555)
  • 1e680297f9c018b035a0dfa2bbb7428cb204d504 Bump undici from 7.27.2 to 7.28.0 in /packages/vscode-pyright (#11512)
  • 559a73706750cfb34c08209c0373dbe8ddbe8601 Fix bool narrowing for numeric literal patterns (#11570)
  • 729aabfa3c117bf9323edd19154d356cababd0ce Fix implicit class binding in lambdas (#11541)
  • 84711a8787101a472f4ed9e862286f46c685d57c Fix narrowing of walrus RHS under is/is not None (#11564)
  • 33bc458021aac4000b1a653e6cdd63cd2f71dae5 Fix false positive when assigning to attribute of union with divergent member types (#11560) [ #11559 ]
  • 93ea6468a40c7c8cdab5643f66411da5e0414742 Fix #11450: [FR]: struct.unpack type inference (#11494)
  • 5fc16373b9e9d56cb8e57e707e9cc35c00bc3a6d Fix #11475: Cannot override a class's callable variable with a method (#11500)
  • 231b66e3429fbf4fa92f4396a83192a10e31b880 Fix #11478: Support overloads on property setters (#11499)
  • 4c60ea9967d2633894e873c1b53145a28106f9a8 Add standalone Type Server Protocol (TSP) server to Pyright (#11537)
  • 433e84d82d7944d129dbc239499d13eaae5f81ac Fix #11453: no error on accessing qualname of instance (#11503)
  • da05559314c5e5171c95b1193ae627b96bb44aaf Skip unknown/missing parameter type checks for overload implementations (#11498)
  • 035fa623fdfc351aa0ba8e64a8fea127b62c13ee Report duplicate KW_ONLY separators in dataclasses (#11495) [ #11486 ]
  • 155a25f14a8cafc458c9fbdedc516b17178200a1 Fix #11472: TypeVarTuple escapes method with very nested recursive tuple aliases (#11497)
  • ffe1973e5db7c181819dfb049335490b3b868cf2 Fix #11481: 1.1.410 detects type as module (#11501) [ #11396 ]
  • e1f6805d25ec12725a04d8f315845bedd7328ea4 Fix bounded type var match narrowing widening solved type args (#11527) [ #11489, #11526 ]
  • ab5cb1aeabf8225c86ea4f647a3c163fa14d342c Enable TypeForm support by default (#11412) [ chore(deps): update dependency twistedpair/google-cloud-sdk to v426 #2 ]

This list of changes was auto generated.

SocketDev/socket-cli (npm:socket)

v1.1.157: v1.1.157

Compare Source

What's Changed

Full Changelog: SocketDev/socket-cli@v1.1.156...v1.1.157

v1.1.156: v1.1.156

Compare Source

What's Changed

Full Changelog: SocketDev/socket-cli@v1.1.155...v1.1.156

ansible/ansible-lint (pipx:ansible-lint)

v26.8.0: v26.8.0

Compare Source

What's Changed

New Contributors

Full Changelog: ansible/ansible-lint@v26.6.0...v26.8.0

DataDog/guarddog (pipx:guarddog)

v3.2.0: Release v3.2.0

Compare Source

Features

Bug fixes

Chores

@scottames-github-bot

Copy link
Copy Markdown
Contributor
sqlfluff/sqlfluff (pipx:sqlfluff)

4.3.0: [4.3.0] - 2026-08-07

Compare Source

Highlights

This minor release brings expanded BigQuery pipe-syntax support, a wave of ClickHouse grammar additions, a new rule, and continued progress on the Rust-backed parsing engine.

  • BigQuery pipe syntax (|>) is now modelled natively as a postfix operation on selectables, so pipe queries can follow a WITH clause, use EXCEPT/REPLACE after a wildcard, and get correct indentation for AGGREGATE/EXTEND clauses.
  • ClickHouse gains support for TRUNCATE TABLES/TRUNCATE DATABASE, EXCHANGE, the REGEXP operator, GROUP BY WITH ROLLUP/CUBE/TOTALS, multi-column LIMIT BY, and ORDER BY ... WITH FILL ... INTERPOLATE, among other additions.
  • A new rule, RF07, flags window-clause references that shadow a SELECT alias.
  • lint, fix, and format all gain a consistent --quiet output mode.
  • This release introduces the first Rust-native lint rule detection (CP01, CP03, CP04), extending the Rust engine beyond parsing and into linting for the first time — a major step toward our broader performance goals. Alongside this, numerous parity fixes (bracket matching, error messages, cache invalidation) keep the Rust and Python engines in sync.

Beyond that, there are parser improvements across Oracle, PostgreSQL, Snowflake, Databricks, T-SQL, MySQL/MariaDB, Teradata, Athena, DuckDB, SQLite, Impala, and SparkSQL, plus rule fixes that remove false positives from RF01-RF03, AL05, AM04, CV10, CV12, ST06, ST07, and PG01.

This release also includes first-time contributions from forty-seven new contributors. Thank you all for your contributions. 🏆

What’s Changed

  • fix(rust): avoid double allocation in pyo3 getters for collection fields (trim/type/escape) (#8247) @​rubytobi
  • fix(rust): match Rust parser bracket matching to Python's behaviour on crossed, unclosed, and dialect-specific brackets (#8243) @​rubytobi
  • fix: pass sync=True to GhApi in release script (#8281) @​alanmcruickshank
  • feat(clickhouse): add support for TRUNCATE TABLES statement (#8279) @​AndrewKurg
  • Allows %TYPE column type references in TABLE returns for functions in Postgres (#8269) @​KuttKatrea
  • test(ST06): pin reordering of a qualified reference with a parameterised cast (#8276) @​adhavan18
  • fix: auto-detect cached_property names and invalidate on pos_marker change (#8274) @​JoeJoeflyn
  • Db2: parse COMMENT ON, multi-grantee GRANT and view WITH [NO] ROW MOVEMENT (#8262) @​davidpavlovschi
  • CV12: don't fix join conditions when the join clause is templated (#8255) @​devanshranjan10
  • Support quiet output across lint, fix, and format (#8258) @​TrapsterDK
  • Fix Oracle SELECT INTO record field parsing (#8252) @​subotac
  • fix(ST02): preserve indexed expressions in NULL simplification (#8202) @​dev-willbird1936
  • fix(sparksql): allow expression values in SET statements (#8187) @​Otto-Deviant1904
  • Parse round-bracketed MAP types in Athena (#8246) @​davidpavlovschi
  • Fix AL01 loop on bracketed column aliases (#8245) @​davidpavlovschi
  • Snowflake: parse ADAPTIVE refresh mode, INITIALIZATION_WAREHOUSE, and streams on dynamic tables (#8241) @​adhavan18
  • test(ST11): pin the UNNEST + deeply nested struct case from #6997 (#8240) @​adhavan18
  • fix(rust): lexer/parser divergences in trim_chars inheritance and escape_replacements handling (#8224) @​rubytobi
  • fix(rust): match Python's parse-error message text (Sequence wording, token class/repr, grammar repr truncation) (#8225) @​rubytobi
  • duckdb: parse USING SAMPLE / TABLESAMPLE (#8229) @​hdimer
  • ST07: don't fix when a USING column is referenced unqualified (#8175) @​vidigoat
  • feat(clickhouse): add support for REGEXP operator (#8235) @​AndrewKurg
  • BigQuery: parse EXCEPT/REPLACE after a wildcard on an array element (#8194) @​adhavan18
  • CV10: don't corrupt string literals that use quote-doubling escapes (fixes #8179) (#8193) @​rahul188
  • perf(rust): frame-free terminal evaluation (#8168) @​rubytobi
  • fix(dialects/oracle): support positional substitution variables (&1, &&1) (#8233) @​felipeatom
  • rust(fix): Resolve two codegen-determinism hazards (id-cache collisions and unsorted currency-symbol regex) (#8226) @​rubytobi
  • Databricks: config to stop ST12 flagging command cell delimiters as consecutive terminators (#8197) @​tsedeus
  • feat(clickhouse): add support for EXCHANGE statement (#8221) @​AndrewKurg
  • Impala: add support for VALUES aliases (#8185) @​strang3nt
  • feat(clickhouse): add support for TRUNCATE DATABASE (#8228) @​AndrewKurg
  • fix(dialects/postgres): parse MERGE ... WHEN NOT MATCHED BY SOURCE/TARGET (#8216) @​hdimer
  • Postgres: stop LT01 spacing array types like int [] (#8222) @​apoorva-01
  • feat(postgres): support MERGE ... THEN DO NOTHING (#8223) @​mbsdeepak
  • fix(ci): collapse agent-scan into one pull_request_target workflow (#8217) @​keraion
  • Teradata: parse data type attributes ((NOT) CASESPECIFIC/CS, UPPERCASE) on expressions (#8124) @​adhavan18
  • Add a Python-vs-Rust parser/lexer parity test harness (#8198) @​rubytobi
  • Add GitHub Actions workflows for agent scan analysis and moderation (#8208) @​peterbud
  • Fix Databricks materialized view expectation constraints (#8212) @​vetrovk
  • feat(clickhouse): add clickhouse specific truncate table grammar (#8210) @​AndrewKurg
  • Fix CI lint instability caused by upgrading to Ruff 0.16.0 in scheduled runs. (#8211) @​peterbud
  • BigQuery: model pipe syntax as a postfix on selectables (#8195) @​ricardoalencar-pr
  • perf(templater): skip Jinja machinery for template-free files (#8161) @​rubytobi
  • AM04: resolve each UNION branch's wildcard against its own branch (#8183) @​chuenchen309
  • BigQuery: allow a pipe query after a WITH clause (#8191) @​ricardoalencar-pr
  • Indent BigQuery pipe AGGREGATE and EXTEND clause lists (#8190) @​ricardoalencar-pr
  • Fix ST07 pairing the wrong tables when a comma-join precedes USING (#8180) @​chuenchen309
  • Guard BigQuery and ClickHouse explicit view column lists in ST06 (#8178) @​chuenchen309
  • RF01: resolve UPDATE target alias nested in from_expression (MySQL) (#8176) @​vidigoat
  • Snowflake: parse scripting bind variables (:var) in expressions (#8163) @​adhavan18
  • Teradata: lex scientific-notation and leading-dot numeric literals (#8181) @​chuenchen309
  • fix(oracle): allow trailing-dot numeric literals like 1. (#8155) @​Otto-Deviant1904
  • fix(dialects/postgres): parse ORDER BY ... USING operator (#8182) @​chuenchen309
  • MySQL: parse CONVERT(expr, type) and CONVERT(expr USING charset) (#8177) @​chuenchen309
  • MariaDB: support IF [NOT] EXISTS on ALTER TABLE index and constraint clauses (#8174) @​mrsinham
  • Leave the jinja context out of config path resolution (#8173) @​chuenchen309
  • Fix IndexError on a two-character inline config value ending in a colon (#8170) @​chuenchen309
  • fix(config): validate render_variant_limit and runaway_limit (#8152) @​anxkhn
  • fix(rust): match Python's repr()-quoted, truncated unlexable-error text in the Rust lexer (#8147) @​rubytobi
  • fix(convention): make CV07's fix order deterministic (#8144) @​keraion
  • Don't hoist a subquery correlated in a later set expression branch (#8169) @​chuenchen309
  • Leave a schema-qualified NVL/IFNULL alone (#8172) @​chuenchen309
  • fix(docs): read stable_version as a nested pyproject key (#8150) @​anxkhn
  • docs: update dialect contributing guide to current grammar API (#8151) @​anxkhn
  • fix(parser): stop genexpr/comprehension recursion from halving safe parse-tree depth (#8148) @​rubytobi
  • Fix CV12 false positive on NATURAL JOIN (#8165) @​chuenchen309
  • Added support for * EXCEPT (col1, col2) in MERGE statement for SparkSQL (#8154) @​timothyvries
  • Add rule RF07 to flag window-clause references that shadow a select alias (#8153) @​Booyaka101
  • Fix clippy failures blocking main CI (#8160) @​rubytobi
  • Enforce clean clippy in CI and remove dead code across the Rust workspace (#8098) @​rubytobi
  • fix(rust): key the TemplatedFile conversion cache by object identity (#8143) @​keraion
  • fix(convention): build CV11 replacements parse-shaped (#8142) @​keraion
  • perf: lazy SegmentCloneMap in ST05 — clone only when a subquery is rewritten (#8141) @​keraion
  • refactor(rules): façade-safe segment checks — is_type over isinstance, uuid over id() (#8140) @​keraion
  • fix(rust): bare-class grammars consume matching tokens unchanged (#8138) @​keraion
  • Rename Rust skip-backward-to-code helpers to match Python (#8149) @​apoorva-01
  • feat(rust): port CP03 and CP04 to Rust-native detection (#8069) @​WittierDinosaur
  • Add opt-in T-SQL rule to prefer AS aliasing over alias = expression (#8085) @​copilot-swe-agent[bot]
  • fix(core): re-parent provided children in BaseSegment.copy (#8109) @​keraion
  • fix(config): coerce quoted allow_implicit_indents deprecation value (#8135) @​anxkhn
  • Oracle: parse XMLATTRIBUTES alias list in XMLELEMENT (#8113) @​apoorva-01
  • MySQL: don't flag index prefix length with LT01 (#8128) @​apoorva-01
  • docs: fix developing-rules guide to document crawl_behaviour, not removed fields (#8137) @​anxkhn
  • Fix nested bracket-type mismatch recovering instead of raising, matching Python's resolve_bracket (#8120) @​rubytobi
  • docs(reflow): fix ReflowSequence.respace filter value in docstring (#8136) @​anxkhn
  • fix(rust): drop Indent/Dedent that are direct children of Bracketed (#8108) @​keraion
  • fix(core): remove orphaned temp file when safe file replace fails (#8134) @​anxkhn
  • Teradata: make OVERLAPS an infix comparison operator (#8123) @​apoorva-01
  • feat(mysql): support GROUP BY ... WITH ROLLUP (supersedes #8066, indent-safe) (#8130) @​Synvoya
  • Fix unclosed GREEDY-mode bracket recovering instead of raising (#8121) @​rubytobi
  • Fix isinstance-preserved token type dropped by RustParser.parse() (#8122) @​rubytobi
  • fix: RF02 should not flag BigQuery whole-row table references (#8133) @​mvanhorn
  • Postgres: stop LT01 splitting psql variables like :status (#8131) @​Rishi943
  • RF03: treat Athena as a struct dialect (#8132) @​Rishi943
  • Athena: accept ARRAY(type) as well as ARRAY (#8127) @​apoorva-01
  • Fix mismatched bracket type giving generic error only (#8119) @​rubytobi
  • Fix Bracketed GREEDY mode absorbing trailing trivia into unparsable segment (#8118) @​rubytobi
  • Fix/greedy match stray closing bracket (#8117) @​rubytobi
  • Read Jinja macro files with the configured encoding (#6633) (#8103) @​apoorvdarshan
  • fix GREEDY sequence partial-match failure dropping matched children (#8116) @​rubytobi
  • fix(sqlite): parse CTE materialization hints (#8126) @​karimudev
  • ClickHouse: parse GROUP BY WITH ROLLUP / CUBE / TOTALS (#8037) (#8101) @​apoorvdarshan
  • fix(rust): honor RegexParser ignore_case (#8107) @​keraion
  • ClickHouse: parse multi-column LIMIT n BY a, b (#8030) (#8105) @​apoorvdarshan
  • ClickHouse: parse ORDER BY / LIMIT / SETTINGS on non-final union members (#8031) (#8100) @​apoorvdarshan
  • Don't strip newlines that sit directly before a comment (#8057) @​CodeBlackwell
  • perf(linter): dedupe source patches with a set, not a list (#8084) @​anxkhn
  • [databricks]: support bare Databricks notebook magic cells (#8011) @​peterbud
  • Add regression tests for Lexer and Parser divergences (#8106) @​rubytobi
  • Oracle: parse FOR UPDATE ... NOWAIT / WAIT n / SKIP LOCKED (#8097) (#8099) @​apoorvdarshan
  • Parse Oracle function RETURN with %type and %rowtype (#8090) @​apoorva-01
  • fix(clickhouse): parse tuple element access on any expression (#8062) @​Sanjays2402
  • Stop LT01 spacing Oracle %type/%rowtype like modulo (#8096) @​apoorva-01
  • TSQL: restore normalization kwargs on the patched single_quote lexer (RF05 false positive on quoted aliases) (#8088) @​Pawansingh3889
  • clickhouse: parse ORDER BY ... WITH FILL ... INTERPOLATE (#8029) (#8065) @​apoorvdarshan
  • perf: bypass setattr in RawSegment.init via direct dict writes (#8093) @​rubytobi
  • perf: remove duplicate cache invalidation in BaseSegment.__init__ (#8091) @​rubytobi
  • perf: avoid quadratic tuple concatenation when applying match results (#8089) @​rubytobi
  • fix: raise SQLFluffUserError for invalid rule config option values (#8095) @​anxkhn
  • docs: fix BaseGrammar.copy terminators arg reference (#8094) @​anxkhn
  • docs(cli): correct fix --quiet help note about --force (#8083) @​anxkhn
  • docs(parser): correct min_delimiters type and default in Delimited docstring (#8082) @​anxkhn
  • fix(sparksql): treat LEFT/RIGHT as non-reserved so they can be lambda variables (#8050) @​anxkhn
  • Fix Oracle SQLPlus SET SCAN parsing (#8081) @​vetrovk
  • perf(python): avoid deep-copying dialect_obj/templater_obj in FluffConfig.copy (#8079) @​rubytobi
  • perf(rust): compare Arc by pointer instead of by value in PositionMarker merge (#8078) @​rubytobi
  • Parse Oracle ALTER TABLE ADD with bracketed constraints (#8076) @​apoorva-01
  • Parse Oracle FOR loop ranges with function-call bounds (#8077) @​apoorva-01
  • Parse Oracle SQL*Plus ACCEPT and REMARK commands (#8067) @​vetrovk
  • [codex] Parse SparkSQL SET literal lists (#8052) @​EltonChang1
  • Fix LT07 non-idempotent fix for CTE brackets that become multi-line (#8068) @​gaoflow
  • fix(postgres): parse COPY ... FROM STDIN inline data blocks (#8059) @​truffle-dev
  • Parse ClickHouse parametrized JSON type arguments (#8053) @​billykern
  • spike(rust): Rust-native lint rule detection (CP01 proof-of-concept) (#7984) @​WittierDinosaur
  • Support WITH TAG clause in Snowflake CREATE TASK (#8061) @​apoorvdarshan
  • Fix ClickHouse double equals parsing (#8045) @​ishaanlabs-gg
  • fix(postgres): parse psql variable placeholders as COPY targets (#8027) @​truffle-dev
  • docs(dbt): recommend explicit utf-8 encoding (#8041) @​ishaanlabs-gg
  • Split PG01 foreign key NOT VALID check (#7967) @​cyphercodes
  • fix(snowflake): parse SYSTEM function expressions (#8040) @​ishaanlabs-gg
  • Dialect/Snowflake: support dbt projects and dcm projects (#8039) @​evgf
  • fix(rust): correct subquery/SELECT parse via GREEDY-family cache skip (#8026) @​keraion
  • fix(mysql): parse JSON_VALUE RETURNING type with CHARACTER SET (#8028) @​anxkhn
  • fix(mysql): parse JSON_TABLE COLUMNS as identifiers not references (#8025) @​truffle-dev
  • perf(rust): share class_types as a per-kind Arc instead of per-token HashSet (#8022) @​keraion
  • fix(teradata): parse BTEQ FILE= command arguments (#8023) @​anxkhn
  • perf(rust): memoize Ref child-grammar resolution (~22% faster parsing) (#8024) @​keraion
  • perf(rust): borrow static Token strings as Cow<'static, str> (#8021) @​keraion
  • Fix RF02 false positive on table alias inside a query hint (#8018) @​truffle-dev
  • perf(rust): borrow static segment type/class strings into the Node + arena tree (#8020) @​keraion
  • perf(rust): compute raw_normalized lazily with cached regex compilation (#8019) @​keraion
  • perf(rust): replace HashMap results store with single Option slot in parse frame stack (#8017) @​rubytobi
  • Parse ClickHouse C-style ternary conditional operator (#8016) @​truffle-dev
  • refactor(rust): encapsulate raw/raw_upper in RawString to enforce invariant (#8009) @​rubytobi
  • fix: preserve Oracle execute file at-sign spacing (#8015) @​ekkoitac
  • fix(oracle): parse INTERVAL data types in CAST expressions (#8014) @​copilot-swe-agent[bot]
  • [Oracle] Parse TIMESTAMP WITH LOCAL TIME ZONE in CAST(...) (#8012) @​copilot-swe-agent[bot]
  • fix(rust): match Python's bracket-nesting depth in Anything grammars (#8013) @​keraion
  • perf(rust): fused RsMatchResult->BaseSegment builder (native AST, gated) (#7983) @​WittierDinosaur
  • Fix RF03 false positive on whole-row references (e.g. postgres ->>) (#7921) @​Labib-Bin-Salam
  • Fix RF02 false positive on SELECT * EXCEPT (...) columns (#7999) @​arpitjain099
  • fix(rust): Make Parser metrics accessible again (#8006) @​keraion
  • perf(rust): replace Vec/String frame fields with SmallVec and static str (#8002) @​rubytobi
  • feat(rust): id-addressable arena tree (RsTree/RsHandle) substrate (#7986) @​keraion
  • perf(rust): remove RefCell wrappers from parser caches (#8004) @​rubytobi
  • perf(rust): precompute raw_upper on token construction (#7991) @​rubytobi
  • perf: replace per-token uuid4 with a tagged monotonic counter (Python + Rust) (#7997) @​keraion
  • fix(rust): match Python leaf segment types for TypedParser and Anything brackets (#8001) @​keraion
  • fix(rust): flatten only raw-segment wrappers in Node::to_tuple (#8000) @​keraion
  • fix(rust): correct aux_end so node class_types aren't truncated (#7985) @​WittierDinosaur
  • fix(oracle): parse PIVOT/UNPIVOT with WHERE or num label (#7973) (#7974) @​GHRF
  • perf(rust): defer RawSegment.representation to cached_property and replace uuid4 with os.urandom (#7988) @​rubytobi
  • perf(rust): fix O(n²) validation in map_template_slices (#7995) @​rubytobi
  • perf(rust): eliminate dummy Arc<MatchResult> sentinel in RefState (#7996) @​rubytobi
  • Parse Databricks view comments as comment clauses (#7993) @​vetrovk
  • perf(python): guard linter stringify calls behind isEnabledFor (#7989) @​rubytobi
  • perf(rust): wrap cached RegexMode entries in Arc to avoid cloning on cache hit (#7990) @​rubytobi
  • fix: don't crash when a directory named .sqlfluff exists (#6617) (#7975) @​Shevilll
  • Support T-SQL ALTER CREDENTIAL and ALTER/DROP DATABASE SCOPED CREDENTIAL (#7970) @​Pawansingh3889
  • perf(rust): add per-stage profiling to the Rust parse path (#7982) @​WittierDinosaur
  • fix: allow EXTENDED as identifier in Athena SELECT/CTE (#7977) @​Jyriu
  • rust: move parser metrics into its own struct (#7981) @​keraion
  • rust: Fix Bracketed allow_gaps=false STRICT to match Python (#7979) @​keraion
  • docs: refresh sqlfluffrs AGENTS.md for the multi-crate workspace (#7980) @​WittierDinosaur
  • refactor/docs: FrameContext/phase + Engine docs (#7978) @​keraion
  • perf: cache terminator match results in greedy_match_table_driven (#7925) @​rubytobi
  • reflow: Support strict fixes; LT03 add pipe operator (#7966) @​keraion
  • sparksql: Add iceberg merge support (#7968) @​keraion
  • fix(oracle): support DEFAULT keyword in pragma restrict_references (fixes #7957) (#7965) @​gaoflow
  • refactor: extract reference/alias segment methods into dialect-dispatched free functions (#7962) @​keraion
  • perf: replace inline OneOf terminator check with is_terminated_table_driven (#7924) @​rubytobi
  • perf: setup TPC benchmarks and collect initial numbers (#7923) @​rubytobi
  • Don't flag required alias on T-SQL table-valued XML methods (AL05) (#7955) @​gaoflow
  • chore: bump dependency click<8.5.0 (#7961) @​keraion
  • rust: Don't strip debuginfo on bench for flamegraph (#7963) @​keraion
  • Added support for INSERT ... BY NAME for SparkSQL (#7959) @​timothyvries
  • [oracle] Parse legacy (+) joins against literals without LT02 false positives (#7953) @​copilot-swe-agent[bot]
  • fix: AL05 false positive on whole-row alias references (postgres) (#7906) @​Bortlesboat
  • ci: Add Rust fmt/clippy/unit-test job for sqlfluffrs (#7942) @​keraion
  • Support Oracle slash batch delimiter after views (#7945) @​koriyoshi2041
  • Support Oracle KEEP (DENSE_RANK ... FIRST/LAST ... ) syntax (#7950) @​GHRF
  • Allow Snowflake UNPIVOT as an identifier (#7946) @​koriyoshi2041
  • chore(rust): bump pyo3 to 0.29.0 (#7954) @​keraion
  • databricks: Fix foreign key ON DELETE/ON UPDATE action ordering (#7952) @​copilot-swe-agent[bot]
  • Support Databricks infix collation (#7943) @​koriyoshi2041
  • Support Databricks TEMP VIEW (#7951) @​koriyoshi2041
  • Support Oracle LANGUAGE JAVA NAME function clauses (#7944) @​vetrovk
  • Support Databricks ?:: try_cast operator (#7927) @​Booyaka101
  • refactor(rust): Drop unused transparent_positions frame field (#7936) @​keraion
  • codegen: Error on missing grammar handlers at build time (#7935) @​keraion
  • fix(rust): Update stale GrammarTables::new test calls (#7934) @​keraion
  • fix(LT02): indent oscillation for loop-conditional trailing commas (#7928) @​keraion
  • Support for DBT_ENGINE_ configs and additional DBT_ENGINE_PROFILE (#7907) @​yann1cks
  • parser: Increase default max_parse_depth to 600 (#7922) @​keraion
  • Support T-SQL CREATE CREDENTIAL (#7920) @​Booyaka101
  • Fix LT13 autofix before empty-rendering dbt config blocks (#7901) @​copilot-swe-agent[bot]
  • Fix Teradata date cast parsing (#7919) @​henyanagar
  • fix: ST10 false positive when RHS operand is part of a binary expression (#7918) @​Booyaka101
  • Update so that sqlfluff can parse backquoted databricks function argu… (#7917) @​VictorAtIfInsurance
  • fix(rust): Bracket optimization shouldn't match non-code. (#7916) @​keraion

New Contributors

jdx/usage (usage)

v5.1.0: v5.1.0: Embed specs from strings, cleaner include metadata

Compare Source

A small feature release: embedders get a string-based script parser, included specs stop clobbering their parent's inferred metadata, and the test suite finally runs cleanly on Windows.

Added

  • Parse embedded USAGE comments from a string (#782 by @​jdx). The new Spec::parse_script_str lets embedders turn a script body into a Spec without writing to a temp file or hand-deserializing KDL:

    let spec = Spec::parse_script_str(r#"
    #!/bin/bash
    #USAGE bin "mycli"
    #USAGE flag "--foo" help="a flag"
    "#)?;

    Because there's no source path, bin/name are not inferred from a filename and relative include paths are rejected with relative includes require a source file; absolute includes still work. The file-based parse_script now shares the same internal path, so behavior stays consistent.

Fixed

  • Included specs no longer overwrite parent metadata (#786 by @​jdx). parse_file derives a missing bin (and then name) from the filename — but include was going through the same path, so an empty included fragment would take on its own filename and overwrite the parent spec, producing a spurious missing-cmd-help. Filename-based inference is now limited to the top-level spec; explicit metadata in includes still merges as before. The unreachable missing-name lint (which fired for stdin but never for files) was also removed so file and stdin linting behave the same way. Closes chore(deps): update ⬆️ dagger to v0.20.1 #784 and chore(deps): update github-actions #785.

Changed

  • Corrected USAGE comment marker documentation (#782). The docs previously described # USAGE: and // USAGE:; the real supported markers are #USAGE, //USAGE, ::USAGE, and their [USAGE] variants.
  • Bumped rmcp to v3 (#780 by @​renovate). Tracks the MCP 2026-07-28 protocol revision.

Tests

  • Windows test suite is fully green (#771 by @​JamBalaya56562). Reworks the shell skip guards to probe the actual precondition instead of a proxy (WSL's bash.exe cheerfully answers --version and then fails everything else), routes fixture invocations through USAGE_SHELL_<SHELL>, normalizes paths handed to shell script bodies and $PATH, and removes the #![cfg(unix)] gate on shell_override.rs — which held back the very tests for the Windows-facing USAGE_SHELL_<SHELL> feature added in v5.0.0. Result on a windows-latest runner: 538 passed, 0 skipped. No library or CLI source is touched.

Full Changelog: jdx/usage@v5.0.0...v5.1.0

💚 Sponsor usage

usage is maintained by @​jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools including mise, aube, hk, and more. Work on usage is funded by sponsorships.

If usage powers CLI specs, docs, or completions for a tool you maintain or use, please consider sponsoring at jdx.dev. Every sponsorship helps the project stay independent and moving.

Skipped Packages

Non-GitHub Sources

@renovate
renovate Bot merged commit ee15b02 into main Aug 16, 2026
6 checks passed
@renovate
renovate Bot deleted the renovate/mise-packages branch August 16, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants