chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
Release 0.10.0
.changeset/cli-groups.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# Commands are grouped | ||
| ||
Every `knotless` command is now `knotless <group> <action>`: `knotless pull create`, `knotless repo star`, `knotless run list`, `knotless branch protect`. An opposite is `--undo` on the action, so `unstar` is `repo star --undo`. Only `login`, `logout`, `upgrade` and `status` stand alone. The old names, such as `knotless pull` and `knotless checks`, work for one more release and then go. `knotless --help` lists the new ones. The MCP tools are renamed to match, `<group>_<action>`: `repo_star`, `pull_merge`, `run_list`. A tool is now the twin of the command of its name, so what the CLI could do and the tools could not, and the other way round, is added: `repo tree`, `repo read`, `repo log`, `pull update-branch`, `pull dismiss-review` and `release read` on the command line, and the commands that lacked tools, in the tools. Update any MCP client config that names a tool. | ||
.changeset/private-sites.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# Private repositories have sites | ||
| ||
`knotless repo site` now deploys a private repository's site. It is kept in the repository's space and read only by its members, at a host of its own, `https://<repo key>-<plc id>.private.knotless.page/`. A member who opens it logs in at knotless.dev if they are not logged in already. Someone who is not a member gets a 404, and a member you remove stops reading it within a minute. | ||
.changeset/run-cancel.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# The owner cancels runs | ||
| ||
`knotless run cancel <url> --ref <name> | --pull <at-uri> [--workflow <name>]`, and the MCP `run_cancel` tool, ask a repository's runners to cancel a ref's or a pull's runs going or waiting, a deploy's too, or only one workflow's. | ||
Cargo.lock+6−6
| @@ -2317,7 +2317,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless" | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2351,7 +2351,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-agent" | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2368,7 +2368,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-mcp" | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2386,7 +2386,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-run" | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2405,7 +2405,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-serve" | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2468,7 +2468,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-triage" | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
Cargo.toml+1−1
| @@ -3,7 +3,7 @@ members = ["crates/knotless", "crates/knotless-serve", "crates/knotless-mcp", "c | ||
resolver = "3" | ||
| ||
[workspace.package] | ||
version = "0.9.0" | ||
version = "0.10.0" | ||
edition = "2024" | ||
license = "MIT OR Apache-2.0" | ||
rust-version = "1.89" | ||
CHANGELOG.md+16−0
| @@ -3,6 +3,22 @@ | ||
What changed in each version of knotless for those who use it, from the | ||
change files in `.changeset/` (see `knope.toml`). | ||
| ||
## 0.10.0 (2026-11-05) | ||
| ||
### Features | ||
| ||
#### Commands are grouped | ||
| ||
Every `knotless` command is now `knotless <group> <action>`: `knotless pull create`, `knotless repo star`, `knotless run list`, `knotless branch protect`. An opposite is `--undo` on the action, so `unstar` is `repo star --undo`. Only `login`, `logout`, `upgrade` and `status` stand alone. The old names, such as `knotless pull` and `knotless checks`, work for one more release and then go. `knotless --help` lists the new ones. The MCP tools are renamed to match, `<group>_<action>`: `repo_star`, `pull_merge`, `run_list`. A tool is now the twin of the command of its name, so what the CLI could do and the tools could not, and the other way round, is added: `repo tree`, `repo read`, `repo log`, `pull update-branch`, `pull dismiss-review` and `release read` on the command line, and the commands that lacked tools, in the tools. Update any MCP client config that names a tool. | ||
| ||
#### Private repositories have sites | ||
| ||
`knotless repo site` now deploys a private repository's site. It is kept in the repository's space and read only by its members, at a host of its own, `https://<repo key>-<plc id>.private.knotless.page/`. A member who opens it logs in at knotless.dev if they are not logged in already. Someone who is not a member gets a 404, and a member you remove stops reading it within a minute. | ||
| ||
#### The owner cancels runs | ||
| ||
`knotless run cancel <url> --ref <name> | --pull <at-uri> [--workflow <name>]`, and the MCP `run_cancel` tool, ask a repository's runners to cancel a ref's or a pull's runs going or waiting, a deploy's too, or only one workflow's. | ||
| ||
## 0.9.0 (2026-11-04) | ||
| ||
### Features | ||