Repository navigation
v0.3.0: The Count finds his server from a checkout, resolves mise tools through mise, and ships a container image
LatestThe Count can now find his own server from a checkout, asks the pinned mise for every tool's versions, and publishes a container image. Two changes need your attention: mise tool branch names and the docs URLs.
Added
-
A checkout finds the Count's server (#15, @sweepies).
patchula lookup,runandtuiin a checkout, with no repository named, look for the server's marker in the newest 500 open issues and PRs. If they find one, they ask once whether to run there and remember the answer for that repository in~/.config/patchula/repositories.json. Use--no-serverto run locally for one command. Without a terminal there is no request and no prompt, so CI is unaffected.The server writes its URL into each PR and dependency dashboard it manages. Set
publicUrlif the App's webhook goes through a relay such as smee.io, which has no/webhookpath to derive the URL from. Setadvertise = falseto keep the URL out of what the Count writes. Turning advertising on or off edits each open PR once. -
A read-only repository API (#16, @sweepies). The server exposes
GET /api/v1/repositoriesandGET /api/v1/repositories/{owner}/{repo}for a dashboard. It needs no sign-in, allows any origin, and shows only public repositories. It reports each repository's last run, its dependencies and updates, its open PRs (withheadSha, for a merge through GitHub's own API) and up to 20 PRs the Count merged. SetpublicApi = falseto turn it off. -
A container image (#19, @sweepies). Each release publishes
ghcr.io/sweepies/count-patchulafor linux/amd64 and linux/arm64, tagged with the version without thevandlatest(not for prereleases). The image startspatchula serveas user 10001 and includes mise. See the container image guide. -
Setup prompt on the getting started page (#12, @sweepies). The page opens with a prompt you can paste into a coding agent to set up the Count for a repository.
-
Packslip tools in the short form work (#17, @sweepies).
packslip:owner/repois now accepted as well aspackslip:github.com/owner/repo. Other hosts are still refused.
Changed
- Every mise tool is looked up with
mise ls-remote(#18, @sweepies). The Count runs the pinned mise in a sandbox, so any backend mise lists works, including packslip monorepo paths,go:,gem:,dotnet:,spm:,conda:andhttp:. Node's LTS line comes frommise ls-remote node lts. Listings are cached for an hour per tool and token scope, and a manual retry asks mise again. - Prereleases follow the Count's prerelease rules. mise's listing now includes prereleases. A pin on a stable version is not offered a prerelease, and a pin on a prerelease is offered later ones. Previously a prerelease pin was not offered any later version.
- Names are refused before mise starts when they use
asdf:orvfox:(plugin backends), a leading-, bracketed tool options, or atool@versionselector such asprettier@3. The@sign is allowed only to open an npm scope, as innpm:@types/node. - A
cargo:tool pinned to a Git URL reports a warning, since mise lists onlyHEADfor it and there is no release to move to. - A failed or empty Node
ltslisting no longer fails the whole catalog. Only a dependency on the LTS channel reports the missing evidence. - Docs site is built from
mainalone (#13, @sweepies). The/next/and/vX.Y.x/paths and the version picker are gone. The site always shows the main branch's docs at the root.
Breaking Changes
- mise tool branch names use the tool name (#18). For example,
patchula/jq-1.xreplacespatchula/jqlang-jq-1.x. If you match update branches by name in branch protection rules, rulesets or automation, update those patterns. - mise must be on
PATHfor lookups as well as for lockfile tools. Install it as the installation guide describes before upgrading. - Versioned docs links no longer resolve. Links to
/next/or/vX.Y.x/pages on the docs site need the root path instead.
Full Changelog: v0.2.0...v0.3.0