chore(deps): bump vite-plus to v0.2.2#3
Draft
fengmk2 wants to merge 21 commits into
Draft
Conversation
The Insights page currently opens straight into filters, deterministic recommendations, quality patterns, and generated archives. That makes the page hard to interpret for first-time users even though the docs already explain the concepts and workflow. This adds a small in-app help entry point that links to the Insights documentation and introduces the key distinction between deterministic quality facts and generated insight text. It keeps to the narrow docs/help slice `wesm` asked for in the issue thread, and it does not redesign the insights workflow, change generation behavior, or touch backend scoring. The focused test asserts that the page exposes the docs URL and the explanatory affordance, and `npm run check` covers the localized message wiring. Fixes kenn-io#178 Co-authored-by: Rod Boev <rodboev@users.noreply.github.com>
The Windows desktop wrapper already has a supported `desktop.env` escape hatch, but it forwards WSL-style directory values to the Windows sidecar unchanged. That leaves users who keep sessions under WSL without a documented value shape the packaged Windows app can actually read. This adds a desktop-only bridge for explicit WSL path values in `desktop.env`, converting a distro-qualified marker such as `wsl:Ubuntu:/home/me/.codex/sessions` into the UNC path the Windows sidecar can access. The change stays in the Tauri wrapper where environment assembly already lives, and it leaves Go config loading, parser discovery, sync behavior, and storage untouched. The focused coverage proves valid conversion, malformed-marker and URL-like literal preservation, ordinary Windows and UNC path preservation, and existing env precedence. The README now documents the Windows `desktop.env` syntax separately from `AGENTSVIEW_DESKTOP_PATH`, which remains the executable search-path override. Fixes kenn-io#177 Co-authored-by: Rod Boev <rodboev@users.noreply.github.com>
Claude.ai exports can include code suggestions and other text-bearing content in a message's `attachments` array, but the current import path only turns top-level text and supported `content` blocks into message content. That means a conversation can import successfully while the code the user expected to review never appears in agentsview, and reimporting the same archive still leaves old truncated messages behind because the unchanged-session skip path only looks at message count and `updated_at`. The parser now decodes text-bearing Claude.ai attachments and appends recovered attachment content after the existing text and thinking assembly rules, while still ignoring empty or metadata-only attachment shapes. The importer also compares stored messages to the newly parsed output before taking the unchanged-session skip path, so reimporting an older Claude.ai archive repairs sessions that were previously missing attachment-backed content. There is no new database schema, general attachment UI, or ChatGPT import change. The attachment follow-up comes from wesm's direction in kenn-io#254 (comment), after PR kenn-io#258 shipped the base Claude.ai import path. Focused parser and importer tests cover fresh imports, same-archive reimports, the unlabeled and fallback attachment paths, and the negative space around plain text, thinking blocks, and unsupported attachments. Fixes kenn-io#254 Co-authored-by: Rod Boev <rodboev@users.noreply.github.com>
The desktop wrapper already captures sidecar stdout and stderr while it waits for the backend to become ready, but on Windows release builds those diagnostics disappear with the GUI-only process. That makes startup failures much harder to debug even when the wrapper saw the exact progress or error output. This keeps the fix desktop-owned. Sidecar events now go through a bounded background log writer that appends durable records under the app log directory without blocking startup parsing or restart handling, the persisted stdout path redacts token-bearing startup lines before they hit disk even when stdout arrives in split chunks, and the native File menu gets an Open Logs Folder action so the captured output is reachable from the app. The existing status parsing, port detection, stage transitions, stderr mirroring, and best-effort failure tolerance stay in place. The last review pass tightened the log output itself by splitting bare `\r` progress updates into readable line-delimited records instead of collapsing them into a single mutated line. Focused validation passed on `cargo fmt --all -- --check`, `cargo test --lib`, and `cargo clippy --lib --tests -- -D warnings`. The change stays desktop-only and directly addresses the hidden-stderr Windows case called out in the issue thread. Fixes kenn-io#132 Co-authored-by: Rod Boev <rodboev@users.noreply.github.com>
This PR contains the following updates:
| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) | action | major | `v6.0.3` → `v7.0.0` | |
| [actions/setup-python](https://redirect.github.com/actions/setup-python) | action | minor | `v6.0.0` → `v6.2.0` | `v6.3.0` |
| [astral-sh/setup-uv](https://redirect.github.com/astral-sh/setup-uv) | action | major | `v7.1.2` → `v8.2.0` | |
| [codecov/codecov-action](https://redirect.github.com/codecov/codecov-action) | action | major | `v6.0.1` → `v7.0.0` | |
| [msys2/setup-msys2](https://redirect.github.com/msys2/setup-msys2) ([changelog](https://redirect.github.com/msys2/setup-msys2/compare/e9898307ac31d1a803454791be09ab9973336e1c..66cd2cce69caa17b53920067426061ca1de3a884)) | action | digest | `e989830` → `66cd2cc` | |
| [python](https://redirect.github.com/actions/python-versions) | uses-with | minor | `3.12` → `3.14` | |
| [softprops/action-gh-release](https://redirect.github.com/softprops/action-gh-release) | action | patch | `v3.0.0` → `v3.0.1` | |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v7.0.0`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v700)
[Compare Source](https://redirect.github.com/actions/checkout/compare/v7.0.0...v7.0.0)
- Block checking out fork PR for pull\_request\_target and workflow\_run by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2454](https://redirect.github.com/actions/checkout/pull/2454)
- Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2458](https://redirect.github.com/actions/checkout/pull/2458)
- Bump flatted from 3.3.1 to 3.4.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2460](https://redirect.github.com/actions/checkout/pull/2460)
- Bump js-yaml from 4.1.0 to 4.2.0 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2461](https://redirect.github.com/actions/checkout/pull/2461)
- Bump [@​actions/core](https://redirect.github.com/actions/core) and [@​actions/tool-cache](https://redirect.github.com/actions/tool-cache) and Remove uuid by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2459](https://redirect.github.com/actions/checkout/pull/2459)
- upgrade module to esm and update dependencies by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2463](https://redirect.github.com/actions/checkout/pull/2463)
- Bump the minor-npm-dependencies group across 1 directory with 3 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2462](https://redirect.github.com/actions/checkout/pull/2462)
### [`v7`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v700)
[Compare Source](https://redirect.github.com/actions/checkout/compare/v6.0.3...v7.0.0)
- Block checking out fork PR for pull\_request\_target and workflow\_run by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2454](https://redirect.github.com/actions/checkout/pull/2454)
- Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2458](https://redirect.github.com/actions/checkout/pull/2458)
- Bump flatted from 3.3.1 to 3.4.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2460](https://redirect.github.com/actions/checkout/pull/2460)
- Bump js-yaml from 4.1.0 to 4.2.0 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2461](https://redirect.github.com/actions/checkout/pull/2461)
- Bump [@​actions/core](https://redirect.github.com/actions/core) and [@​actions/tool-cache](https://redirect.github.com/actions/tool-cache) and Remove uuid by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2459](https://redirect.github.com/actions/checkout/pull/2459)
- upgrade module to esm and update dependencies by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2463](https://redirect.github.com/actions/checkout/pull/2463)
- Bump the minor-npm-dependencies group across 1 directory with 3 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2462](https://redirect.github.com/actions/checkout/pull/2462)
</details>
<details>
<summary>actions/setup-python (actions/setup-python)</summary>
### [`v6.2.0`](https://redirect.github.com/actions/setup-python/releases/tag/v6.2.0)
[Compare Source](https://redirect.github.com/actions/setup-python/compare/v6.1.0...v6.2.0)
#### What's Changed
##### Dependency Upgrades
- Upgrade dependencies to Node 24 compatible versions by [@​salmanmkc](https://redirect.github.com/salmanmkc) in [#​1259](https://redirect.github.com/actions/setup-python/pull/1259)
- Upgrade urllib3 from 2.5.0 to 2.6.3 in `/__tests__/data` by [@​dependabot](https://redirect.github.com/dependabot) in [#​1253](https://redirect.github.com/actions/setup-python/pull/1253) and [#​1264](https://redirect.github.com/actions/setup-python/pull/1264)
**Full Changelog**: <https://github.com/actions/setup-python/compare/v6...v6.2.0>
### [`v6.1.0`](https://redirect.github.com/actions/setup-python/releases/tag/v6.1.0)
[Compare Source](https://redirect.github.com/actions/setup-python/compare/v6...v6.1.0)
#### What's Changed
##### Enhancements:
- Add support for `pip-install` input by [@​gowridurgad](https://redirect.github.com/gowridurgad) in [#​1201](https://redirect.github.com/actions/setup-python/pull/1201)
- Add graalpy early-access and windows builds by [@​timfel](https://redirect.github.com/timfel) in [#​880](https://redirect.github.com/actions/setup-python/pull/880)
##### Dependency and Documentation updates:
- Enhanced wording and updated example usage for `allow-prereleases` by [@​yarikoptic](https://redirect.github.com/yarikoptic) in [#​979](https://redirect.github.com/actions/setup-python/pull/979)
- Upgrade urllib3 from 1.26.19 to 2.5.0 and document breaking changes in v6 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1139](https://redirect.github.com/actions/setup-python/pull/1139)
- Upgrade typescript from 5.4.2 to 5.9.3 and Documentation update by [@​dependabot](https://redirect.github.com/dependabot) in [#​1094](https://redirect.github.com/actions/setup-python/pull/1094)
- Upgrade actions/publish-action from 0.3.0 to 0.4.0 & Documentation update for pip-install input by [@​dependabot](https://redirect.github.com/dependabot) in [#​1199](https://redirect.github.com/actions/setup-python/pull/1199)
- Upgrade requests from 2.32.2 to 2.32.4 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1130](https://redirect.github.com/actions/setup-python/pull/1130)
- Upgrade prettier from 3.5.3 to 3.6.2 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1234](https://redirect.github.com/actions/setup-python/pull/1234)
- Upgrade [@​types/node](https://redirect.github.com/types/node) from 24.1.0 to 24.9.1 and update macos-13 to macos-15-intel by [@​dependabot](https://redirect.github.com/dependabot) in [#​1235](https://redirect.github.com/actions/setup-python/pull/1235)
#### New Contributors
- [@​yarikoptic](https://redirect.github.com/yarikoptic) made their first contribution in [#​979](https://redirect.github.com/actions/setup-python/pull/979)
**Full Changelog**: <https://github.com/actions/setup-python/compare/v6...v6.1.0>
</details>
<details>
<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>
### [`v8.2.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v8.2.0): 🌈 New inputs `quiet` and `download-from-astral-mirror`
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v8.1.0...v8.2.0)
##### Changes
This release brings two new inputs and a few bug fixes.
##### New inputs
Lets talk about the new inputs first.
##### quiet
Pretty simple. It turns of all `info` loggings. Useful if you use this in a composite action and are not interested in all the details.
In the upcoming releases we will add log groups to fully implement support for "less noise"
> \[!NOTE]\
> Warnings and errors are always logged.
##### download-from-astral-mirror
In some cases you may want to directly use the fallback of checking for available versions and downloading releases from GitHub instead of using the astral.sh mirror. Setting `download-from-astral-mirror: false` allows you to do that.
##### Bugfixes
When using the astral.sh mirror to query available versions and download releases (done by default) we now stop sending the GitHub token in the header. The mirror never looked at it but we shouldn't be handing out that data even if it is just a short lived token.
All other bugfixes try to limit the impact of failed GitHub queries due to retries and other faults.
We couldn't pinpoint all rootcauses yet but added more logging for error cases to track them down.
##### 🐛 Bug fixes
- fix: report unexpected cache save failures [@​eifinger](https://redirect.github.com/eifinger) ([#​896](https://redirect.github.com/astral-sh/setup-uv/issues/896))
- fix: report unexpected setup failures [@​eifinger](https://redirect.github.com/eifinger) ([#​895](https://redirect.github.com/astral-sh/setup-uv/issues/895))
- fix: add timeout to fetch to prevent silent hangs [@​eifinger-bot](https://redirect.github.com/eifinger-bot) ([#​883](https://redirect.github.com/astral-sh/setup-uv/issues/883))
- Limit GitHub tokens to github.com download URLs [@​zsol](https://redirect.github.com/zsol) ([#​878](https://redirect.github.com/astral-sh/setup-uv/issues/878))
- increase libuv-workaround timeout to 100ms [@​eifinger](https://redirect.github.com/eifinger) ([#​880](https://redirect.github.com/astral-sh/setup-uv/issues/880))
##### 🚀 Enhancements
- Add quiet input to suppress info-level log output [@​eifinger](https://redirect.github.com/eifinger) ([#​898](https://redirect.github.com/astral-sh/setup-uv/issues/898))
- feat: add `download-from-astral-mirror` input [@​eifinger](https://redirect.github.com/eifinger) ([#​897](https://redirect.github.com/astral-sh/setup-uv/issues/897))
##### 🧰 Maintenance
- docs: update dependabot rollup biome guidance [@​eifinger](https://redirect.github.com/eifinger) ([#​902](https://redirect.github.com/astral-sh/setup-uv/issues/902))
- chore: update known checksums for 0.11.18 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​899](https://redirect.github.com/astral-sh/setup-uv/issues/899))
- chore: update known checksums for 0.11.17 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​892](https://redirect.github.com/astral-sh/setup-uv/issues/892))
- chore: update known checksums for 0.11.16 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​889](https://redirect.github.com/astral-sh/setup-uv/issues/889))
- chore: update known checksums for 0.11.15 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​885](https://redirect.github.com/astral-sh/setup-uv/issues/885))
- chore: update known checksums for 0.11.14 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​879](https://redirect.github.com/astral-sh/setup-uv/issues/879))
- chore: update known checksums for 0.11.13 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​877](https://redirect.github.com/astral-sh/setup-uv/issues/877))
- chore: update known checksums for 0.11.12 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​876](https://redirect.github.com/astral-sh/setup-uv/issues/876))
- chore: update known checksums for 0.11.11 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​873](https://redirect.github.com/astral-sh/setup-uv/issues/873))
- chore: update known checksums for 0.11.9/0.11.10 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​871](https://redirect.github.com/astral-sh/setup-uv/issues/871))
- chore: update known checksums for 0.11.8 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​867](https://redirect.github.com/astral-sh/setup-uv/issues/867))
- Bump setup-uv references to v8.1.0 SHA in docs [@​eifinger](https://redirect.github.com/eifinger) ([#​862](https://redirect.github.com/astral-sh/setup-uv/issues/862))
- Add update-docs.yml workflow [@​eifinger](https://redirect.github.com/eifinger) ([#​861](https://redirect.github.com/astral-sh/setup-uv/issues/861))
##### ⬆️ Dependency updates
- chore(deps): roll up dependabot updates [@​eifinger](https://redirect.github.com/eifinger) ([#​903](https://redirect.github.com/astral-sh/setup-uv/issues/903))
- chore(deps): roll up dependabot updates [@​eifinger](https://redirect.github.com/eifinger) ([#​901](https://redirect.github.com/astral-sh/setup-uv/issues/901))
- chore(deps): bump release-drafter/release-drafter from 7.3.0 to 7.3.1 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​900](https://redirect.github.com/astral-sh/setup-uv/issues/900))
- chore(deps): bump eifinger/actionlint-action from 1.10.1 to 1.10.2 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​842](https://redirect.github.com/astral-sh/setup-uv/issues/842))
- chore(deps): bump github/codeql-action from 4.35.4 to 4.36.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​893](https://redirect.github.com/astral-sh/setup-uv/issues/893))
- chore(deps): bump zizmorcore/zizmor-action from 0.5.5 to 0.5.6 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​891](https://redirect.github.com/astral-sh/setup-uv/issues/891))
- chore(deps): bump release-drafter/release-drafter from 7.2.0 to 7.3.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​884](https://redirect.github.com/astral-sh/setup-uv/issues/884))
- chore(deps): bump zizmorcore/zizmor-action from 0.5.3 to 0.5.5 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​888](https://redirect.github.com/astral-sh/setup-uv/issues/888))
- chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​881](https://redirect.github.com/astral-sh/setup-uv/issues/881))
- chore(deps): bump github/codeql-action from 4.32.2 to 4.35.3 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​875](https://redirect.github.com/astral-sh/setup-uv/issues/875))
- chore(deps): bump actions/setup-node from 6.3.0 to 6.4.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​866](https://redirect.github.com/astral-sh/setup-uv/issues/866))
- chore(deps): bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​864](https://redirect.github.com/astral-sh/setup-uv/issues/864))
- chore(deps): bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​863](https://redirect.github.com/astral-sh/setup-uv/issues/863))
### [`v8.1.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v8.1.0): 🌈 New input `no-project`
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v8.0.0...v8.1.0)
##### Changes
This add the a new boolean input `no-project`.
It only makes sense to use in combination with `activate-environment: true` and will append `--no project` to the `uv venv` call. This is for example useful [if you have a pyproject.toml file with parts unparseable by uv](https://redirect.github.com/astral-sh/setup-uv/issues/854)
##### 🚀 Enhancements
- Add input no-project in combination with activate-environment [@​eifinger](https://redirect.github.com/eifinger) ([#​856](https://redirect.github.com/astral-sh/setup-uv/issues/856))
##### 🧰 Maintenance
- fix: grant contents:write to validate-release job [@​eifinger](https://redirect.github.com/eifinger) ([#​860](https://redirect.github.com/astral-sh/setup-uv/issues/860))
- Add a release-gate step to the release workflow [@​zanieb](https://redirect.github.com/zanieb) ([#​859](https://redirect.github.com/astral-sh/setup-uv/issues/859))
- Draft commitish releases [@​eifinger](https://redirect.github.com/eifinger) ([#​858](https://redirect.github.com/astral-sh/setup-uv/issues/858))
- Add action-types.yml to instructions [@​eifinger](https://redirect.github.com/eifinger) ([#​857](https://redirect.github.com/astral-sh/setup-uv/issues/857))
- chore: update known checksums for 0.11.7 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​853](https://redirect.github.com/astral-sh/setup-uv/issues/853))
- Refactor version resolving [@​eifinger](https://redirect.github.com/eifinger) ([#​852](https://redirect.github.com/astral-sh/setup-uv/issues/852))
- chore: update known checksums for 0.11.6 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​850](https://redirect.github.com/astral-sh/setup-uv/issues/850))
- chore: update known checksums for 0.11.5 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​845](https://redirect.github.com/astral-sh/setup-uv/issues/845))
- chore: update known checksums for 0.11.4 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​843](https://redirect.github.com/astral-sh/setup-uv/issues/843))
- Add a release workflow [@​zanieb](https://redirect.github.com/zanieb) ([#​839](https://redirect.github.com/astral-sh/setup-uv/issues/839))
- chore: update known checksums for 0.11.3 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​836](https://redirect.github.com/astral-sh/setup-uv/issues/836))
##### 📚 Documentation
- Update ignore-nothing-to-cache documentation [@​eifinger](https://redirect.github.com/eifinger) ([#​833](https://redirect.github.com/astral-sh/setup-uv/issues/833))
- Pin setup-uv docs to v8 [@​eifinger](https://redirect.github.com/eifinger) ([#​829](https://redirect.github.com/astral-sh/setup-uv/issues/829))
##### ⬆️ Dependency updates
- chore(deps): bump release-drafter/release-drafter from 7.1.1 to 7.2.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​855](https://redirect.github.com/astral-sh/setup-uv/issues/855))
### [`v8.0.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v8.0.0): 🌈 Immutable releases and secure tags
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.6.0...v8.0.0)
##### This is the first immutable release of `setup-uv` 🥳
All future releases are also immutable, if you want to know more about what this means checkout [the docs](https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases).
This release also has two breaking changes
##### New format for `manifest-file`
The previously deprecated way of defining a custom version manifest to control which `uv` versions are available and where to download them from got removed. The functionality is still there but you have to use the [new format](https://redirect.github.com/astral-sh/setup-uv/blob/main/docs/customization.md#format).
##### No more major and minor tags
To increase **security** even more we will **stop publishing minor tags**. You won't be able to use `@v8` or `@v8.0` any longer. We do this because pinning to major releases opens up users to supply chain attacks like what happened to [tj-actions](https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/).
> \[!TIP]
> Use the immutable tag as a version `astral-sh/setup-uv@v8.0.0`
> Or even better the githash `astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57`
##### 🚨 Breaking changes
- Remove update-major-minor-tags workflow [@​eifinger](https://redirect.github.com/eifinger) ([#​826](https://redirect.github.com/astral-sh/setup-uv/issues/826))
- Remove deprecrated custom manifest [@​eifinger](https://redirect.github.com/eifinger) ([#​813](https://redirect.github.com/astral-sh/setup-uv/issues/813))
##### 🧰 Maintenance
- Shortcircuit latest version from manifest [@​eifinger](https://redirect.github.com/eifinger) ([#​828](https://redirect.github.com/astral-sh/setup-uv/issues/828))
- Simplify inputs.ts [@​eifinger](https://redirect.github.com/eifinger) ([#​827](https://redirect.github.com/astral-sh/setup-uv/issues/827))
- Bump release-drafter to v7.1.1 [@​eifinger](https://redirect.github.com/eifinger) ([#​825](https://redirect.github.com/astral-sh/setup-uv/issues/825))
- Refactor inputs [@​eifinger](https://redirect.github.com/eifinger) ([#​823](https://redirect.github.com/astral-sh/setup-uv/issues/823))
- Replace inline compile args with tsconfig [@​eifinger](https://redirect.github.com/eifinger) ([#​824](https://redirect.github.com/astral-sh/setup-uv/issues/824))
- chore: update known checksums for 0.11.2 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​821](https://redirect.github.com/astral-sh/setup-uv/issues/821))
- chore: update known checksums for 0.11.1 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​817](https://redirect.github.com/astral-sh/setup-uv/issues/817))
- chore: update known checksums for 0.11.0 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​815](https://redirect.github.com/astral-sh/setup-uv/issues/815))
- Fix latest-version workflow check [@​eifinger](https://redirect.github.com/eifinger) ([#​812](https://redirect.github.com/astral-sh/setup-uv/issues/812))
- chore: update known checksums for 0.10.11/0.10.12 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​811](https://redirect.github.com/astral-sh/setup-uv/issues/811))
### [`v7.6.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.6.0): 🌈 Fetch uv from Astral's mirror by default
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.6.0...v7.6.0)
##### Changes
We now default to download uv from `releases.astral.sh`.
This means by default we don't hit the GitHub API at all and shouldn't see any rate limits and timeouts any more.
##### 🚀 Enhancements
- Fetch uv from Astral's mirror by default [@​zsol](https://redirect.github.com/zsol) ([#​809](https://redirect.github.com/astral-sh/setup-uv/issues/809))
##### 🧰 Maintenance
- Switch to ESM for source and test, use CommonJS for dist [@​eifinger](https://redirect.github.com/eifinger) ([#​806](https://redirect.github.com/astral-sh/setup-uv/issues/806))
- chore: update known checksums for 0.10.10 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​804](https://redirect.github.com/astral-sh/setup-uv/issues/804))
##### ⬆️ Dependency updates
- chore(deps): bump zizmorcore/zizmor-action from 0.5.0 to 0.5.2 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​808](https://redirect.github.com/astral-sh/setup-uv/issues/808))
- Bump deps [@​eifinger](https://redirect.github.com/eifinger) ([#​805](https://redirect.github.com/astral-sh/setup-uv/issues/805))
### [`v7.6`](https://redirect.github.com/astral-sh/setup-uv/compare/v7.5.0...v7.6.0)
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.5.0...v7.6.0)
### [`v7.5.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.5.0): 🌈 Use `astral-sh/versions` as version provider
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.5.0...v7.5.0)
##### No more rate-limits
This release addresses a long-standing source of timeouts and rate-limit failures in setup-uv.
Previously, the action resolved version identifiers like 0.5.x by iterating over available uv releases via the GitHub API to find the best match. In contrast, latest and exact versions such as 0.5.0 skipped version resolution entirely and downloaded uv directly.
The `manifest-file` input was an earlier attempt to improve this. It allows providing an url to a file that lists available versions, checksums, and even custom download URLs. The action also shipped with such a manifest.
However, because that bundled file could become outdated whenever new uv releases were published, the action still had to fall back to the GitHub API in many cases.
This release solves the problem by sourcing version data from Astral’s versions repository via the raw content endpoint:
<https://raw.githubusercontent.com/astral-sh/versions/refs/heads/main/v1/uv.ndjson>
By using the raw endpoint instead of the GitHub API, version resolution no longer depends on API authentication and is much less likely to run into rate limits or timeouts.
***
> \[!TIP]
> The next section is only interesting for users of the `manifest-file` input
The `manifest-file` input lets you override that source with your own URL, for example to test custom uv builds or alternate download locations.
The manifest file must be in NDJSON format, where each line is a JSON object representing a version and its artifacts. For example:
```json
{"version":"0.10.7","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}
{"version":"0.10.6","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}
```
> \[!WARNING]\
> The old format still works but is deprecated. A warning will be logged when you use it.
##### Changes
- docs: replace copilot instructions with AGENTS.md [@​eifinger](https://redirect.github.com/eifinger) ([#​794](https://redirect.github.com/astral-sh/setup-uv/issues/794))
##### 🚀 Enhancements
- Use astral-sh/versions as primary version provider [@​eifinger](https://redirect.github.com/eifinger) ([#​802](https://redirect.github.com/astral-sh/setup-uv/issues/802))
##### 📚 Documentation
- docs: add cross-client dependabot rollup skill [@​eifinger](https://redirect.github.com/eifinger) ([#​793](https://redirect.github.com/astral-sh/setup-uv/issues/793))
### [`v7.5`](https://redirect.github.com/astral-sh/setup-uv/compare/v7.4.0...v7.5.0)
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.4.0...v7.5.0)
### [`v7.4.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.4.0): 🌈 Add riscv64 architecture support to platform detection
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.4.0...v7.4.0)
##### Changes
Thank you [@​luhenry](https://redirect.github.com/luhenry) for adding support for riscv64 arch
##### 🚀 Enhancements
- Add riscv64 architecture support to platform detection [@​luhenry](https://redirect.github.com/luhenry) ([#​791](https://redirect.github.com/astral-sh/setup-uv/issues/791))
##### 🧰 Maintenance
- Delete .github/workflows/dependabot-build.yml [@​eifinger](https://redirect.github.com/eifinger) ([#​789](https://redirect.github.com/astral-sh/setup-uv/issues/789))
- Harden Dependabot build workflow [@​eifinger](https://redirect.github.com/eifinger) ([#​788](https://redirect.github.com/astral-sh/setup-uv/issues/788))
- Fix: check PR author instead of event sender for Dependabot detection [@​eifinger-bot](https://redirect.github.com/eifinger-bot) ([#​787](https://redirect.github.com/astral-sh/setup-uv/issues/787))
- chore: update known checksums for 0.10.9 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​783](https://redirect.github.com/astral-sh/setup-uv/issues/783))
- Add workflow to auto-build dist on Dependabot PRs [@​eifinger-bot](https://redirect.github.com/eifinger-bot) ([#​782](https://redirect.github.com/astral-sh/setup-uv/issues/782))
- chore: update known checksums for 0.10.8 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​779](https://redirect.github.com/astral-sh/setup-uv/issues/779))
- chore: update known checksums for 0.10.7 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​775](https://redirect.github.com/astral-sh/setup-uv/issues/775))
##### ⬆️ Dependency updates
- chore(deps): bump versions [@​eifinger](https://redirect.github.com/eifinger) ([#​792](https://redirect.github.com/astral-sh/setup-uv/issues/792))
- Bump actions/setup-node from 6.2.0 to 6.3.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​790](https://redirect.github.com/astral-sh/setup-uv/issues/790))
- Bump eifinger/actionlint-action from 1.10.0 to 1.10.1 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​778](https://redirect.github.com/astral-sh/setup-uv/issues/778))
### [`v7.4`](https://redirect.github.com/astral-sh/setup-uv/compare/v7.3.1...v7.4.0)
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.3.1...v7.4.0)
### [`v7.3.1`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.3.1): 🌈 fall back to VERSION_CODENAME when VERSION_ID is not available
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.3...v7.3.1)
##### Changes
This release adds support for running in containers like `debian:testing` or `debian:unstable`
##### 🐛 Bug fixes
- fix: fall back to VERSION\_CODENAME when VERSION\_ID is not available [@​eifinger-bot](https://redirect.github.com/eifinger-bot) ([#​774](https://redirect.github.com/astral-sh/setup-uv/issues/774))
##### 🧰 Maintenance
- chore: update known checksums for 0.10.6 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​771](https://redirect.github.com/astral-sh/setup-uv/issues/771))
- chore: update known checksums for 0.10.5 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​770](https://redirect.github.com/astral-sh/setup-uv/issues/770))
- chore: update known checksums for 0.10.4 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​768](https://redirect.github.com/astral-sh/setup-uv/issues/768))
- chore: update known checksums for 0.10.3 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​767](https://redirect.github.com/astral-sh/setup-uv/issues/767))
- chore: update known checksums for 0.10.2 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​765](https://redirect.github.com/astral-sh/setup-uv/issues/765))
- chore: update known checksums for 0.10.1 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​764](https://redirect.github.com/astral-sh/setup-uv/issues/764))
##### ⬆️ Dependency updates
- Bump github/codeql-action from 4.31.9 to 4.32.2 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​766](https://redirect.github.com/astral-sh/setup-uv/issues/766))
- Bump zizmorcore/zizmor-action from 0.4.1 to 0.5.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​763](https://redirect.github.com/astral-sh/setup-uv/issues/763))
### [`v7.3.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.3.0): 🌈 New features and bug fixes for activate-environment
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.3...v7.3)
##### Changes
This release contains a few bug fixes and a new feature for the activate-environment functionality.
##### 🐛 Bug fixes
- fix: warn instead of error when no python to cache [@​eifinger](https://redirect.github.com/eifinger) ([#​762](https://redirect.github.com/astral-sh/setup-uv/issues/762))
- fix: use --clear to create venv [@​eifinger](https://redirect.github.com/eifinger) ([#​761](https://redirect.github.com/astral-sh/setup-uv/issues/761))
##### 🚀 Enhancements
- feat: add venv-path input for activate-environment [@​eifinger](https://redirect.github.com/eifinger) ([#​746](https://redirect.github.com/astral-sh/setup-uv/issues/746))
##### 🧰 Maintenance
- chore: update known checksums for 0.10.0 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​759](https://redirect.github.com/astral-sh/setup-uv/issues/759))
- refactor: tilde-expansion tests as unittests and no self-hosted tests [@​eifinger](https://redirect.github.com/eifinger) ([#​760](https://redirect.github.com/astral-sh/setup-uv/issues/760))
- chore: update known checksums for 0.9.30 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​756](https://redirect.github.com/astral-sh/setup-uv/issues/756))
- chore: update known checksums for 0.9.29 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​748](https://redirect.github.com/astral-sh/setup-uv/issues/748))
##### 📚 Documentation
- Fix punctuation [@​pm-dev563](https://redirect.github.com/pm-dev563) ([#​747](https://redirect.github.com/astral-sh/setup-uv/issues/747))
##### ⬆️ Dependency updates
- Bump typesafegithub/github-actions-typing from 2.2.1 to 2.2.2 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​753](https://redirect.github.com/astral-sh/setup-uv/issues/753))
- Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​751](https://redirect.github.com/astral-sh/setup-uv/issues/751))
- Bump actions/checkout from 6.0.1 to 6.0.2 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​740](https://redirect.github.com/astral-sh/setup-uv/issues/740))
- Bump release-drafter/release-drafter from 6.1.0 to 6.2.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​743](https://redirect.github.com/astral-sh/setup-uv/issues/743))
- Bump eifinger/actionlint-action from 1.9.3 to 1.10.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​731](https://redirect.github.com/astral-sh/setup-uv/issues/731))
- Bump actions/setup-node from 6.1.0 to 6.2.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​738](https://redirect.github.com/astral-sh/setup-uv/issues/738))
### [`v7.3`](https://redirect.github.com/astral-sh/setup-uv/compare/v7.2.1...v7.3)
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.2.1...v7.3)
### [`v7.2.1`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.2.1): 🌈 update known checksums up to 0.9.28
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.2...v7.2.1)
##### Changes
##### 🧰 Maintenance
- chore: update known checksums for 0.9.28 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​744](https://redirect.github.com/astral-sh/setup-uv/issues/744))
- chore: update known checksums for 0.9.27 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​742](https://redirect.github.com/astral-sh/setup-uv/issues/742))
- chore: update known checksums for 0.9.26 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​734](https://redirect.github.com/astral-sh/setup-uv/issues/734))
- chore: update known checksums for 0.9.25 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​733](https://redirect.github.com/astral-sh/setup-uv/issues/733))
- chore: update known checksums for 0.9.24 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​730](https://redirect.github.com/astral-sh/setup-uv/issues/730))
##### 📚 Documentation
- Clarify impact of using actions/setup-python [@​eifinger](https://redirect.github.com/eifinger) ([#​732](https://redirect.github.com/astral-sh/setup-uv/issues/732))
##### ⬆️ Dependency updates
- Bump zizmorcore/zizmor-action from 0.3.0 to 0.4.1 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​741](https://redirect.github.com/astral-sh/setup-uv/issues/741))
### [`v7.2.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.2.0): 🌈 add outputs python-version and python-cache-hit
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.2...v7.2)
##### Changes
Among some minor typo fixes and quality of life features for developers of actions the main feature of this release are new outputs:
- **python-version:** The Python version that was set (same content as existing `UV_PYTHON`)
- **python-cache-hit:** A boolean value to indicate the Python cache entry was found
While implementing this it became clear, that it is easier to handle the Python binaries in a separate cache entry. The added benefit for users is that the "normal" cache containing the dependencies can be used in all runs no matter if these cache the Python binaries or not.
> \[!NOTE]\
> This release will invalidate caches that contain the Python binaries. This happens a single time.
##### 🐛 Bug fixes
- chore: remove stray space from UV\_PYTHON\_INSTALL\_DIR message [@​akx](https://redirect.github.com/akx) ([#​720](https://redirect.github.com/astral-sh/setup-uv/issues/720))
##### 🚀 Enhancements
- add outputs python-version and python-cache-hit [@​eifinger](https://redirect.github.com/eifinger) ([#​728](https://redirect.github.com/astral-sh/setup-uv/issues/728))
- Add action typings with validation [@​krzema12](https://redirect.github.com/krzema12) ([#​721](https://redirect.github.com/astral-sh/setup-uv/issues/721))
##### 🧰 Maintenance
- fix: use uv\_build backend for old-python-constraint-project [@​eifinger](https://redirect.github.com/eifinger) ([#​729](https://redirect.github.com/astral-sh/setup-uv/issues/729))
- chore: update known checksums for 0.9.22 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​727](https://redirect.github.com/astral-sh/setup-uv/issues/727))
- chore: update known checksums for 0.9.21 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​726](https://redirect.github.com/astral-sh/setup-uv/issues/726))
- chore: update known checksums for 0.9.20 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​725](https://redirect.github.com/astral-sh/setup-uv/issues/725))
- chore: update known checksums for 0.9.18 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​718](https://redirect.github.com/astral-sh/setup-uv/issues/718))
##### ⬆️ Dependency updates
- Bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​719](https://redirect.github.com/astral-sh/setup-uv/issues/719))
- Bump github/codeql-action from 4.31.6 to 4.31.9 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​723](https://redirect.github.com/astral-sh/setup-uv/issues/723))
### [`v7.2`](https://redirect.github.com/astral-sh/setup-uv/compare/v7.1.6...v7.2)
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.1.6...v7.2)
### [`v7.1.6`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.1.6): 🌈 add OS version to cache key to prevent binary incompatibility
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.1.5...v7.1.6)
##### Changes
This release will invalidate your cache existing keys!
The os version e.g. `ubuntu-22.04` is now part of the cache key. This prevents failing builds when a cache got populated with wheels built with different tools (e.g. glibc) than are present on the runner where the cache got restored.
##### 🐛 Bug fixes
- feat: add OS version to cache key to prevent binary incompatibility [@​eifinger](https://redirect.github.com/eifinger) ([#​716](https://redirect.github.com/astral-sh/setup-uv/issues/716))
##### 🧰 Maintenance
- chore: update known checksums for 0.9.17 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​714](https://redirect.github.com/astral-sh/setup-uv/issues/714))
##### ⬆️ Dependency updates
- Bump actions/checkout from 5.0.0 to 6.0.1 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​712](https://redirect.github.com/astral-sh/setup-uv/issues/712))
- Bump actions/setup-node from 6.0.0 to 6.1.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​715](https://redirect.github.com/astral-sh/setup-uv/issues/715))
### [`v7.1.5`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.1.5): 🌈 allow setting `cache-local-path` without `enable-cache: true`
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.1.4...v7.1.5)
##### Changes
[#​612](https://redirect.github.com/astral-sh/setup-uv/pull/612) fixed a faulty behavior where this action set `UV_CACHE_DIR` even though `enable-cache` was `false`. It also fixed the cases were the cache dir is already configured in a settings file like `pyproject.toml` or `UV_CACHE_DIR` was already set. Here the action shouldn't overwrite or set `UV_CACHE_DIR`.
These fixes introduced an unwanted behavior: You can still set `cache-local-path` but this action didn't do anything. This release fixes that.
You can now use `cache-local-path` to automatically set `UV_CACHE_DIR` even when `enable-cache` is `false` (or gets set to false by default e.g. on self-hosted runners)
```yaml
- name: This is now possible
uses: astral-sh/setup-uv@v7
with:
enable-cache: false
cache-local-path: "/path/to/cache"
```
##### 🐛 Bug fixes
- allow cache-local-path w/o enable-cache [@​eifinger](https://redirect.github.com/eifinger) ([#​707](https://redirect.github.com/astral-sh/setup-uv/issues/707))
##### 🧰 Maintenance
- set biome files.maxSize to 2MiB [@​eifinger](https://redirect.github.com/eifinger) ([#​708](https://redirect.github.com/astral-sh/setup-uv/issues/708))
- chore: update known checksums for 0.9.16 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​706](https://redirect.github.com/astral-sh/setup-uv/issues/706))
- chore: update known checksums for 0.9.15 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​704](https://redirect.github.com/astral-sh/setup-uv/issues/704))
- chore: use `npm ci --ignore-scripts` everywhere [@​woodruffw](https://redirect.github.com/woodruffw) ([#​699](https://redirect.github.com/astral-sh/setup-uv/issues/699))
- chore: update known checksums for 0.9.14 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​700](https://redirect.github.com/astral-sh/setup-uv/issues/700))
- chore: update known checksums for 0.9.13 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​694](https://redirect.github.com/astral-sh/setup-uv/issues/694))
- chore: update known checksums for 0.9.12 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​693](https://redirect.github.com/astral-sh/setup-uv/issues/693))
- chore: update known checksums for 0.9.11 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​688](https://redirect.github.com/astral-sh/setup-uv/issues/688))
##### ⬆️ Dependency updates
- Bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​695](https://redirect.github.com/astral-sh/setup-uv/issues/695))
- bump dependencies [@​eifinger](https://redirect.github.com/eifinger) ([#​709](https://redirect.github.com/astral-sh/setup-uv/issues/709))
- Bump github/codeql-action from 4.30.9 to 4.31.6 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​698](https://redirect.github.com/astral-sh/setup-uv/issues/698))
- Bump zizmorcore/zizmor-action from 0.2.0 to 0.3.0 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​696](https://redirect.github.com/astral-sh/setup-uv/issues/696))
- Bump eifinger/actionlint-action from 1.9.2 to 1.9.3 @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​690](https://redirect.github.com/astral-sh/setup-uv/issues/690))
### [`v7.1.4`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.1.4): 🌈 Fix libuv closing bug on Windows
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.1.3...v7.1.4)
##### Changes
This release fixes the bug `Assertion failed: !(handle->flags & UV_HANDLE_CLOSING)` on Windows runners
##### 🐛 Bug fixes
- Wait 50ms before exit to fix libuv bug [@​eifinger](https://redirect.github.com/eifinger) ([#​689](https://redirect.github.com/astral-sh/setup-uv/issues/689))
##### 🧰 Maintenance
- chore: update known checksums for 0.9.10 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​681](https://redirect.github.com/astral-sh/setup-uv/issues/681))
- chore: update known checksums for 0.9.9 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​679](https://redirect.github.com/astral-sh/setup-uv/issues/679))
### [`v7.1.3`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v7.1.3): 🌈 Support act
[Compare Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.1.2...v7.1.3)
##### Changes
This bug fix release adds support for <https://github.com/nektos/act>
It was previously broken because of a too new `undici` version and TS transpilation target.
Compatibility with act is now automatically tested.
##### 🐛 Bug fixes
- use old undici and ES2022 target for act support [@​eifinger](https://redirect.github.com/eifinger) ([#​678](https://redirect.github.com/astral-sh/setup-uv/issues/678))
##### 🧰 Maintenance
- chore: update known checksums for 0.9.8 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​677](https://redirect.github.com/astral-sh/setup-uv/issues/677))
- chore: update known checksums for 0.9.7 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​671](https://redirect.github.com/astral-sh/setup-uv/issues/671))
- chore: update known checksums for 0.9.6 @​[github-actions\[bot\]](https://redirect.github.com/apps/github-actions) ([#​670](https://redirect.github.com/astral-sh/setup-uv/issues/670))
##### 📚 Documentation
- Correct description of `cache-dependency-glob` [@​allanlewis](https://redirect.github.com/allanlewis) ([#​676](https://redirect.github.com/astral-sh/setup-uv/issues/676))
</details>
<details>
<summary>codecov/codecov-action (codecov/codecov-action)</summary>
### [`v7.0.0`](https://redirect.github.com/codecov/codecov-action/releases/tag/v7.0.0)
[Compare Source](https://redirect.github.com/codecov/codecov-action/compare/v7.0.0...v7.0.0)
⚠️ Due to migration issues with keybase, we are unable to update our keys under the `codecovsecurity` account. We have deleted the account and are using `codecovsecops` with the original gpg key
##### What's Changed
- ci: remove Enforce License Compliance workflow by [@​thomasrockhu-codecov](https://redirect.github.com/thomasrockhu-codecov) in [#​1950](https://redirect.github.com/codecov/codecov-action/pull/1950)
- chore(release): 7.0.0 by [@​thomasrockhu-codecov](https://redirect.github.com/thomasrockhu-codecov) in [#​1957](https://redirect.github.com/codecov/codecov-action/pull/1957)
**Full Changelog**: <https://github.com/codecov/codecov-action/compare/v6.0.1...v7.0.0>
### [`v7`](https://redirect.github.com/codecov/codecov-action/compare/v6.0.2...v7.0.0)
[Compare Source](https://redirect.github.com/codecov/codecov-action/compare/v6.0.2...v7.0.0)
### [`v6.0.2`](https://redirect.github.com/codecov/codecov-action/releases/tag/v6.0.2)
[Compare Source](https://redirect.github.com/codecov/codecov-action/compare/v6.0.1...v6.0.2)
This is a copy of the `v7.0.0` release to make updates easier
##### What's Changed
- ci: remove Enforce License Compliance workflow by [@​thomasrockhu-codecov](https://redirect.github.com/thomasrockhu-codecov) in [#​1950](https://redirect.github.com/codecov/codecov-action/pull/1950)
- chore(release): 7.0.0 by [@​thomasrockhu-codecov](https://redirect.github.com/thomasrockhu-codecov) in [#​1957](https://redirect.github.com/codecov/codecov-action/pull/1957)
**Full Changelog**: <https://github.com/codecov/codecov-action/compare/v6.0.1...v6.0.2>
</details>
<details>
<summary>actions/python-versions (python)</summary>
### [`v3.14.6`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.6-27283001424): 3.14.6
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.14.5-25647354415...3.14.6-27283001424)
Python 3.14.6
### [`v3.14.5`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.5-25647354415): 3.14.5
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.14.4-25113653268...3.14.5-25647354415)
Python 3.14.5
### [`v3.14.4`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.4-25113653268): 3.14.4
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.14.3-21673711214...3.14.4-25113653268)
Python 3.14.4
### [`v3.14.3`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.3-21673711214): 3.14.3
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.14.2-20014991423...3.14.3-21673711214)
Python 3.14.3
### [`v3.14.2`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.2-20014991423): 3.14.2
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.14.1-19879739908...3.14.2-20014991423)
Python 3.14.2
### [`v3.14.1`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.1-19879739908): 3.14.1
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.14.0-18313368925...3.14.1-19879739908)
Python 3.14.1
### [`v3.14.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.14-27320626148...3.14.0-18313368925)
Python 3.14.0
### [`v3.13.14`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.14-27320626148): 3.13.14
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.13-27225391538...3.13.14-27320626148)
Python 3.13.14
### [`v3.13.13`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.13-27225391538): 3.13.13
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.12-21673645133...3.13.13-27225391538)
Python 3.13.13
### [`v3.13.12`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.12-21673645133): 3.13.12
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.11-20014977833...3.13.12-21673645133)
Python 3.13.12
### [`v3.13.11`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.11-20014977833): 3.13.11
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.10-19879712315...3.13.11-20014977833)
Python 3.13.11
### [`v3.13.10`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.10-19879712315): 3.13.10
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.9-18515951191...3.13.10-19879712315)
Python 3.13.10
### [`v3.13.9`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.9-18515951191): 3.13.9
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.8-18331000654...3.13.9-18515951191)
Python 3.13.9
### [`v3.13.8`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.8-18331000654): 3.13.8
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.7-16980743123...3.13.8-18331000654)
Python 3.13.8
### [`v3.13.7`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.7-16980743123): 3.13.7
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.6-16792117939...3.13.7-16980743123)
Python 3.13.7
### [`v3.13.6`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.6-16792117939): 3.13.6
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.5-15601068749...3.13.6-16792117939)
Python 3.13.6
### [`v3.13.5`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.5-15601068749): 3.13.5
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.4-15433317575...3.13.5-15601068749)
Python 3.13.5
### [`v3.13.4`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.4-15433317575): 3.13.4
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.3-14344076652...3.13.4-15433317575)
Python 3.13.4
### [`v3.13.3`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.3-14344076652): 3.13.3
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.2-13708744326...3.13.3-14344076652)
Python 3.13.3
### [`v3.13.2`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.2-13708744326): 3.13.2
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.1-13437882550...3.13.2-13708744326)
Python 3.13.2
### [`v3.13.1`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.1-13437882550): 3.13.1
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.13.0-13707372259...3.13.1-13437882550)
Python 3.13.1
### [`v3.13.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.0-13707372259): 3.13.0
[Compare Source](https://redirect.github.com/actions/python-versions/compare/3.12.13-27650778726...3.13.0-13707372259)
Python 3.13.0
</details>
<details>
<summary>softprops/action-gh-release (softprops/action-gh-release)</summary>
### [`v3.0.1`](https://redirect.github.com/softprops/action-gh-release/releases/tag/v3.0.1)
[Compare Source](https://redirect.github.com/softprops/action-gh-release/compare/v3.0.0...v3.0.1)
#### 3.0.1
- maintenance release with updated dependencies
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **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://redirect.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/kenn-io/agentsview).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
Some users cannot rely on passwordless SSH on fleet nodes, but still need collector-owned ingestion of raw session files. This adds a daemon-backed HTTP transport for persisted remote hosts so Tailscale-secured nodes can expose authenticated remote-sync targets and archive endpoints while SSH remains the default and ad hoc host sync stays SSH-only. The implementation keeps the collector-owns-the-archive model: configured API sync requests resolve transport, URL, and token from server config instead of trusting request payloads; daemon endpoints authenticate before host and CORS checks; and HTTP archive import reuses the extraction, remap, and skip-cache protections shared with SSH. Reviewers should focus on the shared remotesync package, the server remote-sync routes and auth middleware, and the three dispatch paths for CLI, API-triggered, and interval remote sync. The detached daemon idle-timeout setting applies to serve --background; supervised daemons remain always-on under their process manager. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
Now that the provider-facade parser migration (kenn-io#877–kenn-io#885) has landed on `main`, this removes the dead code and transitional tests it left behind. Everything here was confirmed to have no remaining production callers; nothing changes runtime behavior. ## What's removed **Parser dead code** (`refactor(parser)`): - Per-agent `*StorageSessionIDs` / `Discover*` / `Find*SourceFile` wrappers in `discovery.go` for OpenCode, Kilo, IcodeMate, and MiMoCode. The OpenCode-format provider calls the shared helpers directly; IcodeMate's wrappers were re-added during the rebase and never wired in. - `ProviderSupportsSourceDiscovery` (added but never wired; the same check is inlined at its one intended call site). - `ListAiderRunMetas` / `AiderRunMeta` (engine caller replaced by the provider run fan-out). - `ValidRole` (superseded by the `db` package's message-role validation). - The never-set `JSONLSourceSetOptions.DisplayPath` field and the unused `WithFingerprintKey` setter. - The `SiblingMetadataSourceSet` type/options/constructor/methods, superseded by the `WithCompanionFiles` path. The two fingerprint helpers that path shares are kept. **Migration guard tests** (`test(parser)`): - The per-agent `*Factory(Replaces|Replace)LegacyAdapter` factory-existence checks, subsumed by `TestProviderRegistryMirrorsAgentRegistry` and `TestProviderFactoryLookupRejectsMissingAgent`. - The `*OwnLegacyEntrypoints` tests, which made source-text assertions the repo style forbids and guarded a shim re-entry that can no longer happen. - `TestProviderMigrationModesUseOnlyFinalModes` and `assertNotLegacyProvider`, which policed transitional state that no longer exists. **Sync engine** (`refactor(sync)`): - The no-op `classifyContainerPath` and the now-unreachable `classifyOnePath` plus its dead call site; changed-path classification flows solely through `classifyCodexIndexPath` and `classifyProviderChangedPath`. - The unreachable non-provider branch of `countDBBackedProgressTotal`. ## Where reviewers should look Five family tests additionally asserted a provider's `Capabilities()` manifest (Cortex, Gptme, WorkBuddy, Zed, Shelley). That per-provider coverage is not duplicated elsewhere, so those tests are **kept** and renamed to `Test<Agent>ProviderCapabilities` rather than deleted — worth confirming that call was right. The `sibling_metadata_source_set.go` reduction is the other spot to check: the dead source-set cluster is gone but the live `siblingMetadataFileInfo` / `addSiblingMetadataFingerprintPart` helpers used by `WithCompanionFiles` are preserved. Co-authored-by: Marius van Niekerk <mariusvniekerk@users.noreply.github.com>
Windows CI profiling showed the full Go test job was dominated by expensive fixture setup, especially DuckDB mirror setup and repeated SQLite/server fixtures, rather than the core query work. This keeps full Windows Go coverage in place and fixes the hot paths instead: DuckDB pricing sync filters unchanged rows and writes changed pricing rows in batches, analytics/store fixtures share read-only mirrors where practical, query-only and schema-only DuckDB fixtures use in-memory mirrors, and file-backed sync tests remain where persistence or reopen behavior is under review. DuckDB connections are explicitly configured with SET threads TO <effective CPUs> so DuckDB can use the process's available cores for query execution while agentsview still keeps one database/sql connection per mirror file to avoid file-lock contention. Several high-cost SQLite/server tests now seed through batch writes or shared validation fixtures while preserving the same endpoint/query assertions, and settings-mode tests avoid the unrelated GitHub CLI token fallback covered elsewhere. The PR also keeps the scheduled MSYS2 workflow fix that creates the frontend embed stub with PowerShell-native commands, plus workflow guard coverage asserting the full Go suite remains wired on CI/MSYS2. Reviewers should focus on the fixture changes around DuckDB sync/schema setup, batched SQLite seeds, and the Windows workflow guard. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
A malformed desktop updater manifest can strand users when their local archive has already been upgraded by a newer CLI. In that state the desktop app depends on Tauri's updater path for recovery, but Tauri must parse the whole `latest.json` before it can offer the macOS or Windows update. This hardens the release path that produced the bad manifest. The AppImage repair step now normalizes Tauri signer output back to the bare base64 signature payload before it can be uploaded, and the desktop release health check rejects invalid JSON or non-base64 platform signatures instead of only checking the version field. The immediate `updater` release assets for 0.35.0 were repaired separately so existing 0.34.x desktop users can discover the update without waiting for this change to ship. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
…ts (kenn-io#926) Documentation update for the 0.35.0 release. Builds on the release-notes commit with accuracy corrections found by checking each changelog entry and the changed docs against the code, plus documentation and screenshot scaffolding for new 0.35.0 features. ## Changelog corrections Each 0.35.0 entry was checked against its implementing commit and code: - **S3 scope** (see note below): narrowed "many file-backed agent session roots" back to "Claude and Codex session roots". - Dropped "timeout visibility" from the two remote-sync entries; kenn-io#854 and kenn-io#911 surface per-phase elapsed time, not timeouts. - Native zoom applies to the whole desktop app, not Windows only (kenn-io#850). - Reworded the Gist token fallback (kenn-io#865 adds a fallback; nothing was broken) and the resync regression fix (kenn-io#912 fixes the regression itself, not only its reporting). - Added the Gemini sandboxed-insight fix (kenn-io#852), which is user-facing but was unlisted. - Singularized the installer entry (a single binary). ## New-feature documentation (usage.md) Features that shipped in 0.35.0 without user docs: the Skim message layout (this corrects "three layouts" to four), high-contrast mode and the text-size control, sidebar batch selection, the Language setting, and the corrected Settings section list. ## Screenshots Adds Playwright tests and asset-manifest entries for two new screenshots, the dashboard model filter and the Recent Edits page, referenced from usage.md and recent-edits.md. The manifest lives in three synced places (the two asset scripts and `scripts/docs_assets_test.go`); all three are updated. The `docs-generated-assets` orphan branch must be regenerated and pushed for these two images to resolve. Until then the docs build expects images that do not exist yet, so the orphan push needs to land with this change. ## S3 wording, flagged for discussion The branch had generalized the S3 docs from "Claude and Codex" to "many file-backed agent session roots." On this branch only Claude (`internal/parser/discovery.go:423`) and Codex (`internal/parser/codex_provider.go:217`) discover S3 objects; the generic `JSONLSourceSet` does not enumerate S3, and processing errors on any other agent (`internal/sync/engine.go:3282`, `unsupported s3 agent type`). The source-set framework is written to generalize, so this is extensible, but no third agent is wired today. Reverted to Claude/Codex for accuracy. Happy to restore the broader wording if a follow-up wires more agents. ## Where to look - `docs/changelog.md` for the corrections. - `docs/usage.md` for the new-feature sections. - `docs/screenshots/tests/screenshots.spec.ts` and the three manifests. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
* feat: add standalone quack sync path Quack now has its own config, environment variables, CLI command group, daemon push route, watch path, and read selector instead of being inferred from PostgreSQL targets. PG sync keeps the PostgreSQL-only URL/schema/machine behavior, while Quack maps to the existing DuckDB backend only at the Quack boundary and derives the internal machine label from the host. This keeps PG and DuckDB behavior separate while making Quack usable where a read-only mirror or push sync backend is expected. * fix: keep duckdb push local The standalone Quack path made the shared DuckDB push helper URL-aware so Quack could push to a remote endpoint. That also changed regular duckdb push when users had [duckdb].url configured for remote reads, because the helper preferred URL over Path and could try to attach Quack instead of updating the local mirror file. Keep DuckDBPush on the explicit local file opener and reserve URL-aware opening for the Quack push path. A regression test covers configs that include both a local DuckDB path and a remote read URL. * fix: keep daemon duckdb and quack push scoped The HTTP push daemon still used URL-aware DuckDB construction for duckdb push, so a posted DuckDB config with a Quack read URL could make the daemon target the remote endpoint while the local CLI backend correctly wrote the local mirror file. The daemon route now opens the posted DuckDB path explicitly, preserving existing duckdb push behavior across direct and daemon modes. Quack push also now owns its sync-state scope at the handler boundary instead of accepting an empty or caller-provided request value. This keeps Quack watermarks separate from the local DuckDB mirror state while preserving project filter handling. * fix: keep quack serve tokens out of output Quack exposes auth_token in the CALL quack_serve result, and SQL-printing launch paths can dump that table into logs. agentsview now starts Quack with the table-function form projected to listen_uri and listen_url, keeping the token as an input argument only instead of requesting it back in the result set. The DuckDB Quack startup summary also stops printing generated token values and reports only whether the token was generated or configured. The Quack smoke path uses the same non-secret projection, and an fd-level integration test covers process stdout and stderr during startup. * fix: reuse duckdb path for quack sync Quack sync should not introduce a parallel config, command, or daemon API when the existing DuckDB backend already owns local-file and remote-URL targets. This collapses the branch-added Quack config and push/read surfaces into DuckDBConfig, so AGENTSVIEW_DUCKDB_URL and AGENTSVIEW_DUCKDB_TOKEN drive remote Quack pushes through the normal duckdb push route. Continuous sync is preserved as duckdb push --watch rather than a top-level quack command, and DuckDB status now opens URL-backed stores through the same config path. Startup output for serve modes now reports that auth is configured without printing bearer token values, because those streams can land in logs. * fix: keep duckdb status machine scoped DuckDB status was moved onto the config-backed store opener so URL-backed Quack endpoints could be queried without a local sync handle. That path accidentally counted every mirrored machine, while the existing DuckDB status output had always reported this machine's session and message counts. Shared mirror files and remote Quack endpoints could therefore show global totals in a per-machine status view. Keep the config-backed status reader on the same machine-scoped queries as Sync.Status, while still allowing the URL-backed store opener to handle remote Quack endpoints. The regression test seeds another machine into the mirror and verifies the status reader does not include it. * fix: require explicit quack serve token Starting a Quack server with an auto-generated token is not useful once startup output stops printing secrets, because clients have no safe way to discover that token. Persisting the generated value would also create another durable secret sink just to recover from a logging concern. Require the existing DuckDB token path instead: --token, AGENTSVIEW_DUCKDB_TOKEN, or [duckdb].token. Startup output continues to report only that a token is configured, so systemd or terminal logs do not receive bearer-token material. * fix: scope duckdb remote push state Remote Quack pushes reuse the DuckDB sync watermark, so different URL-backed targets could share duckdb_last_push_at. Switching targets after pushing another remote could skip unchanged sessions missing from the new target. Derive a non-secret sync-state scope for URL-backed DuckDB targets and pass it through local, daemon, and server push paths. Local file mirrors keep the historical unscoped key for compatibility, and duckdb status reads the same scoped watermark. Keep the adjacent token handling explicit: Quack serve help no longer promises generated tokens, and Quack URL redaction now strips URL userinfo plus secret-like query values before errors can print them. * fix: handle sigterm in duckdb push watch Service managers commonly stop long-running watch commands with SIGTERM rather than an interactive interrupt. DuckDB push watch used the narrower interrupt-only context, so it could exit before the watch loop had a chance to perform its cancellation path and final flush, unlike the PostgreSQL watch flow. * fix: redact native quack secrets Native Quack URLs do not parse like HTTP URLs, so userinfo and fragments could survive the existing redaction path even though attach errors include the redacted URL. Strip native userinfo, secret query values, and fragments before logging those endpoints. The auth recovery prompt also needs to reference token sources available before browser authentication succeeds. Point it at the persisted config token or AGENTSVIEW_AUTH_TOKEN instead of the server console or settings page, which may be unavailable in auth-required mode. * fix: address duckdb roborev findings Roborev flagged several low-risk follow-ups across the DuckDB/Quack path: duplicated status-count SQL, stale docs for explicit Quack serve tokens, incomplete remote-scope coverage, and an inconsistent signal helper. Centralize DuckDB status counting through the config-backed helper, keep non-secret selector query parameters in remote target fingerprints, document that Quack serve tokens must come from the existing DuckDB token sources, and reuse one DuckDB long-running signal set for push and serve commands. * fix: honor auth token env override The auth recovery flow now points users at AGENTSVIEW_AUTH_TOKEN, so the server config loader needs to treat that variable as a real token source instead of allowing config.toml to silently override it. This keeps supervised deployments and pre-auth browser recovery consistent with the documented token lookup path. Refresh the Zensical docs for the same PR behavior: DuckDB push watch, URL-backed DuckDB push/status/serve, explicit Quack serve tokens, and auth tokens no longer being printed to startup output. --------- Co-authored-by: Wes McKinney <wesmckinn+git@gmail.com>
…n-io#349) (kenn-io#934) GitHub Copilot bills via a monthly premium-request quota rather than per-token, so its session files frequently record no per-message token usage. `usage daily --agent copilot` then shows all-zeros / $0.00 with no explanation, which reads as "spent nothing" (kenn-io#349). This adds a one-line stderr note from `usage daily` when the agent filter is an all-Copilot filter and the totals are zero. The agent filter accepts comma-separated lists, so `IsCopilotAgentFilter` treats an all-Copilot list (e.g. `copilot,vscode-copilot`) as Copilot. The note is an agent-property statement shown in response to an explicit `--agent` the user typed, so it needs no session-presence check. Scope: this is the CLI half of kenn-io#349. The dashboard hint is the harder half — to avoid showing it for an empty view it needs a timezone-correct, filter-faithful matching-session count from the sessions table (to distinguish "Copilot sessions with no usage" from "no matching sessions"), which is a cross-backend change worth its own PR. Tracked separately; this PR is intentionally scoped to the CLI. ## Where to look - `cmd/agentsview/usage.go` (`noTokenDataNote`). - `internal/db/usage.go` (`NoTokenData`, `IsCopilotAgentFilter`). Co-authored-by: Matthew Jacobs <mjacobs@users.noreply.github.com>
Desktop startup now renders reportable failure details in the Tauri loading window when the bundled backend fails to launch, errors, or exits before readiness. It also keeps waiting through long daemon migrations and full resyncs instead of treating a five-minute startup as failed, while still reporting clearly absent or incompatible daemons. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
OpenClaude sessions are invisible today because the parser registry has no OpenClaude family, no default `~/.openclaude/projects/` source, and no discovery or parser entry point that can emit OpenClaude rows into agentsview's normal session pipeline. This adds OpenClaude as its own parser family with distinct `openclaude:` IDs, parser-owned discovery, source lookup, and config wiring for both `OPENCLAUDE_PROJECTS_DIR` and `OPENCLAUDE_CONFIG_DIR`. The parser follows the real OpenClaude on-disk layout, carries over compatible Claude JSONL handling, and adds the OpenClaude-specific pieces the stored rows need, including title events, aggregate token totals, queued prompt filtering, top-level meta-user suppression to match Claude parity, subagent lineage, and termination status classification. The scope stays inside parser registration, parser discovery, parser parsing, and the matching supported-path docs. It does not widen into sync routing, server, storage, frontend, or broader model-management work. Closes kenn-io#514 Co-authored-by: Rod Boev <rodboev@users.noreply.github.com>
Read commands still had compatibility paths that could open SQLite directly when daemon discovery did not yield HTTP. That undermined the daemon-first migration and left upgraded users exposed to old schema/read-only failures instead of letting the writable daemon own migrations. This makes daemon-capable reads resolve through daemon transport: they use reachable daemons, start or replace the local daemon where appropriate, and fail with restart guidance when the daemon is unreachable or incompatible instead of falling back. The remaining direct DB access is limited to commands whose contract is explicitly local, offline, or writer-owned, such as raw source export and offline archive queries. <sup>generated by a clanker</sup> Co-authored-by: Marius van Niekerk <mariusvniekerk@users.noreply.github.com>
Document the 0.35.1 release after the tag was cut so the public changelog, supported-agent entry points, Copilot usage guidance, and DuckDB/Quack command notes match the shipped behavior.
…n-alias backfill marker (kenn-io#940) ## Problem On a shared PG hub, `pg push` repeatedly re-runs the one-time session-alias backfill (kenn-io#898) as a full ~30-min sweep and never records it as done, so `pg status` shows `Last push: never` and every push is a cold full sweep. `completeSessionAliasBackfill` only writes `pg_session_alias_backfill_v1` when `Errors == 0 && SkippedConflicts == 0`. But `SkippedConflicts` counts sessions owned by **another** machine (`errSessionOwnershipConflict`) — a permanent, expected condition on any shared hub. A host that doesn't own 100% of the matching sessions can therefore never complete the backfill, and `applySessionAliasBackfillRequirement` forces a full push on every run. ## Change Gate the marker on real push `Errors` only. Skipped ownership conflicts are other machines' sessions this host neither can nor should re-push, so they don't indicate an incomplete backfill of *this host's own* sessions. The `Errors > 0` guard is kept, so a push that actually failed to write this host's sessions still re-forces full next time. `TestCompleteSessionAliasBackfill*` now covers: clean → marked; errors → deferred; skipped-conflicts → **marked**; errors+skipped → deferred. ## Scope This fixes one of the two causes in kenn-io#939. The other — the backfill marker also being **per-project-filter scoped**, so any change to the filter set re-triggers a full sweep — is left for discussion in kenn-io#939 because keying it by PG target instead touches transition-window semantics that are a maintainer call. Refs kenn-io#939. Follow-up to kenn-io#891. Co-authored-by: leejuhanKr <leejuhanKr@users.noreply.github.com>
Document the 0.35.2 bugfix release after the tag was cut so the public changelog matches the shipped release notes. The entry calls out the documentation refresh and PostgreSQL push-sync fix, and it credits Wes McKinney and leejuhanKr for the shipped work. This keeps the published release history aligned with the 0.35.2 tag without changing product behavior. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
…#937) This PR adds Traditional Chinese (zh-TW) localization to the frontend messages by translating the Simplified Chinese (zh-CN) values and registering the locale in Inlang settings. Co-authored-by: Linus <Playgrand-by-linus@users.noreply.github.com>
Windows CI has been spending a growing amount of time in unit-test setup rather than in the assertions themselves. This branch consolidates compatible read-only or sequential fixture scenarios so repeated SQLite archive, sync engine, HTTP server, and provider setup is reused where the tests are already isolated by IDs, projects, dates, or source paths. The behavior checks remain in place as subtests, while mutation-heavy and failure-path cases stay separate. The main tradeoff is that a few test functions are larger, but they now make the shared fixture boundaries explicit and avoid paying the same setup cost over and over on Windows. The branch also adds repo-level LF normalization so Git for Windows no longer falls back to contributor-local autocrlf behavior and produces line-ending-only churn during this kind of test work. Reviewers should look closely at the fixture consolidations in internal/sync, internal/db, cmd/agentsview, and internal/server to confirm each merged case still preserves the original preconditions and does not mask unintended state coupling. Co-authored-by: Wes McKinney <wesm@users.noreply.github.com>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
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.
Summary
Bump
vite-plusand related packages to the pkg.pr.new prerelease build for v0.2.2 (registry-bridge commit build) to smoke-test the prerelease.vite-plus+vite(alias to@voidzero-dev/vite-plus-core) andvitestpinned to the commit build across deps / overrides / catalogsminimumReleaseAgeenabled with thevite-plus/@voidzero-dev/*/ oxc / oxlint stack excluded.npmrc(or.yarnrc.yml) points the package manager at the registry bridge (prerelease scaffolding)Test plan