@feigi/fleet-ctl 3.22.7 → 3.22.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -113,6 +113,34 @@ test("run-team/SKILL.md: the release-claims section carries the same limitation"
|
|
|
113
113
|
);
|
|
114
114
|
});
|
|
115
115
|
|
|
116
|
+
test("run-team/SKILL.md: the release deletes the branch with update-ref's compare-and-swap, not `-D`", () => {
|
|
117
|
+
// release-ticket.sh deletes with `git update-ref -d refs/heads/<branch> <tip>`
|
|
118
|
+
// on a tip read once, which refuses if the ref moved off that tip. SKILL.md
|
|
119
|
+
// kept saying `-D` after the script stopped using it, so a controller read
|
|
120
|
+
// the release as a force-delete of whatever the ref held at that moment.
|
|
121
|
+
const section = between(
|
|
122
|
+
RUN_TEAM,
|
|
123
|
+
"### Release the claims that never became PRs",
|
|
124
|
+
"**That refusal is the",
|
|
125
|
+
"run-team/SKILL.md",
|
|
126
|
+
);
|
|
127
|
+
assert.match(
|
|
128
|
+
section,
|
|
129
|
+
phrase("deletes the branch with `git update-ref -d` on the tip it read once"),
|
|
130
|
+
"SKILL.md's release section no longer names `git update-ref -d` on a tip read once as the branch delete",
|
|
131
|
+
);
|
|
132
|
+
assert.match(
|
|
133
|
+
section,
|
|
134
|
+
phrase("compare-and-swap that refuses if the branch has moved off that tip"),
|
|
135
|
+
"SKILL.md's release section no longer says the update-ref delete is a compare-and-swap that refuses if the branch has moved off the tip",
|
|
136
|
+
);
|
|
137
|
+
assert.doesNotMatch(
|
|
138
|
+
section,
|
|
139
|
+
/(?:deletes?|deleted)\s+(?:the\s+branch\s+)?(?:is\s+)?with\s+`(?:git\s+branch\s+)?-D`/,
|
|
140
|
+
"SKILL.md's release section says the branch is deleted with `-D` — release-ticket.sh deletes it with `git update-ref -d`",
|
|
141
|
+
);
|
|
142
|
+
});
|
|
143
|
+
|
|
116
144
|
test("run-team/SKILL.md: the by-hand fallback names worktree-audit.sh's no-argument contract", () => {
|
|
117
145
|
// #525. The by-hand fallback for a claim `release-ticket.sh` refused sends
|
|
118
146
|
// the reader to `worktree-audit.sh`, which takes NO argument and audits
|
package/skills/run-team/SKILL.md
CHANGED
|
@@ -3149,9 +3149,12 @@ immediately before the branch delete, because a commit can land across the
|
|
|
3149
3149
|
pushed-branch checks are **not** re-run there — a commit landing in that window
|
|
3150
3150
|
is ahead of `origin/main` by construction, so the recount covers it. All clear →
|
|
3151
3151
|
drops the label, removes the worktree without `--force`, deletes the branch with
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3152
|
+
`git update-ref -d` on the tip it read once before the recount — a
|
|
3153
|
+
compare-and-swap that refuses if the branch has moved off that tip — authorized
|
|
3154
|
+
by those two commit checks, the recount and a fresh check that no worktree holds
|
|
3155
|
+
the branch, and by nothing else (not `git branch -d`: it measures against local
|
|
3156
|
+
HEAD, and a claim has no upstream, so it refuses a pristine claim whenever local
|
|
3157
|
+
`main` is behind `origin/main`). Any one of
|
|
3155
3158
|
them failing → it touches nothing and names the blocker. **That refusal is the
|
|
3156
3159
|
finding, never an obstacle**: a claim carrying commits or a pushed branch is not
|
|
3157
3160
|
auto-released, ever — run `worktree-audit.sh` (it audits every worktree; find
|