Add buzz-backend-sprites: a Fly.io Sprites backend provider - #1
Merged
Conversation
… fixtures New workspace crate implementing the provider protocol's info op and the deploy-path refusals (relay-mesh backstop, malformed nsec, missing owner, indefinite lifetime) per docs/remote-agents.md, targeting Fly.io Sprites. - wire.rs: protocol types (protocol_version 1), name "sprites" - naming.rs: nsec-derived identity, buzz-agent-<12hex> sprite name, k=v label contract with marker+full-pubkey verification (no truncation — sprite labels have no 63-char cap, verified live) - config.rs: 6 lint-safe fields; refuses inactivity_seconds 0 (no conforming indefinite supervisor on this substrate); baked sprig tarball digests per arch - credentials.rs: ambient chain SPRITE_TOKEN → SPRITES_TOKEN → macOS keychain via the sprite CLI's metadata; token never printed (manual redacting Debug) - golden fixtures + harness driving the built binary with poisoned credential env, mirroring the kubernetes crate's arbiter pattern Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, provision fingerprint - env.rs ports the kubernetes binding's §Launch data realization verbatim where the spec is substrate-neutral: clear-then-write authoritative tier (12 keys), no env_vars re-merge when launch is present, respond-to gate mirroring the harness's four modes exactly (untrimmed, allowlist-only validation asymmetry), BUZZ_ACP_NO_PRESENCE refusal, POSIX key rule (reworded: the launcher's shell is the consumer), 1MiB env cap. - New for this substrate: serialize_exports — single-quote total encoding of the resolved env into the export lines the launcher sources, verified by round-tripping hostile values through a real bash oracle. - intent.rs: ProvisionTemplate fingerprint over provisioned artifacts only (sprig pin, adapter pins, launcher/probe digests); env keys and inactivity deliberately excluded — they stream per-attempt and can never wedge. Recorded in-VM, not as a label (checkpoint-restore coherence). - Wire test: the respond-to matrix through the built binary, with the poisoned-credential sentinel as the ordering assertion (gate before credential resolution). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d the substrate seam - substrate.rs: the reconciler's trait. Deliberately inexpressive: no sprite delete, no session kill — the v1 reconciler makes zero destructive substrate calls, and an interface that cannot express a delete cannot be talked into one. - client.rs: reqwest REST (get/create/update/list-sessions with structured rate-limit and already-exists outcomes) + tokio-tungstenite exec: non-TTY [StreamID][payload] framing with mandatory stdin-EOF, TTY+detachable spawn capturing session_info, close-and-drop after the terminal frame (the server otherwise holds ~5s per exec). - Two rules enforced by construction: the exec URL builder has no env parameter (secrets travel as stdin data frames; a test pins the absence), and rustls's ring provider installs idempotently in the constructor as well as main (feature unification breaks auto-select in test binaries too — hit live). - credentials.rs: keychain coordinates fixed against a live keychain — service is sprites-cli:<user-id>, the org keyring_key is the ACCOUNT; the user config file resolves via the metadata's own config_path pointer (the on-disk name carries an unpredictable suffix). - Live gate (BUZZ_SPRITES_LIVE=1): create→labels-round-trip→409→exec stdin/stdout/stderr/exit→detached spawn survives disconnect→destroy, all green against api.sprites.dev. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…isioning launcher.sh runs as the detachable session's pane process and ends in a single exec into the harness, so every substrate signal lands on buzz-acp itself (spec L1 item 3). Before that: flock election on fd 9 (held across exec for exactly the harness's lifetime, -w 5 so a probe can never assassinate a contender), sourcing and shredding the per-attempt /dev/shm env file, and the task heartbeat — load-bearing, not belt-and-braces, because an agent's outbound relay websocket is invisible to sprite idle detection. probe.sh emits the three independent liveness signals (lock/comm/gen) as one JSON line — the only in-sprite bytes the provider ever quotes into an error. started = lock held AND comm buzz-acp; permission to start needs all negatives, so mixed transients keep polling instead of double-starting. provision.rs converges artifacts to the fingerprint: sha256-verified sprig tarball before extraction, personality symlinks, pinned npm adapters, assets, and the intent record written LAST atomically (a crash mid-provision reads as divergence, never as done). Live-verified end to end on a throwaway sprite: provision, detached start, probe convergence, env-file shred, heartbeat present, loser exits 3, TERM stops the harness and releases the hold. Trap paid: install(1) refuses a symlink destination, so the test's stub swap removes the link first. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
classify.rs is the spec's state machine as a pure function; reconcile.rs is the loop that drives it (2s poll, 600s deadline, injected clock) with one create, one provision and one start per call. The Action enum has no delete variant and the Substrate trait no delete method: this binding makes zero destructive substrate calls, so a persistent VM's stale state is always converged in place rather than replaced. Rows worth naming: a started agent is a strict no-op returning its agent_id with zero writes even when config diverges (edits land on the next generation — the spec's documented consequence, confirmed live); an unverifiable sprite under our deterministic name is a hard error that touches nothing; the create-race loser observes the winner instead of provisioning on top of it; a dead attempt of our own is an in-band error naming the generation THAT RAN and the probe tokens, never a retry. Three bugs the live path caught that the fakes had hidden, each with the fake made faithful so it cannot hide them again: - a fresh sprite polled to its 600s deadline: the probe script only exists after provisioning, so waiting for a report was waiting forever. - the create-race loser provisioned the winner's sprite (two tarball extractions into one directory is not convergence). - install(1) refuses an existing destination, so every REPROVISION failed where the first install succeeded; assets now write-chmod-rename. Live matrix on a throwaway sprite, through the release binary: cold create+provision+start (4.2s to confirmed start), second deploy no-op (0.7s), TERM then revive with a fresh generation, live+changed-config no-op, stopped+changed-config reprovision (fingerprint moved, adapter installed), and a startup failure reported honestly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ate's tests The spec requires every binding to document how it realizes each [L2] term on its substrate (§Conformance item 6). The crate README is that document: identity and ownership evidence, what "started" means here, how at-most-one-live-agent is enforced, why Services are unusable and indefinite lifetime is refused, how signals reach the harness, why the task lease is load-bearing rather than belt-and-braces, where secrets do and do not travel, what a fingerprint change does to a running agent (nothing, until it exits), and the two costs of never destroying anything: an orphaned sprite and a base image outside our pin. Justfile:test-unit and scripts/run-tests.sh gain the crate — nothing in CI runs workspace-wide tests, so a crate absent from both lists has its suite silently skipped. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…jects it A launchd-minimal desktop resolves its token from the sprite CLI's keychain entry — and on current CLI versions that entry is wrapped, so the API answers 401 to a credential the provider had every reason to believe in. "GET sprite returned 401" sends the reader hunting through three possible sources; the client now names the one that produced the rejected token and the fix for it. Verified against the live API from an env -i shell, both arms. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One fix per finding, in review order: 1. [P1] Serialize provisioning under a sprite-wide fence: both mutating actions (Provision, Start) now require an in-sprite deploy lease (deploy.lease: token + expiry, every read-modify-write under flock on a stable-inode lock file). Every ensure() step re-verifies and refreshes the lease while holding the flock for the step's duration, so a stalled deploy loses the fence only after the 420s TTL. On acquisition the loop re-observes before acting, so the observation that authorizes a provision or start is itself made under the fence; the lease is held through the started-confirmation and released on every terminal path. 2. [P1] Pass the Sprig URL without shell evaluation: the release URL now rides into the install script as bash positional $1 — no interpolation, so no substitution surface. Defense in depth: config::parse refuses any sprig_version outside [A-Za-z0-9._-], which also blocks URL-shape escapes (/, ?, #) into other release paths. 3. [P2] Provision or reject the selected runtime: deploy_agent now gates launch.command before any substrate contact. Allowed: buzz-agent (sprig multicall, always installed) and claude-agent-acp / codex-acp when their install flags are on (npm bin names verified against the pinned packages). Anything else — goose included, and the no-command case, which the harness would default to goose — is refused with the remedy named, instead of mutating the sprite and dying at exec. 4. [P2] Require the initial task lease before exec: the launcher's first Tasks-API PUT is now mandatory — five bounded attempts, then exit 4, which releases the election flock so the probe reads stopped and the deploy reports startup failure instead of success for an agent that would hibernate unreachable inside the quiet-idle window. 5. [P2] Enforce the promised Sprig integrity check: the reconciler's observe stage now runs provision::spot_check whenever the recorded fingerprint matches and the state could otherwise authorize a Start; a failed hash reads as divergence and takes the full-provision path (under the new lease), bounded by the existing one-provision-per-call rule. New coverage: lease ordering/held/blocked/released-on-failure loop tests, spot-check repair test, launch-gate unit tests, sprig_version grammar tests, a launcher asset test pinning the mandatory first lease, a deploy-unprovisioned-command wire fixture, and live-test assertions that a foreign token is contended while the lease is live. The conformance README documents the fence, the enforced spot check, the mandatory first hold, and the supported-runtime set. Verified: cargo test -p buzz-backend-sprites (117 unit + 4 wire, all pass; the two live tests skip without BUZZ_SPRITES_LIVE), cargo clippy --all-targets -D warnings, shellcheck on launcher.sh. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Junchao Yan <yjc801@gmail.com>
One fix per finding, in review order:
1. [P1] Revalidate the lease immediately before Start: new
provision::confirm_lease re-verifies (and refreshes) ownership under
the flock, and the Start arm calls it before staging env or launching
— the in-memory lease_held flag is never trusted across the TTL. A
failed confirmation discards the observation, resets lease_held, and
re-enters the loop (re-acquire, re-observe). Deliberately confirm,
not reacquire: an absent lease file after we held it means a
successor ran and released, so the observation predates its writes
even though the lease is free.
2. [P2] Generation-scoped keep-awake task: the launcher's task is now
buzz-agent-${GEN}, defined once as TASK_URL and used by the initial
PUT, the refresh loop, and the EXIT trap. A predecessor's late-waking
heartbeat can only delete its own attempt's hold; an orphaned task
self-expires in one lease period. Asset test pins that exactly one
task URL exists and carries the generation.
3. [P2] Normalize the command the harness receives: env::build_env now
stores BUZZ_ACP_AGENT_COMMAND trimmed (and collapses whitespace-only
to absent), so the value the launch gate validated is byte-identical
to what the harness spawns — same validator/writer-agreement rule the
identity components already follow.
New coverage: lost-lease-before-start loop test (confirm fails, loop
re-acquires, exactly one start after the passing confirm), confirm
ordering asserted in the happy-path lease test, generation-scoped-task
asset test, trimmed-command env test. README conformance doc updated for
the pre-start confirmation and the generation-scoped task name.
Verified: cargo test -p buzz-backend-sprites (120 unit + 4 wire, all
pass; live tests skip without BUZZ_SPRITES_LIVE), cargo clippy
--all-targets -D warnings, shellcheck on launcher.sh.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Junchao Yan <yjc801@gmail.com>
…rig pins; explain a stale pin Three fixes from a live agent session. 1. Relay git auth was missing entirely. The desktop's local spawn wires git-credential-nostr through ephemeral GIT_CONFIG_* vars scoped to the relay's git URL; the sprite had none, so an agent could not clone from the relay (github.com fails separately for want of a credential). The launcher now mirrors that wiring exactly — scoped to the relay URL, so an unscoped helper never answers for github.com, and pointed at the image-local helper, since a forwarded host path cannot exist here. NOSTR_PRIVATE_KEY is already authoritative env; git 2.53 in the base image is well past the 2.46 the challenge-based helper needs. 2. Baked sprig digests refreshed. Block re-published sprig-latest the same day it was pinned, so provisioning failed on a checksum mismatch — the verification working as designed against a stale pin. 3. That failure surfaced as bare sha256sum output, naming neither the artifact nor the fix. It now explains the rolling tag, states nothing was installed, and points at provider_config.sprig_sha256 or a provider update. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e publishes A compiled-in pin cannot hold against sprig-latest. It is a rolling tag that upstream re-publishes on every commit — it moved twice in one afternoon, and each move failed every deploy on a checksum mismatch that said nothing about the artifact's integrity, only about the pin's age. So the baked pins are gone. When the owner has not set provider_config.sprig_sha256, the reference is now the digest the release publishes beside the tarball: the trust root becomes the GitHub release rather than this provider's build date, and the check covers transport integrity. An explicit sprig_sha256 is still honored verbatim and still demands provenance — that is the knob for owners who want to pin an exact artifact and accept updating it when the release moves. The two mismatches now read differently, because they mean different things: against a pin, the pin is stale or the artifact is not the one you pinned; against a published digest, the download was corrupted or the release was re-published mid-provision, and starting again re-reads both. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…he pins Three leftovers from dropping the baked digests: the release-tag constant still promised pins "below", the struct field still called None a baked pin, and the digest-policy paragraph had been silently adopted as the adapter-version constant's doc comment when I closed a clippy warning by deleting the blank line under it. It documents a decision, not an item, so it is a plain comment now. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
An agent deployed into a fresh sprite could not run a single tool — not a shell, not a file read, not its own git clone. The harness answers every ACP permission request with a denial (there is no approval path in it at all) and overrides the mode the Sprites image itself ships (defaultMode: bypassPermissions). So 'dontAsk' meant 'deny everything', and the only cure was hand-writing allow rules into each new sprite — which every recreated agent then lost, because a new identity means a new sprite. Provisioning now writes those rules, behind provider_config .preapprove_agent_tools (default on; turn it off for a converse-only agent). The step merges into the image's settings with python3 rather than overwriting them: the base image keeps hooks and policy in the same file, and clobbering it would trade one breakage for another. The flag is part of the provision fingerprint, so toggling it reprovisions like any other artifact change. The script builder is shared with its test, so the assertions — merges rather than replaces, targets the file Claude Code reads, grants exactly the named tools and no wildcard — cover the script that actually runs. Live rerun still owed: the dev token minted for it expired (the client said so precisely, which is its own small proof). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…fb20 1. [P1] Flipping preapprove_agent_tools off now REVOKES the provider-owned allow rules instead of skipping the settings step: provisioning converges the pre-approval in both directions (tool_permission_script), removing exactly the provider's entries and leaving anything anyone else wrote. Behavioral test executes the real grant/revoke cycle against a settings file with foreign entries and image policy. 2. [P1] The tool policy now reaches Codex sessions: codex-acp never reads Claude Code's settings, so build_env writes INITIAL_AGENT_MODE as a tier-1 (user-overridable) default for codex-acp launches — agent-full-access when the flag is on, read-only when off. Config docs/schema state the per-runtime realization. 3. [P2] The rolling digest is resolved lazily and at most once per deploy call (resolve_once): the observe path computes the desired fingerprint only under the exact conditions where classify could reach its recorded-vs-desired comparison, so a healthy no-op deploy and every polling iteration are independent of GitHub release availability, and a release republished mid-loop can no longer flip a just-converged sprite back to diverged. Regression tests pin zero release reads on the live no-op and a single digest fetch on the cold path. 4. [P2] The settings merge writes a sibling temp file and os.replace()s it atomically, preserving the file's mode — an interrupted write can no longer leave truncated JSON that wedges every later provision at json.loads. 5. [P2] README: the configuration table and trust-delta section now state the release-rooted trust model (owner pin = provenance; default = transport integrity against the digest published beside the same mutable release) and document preapprove_agent_tools. Verified: cargo test -p buzz-backend-sprites (128 unit + 4 provider-wire, all pass; live tests self-skip without BUZZ_SPRITES_LIVE), clippy --all-targets -D warnings, shellcheck on launcher.sh/probe.sh, git diff --check. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Junchao Yan <yjc801@gmail.com>
yjc801
added a commit
that referenced
this pull request
Aug 7, 2026
One fix per finding, in review order: 1. [P1] Serialize provisioning under a sprite-wide fence: both mutating actions (Provision, Start) now require an in-sprite deploy lease (deploy.lease: token + expiry, every read-modify-write under flock on a stable-inode lock file). Every ensure() step re-verifies and refreshes the lease while holding the flock for the step's duration, so a stalled deploy loses the fence only after the 420s TTL. On acquisition the loop re-observes before acting, so the observation that authorizes a provision or start is itself made under the fence; the lease is held through the started-confirmation and released on every terminal path. 2. [P1] Pass the Sprig URL without shell evaluation: the release URL now rides into the install script as bash positional $1 — no interpolation, so no substitution surface. Defense in depth: config::parse refuses any sprig_version outside [A-Za-z0-9._-], which also blocks URL-shape escapes (/, ?, #) into other release paths. 3. [P2] Provision or reject the selected runtime: deploy_agent now gates launch.command before any substrate contact. Allowed: buzz-agent (sprig multicall, always installed) and claude-agent-acp / codex-acp when their install flags are on (npm bin names verified against the pinned packages). Anything else — goose included, and the no-command case, which the harness would default to goose — is refused with the remedy named, instead of mutating the sprite and dying at exec. 4. [P2] Require the initial task lease before exec: the launcher's first Tasks-API PUT is now mandatory — five bounded attempts, then exit 4, which releases the election flock so the probe reads stopped and the deploy reports startup failure instead of success for an agent that would hibernate unreachable inside the quiet-idle window. 5. [P2] Enforce the promised Sprig integrity check: the reconciler's observe stage now runs provision::spot_check whenever the recorded fingerprint matches and the state could otherwise authorize a Start; a failed hash reads as divergence and takes the full-provision path (under the new lease), bounded by the existing one-provision-per-call rule. New coverage: lease ordering/held/blocked/released-on-failure loop tests, spot-check repair test, launch-gate unit tests, sprig_version grammar tests, a launcher asset test pinning the mandatory first lease, a deploy-unprovisioned-command wire fixture, and live-test assertions that a foreign token is contended while the lease is live. The conformance README documents the fence, the enforced spot check, the mandatory first hold, and the supported-runtime set. Verified: cargo test -p buzz-backend-sprites (117 unit + 4 wire, all pass; the two live tests skip without BUZZ_SPRITES_LIVE), cargo clippy --all-targets -D warnings, shellcheck on launcher.sh. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Junchao Yan <yjc801@gmail.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [clap](https://github.com/clap-rs/clap) | dependencies | patch | `4.6.1` → `4.6.6` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>clap-rs/clap (clap)</summary> ### [`v4.6.6`](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.5...clap_complete-v4.6.6) [Compare Source](https://github.com/clap-rs/clap/compare/v4.6.5...v4.6.6) ### [`v4.6.5`](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.4...clap_complete-v4.6.5) [Compare Source](https://github.com/clap-rs/clap/compare/v4.6.4...v4.6.5) ### [`v4.6.4`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#464---2026-07-21) [Compare Source](https://github.com/clap-rs/clap/compare/v4.6.3...v4.6.4) ##### Internal - Update to syn v3 ### [`v4.6.3`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#463---2026-07-20) [Compare Source](https://github.com/clap-rs/clap/compare/v4.6.2...v4.6.3) ##### Fixes - *(derive)* Allow `"literal".function()` as attribute values ### [`v4.6.2`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#462---2026-07-15) [Compare Source](https://github.com/clap-rs/clap/compare/v4.6.1...v4.6.2) ##### Fixes - *(help)* Say `alias` when there is only one </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [async-compression](https://github.com/Nullus157/async-compression) | dependencies | patch | `0.4.42` → `0.4.43` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>Nullus157/async-compression (async-compression)</summary> ### [`v0.4.43`](https://github.com/Nullus157/async-compression/releases/tag/async-compression-v0.4.43) [Compare Source](https://github.com/Nullus157/async-compression/compare/async-compression-v0.4.42...async-compression-v0.4.43) ##### Other - Fix hang when decoding a corrupt subsequent zstd frame ([#​470](https://github.com/Nullus157/async-compression/pull/470)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [diffy](https://github.com/bmwill/diffy) | dependencies | patch | `0.5.0` → `0.5.1` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>bmwill/diffy (diffy)</summary> ### [`v0.5.1`](https://github.com/bmwill/diffy/blob/HEAD/CHANGELOG.md#051---2026-07-18) [Compare Source](https://github.com/bmwill/diffy/compare/0.5.0...0.5.1) ##### Fixed - [#​85](https://github.com/bmwill/diffy/pull/85) Merge conflict markers are now always placed on their own lines. Previously, a conflicting hunk at the end of a file without a trailing newline glued the next marker onto its last content line, producing unparseable output. This matches `git merge-file --diff3` behavior. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | [async-trait](https://github.com/dtolnay/async-trait) | dependencies | patch | `0.1.89` → `0.1.91` | `0.1.92` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>dtolnay/async-trait (async-trait)</summary> ### [`v0.1.91`](https://github.com/dtolnay/async-trait/compare/0.1.90...0.1.91) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.90...0.1.91) ### [`v0.1.90`](https://github.com/dtolnay/async-trait/releases/tag/0.1.90) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.89...0.1.90) - Update to syn 3 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [arc-swap](https://github.com/vorner/arc-swap) | dependencies | patch | `1.9.1` → `1.9.2` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>vorner/arc-swap (arc-swap)</summary> ### [`v1.9.2`](https://github.com/vorner/arc-swap/blob/HEAD/CHANGELOG.md#192) - Document RefCnt must not panic ([#​208](https://github.com/vorner/arc-swap/issues/208)). </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://github.com/dtolnay/anyhow) | dependencies | patch | `1.0.103` → `1.0.104` | | [anyhow](https://github.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.103` → `1.0.104` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>dtolnay/anyhow (anyhow)</summary> ### [`v1.0.104`](https://github.com/dtolnay/anyhow/releases/tag/1.0.104) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.103...1.0.104) - Update `syn` dev-dependency to version 3 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---| | [@isomorphic-git/lightning-fs](https://github.com/isomorphic-git/lightning-fs) | [`4.6.2` → `4.6.3`](https://renovatebot.com/diffs/npm/@isomorphic-git%2flightning-fs/4.6.2/4.6.3) |  |  | dependencies | patch | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme) ([source](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react)) | [`6.0.3` → `6.0.5`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react/6.0.3/6.0.5) |  |  | devDependencies | patch | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme) ([source](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react)) | [`6.0.3` → `6.0.5`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react/6.0.3/6.0.5) |  |  | dependencies | patch | | [dorny/paths-filter](https://github.com/dorny/paths-filter) | `v4.0.2` → `v4.0.3` |  |  | action | patch | | [isomorphic-git](https://isomorphic-git.org/) ([source](https://github.com/isomorphic-git/isomorphic-git)) | [`1.38.7` → `1.38.10`](https://renovatebot.com/diffs/npm/isomorphic-git/1.38.7/1.38.10) |  |  | dependencies | patch | | [postcss](https://postcss.org/) ([source](https://github.com/postcss/postcss)) | [`8.5.19` → `8.5.26`](https://renovatebot.com/diffs/npm/postcss/8.5.19/8.5.26) |  |  | devDependencies | patch | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>isomorphic-git/lightning-fs (@​isomorphic-git/lightning-fs)</summary> ### [`v4.6.3`](https://github.com/isomorphic-git/lightning-fs/releases/tag/v4.6.3) [Compare Source](https://github.com/isomorphic-git/lightning-fs/compare/v4.6.2...v4.6.3) ##### Bug Fixes - IDB interface ([#​127](https://github.com/isomorphic-git/lightning-fs/issues/127)) ([035e472](https://github.com/isomorphic-git/lightning-fs/commit/035e4725b9e6aa72d10cadc5ace20dec7ac76afb)) </details> <details> <summary>vitejs/vite-plugin-react (@​vitejs/plugin-react)</summary> ### [`v6.0.5`](https://github.com/vitejs/vite-plugin-react/blob/HEAD/packages/plugin-react/CHANGELOG.md#605-2026-07-30) [Compare Source](https://github.com/vitejs/vite-plugin-react/compare/f4b549822ec239799d746c030abb0b9a7d8f0a04...68c0cb8796ce18bd049c3d05c5210eaf0617eac0) ##### Fixed the react compiler preset filter to be linear ([#​1353](https://github.com/vitejs/vite-plugin-react/pull/1353)) The improved filter in v6.0.3 was non-linear and caused a performance regression ([#​1349](https://github.com/vitejs/vite-plugin-react/issues/1349)). The filter was changed to be linear to avoid that. ### [`v6.0.4`](https://github.com/vitejs/vite-plugin-react/blob/HEAD/packages/plugin-react/CHANGELOG.md#604-2026-07-22) [Compare Source](https://github.com/vitejs/vite-plugin-react/compare/640fd358a0e82393acfce4e92e19a6ac6e1641a7...f4b549822ec239799d746c030abb0b9a7d8f0a04) ##### Fixed `$RefreshSig$ is not defined` error when running `vite dev` with `NODE_ENV=production` When running `vite dev` with `NODE_ENV=production`, the app errored with `$RefreshSig$ is not defined`. This error is now fixed. </details> <details> <summary>dorny/paths-filter (dorny/paths-filter)</summary> ### [`v4.0.3`](https://github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v403) [Compare Source](https://github.com/dorny/paths-filter/compare/v4.0.2...v4.0.3) - [Document safe handling of file list outputs in workflows](https://github.com/dorny/paths-filter/pull/326) - [Escape multi-line filenames in list-files shell and csv output](https://github.com/advisories/GHSA-7hc6-8hq5-9q2m) - [Add 'some-with-excludes' predicate quantifier](https://github.com/dorny/paths-filter/pull/322) - [Add contents permission to PR example](https://github.com/dorny/paths-filter/pull/248) - [Scope base-ignored warning to API path](https://github.com/dorny/paths-filter/pull/319) - [Update outputs in readme to account for the 'every' predicate-quantifier](https://github.com/dorny/paths-filter/pull/247) </details> <details> <summary>isomorphic-git/isomorphic-git (isomorphic-git)</summary> ### [`v1.38.10`](https://github.com/isomorphic-git/isomorphic-git/releases/tag/v1.38.10) [Compare Source](https://github.com/isomorphic-git/isomorphic-git/compare/v1.38.9...v1.38.10) ##### Bug Fixes - **statusMatrix:** do not traverse symlinks in GitWalkerFs ([#​1215](https://github.com/isomorphic-git/isomorphic-git/issues/1215)) ([#​2382](https://github.com/isomorphic-git/isomorphic-git/issues/2382)) ([90ea101](https://github.com/isomorphic-git/isomorphic-git/commit/90ea101d329daa84b99cc0140a6275896ebbaf68)) ### [`v1.38.9`](https://github.com/isomorphic-git/isomorphic-git/releases/tag/v1.38.9) [Compare Source](https://github.com/isomorphic-git/isomorphic-git/compare/v1.38.8...v1.38.9) ##### Bug Fixes - Preserve binary files when writing conflicted working tree ([#​2380](https://github.com/isomorphic-git/isomorphic-git/issues/2380)) ([b41b1ab](https://github.com/isomorphic-git/isomorphic-git/commit/b41b1abc3df87326e639b49d0694915540d6dfb5)) ### [`v1.38.8`](https://github.com/isomorphic-git/isomorphic-git/releases/tag/v1.38.8) [Compare Source](https://github.com/isomorphic-git/isomorphic-git/compare/v1.38.7...v1.38.8) ##### Bug Fixes - unsafe symlink from cherry pick ([#​2377](https://github.com/isomorphic-git/isomorphic-git/issues/2377)) ([4664c8e](https://github.com/isomorphic-git/isomorphic-git/commit/4664c8e1147c3c7ba87c027e92093d28607ef4c0)) </details> <details> <summary>postcss/postcss (postcss)</summary> ### [`v8.5.26`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8526) [Compare Source](https://github.com/postcss/postcss/compare/8.5.25...8.5.26) - Fixed `list.split()` regression (by [@​lazerg](https://github.com/lazerg)). - Track symlinks in path protection in source map loading (by [@​drengir1](https://github.com/drengir1)). ### [`v8.5.25`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8525) [Compare Source](https://github.com/postcss/postcss/compare/8.5.24...8.5.25) - Fixed 8.5.17 visitor regression. - Fixed `list.split()` for non-string values (by [@​amir-rezaei](https://github.com/amir-rezaei)). ### [`v8.5.24`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8524) [Compare Source](https://github.com/postcss/postcss/compare/8.5.23...8.5.24) - Preserve the BOM after the processing (by [@​hdimer](https://github.com/hdimer)). ### [`v8.5.23`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8523) [Compare Source](https://github.com/postcss/postcss/compare/8.5.22...8.5.23) - Do not load source map without `opts.from` for security reasons. ### [`v8.5.22`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8522) [Compare Source](https://github.com/postcss/postcss/compare/8.5.21...8.5.22) - Fixed custom property losing semicolon before a comment (by [@​sarathfrancis90](https://github.com/sarathfrancis90)). ### [`v8.5.21`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8521) [Compare Source](https://github.com/postcss/postcss/compare/8.5.20...8.5.21) - Fixed childless at-rule losing semicolon before comment (by [@​sarathfrancis90](https://github.com/sarathfrancis90)). - Fixed docs (by [@​isker](https://github.com/isker)). ### [`v8.5.20`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8520) [Compare Source](https://github.com/postcss/postcss/compare/8.5.19...8.5.20) - Fixed missing space if `AtRule#params` is set after (by [@​sarathfrancis90](https://github.com/sarathfrancis90)). - Fixed mixing AST error on warnings (by [@​MahinAnowar](https://github.com/MahinAnowar)). </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEyLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
…ock#4439) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tanstack/react-virtual](https://tanstack.com/virtual) ([source](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual)) | [`3.14.8` → `3.14.9`](https://renovatebot.com/diffs/npm/@tanstack%2freact-virtual/3.14.8/3.14.9) |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>TanStack/virtual (@​tanstack/react-virtual)</summary> ### [`v3.14.9`](https://github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3149) [Compare Source](https://github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.14.8...@tanstack/react-virtual@3.14.9) ##### Patch Changes - Updated dependencies \[[`a5417b4`](https://github.com/TanStack/virtual/commit/a5417b4b0d3c82876747bb9635db7239c28d3e44)]: - [@​tanstack/virtual-core](https://github.com/tanstack/virtual-core)@​3.17.7 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 9, 2026
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`19.2.17` → `19.2.18`](https://renovatebot.com/diffs/npm/@types%2freact/19.2.17/19.2.18) |  |  | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom)) | [`19.2.3` → `19.2.4`](https://renovatebot.com/diffs/npm/@types%2freact-dom/19.2.3/19.2.4) |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Wes <wesbillman@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) ([changelog](https://github.com/Swatinem/rust-cache/compare/e18b497796c12c097a38f9edb9d0641fb99eee32..6323deb102c322ba6fcbdcafc7e3dddab59af2b6)) | action | digest | `e18b497` → `6323deb` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ubuntu](https://hub.docker.com/_/ubuntu) ([source](https://git.launchpad.net/cloud-images/+oci/ubuntu-base)) | container | digest | `4fbb8e6` → `561618e` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tauri-apps/api](https://github.com/tauri-apps/tauri) | [`2.11.0` → `2.11.1`](https://renovatebot.com/diffs/npm/@tauri-apps%2fapi/2.11.0/2.11.1) |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>tauri-apps/tauri (@​tauri-apps/api)</summary> ### [`v2.11.1`](https://github.com/tauri-apps/tauri/releases/tag/%40tauri-apps/api-v2.11.1): @​tauri-apps/api v2.11.1 [Compare Source](https://github.com/tauri-apps/tauri/compare/@tauri-apps/api-v2.11.0...@tauri-apps/api-v2.11.1) <details> <summary><em><h4>PNPM Audit</h4></em></summary> ``` No known vulnerabilities found ``` </details> #### \[2.11.1] ##### Enhancements - [`916782601`](https://www.github.com/tauri-apps/tauri/commit/9167826011cc3d114bf12dfb301968fae479891f) ([#​15520](https://github.com/tauri-apps/tauri/pull/15520) by [@​polw1](https://www.github.com/tauri-apps/tauri/../../polw1)) Document that `Monitor.size`, `Monitor.position` and `Monitor.workArea` are in physical pixels, with examples showing how to convert them to the logical pixels expected by window creation options via `toLogical(monitor.scaleFactor)`. <details> <summary><em><h4>PNPM Publish</h4></em></summary> ``` > @tauri-apps/api@2.11.1 npm-publish /home/runner/work/tauri/tauri/packages/api > pnpm build && cd ./dist && pnpm publish --access public --loglevel silly --no-git-checks > @tauri-apps/api@2.11.1 build /home/runner/work/tauri/tauri/packages/api > rollup -c --configPlugin typescript �[36m �[1m./src/app.ts, ./src/core.ts, ./src/dpi.ts, ./src/event.ts, ./src/image.ts, ./src/index.ts, ./src/menu.ts, ./src/mocks.ts, ./src/path.ts, ./src/tray.ts, ./src/webview.ts, ./src/webviewWindow.ts, ./src/window.ts�[22m → �[1m./dist, ./dist�[22m...�[39m �[32mcreated �[1m./dist, ./dist�[22m in �[1m883ms�[22m�[39m �[36m �[1msrc/index.ts�[22m → �[1m../../crates/tauri/scripts/bundle.global.js�[22m...�[39m �[32mcreated �[1m../../crates/tauri/scripts/bundle.global.js�[22m in �[1m1.4s�[22m�[39m npm verbose cli /opt/hostedtoolcache/node/24.16.0/x64/bin/node /opt/hostedtoolcache/node/24.16.0/x64/bin/npm npm info using npm@11.13.0 npm info using node@v24.16.0 npm silly config load:file:/opt/hostedtoolcache/node/24.16.0/x64/lib/node_modules/npm/npmrc npm silly config load:file:/tmp/286e8dee195254a4370e608b672019b0/.npmrc npm silly config load:file:/home/runner/.npmrc npm silly config load:file:/home/runner/.config/pnpm/rc npm verbose title npm publish tauri-apps-api-2.11.1.tgz npm verbose argv "publish" "--ignore-scripts" "tauri-apps-api-2.11.1.tgz" "--access" "public" "--loglevel" "silly" npm verbose logfile logs-max:10 dir:/home/runner/.npm/_logs/2026-06-17T13_41_23_851Z- npm verbose logfile /home/runner/.npm/_logs/2026-06-17T13_41_23_851Z-debug-0.log npm warn Unknown env config "verify-deps-before-run". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. npm warn Unknown env config "npm-globalconfig". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. npm warn Unknown env config "overrides". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. npm warn Unknown env config "_jsr-registry". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. npm silly logfile done cleaning log files npm verbose publish [ 'tauri-apps-api-2.11.1.tgz' ] npm http cache file:/tmp/286e8dee195254a4370e608b672019b0/tauri-apps-api-2.11.1.tgz 0ms (cache hit) npm notice npm notice 📦 @tauri-apps/api@2.11.1 npm notice Tarball Contents npm notice 99.3kB CHANGELOG.md npm notice 10.2kB LICENSE_APACHE-2.0 npm notice 1.1kB LICENSE_MIT npm notice 3.5kB README.md npm notice 5.9kB app.cjs npm notice 5.4kB app.d.ts npm notice 5.5kB app.js npm notice 11.2kB core.cjs npm notice 6.5kB core.d.ts npm notice 10.7kB core.js npm notice 11.0kB dpi.cjs npm notice 8.8kB dpi.d.ts npm notice 10.8kB dpi.js npm notice 5.8kB event.cjs npm notice 4.9kB event.d.ts npm notice 5.7kB event.js npm notice 2.2kB external/tslib/tslib.es6.cjs npm notice 2.2kB external/tslib/tslib.es6.js npm notice 3.0kB image.cjs npm notice 2.4kB image.d.ts npm notice 2.9kB image.js npm notice 738B index.cjs npm notice 1.2kB index.d.ts npm notice 669B index.js npm notice 1.1kB menu.cjs npm notice 451B menu.d.ts npm notice 717B menu.js npm notice 3.6kB menu/base.cjs npm notice 887B menu/base.d.ts npm notice 3.6kB menu/base.js npm notice 2.2kB menu/checkMenuItem.cjs npm notice 1.5kB menu/checkMenuItem.d.ts npm notice 2.2kB menu/checkMenuItem.js npm notice 7.4kB menu/iconMenuItem.cjs npm notice 6.1kB menu/iconMenuItem.d.ts npm notice 7.4kB menu/iconMenuItem.js npm notice 5.1kB menu/menu.cjs npm notice 4.4kB menu/menu.d.ts npm notice 5.0kB menu/menu.js npm notice 1.7kB menu/menuItem.cjs npm notice 1.3kB menu/menuItem.d.ts npm notice 1.6kB menu/menuItem.js npm notice 1.1kB menu/predefinedMenuItem.cjs npm notice 2.6kB menu/predefinedMenuItem.d.ts npm notice 1.1kB menu/predefinedMenuItem.js npm notice 7.1kB menu/submenu.cjs npm notice 4.8kB menu/submenu.d.ts npm notice 6.9kB menu/submenu.js npm notice 9.8kB mocks.cjs npm notice 5.0kB mocks.d.ts npm notice 9.7kB mocks.js npm notice 1.8kB package.json npm notice 22.7kB path.cjs npm notice 17.7kB path.d.ts npm notice 21.7kB path.js npm notice 7.1kB tray.cjs npm notice 8.5kB tray.d.ts npm notice 7.0kB tray.js npm notice 20.7kB webview.cjs npm notice 23.8kB webview.d.ts npm notice 20.5kB webview.js npm notice 8.4kB webviewWindow.cjs npm notice 4.9kB webviewWindow.d.ts npm notice 8.3kB webviewWindow.js npm notice 68.1kB window.cjs npm notice 64.9kB window.d.ts npm notice 67.2kB window.js npm notice Tarball Details npm notice name: @tauri-apps/api npm notice version: 2.11.1 npm notice filename: tauri-apps-api-2.11.1.tgz npm notice package size: 135.7 kB npm notice unpacked size: 699.0 kB npm notice shasum: cd6b13fc26403ca095a02e39ecdbec8048d2872d npm notice integrity: sha512-M2FPuYND2m+wh[...]sUepJWugQCvAA== npm notice total files: 67 npm notice npm http fetch GET https://run-actions-1-azure-eastus.actions.githubusercontent.com/113//idtoken/***/***?api-version=2.0&audience=npm%3Aregistry.npmjs.org 200 76ms npm http fetch POST 201 https://registry.npmjs.org/-/npm/v1/oidc/token/exchange/package/@tauri-apps%2fapi 674ms npm verbose oidc Successfully retrieved and set token npm http fetch GET 200 https://registry.npmjs.org/@tauri-apps%2fapi 54ms (cache miss) npm notice Publishing to https://registry.npmjs.org/ with tag latest and public access npm notice publish Signed provenance statement with source and build information from GitHub Actions npm notice publish Provenance statement published to transparency log: https://search.sigstore.dev/?logIndex=1851797040 npm http fetch PUT 200 https://registry.npmjs.org/@tauri-apps%2fapi 2070ms + @tauri-apps/api@2.11.1 npm verbose cwd /tmp/286e8dee195254a4370e608b672019b0 npm verbose os Linux 6.17.0-1018-azure npm verbose node v24.16.0 npm verbose npm v11.13.0 npm verbose exit 0 npm info ok ``` </details> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [futures](https://rust-lang.github.io/futures-rs) ([source](https://github.com/rust-lang/futures-rs)) | dev-dependencies | patch | `0.3.32` → `0.3.34` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>rust-lang/futures-rs (futures)</summary> ### [`v0.3.34`](https://github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0334---2026-08-11) [Compare Source](https://github.com/rust-lang/futures-rs/compare/0.3.33...0.3.34) - Preserve cloned waker identity. ([#​3032](https://github.com/rust-lang/futures-rs/issues/3032)) - Updato `syn` to 3. ([#​3028](https://github.com/rust-lang/futures-rs/issues/3028)) ### [`v0.3.33`](https://github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0333---2026-07-18) [Compare Source](https://github.com/rust-lang/futures-rs/compare/0.3.32...0.3.33) - Fix `ReadLine`'s soundness issue regarding to exception safety. ([#​3020](https://github.com/rust-lang/futures-rs/issues/3020)) - Fix unsound `Send` impl for `IterPinRef` and `Iter`. ([#​3003](https://github.com/rust-lang/futures-rs/issues/3003)) - Fix stacked borrows violation in `compat01as03` implementation. ([#​3012](https://github.com/rust-lang/futures-rs/issues/3012)) - Fix memory leak in `FuturesUnordered::IntoIter`. ([#​3005](https://github.com/rust-lang/futures-rs/issues/3005)) - Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`. ([#​3007](https://github.com/rust-lang/futures-rs/issues/3007)) - Re-export `alloc::task::Wake`. ([#​3010](https://github.com/rust-lang/futures-rs/issues/3010)) - Update `spin` to 0.12. ([#​3014](https://github.com/rust-lang/futures-rs/issues/3014)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [futures-util](https://rust-lang.github.io/futures-rs) ([source](https://github.com/rust-lang/futures-rs)) | dependencies | patch | `0.3.32` → `0.3.34` | | [futures-util](https://rust-lang.github.io/futures-rs) ([source](https://github.com/rust-lang/futures-rs)) | workspace.dependencies | patch | `0.3.32` → `0.3.34` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>rust-lang/futures-rs (futures-util)</summary> ### [`v0.3.34`](https://github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0334---2026-08-11) [Compare Source](https://github.com/rust-lang/futures-rs/compare/0.3.33...0.3.34) - Preserve cloned waker identity. ([#​3032](https://github.com/rust-lang/futures-rs/issues/3032)) - Updato `syn` to 3. ([#​3028](https://github.com/rust-lang/futures-rs/issues/3028)) ### [`v0.3.33`](https://github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0333---2026-07-18) [Compare Source](https://github.com/rust-lang/futures-rs/compare/0.3.32...0.3.33) - Fix `ReadLine`'s soundness issue regarding to exception safety. ([#​3020](https://github.com/rust-lang/futures-rs/issues/3020)) - Fix unsound `Send` impl for `IterPinRef` and `Iter`. ([#​3003](https://github.com/rust-lang/futures-rs/issues/3003)) - Fix stacked borrows violation in `compat01as03` implementation. ([#​3012](https://github.com/rust-lang/futures-rs/issues/3012)) - Fix memory leak in `FuturesUnordered::IntoIter`. ([#​3005](https://github.com/rust-lang/futures-rs/issues/3005)) - Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`. ([#​3007](https://github.com/rust-lang/futures-rs/issues/3007)) - Re-export `alloc::task::Wake`. ([#​3010](https://github.com/rust-lang/futures-rs/issues/3010)) - Update `spin` to 0.12. ([#​3014](https://github.com/rust-lang/futures-rs/issues/3014)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [http](https://github.com/hyperium/http) | dependencies | patch | `1.4.0` → `1.4.2` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>hyperium/http (http)</summary> ### [`v1.4.2`](https://github.com/hyperium/http/blob/HEAD/CHANGELOG.md#142-June-8-2026) [Compare Source](https://github.com/hyperium/http/compare/v1.4.1...v1.4.2) - Fix `uri::Builder` to allow `"*"` as the path when scheme and authority are also set, used in HTTP/2 requests. - Fix `Uri` to properly reject `DEL` characters. ### [`v1.4.1`](https://github.com/hyperium/http/blob/HEAD/CHANGELOG.md#141-May-25-2026) [Compare Source](https://github.com/hyperium/http/compare/v1.4.0...v1.4.1) - Fix `PathAndQuery::from_static()` and `from_shared()` to reject inputs that do not start with `/`. - Fix `Extend` for `HeaderMap` to clamp max size hint and not overflow. - Fix `header::IntoIter` that could use-after-free if the generic value type could panic on drop. - Fix `header::{IterMut, ValuesIterMut}` to not violate stacked borrows. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [http-body-util](https://github.com/hyperium/http-body) | dependencies | patch | `0.1.3` → `0.1.5` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>hyperium/http-body (http-body-util)</summary> ### [`v0.1.5`](https://github.com/hyperium/http-body/compare/http-body-util-v0.1.4...http-body-util-v0.1.5) [Compare Source](https://github.com/hyperium/http-body/compare/http-body-util-v0.1.4...http-body-util-v0.1.5) ### [`v0.1.4`](https://github.com/hyperium/http-body/releases/tag/http-body-util-v0.1.4) [Compare Source](https://github.com/hyperium/http-body/compare/http-body-util-v0.1.3...http-body-util-v0.1.4) #### What's Changed - Add `Fused` body combinator that always returns `None` once completed. - Add `BodyExt::into_stream()` to convert a body into a `Stream`. - Add `Full::into_inner()` to get the full `Buf`. - Add `InspectFrame` and `InspectErr` combinators. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [sonner](https://sonner.emilkowal.ski/) ([source](https://github.com/emilkowalski/sonner)) | [`2.0.7` → `2.0.8`](https://renovatebot.com/diffs/npm/sonner/2.0.7/2.0.8) |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>emilkowalski/sonner (sonner)</summary> ### [`v2.0.8`](https://github.com/emilkowalski/sonner/compare/v2.0.7...ecce1841c55e4a72dfe139a8992b56498660125e) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.7...v2.0.8) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 22, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [async-trait](https://github.com/dtolnay/async-trait) | dependencies | patch | `0.1.91` → `0.1.92` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>dtolnay/async-trait (async-trait)</summary> ### [`v0.1.92`](https://github.com/dtolnay/async-trait/releases/tag/0.1.92) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.91...0.1.92) - Resolve double\_must\_use clippy lint in generated code ([#​303](https://github.com/dtolnay/async-trait/issues/303)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 27, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ubuntu](https://hub.docker.com/_/ubuntu) ([source](https://git.launchpad.net/cloud-images/+oci/ubuntu-base)) | container | digest | `561618e` → `33ceb71` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 27, 2026
…lock#6666) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tanstack/react-virtual](https://tanstack.com/virtual) ([source](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual)) | [`3.14.9` → `3.14.10`](https://renovatebot.com/diffs/npm/@tanstack%2freact-virtual/3.14.9/3.14.10) |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>TanStack/virtual (@​tanstack/react-virtual)</summary> ### [`v3.14.10`](https://github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31410) [Compare Source](https://github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.14.9...@tanstack/react-virtual@3.14.10) ##### Patch Changes - Updated dependencies \[[`a0a411e`](https://github.com/TanStack/virtual/commit/a0a411e06f7334a063422de35d59b12b264b3573), [`d2cf98b`](https://github.com/TanStack/virtual/commit/d2cf98beea1696c7187c06b57c9e724d1957963c)]: - [@​tanstack/virtual-core](https://github.com/tanstack/virtual-core)@​3.17.8 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 27, 2026
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`4.1.10` → `4.1.11`](https://renovatebot.com/diffs/npm/vitest/4.1.10/4.1.11) |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v4.1.11`](https://github.com/vitest-dev/vitest/releases/tag/v4.1.11) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.10...v4.1.11) ##### 🐞 Bug Fixes - Revive global concurrency limit for test lifecycle \[backport to v4] - by [@​sheremet-va](https://github.com/sheremet-va) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10992](https://github.com/vitest-dev/vitest/issues/10992) [<samp>(5146d)</samp>](https://github.com/vitest-dev/vitest/commit/5146df80b) - **browser**: - Encode iframeId in tester iframe URL \[backport to v4] - by [@​sheremet-va](https://github.com/sheremet-va), **Pduhard** and **Claude Opus 4.8** in [#​10955](https://github.com/vitest-dev/vitest/issues/10955) [<samp>(10b2c)</samp>](https://github.com/vitest-dev/vitest/commit/10b2cd201) - Trigger playwright/chromium gc on lower disk availability \[backport to v4] - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode** in [#​10951](https://github.com/vitest-dev/vitest/issues/10951) [<samp>(9851d)</samp>](https://github.com/vitest-dev/vitest/commit/9851dbc41) - **mocker**: - Restrict redirect mocks to the fs allowlist \[backport to v4] - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10974](https://github.com/vitest-dev/vitest/issues/10974) [<samp>(fe5a1)</samp>](https://github.com/vitest-dev/vitest/commit/fe5a11d3c) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.10...v4.1.11) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yjc801
pushed a commit
that referenced
this pull request
Aug 28, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rui314/setup-mold](https://github.com/rui314/setup-mold) ([changelog](https://github.com/rui314/setup-mold/compare/9c9c13bf4c3f1adef0cc596abc155580bcb04444..7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3)) | action | digest | `9c9c13b` → `7e4f20a` | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](../issues/1) for more information. --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/block/buzz). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
buzz-backend-sprites: a remote-agent backend provider that runs Buzz managed agents in Fly.io Sprites — persistent Linux VMs that hibernate when idle and bill compute per second while awake. One agent, one sprite.Nothing in the desktop changes. Provider discovery already scans
~/.local/binforbuzz-backend-*, so installing the binary is the whole integration:cargo build --release -p buzz-backend-sprites install -m 755 target/release/buzz-backend-sprites ~/.local/bin/Design, and why
Choices that were forced rather than picked, each documented in the crate's [L3] conformance README:
!shutdownwould be resurrected — an I5 violation. Nothing restarts the harness here; an exit ends the session and the sprite hibernates to storage-only billing. For the same reasoninactivity_seconds: 0(indefinite lifetime) is refused: it needs a supervisor that restarts crashes without resurrecting intentional exits, and none exists while the harness clean-exit contract is unpinned (Known Defect 6).env=K=Vquery parameters; URLs reach access logs. The resolved environment is streamed as stdin frames into a/dev/shmfile (RAM-backed, 0600, named per attempt) that the launcher sources and deletes beforeexecing the harness. Never the sprite's API-readable environment map, never the durable filesystem — that one is continuously synced to object storage and captured by checkpoints. The exec URL builder has no env parameter at all, and a test pins its absence.flockis the at-most-one-live-agent fence. Held acrossexecfor exactly the harness's lifetime, so the kernel arbitrates. This replaces the Kubernetes binding's UID+resourceVersion preconditions.Substratetrait cannot express a delete andActionhas no delete variant. Stated cost: deleting an agent leaves its sprite paused (storage-only billing) untilsprite destroy buzz-agent-<12hex>.Reused from
buzz-backend-kuberneteswhere the spec is substrate-neutral: the wire contract, nsec-derived identity, the three-tier env builder (clear-then-write authoritative tier, respond-to gate, POSIX key rule), and the pure-classifier + fake-substrate test shape.Testing
132 tests (128 unit + 4 golden wire fixtures), clippy clean, shellcheck clean. Fixtures drive the built binary over a real pipe with credentials poisoned, so a fixture that reaches the API fails loudly. Live tests are gated on
BUZZ_SPRITES_LIVE=1, create one throwaway sprite each, and delete it.Verified against the real platform through the release binary: cold create → provision → confirmed start (4.2s); a second deploy no-ops in 0.7s with zero writes; TERM then redeploy revives with a fresh generation; a config change against a running agent correctly does nothing (edits land on the next generation); the same change against a stopped agent reprovisions; a harness that exits during startup is reported in-band with the generation that ran and the probe's own tokens.
Three bugs surfaced only on the live path, each now covered by a regression test with the fake made faithful so it cannot hide them again:
probe.shonly exists after provisioning, so waiting for a report was waiting forever.install -m 755 /dev/stdinfails when the destination already exists, so every reprovision died where the first install passed. Assets now write-chmod-rename.Notes
Justfile:test-unitandscripts/run-tests.sh. Nothing upstream runs workspace-wide tests, so a crate absent from both lists has its suite silently skipped.bundle-sidecars.sh,tauri.conf.jsonexternalBin). v1 distributes via~/.local/bin; bundling is the upstreaming conversation.SPRITE_TOKEN; the keychain fallback exists for Finder-launched desktops, but on current sprite CLI versions that entry is wrapped and the API rejects it — the client says so and names the source rather than reporting a bare 401.sprig_sha256set, the runtime is provenance-pinned to that exact artifact. By default each download is verified against the digest the release publishes beside it — transport integrity, with trust rooted in the GitHub release, so a re-publishedsprig-latestis trusted automatically (there is no provider-baked pin: the rolling tag moves within hours and a baked digest wedges every deploy). The sprite base image is Fly's and upgrades outside this provider's control.🤖 Generated with Claude Code