Skip to content

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

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

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

Conversation

@renovate

@renovate renovate Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending Age Adoption Passing Confidence
aqua:astral-sh/ruff tools patch 0.16.40.16.5 age adoption passing confidence
aqua:astral-sh/uv tools patch 0.12.60.12.7 0.12.8 age adoption passing confidence
aqua:crate-ci/typos tools patch 1.49.01.49.1 1.50.0 age adoption passing confidence
aqua:golangci/golangci-lint tools patch 2.13.12.13.2 age adoption passing confidence
aqua:sst/opencode tools patch 1.18.231.18.25 age adoption passing confidence
aqua:zellij-org/zellij tools patch 0.45.00.45.1 age adoption passing confidence
droid (source) minor 0.206.00.208.1 0.209.0 (+1) age adoption passing confidence
github:anthropics/claude-code tools patch v2.1.247v2.1.250 v2.1.252 (+1) age adoption passing confidence
github:backnotprop/plannotator tools patch v0.27.8v0.27.9 v0.27.10 age adoption passing confidence
github:janosmiko/lfk tools patch v0.18.3v0.18.4 v0.18.5 age adoption passing confidence
pipx:isort (changelog) tools patch 9.0.09.0.1 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 September 1, 2026 10:48
@renovate renovate Bot added the dependencies label Sep 1, 2026
@renovate
renovate Bot enabled auto-merge (squash) September 1, 2026 10:48
@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.

astral-sh/ruff (aqua:astral-sh/ruff)

0.16.5: 0.16.5

Compare Source

Release Notes

Released on 2026-08-27.

Preview features

  • Allow rules without codes (#28049)
  • Introduce category selectors (#27666)
  • Update preview default rules and categories (#27877)

Bug fixes

  • [flake8-async] Detect blocking generic HTTP requests (ASYNC210) (#28024)
  • [flake8-datetimez] Allow timezone-safe strptime chains (DTZ007) (#28023)
  • [flake8-simplify] Respect side effects in lambda defaults (SIM401) (#28000)

Server

  • Fix duplicated "of" in ClientOptions doc comment (#27978)

Documentation

  • Document rule acceptance guidelines (#27910)
  • Document the new category selectors (#27906)

Contributors

Install ruff 0.16.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.5/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.5/ruff-installer.ps1 | iex"

Download ruff 0.16.5

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.7: 0.12.7

Compare Source

Release Notes

Released on 2026-08-27.

Python

  • Replace managed Python installations when upgrading to a newer build of the same version (#21323)

Enhancements

  • Support Linux s390x, ppc64le, and loongarch64 targets for cross-platform dependency resolution (#21313)
  • Retry downloads with configured credentials when Azure Storage denies anonymous access to an endpoint configured via UV_AZURE_ENDPOINT_URL (#21318)

Preview features

  • Use content-based directory hashes to deduplicate extracted wheels in the cache with the content-addressed-cache preview feature (#19693)

Bug fixes

  • Reject source archives with hash mismatches before persisting their extracted contents to the cache (#21248)

Other changes

Install uv 0.12.7

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.7/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.7/uv-installer.ps1 | iex"

Download uv 0.12.7

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>
crate-ci/typos (aqua:crate-ci/typos)

v1.49.1: v1.49.1

Compare Source

[1.49.1] - 2026-08-27

Fixes

  • Don't correct the brand name HashiCorp
golangci/golangci-lint (aqua:golangci/golangci-lint)

v2.13.2: v2.13.2

Compare Source

golangci-lint is a free and open-source project built by volunteers.

If you value it, consider supporting us, the maintainers and linter authors.

We appreciate it! ❤️

For key updates, see the changelog.

Changelog

  • f34e0bb6c3f4a48513018de81894f5bca1e186c1 build(deps): bump docker/setup-buildx-action from 4.2.0 to 4.3.0 in the github-actions group (#6758)
  • 9af7a1866c0b3b4f43d6d7cb0fba860c4cf615e8 build(deps): bump github.com/stretchr/testify from 1.12.0 to 1.12.1 in /scripts/gen_github_action_config in the scripts group (#6757)
  • 1b907273167eec8b3d84cae636b7798ced4433d5 build(deps): bump github.com/uudashr/iface from 1.5.0 to 1.5.1 (#6749)
  • 6fb5dee3889d231640dce56e5e71c522f13aef7e build(deps): bump honnef.co/go/tools from 0.8.0 to 0.8.1 (#6748)
  • 03da382d2ffa23d706253c9a6061a3ad84482b7a build(deps): bump mvdan.cc/unparam to 2fa3d841b0c8 (#6756)
  • c2bc9bf4762d8c7b267ba852d5fca450445fe5a5 build(deps): github.com/lasiar/canonicalheader from v1.1.2 to a fork (#6761)
  • 61b35d627783c92193f55a477fb4cb3c2d00a83b fix: decrease cache entropy (#6762)
sst/opencode (aqua:sst/opencode)

v1.18.25: v1.18.25

Compare Source

Core

Bugfixes

  • Fixed Azure authentication so Azure CLI sign-in works without requiring Bun.

v1.18.24: v1.18.24

Compare Source

Core

Bugfixes

  • Bedrock reasoning responses no longer get cached into unreplayable empty messages.

Improvements

  • Azure providers can now sign in with Microsoft Entra ID through the Azure CLI instead of requiring an API key.
  • V1 now reads supported V2 config fields so newer config files keep working in more mixed setups.

Desktop

Bugfixes

  • Archived sessions disappear from the Home list immediately. (@​NathanTCode)

Thank you to 3 community contributors:

  • @​NathanTCode:
    • fix(app): drop archived sessions from home list right away (#44905)
  • @​OpeOginni:
    • fix(ui): restore focus in stacked dialogs (#44928)
  • @​dondetir:
    • docs: mention Exa and Parallel as web search backends (#38395)
zellij-org/zellij (aqua:zellij-org/zellij)

v0.45.1: Release v0.45.1

Compare Source

This is a small patch release (mostly) set to address some issues discovered in the latest 0.45.0.

Notable changes

  1. The nested session detection now works over SSH without having to forward environment variables
  2. It's now possible to opt-out of the newly introduced behavior, where scrolling with the mouse inside a pane enters scroll mode. To do so, add scroll_mode_sync false to the configuration.
  3. It's now possible to set an explicit theme hue in the config (i.e. dark or light) that will be used if the system doesn't know which theme we're in. To do so, add explicit_theme_hue light # or dark to the config.
  4. New feature: it's now possible to start a new session in the foreground or background with a specific running command instead of the default terminal. zellij attach -c foo -- htop for foreground zellij attach -b foo --htop for background.
  5. Some issues fixed with notification parsing specifically regarding OSC9 which overloaded the existing OSC99 notification spec (this manifested for some users as excess notifications when saving a file in nvim for example)
  6. Fixed some issues with the kitty image protocol clearing on stacked panes and not working until first resize

Full Changelog: zellij-org/zellij@v0.45.0...v0.45.1

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

anthropics/claude-code (github:anthropics/claude-code)

v2.1.250: v2.1.250

Compare Source

What's changed

  • Bug fixes and reliability improvements

v2.1.248: v2.1.248

Compare Source

What's changed

  • Added --restricted (or CLAUDE_CODE_RESTRICTED=1): removes the built-in tools that run commands or code and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project and local settings files
  • Added experimental.cacheTtl ("5m" or "1h") to agent frontmatter: a per-agent prompt cache TTL used when no subagent TTL setting is configured
  • Added claude self-hosted-runner --client-label <label> (or SELF_HOSTED_RUNNER_CLIENT_LABEL) to override the label the runner registers with (default: hostname)
  • Added server-managed settings diagnostics: a startup warning when the settings fail to load, and a /doctor and /status line explaining a load failure or why they weren't fetched (Bedrock/Vertex/third-party provider, custom ANTHROPIC_BASE_URL)
  • Added a warning in /web-setup when the GitHub CLI token lacks the workflow scope, since pushes to very large repositories can be rejected without it
  • Added /usage-credits for Enterprise organizations billed through AWS Marketplace, self-serve Enterprise, and Enterprise trials, so members can request a higher usage limit from their admin
  • Added cross-session messaging (SendMessage / ListAgents) between sessions on the same machine on Bedrock, Vertex, and Foundry, and when telemetry is disabled
  • Fixed a prompt-cache miss (and lost extended-thinking context) roughly once an hour in long sessions, caused by tool definitions being re-rendered after an OAuth token refresh
  • Fixed the ScheduleWakeup tool definition changing between a session and its --resume when the account had entered usage overage, causing a full prompt-cache miss on the resumed session's first turn
  • Fixed Claude Desktop and Cowork sessions disappearing after 30 days: the transcript cleanup now keeps desktop-written sessions while they are in the app (unless org policy manages retention); the new desktopSessionCleanupPeriodDays setting caps the exemption
  • Fixed being sent to the login screen when another Claude Code process held the token refresh lock while the session token had expired; the request now fails with a retryable error instead
  • Windows: Fixed the claude agents list not responding to the keyboard after detaching from a session, or when launched in a terminal tab left in win32-input-mode
  • Fixed the recommended Console sign-in in /login failing with an OAuth error before showing a sign-in URL on machines where it can't be used (for example when ANTHROPIC_API_KEY or an API key helper is set); it now falls back to the API-key sign-in
  • Fixed model names in /model and fast-mode switch notices to render as code, so suffixes like [1m] display literally instead of as a link
  • Fixed claude agents skipping the workspace trust prompt when the CI environment variable is set
  • Fixed claude agents crashing on launch when the PR-status cache held a malformed entry
  • Fixed agent view resurrecting a weeks-old background session after the machine was off: such a session now shows as stopped at its real end, and opening it asks before resuming its saved conversation
  • Fixed agent view sometimes opening an older conversation, and dropping the typed prompt, when starting a new session
  • Fixed claude agents: opening a stopped session that you already resumed in another terminal no longer starts a second process on that conversation; the row now says it is open in a terminal
  • Fixed claude agents and claude rm refusing to delete a session ("has commits that are not pushed anywhere") when its worktree branch was already merged into your checked-out default branch (e.g. local main) but not yet pushed
  • Fixed background sessions waiting silently when a PermissionRequest or PreToolUse hook prints an invalid answer: the claude agents row now names the hook and the schema error
  • Fixed hooks silently treating a stdout {…} object that isn't valid JSON as plain text; it's now reported as a hook error with the parse message
  • Fixed /mcp listing a project .mcp.json entry that declares the claude.ai connector type under the trusted "claude.ai" heading; it now appears under its real scope
  • Fixed MCP servers whose headersHelper supplies the Authorization header falling into OAuth discovery on a 401 instead of re-running the helper and retrying the call as documented
  • Fixed /login to a Claude apps gateway hanging when the managed-settings security approval dialog was required
  • Fixed gateway model discovery (CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY) never running when apiKeyHelper is the only credential
  • Fixed claude logs leaving mouse tracking, bracketed paste and the alternate screen switched on in the terminal it was run from
  • Fixed the trust dialog's list of repo permission rules showing a garbled character when a long rule was cut off in the middle of an emoji
  • Fixed the permission mode indicator staying hidden behind the "Press Ctrl-C again to exit" hint when you press shift+tab right after ctrl+c
  • Fixed /ultrareview and locally seeded cloud sessions uploading uncommitted edits to prod.env-style and *.tfvars files, or to editor swap, temp, and backup copies of credential files (e.g. key.pem.tmp, id_rsa.swo); they now stay on your machine
  • Fixed Remote Control sessions occasionally never showing a permission prompt or the latest messages on the connected device after the CLI silently reconnected
  • Fixed cloud sessions occasionally failing at startup when the container's session credentials were not yet readable
  • Fixed claude remote-control rejecting its own flags (e.g. --spawn, --name) when a global flag or a wrapper-injected option precedes the subcommand
  • Fixed startup warnings (e.g. "N MCP servers need authentication") rendering one column right of the rest of the transcript
  • Fixed a backgrounded worktree session losing its checkout: the background session now holds the worktree's lock while it runs, so cleanup and git worktree remove leave it alone
  • Fixed @​-mentions of other sessions not matching names typed with non-Latin characters (for example Korean entered through an IME)
  • Fixed an invalid crossSessionInbound value being silently ignored: it now warns and holds cross-session messages (user settings) or refuses them (managed settings) until fixed
  • Fixed rate-limit, usage, and fast-mode messages telling you to run /usage-credits when that command isn't available for your organization (e.g. hidden with DISABLE_EXTRA_USAGE_COMMAND)
  • [VSCode] Fixed a chat tab getting stuck on "No conversation found" when its session was never saved; it now starts a new conversation instead
  • Improved the Workflow tool's prompt footprint: its description is now about 1k tokens instead of 5.7k, with the script-writing reference moved into a bundled workflow-authoring skill
  • Improved the prompt-footer PR badge to check GitHub less often while the pull request is unchanged; a push or a gh pr command still refreshes it right away
  • Improved managed settings: client-side timeout, MCP startup-mode, and stream-watchdog env vars no longer trigger the settings-approval prompt
  • Improved /ultrareview <PR#> to check before launch that the GitHub account connected to your Claude account can access the repository, and to explain how to fix it, instead of failing after the cloud session starts
  • Improved cross-session messaging: falls back to a private per-user /tmp directory when the default one can't be used, and the notice and /status name the directory to fix
  • Changed shift+enter in the agent view dispatch input to insert a newline (matching the prompt); ctrl+enter now dispatches and attaches
  • Changed /loop: self-paced dynamic mode and the no-prompt autonomous default are now always available, including on Bedrock/Vertex/Foundry
  • Changed Anthropic telemetry export failures to log at debug level as [Anthropic telemetry] instead of [3P telemetry] OTEL diag error, so they are not mistaken for your OTel collector failing
  • Changed cross-session messaging in Linux user namespaces: root-equivalent trust for unmapped owners is limited to canonical system directories
  • Changed SendMessage from a subagent to another session: the result now notes that any reply is delivered to the parent session's conversation, not to the subagent
backnotprop/plannotator (github:backnotprop/plannotator)

v0.27.9: v0.27.9

Compare Source

Follow @​plannotator on X for updates

Missed recent releases?
Release Highlights
v0.27.8 Pi keeps its prompt cache across plan transitions, thumbs-up returns to HTML annotation, embed picker seam
v0.27.7 Pi host crash fix on Windows, Call Flow tree cap, jj fork-point base, plannotator knowledge skill + llms.txt
v0.27.6 Live app annotation lands on Pi, one interaction model for HTML pages (same-day patch on v0.27.5)
v0.27.5 Annotate your running app, Agent TUI placement, collapsed lockfiles, VS Code theme fix, Pi fixes
v0.27.4 Portable Guided Review exports, guides.show share links, guide CLI, favicon switcher, jj Call Flow
v0.27.3 Folder watcher freeze fix on large repos, first SBOM-attested release pipeline
v0.27.2 Mobile plan and code review, Codex CLI 0.147 fix, folder annotate cold-start, configurable markdown extensions
v0.27.1 Open-in-editor launch fix, file headers respect Viewed/Git-add visibility toggles
v0.27.0 Call Flow analysis, --tailscale remote reviews, review panel remembers your view, Pi rebuild (breaking command rename), focus-mode shortcut
v0.26.8 Placed comment markers on HTML pages, shift-click multi-select, live app annotation
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)

What's New in v0.27.9

Eleven pull requests, one of them from @​leoreisdias. Two threads run through the release. Browser-integrated agents can now read a plan or an annotate session and leave comments on it through WebMCP, instead of scraping the page. And the raw-HTML annotation surface gained a Refresh action along with a published set of seams so other applications can run that surface as Plannotator ships it. A Windows uninstall fix and a pre-release QA pass close it out.

Browser agents can read your document and comment on it

An agent that runs inside the browser, such as Codex's browser or Claude Code's browser, has until now had to work out what is on the page by reading the DOM. Plan review and every annotate surface (markdown, raw HTML, live app, folder) now register a small tool catalog on document.modelContext, the WebMCP surface those agents speak.

The catalog is deliberately narrow. read_document returns the whole situation in one zero-argument call: the session, the document text windowed at 16k characters and cut at a block boundary, an outline with per-section comment counts, every comment with its quote and context, sibling documents, and a set of nudge codes. add_comments writes a batch, anchoring by an exact quote, by section, by reply, or as a document-level note, and is idempotent by request id. update_comment, remove_comments, reveal and nudge_user round it out, with list_documents in folder sessions.

Three rules make this safe to ship without a consent dialog. Decisions stay with the human: no tool approves, denies, submits, closes, stages or marks anything viewed, and a test pins the catalog so none can be added quietly. An agent may edit or remove only the comments it created, which are stamped browser-agent; asking to touch a human's comment answers forbidden. And nothing is ever registered inside the sandboxed iframes, so a page you are annotating can neither see nor impersonate Plannotator's tools.

Without the API there is no footprint at all. Feature detection is one typeof check per mount, and when document.modelContext is absent the catalog is never built and no indicator, banner, request or timer is created. That was verified rather than assumed: builds from main and from the branch served the same annotate session to a Chrome without WebMCP, and the rendered DOM (44,607 characters), the request lists, the console output and the timer counts came back identical on both sides.

The nudges are what keep an agent in step with you. Every response carries codes computed from state the page already holds, so the agent learns on the call it was going to make anyway that you added a comment, that your composer is open, that the file changed on disk, or that the live app navigated to another page. A header indicator appears after the first tool call, and a Settings toggle turns the whole provider off and on.

One product change comes with it. Annotation gains an optional inReplyTo field, so an agent can answer a comment you left. A reply inherits its parent's anchor, renders indented under it in the annotations panel, and exports nested under the parent as a **Replies:** block, which is what puts the exchange in front of the coding agent in order. Annotations without the field render and export byte for byte as before.

Code review is phase 2 and is not in this release.

  • #1393 by @​backnotprop

Refresh rendered HTML from disk

Markdown annotate sessions pick up an agent's edits as soon as the file changes on disk. Rendered HTML sessions kept showing the snapshot they loaded at startup, so the review surface went stale the moment the agent rewrote the report you were reading.

@​leoreisdias added a Refresh action for local .html and .htm annotate sessions, next to Hide tools and reachable from the keyboard. It re-reads the document, remounts the sandboxed viewer, reapplies your annotations, and tells you how many anchors no longer match while keeping those comments in the panel. It is manual on purpose: this is the first checkpoint, and automatic filesystem-driven refresh waits until the restoration behavior has seen real use. URL sessions, archive views, markdown-converted HTML and non-HTML documents are unchanged, and HTML source saving stays off.

Review turned up a share-link race that predated the feature. The share request context included the identity of the resolver, and that identity changes as a side effect of its own success, so the first short link created on an HTML session discarded its own result. That is fixed with a regression test. A browser verification run found two more: the singular toast read "1 annotation no longer match the HTML", and a browser reload after a refresh reverted the page to the startup snapshot because /api/plan never re-read disk while the draft annotations persisted against the replaced page. /api/plan and /api/share-html now share one root read on both server runtimes, so reload and refresh land on the same bytes.

The version diff that a refresh used to cost you is back as well, recomputed rather than dropped. That fix arrived with the QA pass below.

  • #1232 by @​leoreisdias, with maintainer commits for the share race, the toast and the two-runtime root read

The HTML annotation surface, packaged for hosts

Applications built on @&#8203;plannotator/ui were hand-rolling their own code around HtmlViewer to get the experience Plannotator ships. The Workspaces team asked for the seams to be published, and they now are.

HtmlSurfaceControls gives a host the eye, the refresh and the pen with the exact markup, data attributes and aria state Plannotator's header uses, each control rendering only when its handler is passed. useHtmlRefresh publishes the refresh lifecycle with the backend behind a fetchSnapshot callback, so a host binds it to its own document store. projectHostThreads and buildPersistedHtmlAnchor in @&#8203;plannotator/core/html-anchor project stored rows onto the annotations prop in the host's order, which is the marker numbering, and trim a composed comment's anchor for persistence within a byte budget. AnnotationPanel takes an unanchoredIds set and renders a small Unanchored chip on the matching cards. HtmlViewer takes scrollBehavior so a host can carry a reduced-motion preference across the iframe boundary, and maxAdditionalTargets for its own cap on shift-click targets.

Every seam is additive and defaults to today's behavior, and Plannotator's own app passes the same defaults. The one deliberate change you will see in Plannotator is that chip: annotations a Refresh could not re-anchor now carry it in the panel as well as in the toast, and it clears on the next refresh that re-anchors them. The rest was held to a real-browser A/B over an annotate session driven identically on both builds, with header, chrome and overlay-marker captures matching after normalizing minted ids and the port.

  • #1395 by @​backnotprop

Renderers that load when they are needed

Mermaid, Graphviz, KaTeX and the identity dictionary used to ride every document read. They now load on demand, while Plannotator's own apps import eager entries as their first import and render exactly as before, typesetting math on the first commit with no frame of raw TeX. On the share portal the entry chunk drops from 1,831,133 to 1,211,620 gzip bytes, with the Graphviz engine and the Mermaid runtime becoming lazy chunks fetched only when a diagram is on the page. For a host that bundles by route, roughly a megabyte of renderer leaves the document-read closure.

The raw-HTML viewer's 185 KB bridge script can also be served as a separately cached asset now. A host passes bridgeScriptUrl and gets one classic <script src> in the exact position the inline script occupied; the bridge stamps a protocol version on its ready message, so a stale cached asset produces a named warning and an in-surface banner rather than a silent mismatch, and a missing one surfaces as a timeout. Plannotator passes nothing and stays inline everywhere, including the live-app proxy and the Pi and OpenCode copies.

Two rounds of adoption feedback followed the first npm release. The default KaTeX loader moved into its own module so a host that registers its own loader can alias the package default out of its build entirely. Mermaid's own import("katex") for $$ labels was keeping a second KaTeX chunk alive for hosts, and is now redirected through the shared math slot for importers inside the Mermaid package only, which leaves one host-owned chunk instead of two. bridgeErrorDisplay lets a host that renders its own failure banner turn off the package's. The documented bridge alias regex was anchored, since the unanchored form matched any specifier ending in /bridge-script. And resetMathRenderer no longer forgets a registered loader.

First edit in the atomic editor lands sooner

The Workspaces team measured the cost of clicking into the markdown editor and filed the numbers as #1401. Reproducing it in Plannotator showed that the part that grows with document size was not CodeMirror's layout measurement, as first suspected, but three editor extensions each forcing a synchronous parse of the whole document at mount. @&#8203;plannotator/atomic-editor 0.8.1 bounds that mount-time parse to an initial window and grows the syntax tree in idle time afterwards, so decorations beyond the window fill in progressively. On a 283 KB document at 4x CPU throttling, click to second paint goes from 586 ms to 319 ms, and small documents are unchanged. Plannotator picks it up through the dependency update.

Windows uninstall no longer stalls on the PATH edit

CI caught this one. The uninstall lifecycle smoke test failed three times in a row on a single Windows run with "Could not remove ... from the Windows user PATH", while passing on every other run. The same run's cleanup killed several orphaned browser processes, which turned out to be the cause.

SetEnvironmentVariable writes the registry and then broadcasts WM_SETTINGCHANGE to every top-level window, synchronously, one window at a time, without the flag that skips hung windows. With hung GUI processes around, that broadcast outlasted the uninstaller's 15 second command timeout, PowerShell was killed, and the uninstaller correctly refused to proceed even though the registry edit had already completed. A user with one hung window can hit the same stall.

Both PowerShell scripts now write HKCU\Environment directly, reading and restoring the value without expanding %VARS% and preserving its REG_EXPAND_SZ kind, and broadcast afterwards on a best-effort basis with a one second per-window timeout inside a try/catch, so nothing about notifying open windows can reach the exit code. The fail-closed behavior is intact: a real registry failure still preserves the running CLI, and a timeout with nothing on stdout is still an error because the edit is unproven. A timeout that arrives after the rollback value has been echoed is now treated as the completed edit it is, with a warning that notifying open windows timed out.

  • #1403 by @​backnotprop

Pre-release QA

A review pass before tagging turned up six things worth fixing, all of them shipped here.

An HTML root that became unreadable, replaced by a directory or stripped of read permission, used to throw: Pi left /api/plan unanswered so the tab hung on reload, and Bun returned a 500. Both runtimes now fall back to the startup snapshot exactly as they do for a missing file. The version diff that vanished for the rest of a session once you refreshed is recomputed against the served bytes instead of being omitted, on reload and through the in-app Refresh, with no history written by a GET. The compact touch shell's Options menu had equivalents for the pen and the eye but not for Refresh, and now offers Refresh from disk under the same conditions as the header button. HtmlSurfaceControls rendered its refresh button only inside the eye's branch, so a host passing refresh without the eye got nothing.

Reply threading became one shared rule. resolveReplyParents in @&#8203;plannotator/core/annotation-threads resolves parents linearly and cycle-safely for both the annotations panel and the export, so annotations caught in an inReplyTo cycle are emitted as roots rather than dropped from feedback while the header count still counted them. Both runtimes' PATCH /api/external-annotations now rejects a self-reference or a cycle with a 400, so the invalid state cannot be created in the first place. The WebMCP provider and the viewer also got a hygiene pass: bounded tombstone and request memories, per-instance minted ids, nudge id caps, waiter cleanup on unmount, and a shared retry epoch for diagram blocks.

  • #1405 by @​backnotprop

Additional Changes

  • npm releases: @&#8203;plannotator/core 0.25.0 with @&#8203;plannotator/ui 0.32.0 (#1396), then @&#8203;plannotator/ui 0.33.0 (#1400) and 0.34.0 (#1402) on the same core. Plannotator's own apps are unaffected by all of it.

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".

Pi: Update @&#8203;plannotator/pi-extension to 0.27.9 and restart Pi.

OpenCode: Clear cache and restart:

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

What's Changed

  • feat(webmcp): expose plan review and annotate as WebMCP tools for browser agents by @​backnotprop in #1393
  • feat(annotate): manual refresh of rendered HTML from disk by @​leoreisdias in #1232
  • feat(ui): publish the HTML annotation seams hosts were hand-rolling by @​backnotprop in #1395
  • perf(ui): lazy diagram and math renderers with eager entries for Plannotator by @​backnotprop in #1394
  • chore(packages): bump @​plannotator/core to 0.25.0, @​plannotator/ui to 0.32.0 by @​backnotprop in #1396
  • perf(ui): load the HTML viewer bridge by URL for hosts, with a protocol version and ready timeout by @​backnotprop in #1398
  • fix(ui): 0.32.0 adoption feedback from hosts by @​backnotprop in #1399
  • chore(packages): bump @​plannotator/ui to 0.33.0 by @​backnotprop in #1400
  • fix(ui): 0.33.0 adoption feedback and bump @​plannotator/ui to 0.34.0 by @​backnotprop in #1402
  • chore(ui): update @​plannotator/atomic-editor to 0.8.1 for the editor entry fix by @​backnotprop in 2b9dbc9d
  • fix(uninstall): edit the Windows user PATH through the registry with a best-effort change broadcast by @​backnotprop in #1403
  • fix: pre-release QA findings for 0.27.9 by @​backnotprop in #1405

Community

  • @​leoreisdias built the HTML Refresh action in #1232, including the refresh lifecycle and the annotation restoration reporting that the maintainer additions and the QA pass then built on. It is the latest in a long run of contributions from @​leoreisdias.
  • The Workspaces team's adoption of @&#8203;plannotator/ui drove three of the changes here: the parity seams in #1395, the two rounds of adoption feedback in #1399 and #1402, and the editor measurements filed as #1401 that produced the atomic-editor fix.
  • @​HunterClarke-git reported #1392, where settings tabs appeared only after a delay and an OpenCode session closed while the review window stayed open. The report has been investigated and a fix is designed, but it did not make this release. Work on it is under way.
  • @​arklanq-patronus reported #1367, where annotate-last on Codex fails when a single thread spans several rollout files. @​mohammadrezwankhan has an open pull request for it in #1387, still under review.
  • @​rNoz reported #1388, where the root build script builds the hook before the review bundle it copies from, and opened #1389 with the fix. It is open.
  • The Windows PATH stall was found by the release pipeline's own smoke test rather than by a user, which is what the job is there for.

Full Changelog: backnotprop/plannotator@v0.27.8...v0.27.9

janosmiko/lfk (github:janosmiko/lfk)

v0.18.4: v0.18.4

Compare Source

0.18.4 (2026-08-28)

Features

  • discover victoriametrics monitoring endpoints (#702) (7b79b5a)
PyCQA/isort (pipx:isort)

9.0.1: 9.0.1

Compare Source

🪲 Fixes

Other changes

Full Changelog: PyCQA/isort@9.0.0...9.0.1

Skipped Packages

GitHub Release Notes Unavailable

  • droid: No GitHub release was found for 0.208.1

@renovate
renovate Bot merged commit d855e64 into main Sep 1, 2026
6 checks passed
@renovate
renovate Bot deleted the renovate/mise-packages branch September 1, 2026 10:52
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