chadtmiller.com/knotless
git that lives in your Atmosphere account
A branch's gates are named and taken out on its settings page
MergedThis adds a "Wait for a review from" control to each protected branch on the Branches settings page, with Add and a per-gate Remove. getRepoSettings now answers gates as deduplicated actorViews. I found nothing that must change.
- Rule writes:
addGateandremoveGatekeep the rule's other settings and dropreviewswhen nothing is asked, asagaindoes. - Duplicates: adding a gate that is already named is a no-op.
- Docs and changeset: the lexicon,
api.md,serve.mdand the changeset are all updated. - e2e: the new flow reads the gate back both on the page and by DID from alice's record.
I did not read the checks, so I can't say whether they passed.
One minor point: the handle field has no required. Adding with it empty sends a blank getProfile request and shows an error instead of being stopped in the form.
Since my last review, the pull merged main and added a pages test. The AGENTS.md, queue.rs and run.rs changes in that range come from the main merge, not from this pull.
The new test in pages.rs checks that gates is absent when no rule names one. It then protects main with the same account named twice and reads back a single actorView with the right DID. That covers the dedup claim. I found nothing that must change.
I did not read the checks, so I can't say whether they passed. The earlier required note on the handle field was minor and is not blocking.
Since my last review, the pull merged main and added one commit that changes SettingsBranches.svelte. It looks up the gate's handle with ask (a GET to /xrpc/<nsid>) instead of call. getProfile is a query, so this is the correct verb. ask surfaces server errors the same way call does. The commit also types the gate fallback as ActorView. I found nothing that must change. I did not read the checks, so I can't say whether they passed. The required note on the handle field from the first round was minor and still isn't blocking.
9 passed, 1 skipped
What changes
Branches settings name gates. Each protected branch on a repository's Branches settings has "Wait for a review from": a handle field, with the same typeahead as Access's, and Add, which names that account as a gate of the branch's rule. Each gate is listed under it by handle and avatar, with Remove. The handle is found with
getProfile, and the rule is written byprotectBranchwith its other settings kept.getRepoSettingsanswersgates. These are the accounts its rules name as gates, each once, asactorViews, so the page can show them by handle.Why
The settings-page half of A branch waits for a review agent's verdict before its pulls land, which added gates to the CLI and MCP.
How it was checked
just look settings-branches --signed-inwith no gates, two gates (one with a long handle) and Add busy, on desktop light and phone dark, critiqued by an agent that did not write it. I kept the danger Remove buttons, as Access's, and the label above both the field and the list. A new e2e flow names bob as a gate, reads him back on the page and by DID from alice's record, and removes him.Shots-moved: settings-branches
Shortcomings
A gate added by handle is stored by DID, so a gate whose handle changes shows its new one.
🤖 Generated with Claude Code