chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
Release 0.7.0
.changeset/assignees.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# Pulls and issues are assigned, and maintainers ask for reviews | ||
| ||
The owner and collaborators assign a pull or an issue to accounts with `knotless assign` and take them off with `unassign`, and ask anyone to review a pull, not only its author, with `knotless ask-review` and `unask-review`. Each stops asking only those it asked. `knotless show` lists the assignees, `knotless list -q` and the MCP's `list_items` take `assignee:<handle, did or @me>` and `no:assignee`, and the MCP's `assign_item` does either. Those assigned hear of it as an `assigned` notification, and those asked as a `review-requested` one. The pages do the same under an item's title. | ||
.changeset/check-images-older.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: patch | ||
--- | ||
| ||
# `knotless checks --images` keeps the newest run's pictures | ||
| ||
When the checks listed hold more than one run of a workflow, as a branch's reruns or a pull's heads do, an older run's picture no longer overwrites the newest's of the same name. The older one is saved beside it, named for its commit too: `look notifications-desktop-light 450b27ae11f7.webp`. | ||
.changeset/client-quirks.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: patch | ||
--- | ||
| ||
# Exclusive labels with no scope stand together, and a failed retarget changes nothing | ||
| ||
An exclusive label with no `/` in its name no longer takes other such labels off: only labels in the same scope, such as `priority/high` and `priority/low`, rival each other. `knotless retarget` with both `--base` and `--head` checks the head first, so one refused for its head no longer moves the pull's base. Several workflow files with names that are not valid each give their own error in the one `invalid` check, rather than a duplicate-name error. `knotless queue` and `knotless uses update` no longer panic on a commit ID shorter than 12 characters, and the gateway takes SHA-256 commit IDs as pushes do. | ||
.changeset/login-page.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: patch | ||
--- | ||
| ||
# The page after logging in is easier to read | ||
| ||
The page the browser shows once you have approved a login now has a heading and the look of knotless's own pages, in light and dark, and says so when the server refused the login rather than that you are logged in. | ||
.changeset/merge-keeps-protected-head.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: patch | ||
--- | ||
| ||
# A merge no longer leaves a pull open when its head branch cannot be deleted | ||
| ||
Merging a pull whose head branch is protected keeps that branch, and says why, instead of trying to delete it. A delete that is refused for another reason no longer fails the merge after the target has moved. A `git push` also no longer fails when the compaction after it does, and `KNOTLESS_INLINE_MAX` is held to 262144 bytes, the most a pack record takes. | ||
.changeset/org-admin-cli.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# An organization's admins change its repositories' settings from the command line | ||
| ||
`knotless describe`, `archive`, `compact`, `protect`, `unprotect`, `labels`, `triagers`, `agents`, `share`, `unshare` and `runners`, and the MCP tools that do the same, now work on an organization's repository from an admin's own login. Not logged in as the owner, they ask the appview, which makes the change as the organization. Log in again (`knotless login`) if your login is older than this, so it may ask. Renaming, deleting and transferring a repository still take the organization's own login, on the pages too. | ||
.changeset/review-gates-settings.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# A branch's gates are named on its settings page | ||
| ||
A protected branch's settings on the pages now have "Wait for a review from", which names an account, such as a review agent, as a gate of the branch by its handle. The page lists each gate, with Remove to take it out, as `knotless protect --gate` does. | ||
.changeset/review-gates.mddeleted+0−7
| @@ -1,7 +0,0 @@ | ||
--- | ||
default: minor | ||
--- | ||
| ||
# A branch waits for a review agent's verdict with `knotless protect --gate` | ||
| ||
`knotless protect <url> <branch> --gate <handle>` names an account, such as a review agent, whose review of a pull's head the branch waits for, though it may not write to the repository. The merge queue holds a pull until the gate has reviewed its head, and a request for changes from it blocks merging and queueing until it reviews again. An approval of the head from the owner or a collaborator, given after the gate's review, stands in for it. `knotless rules` lists each gate, `merge --check` says `a review of its head from @<gate>` while one is awaited, and MCP's `protect_branch` takes `gates`. knotless-run's `--review-wait <secs>` (30 minutes) is how long the queue waits before ejecting a pull no gate has reviewed. | ||
Cargo.lock+6−6
| @@ -2317,7 +2317,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless" | ||
version = "0.6.0" | ||
version = "0.7.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2351,7 +2351,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-agent" | ||
version = "0.6.0" | ||
version = "0.7.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2368,7 +2368,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-mcp" | ||
version = "0.6.0" | ||
version = "0.7.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2386,7 +2386,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-run" | ||
version = "0.6.0" | ||
version = "0.7.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2405,7 +2405,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-serve" | ||
version = "0.6.0" | ||
version = "0.7.0" | ||
dependencies = [ | ||
"anyhow", | ||
"axum", | ||
| @@ -2468,7 +2468,7 @@ dependencies = [ | ||
| ||
[[package]] | ||
name = "knotless-triage" | ||
version = "0.6.0" | ||
version = "0.7.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.6.0" | ||
version = "0.7.0" | ||
edition = "2024" | ||
license = "MIT OR Apache-2.0" | ||
rust-version = "1.89" | ||