@nickmeriano/task 0.9.0 → 0.10.0
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/README.md +72 -0
- package/dist/claim.d.ts +87 -1
- package/dist/claim.d.ts.map +1 -1
- package/dist/claim.js +264 -5
- package/dist/claim.js.map +1 -1
- package/dist/claim.test.d.ts +8 -0
- package/dist/claim.test.d.ts.map +1 -1
- package/dist/claim.test.js +171 -2
- package/dist/claim.test.js.map +1 -1
- package/dist/cli.js +105 -4
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +26 -1
- package/src/claim.test.ts +231 -2
- package/src/claim.ts +351 -5
- package/src/cli.ts +119 -4
package/README.md
CHANGED
|
@@ -68,8 +68,10 @@ a lock. `task claim` is that lock, built out of things git already guarantees:
|
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
70
|
task claim TAS-21 # claim it: branch + status flip + push
|
|
71
|
+
task claim TAS-21 --lock-only # just the lock — the checkout stays put
|
|
71
72
|
task list --claimable # the queue: what a worker may pick up next
|
|
72
73
|
task claim --release TAS-21 # abandon a claim cleanly
|
|
74
|
+
task sweep # janitor: delete claims whose tickets are finished
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
- **The claim is the work branch.** `task claim TAS-21` branches
|
|
@@ -102,6 +104,76 @@ task claim --release TAS-21 # abandon a claim cleanly
|
|
|
102
104
|
agent will skip it. `task list --claimable` shows `todo` tickets in position
|
|
103
105
|
order minus blocked and already-claimed — the top entry is what an
|
|
104
106
|
autonomous worker takes next, which makes column order your priority queue.
|
|
107
|
+
- **Pinned to a branch? Take just the lock.** Plain `claim` bundles three
|
|
108
|
+
roles — the lock (the branch ref on origin), the workspace (the checkout
|
|
109
|
+
switch), and the delivery branch (where the work lands). For the scheduled
|
|
110
|
+
worker they coincide; for a session whose harness handed it a provisioned
|
|
111
|
+
branch (Claude web sessions, CI jobs) they don't — it can't switch branches
|
|
112
|
+
without breaking its contract, and working outside the lock is how two
|
|
113
|
+
workers collide. `task claim <id> --lock-only` takes the same atomic lock
|
|
114
|
+
without touching the checkout: the `in_progress` flip commit is built
|
|
115
|
+
against origin's default branch in a temporary index and pushed with the
|
|
116
|
+
same must-not-exist lease, and it carries a `delivered_by: <branch>` trailer
|
|
117
|
+
naming the branch the work will actually land on. Exit codes and
|
|
118
|
+
`--release` are identical to plain claim.
|
|
119
|
+
- **Releases are verified, and `task sweep` is the janitor.** Some
|
|
120
|
+
environments silently drop branch-deletion pushes — git reports success
|
|
121
|
+
while the ref survives — so `--release` re-checks with `ls-remote` and
|
|
122
|
+
fails loudly instead of reporting a release that didn't happen. The
|
|
123
|
+
systemic healer is `task sweep`: delete every claim branch on origin whose
|
|
124
|
+
ticket is done, canceled, or missing on the current checkout, across all
|
|
125
|
+
the repo's boards, verifying each deletion; it exits non-zero if a deletion
|
|
126
|
+
was attempted and failed. Its jurisdiction is exactly the names `claim`
|
|
127
|
+
mints — `<namespace><prefix>-<valid key>`; a branch under the namespace
|
|
128
|
+
that doesn't fit (a pre-migration numeric claim, a hand-made branch) is
|
|
129
|
+
reported and left alone, because it may be an open PR's head and deleting
|
|
130
|
+
what claiming didn't create is a judgment call, not janitorial work. Pure
|
|
131
|
+
git and zero judgment by design — the trigger belongs to a runner, not an
|
|
132
|
+
agent (see below).
|
|
133
|
+
|
|
134
|
+
### Environment requirements for agent runners
|
|
135
|
+
|
|
136
|
+
The claim protocol is plain git, so any harness — Claude, Codex, CI, a
|
|
137
|
+
laptop cron — can drive it if its environment meets this contract:
|
|
138
|
+
|
|
139
|
+
- **Git identity**: `user.name`/`user.email` set (the flip commit needs an
|
|
140
|
+
author).
|
|
141
|
+
- **Push rights to the claim namespace** (`claims.branchPrefix`): creating a
|
|
142
|
+
branch there *is* claiming.
|
|
143
|
+
- **Branch deletion rights** for a full-service worker — or accept degraded
|
|
144
|
+
release: environments that can't delete remote branches get a loud error
|
|
145
|
+
from `task claim --release` instead of a silent lie, and a `task sweep`
|
|
146
|
+
running somewhere capable heals the stale locks once tickets finish.
|
|
147
|
+
- **A branch-pinned harness** (the session must deliver its work on an
|
|
148
|
+
assigned branch) claims with `--lock-only`; a free harness uses plain
|
|
149
|
+
`claim` and works on the claim branch. The harness supplies the fact, the
|
|
150
|
+
shipped skill supplies the rule — no vendor detection anywhere.
|
|
151
|
+
|
|
152
|
+
The reference sweep trigger is ~10 lines of GitHub Actions — push-to-main
|
|
153
|
+
plus a daily cron, deliberately deterministic (no agent, no judgment):
|
|
154
|
+
|
|
155
|
+
```yaml
|
|
156
|
+
# .github/workflows/task-sweep.yml
|
|
157
|
+
name: Task sweep
|
|
158
|
+
on:
|
|
159
|
+
push:
|
|
160
|
+
branches: [main]
|
|
161
|
+
schedule:
|
|
162
|
+
- cron: "17 4 * * *"
|
|
163
|
+
permissions:
|
|
164
|
+
contents: write # branch deletion
|
|
165
|
+
jobs:
|
|
166
|
+
sweep:
|
|
167
|
+
runs-on: ubuntu-latest
|
|
168
|
+
steps:
|
|
169
|
+
- uses: actions/checkout@v4
|
|
170
|
+
- uses: actions/setup-node@v4
|
|
171
|
+
with: { node-version: 22 }
|
|
172
|
+
- run: npx @nickmeriano/task sweep
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Any runner that can `git push --delete` works identically — a laptop cron
|
|
176
|
+
running `npx @nickmeriano/task sweep` is the same janitor.
|
|
105
177
|
|
|
106
178
|
## Git, from the board
|
|
107
179
|
|
package/dist/claim.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* (the implement-task skill, a human).
|
|
11
11
|
*/
|
|
12
12
|
import { type Store } from "./store.ts";
|
|
13
|
-
import type { ProjectConfig, Task } from "./types.ts";
|
|
13
|
+
import type { ProjectConfig, Status, Task } from "./types.ts";
|
|
14
14
|
/**
|
|
15
15
|
* The branch namespace claims live under when the board doesn't configure
|
|
16
16
|
* one. Deliberately vendor-neutral: repos whose workers are Claude Code cloud
|
|
@@ -56,6 +56,13 @@ export interface ClaimResult {
|
|
|
56
56
|
task: Task;
|
|
57
57
|
branch: string;
|
|
58
58
|
base: string;
|
|
59
|
+
/**
|
|
60
|
+
* Where the checkout was before the claim switched it — a branch name
|
|
61
|
+
* usually, a bare sha when HEAD was detached. The CLI uses it to warn a
|
|
62
|
+
* branch-pinned session that a plain claim just moved it off its assigned
|
|
63
|
+
* branch (the `--lock-only` case).
|
|
64
|
+
*/
|
|
65
|
+
previous: string;
|
|
59
66
|
}
|
|
60
67
|
export interface ClaimOptions {
|
|
61
68
|
/** Claim past the root board's `claims.maxOpenCount` cap. */
|
|
@@ -71,6 +78,36 @@ export interface ClaimOptions {
|
|
|
71
78
|
* fast-forward. Leaves the winner checked out on the claim branch.
|
|
72
79
|
*/
|
|
73
80
|
export declare function claim(store: Store, key: string, options?: ClaimOptions): ClaimResult;
|
|
81
|
+
export interface LockOnlyClaimResult {
|
|
82
|
+
task: Task;
|
|
83
|
+
branch: string;
|
|
84
|
+
base: string;
|
|
85
|
+
/** The checkout's branch at claim time, recorded in the flip commit's `delivered_by:` trailer. */
|
|
86
|
+
deliveredBy: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* `task claim <id> --lock-only`: mint the claim branch on origin without
|
|
90
|
+
* touching the checkout. For sessions pinned to a provisioned branch (a
|
|
91
|
+
* Claude web session, a CI job) the three roles plain `claim` bundles — the
|
|
92
|
+
* lock, the workspace, and the delivery branch — don't coincide: the session
|
|
93
|
+
* can't switch branches without breaking its harness contract, and working
|
|
94
|
+
* outside the lock is how two workers end up on the same ticket.
|
|
95
|
+
*
|
|
96
|
+
* So this takes just the lock: the `in_progress` flip commit is built against
|
|
97
|
+
* origin's default-branch tree in a temporary index (read-tree → hash-object →
|
|
98
|
+
* update-index → write-tree → commit-tree) and pushed with the same
|
|
99
|
+
* must-not-exist lease plain `claim` uses — the compare-and-swap is identical,
|
|
100
|
+
* only the checkout stays where it is (dirty or pinned, doesn't matter). The
|
|
101
|
+
* flip commit carries a `delivered_by: <branch>` trailer naming the checkout's
|
|
102
|
+
* branch, so a lock-only claim is legible state — anyone reading the claim
|
|
103
|
+
* branch sees where the work will actually land. Exit-code contract and
|
|
104
|
+
* `--release` behave exactly like plain claim.
|
|
105
|
+
*
|
|
106
|
+
* Validation reads the *base tree*, not the checkout: the commit is built on
|
|
107
|
+
* origin's default branch, and the pinned checkout's copy of the ticket may be
|
|
108
|
+
* stale or diverged — a promote that hasn't merged yet isn't claimable yet.
|
|
109
|
+
*/
|
|
110
|
+
export declare function claimLockOnly(store: Store, key: string, options?: ClaimOptions): LockOnlyClaimResult;
|
|
74
111
|
export interface ReleaseResult {
|
|
75
112
|
branch: string;
|
|
76
113
|
/** Whether a branch was actually there to delete, per side. */
|
|
@@ -83,6 +120,55 @@ export interface ReleaseResult {
|
|
|
83
120
|
* revert — the default branch never saw in_progress.
|
|
84
121
|
*/
|
|
85
122
|
export declare function release(store: Store, key: string): ReleaseResult;
|
|
123
|
+
export interface SweptBranch {
|
|
124
|
+
branch: string;
|
|
125
|
+
/** Display id of the ticket the branch locks — for "missing", the id the branch name claims. */
|
|
126
|
+
ticket: string;
|
|
127
|
+
reason: "done" | "canceled" | "missing";
|
|
128
|
+
}
|
|
129
|
+
export interface SweepResult {
|
|
130
|
+
swept: SweptBranch[];
|
|
131
|
+
kept: {
|
|
132
|
+
branch: string;
|
|
133
|
+
ticket: string;
|
|
134
|
+
status: Status;
|
|
135
|
+
}[];
|
|
136
|
+
/**
|
|
137
|
+
* Branches under the claim namespace whose name the claim protocol could
|
|
138
|
+
* not have minted — no board's `<prefix>-`, or a segment that isn't a valid
|
|
139
|
+
* ticket key (pre-migration numeric claims like `tas-31`, hand-made
|
|
140
|
+
* branches). Deliberately never deleted: sweep's jurisdiction is exactly
|
|
141
|
+
* the branches `task claim` creates, and a name outside the scheme may be
|
|
142
|
+
* an open PR's head or someone's parked work. Reported so a human can
|
|
143
|
+
* clean them up knowingly.
|
|
144
|
+
*/
|
|
145
|
+
skipped: string[];
|
|
146
|
+
failed: {
|
|
147
|
+
branch: string;
|
|
148
|
+
error: string;
|
|
149
|
+
}[];
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* `task sweep`: for every claim branch on origin whose ticket is done,
|
|
153
|
+
* canceled, or missing on the current checkout, delete the branch — with the
|
|
154
|
+
* same deletion verification as `--release`, so a survivor is a failure, never
|
|
155
|
+
* a silent lie. This is the liveness half of the lock: environments that can't
|
|
156
|
+
* delete remote branches leave stale claims behind (`--release` there fails
|
|
157
|
+
* loudly rather than lying), and sweep, run from a runner that *can* delete
|
|
158
|
+
* (CI on push-to-main or cron, a laptop cron), heals them.
|
|
159
|
+
*
|
|
160
|
+
* Deliberately pure git and zero judgment — no vendor awareness, no agent in
|
|
161
|
+
* the loop — and scoped to exactly the branches the claim protocol mints:
|
|
162
|
+
* `<namespace><prefix>-<key>` with a valid ticket key. A branch under the
|
|
163
|
+
* namespace that doesn't fit the scheme (a pre-migration numeric claim, a
|
|
164
|
+
* hand-made branch) is *skipped and reported*, never deleted — it may be an
|
|
165
|
+
* open PR's head, and deleting what claiming didn't create isn't janitorial
|
|
166
|
+
* work, it's a judgment call. Within the scheme, the ticket's status on this
|
|
167
|
+
* checkout decides: done/canceled/missing → delete, anything live → keep.
|
|
168
|
+
* Boards are discovered repo-wide, the way `task serve` finds them, so one
|
|
169
|
+
* sweep covers every board's namespace.
|
|
170
|
+
*/
|
|
171
|
+
export declare function sweep(cwd: string): SweepResult;
|
|
86
172
|
/**
|
|
87
173
|
* The dispatcher's queue view: `todo` in position order, minus blocked, minus
|
|
88
174
|
* tickets whose claim branch already exists on origin (one ls-remote for the
|
package/dist/claim.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../src/claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../src/claim.ts"],"names":[],"mappings":"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"}
|
package/dist/claim.js
CHANGED
|
@@ -9,10 +9,14 @@
|
|
|
9
9
|
* against `origin`. PR/session awareness belongs to whatever drives the claim
|
|
10
10
|
* (the implement-task skill, a human).
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { rmSync } from "node:fs";
|
|
13
|
+
import { tmpdir } from "node:os";
|
|
14
|
+
import { join, relative, sep } from "node:path";
|
|
15
|
+
import { FileStore, TICKET_FILE, TICKETS_DIR, openBoard } from "./file-store.js";
|
|
14
16
|
import { GIT_NETWORK_TIMEOUT_MS, defaultBase, git, gitMust, runGit, } from "./git.js";
|
|
15
|
-
import { boardConfig, findBoardsByPrefix, findRoot, findScopeRoot, } from "./store.js";
|
|
17
|
+
import { boardConfig, findBoards, findBoardsByPrefix, findRoot, findScopeRoot, } from "./store.js";
|
|
18
|
+
import { isTicketKey } from "./id.js";
|
|
19
|
+
import { parseTicket, parseTicketLenient, serializeTicket } from "./ticket-doc.js";
|
|
16
20
|
/**
|
|
17
21
|
* The branch namespace claims live under when the board doesn't configure
|
|
18
22
|
* one. Deliberately vendor-neutral: repos whose workers are Claude Code cloud
|
|
@@ -99,6 +103,21 @@ export function remoteClaims(cwd, namespace) {
|
|
|
99
103
|
function remoteBranchExists(cwd, branch) {
|
|
100
104
|
return gitNetMust(cwd, "ls-remote", "--heads", "origin", branch) !== "";
|
|
101
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Delete a remote branch and verify the ref is actually gone (TAS-8b7s9).
|
|
108
|
+
* Some environments — git egress proxies in cloud sessions, notably — drop
|
|
109
|
+
* branch-deletion pushes while git reports success ("Everything up-to-date"),
|
|
110
|
+
* so trusting the exit code lets `--release` report a release that didn't
|
|
111
|
+
* happen: the branch lives on, occupying a WIP-cap slot and advertising a
|
|
112
|
+
* stale claim to every worker. One bounded ls-remote on a path that already
|
|
113
|
+
* made network calls turns that lie into a loud failure naming the remedies.
|
|
114
|
+
*/
|
|
115
|
+
function deleteRemoteBranchVerified(cwd, branch) {
|
|
116
|
+
gitNetMust(cwd, "push", "--quiet", "origin", "--delete", branch);
|
|
117
|
+
if (remoteBranchExists(cwd, branch)) {
|
|
118
|
+
throw new Error(`origin still has ${branch} after a deletion git reported as successful — this environment silently drops branch deletions. Delete it from one that can: locally, \`task sweep\` on a capable runner (CI), or the forge API/UI.`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
102
121
|
/** Blockers still in the way — anything not done or canceled still blocks. */
|
|
103
122
|
function openBlockers(store, task) {
|
|
104
123
|
return task.blockedBy
|
|
@@ -217,7 +236,164 @@ export function claim(store, key, options = {}) {
|
|
|
217
236
|
}
|
|
218
237
|
throw new ClaimError(`${id}: push of ${branch} was rejected (likely a concurrent claim) — ${push.stderr || "no detail from git"}`, "claimed");
|
|
219
238
|
}
|
|
220
|
-
return { task: store.get(key), branch, base };
|
|
239
|
+
return { task: store.get(key), branch, base, previous };
|
|
240
|
+
}
|
|
241
|
+
// ── Lock-only claims ─────────────────────────────────────────────────────────
|
|
242
|
+
/** A file's path relative to the git toplevel — git tree reads speak toplevel paths. */
|
|
243
|
+
function ticketPathFromToplevel(store, key) {
|
|
244
|
+
const toplevel = gitMust(store.root, "rev-parse", "--show-toplevel");
|
|
245
|
+
return [relative(toplevel, store.taskDir).split(sep).join("/"), TICKETS_DIR, key, TICKET_FILE]
|
|
246
|
+
.filter(Boolean)
|
|
247
|
+
.join("/");
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* `task claim <id> --lock-only`: mint the claim branch on origin without
|
|
251
|
+
* touching the checkout. For sessions pinned to a provisioned branch (a
|
|
252
|
+
* Claude web session, a CI job) the three roles plain `claim` bundles — the
|
|
253
|
+
* lock, the workspace, and the delivery branch — don't coincide: the session
|
|
254
|
+
* can't switch branches without breaking its harness contract, and working
|
|
255
|
+
* outside the lock is how two workers end up on the same ticket.
|
|
256
|
+
*
|
|
257
|
+
* So this takes just the lock: the `in_progress` flip commit is built against
|
|
258
|
+
* origin's default-branch tree in a temporary index (read-tree → hash-object →
|
|
259
|
+
* update-index → write-tree → commit-tree) and pushed with the same
|
|
260
|
+
* must-not-exist lease plain `claim` uses — the compare-and-swap is identical,
|
|
261
|
+
* only the checkout stays where it is (dirty or pinned, doesn't matter). The
|
|
262
|
+
* flip commit carries a `delivered_by: <branch>` trailer naming the checkout's
|
|
263
|
+
* branch, so a lock-only claim is legible state — anyone reading the claim
|
|
264
|
+
* branch sees where the work will actually land. Exit-code contract and
|
|
265
|
+
* `--release` behave exactly like plain claim.
|
|
266
|
+
*
|
|
267
|
+
* Validation reads the *base tree*, not the checkout: the commit is built on
|
|
268
|
+
* origin's default branch, and the pinned checkout's copy of the ticket may be
|
|
269
|
+
* stale or diverged — a promote that hasn't merged yet isn't claimable yet.
|
|
270
|
+
*/
|
|
271
|
+
export function claimLockOnly(store, key, options = {}) {
|
|
272
|
+
if (!(store instanceof FileStore)) {
|
|
273
|
+
throw new ClaimError("claiming needs a text-format board — run `npx @nickmeriano/task@0.6 migrate` once", "invalid");
|
|
274
|
+
}
|
|
275
|
+
const cwd = store.root;
|
|
276
|
+
const branch = claimBranch(store.config, key);
|
|
277
|
+
const id = store.displayId(key);
|
|
278
|
+
if (git(cwd, "rev-parse", "--git-dir").status !== 0) {
|
|
279
|
+
throw new ClaimError(`not a git repository: ${cwd}`, "invalid");
|
|
280
|
+
}
|
|
281
|
+
// A local claim branch means some flow here already claimed it the plain way.
|
|
282
|
+
if (git(cwd, "show-ref", "--verify", "--quiet", `refs/heads/${branch}`).status === 0) {
|
|
283
|
+
throw new ClaimError(`${id} is already claimed — ${branch} exists locally (finish it, or \`task claim --release ${id}\`)`, "claimed");
|
|
284
|
+
}
|
|
285
|
+
gitNetMust(cwd, "fetch", "--quiet", "origin");
|
|
286
|
+
const namespace = claimNamespace(store.config);
|
|
287
|
+
const openClaims = remoteClaims(cwd, namespace);
|
|
288
|
+
if (openClaims.has(branch)) {
|
|
289
|
+
throw new ClaimError(`${id} is already claimed — ${branch} exists on origin`, "claimed");
|
|
290
|
+
}
|
|
291
|
+
if (!options.force)
|
|
292
|
+
assertUnderCap(openClaims, cwd, namespace);
|
|
293
|
+
const base = defaultBase(cwd);
|
|
294
|
+
const baseSha = gitMust(cwd, "rev-parse", base);
|
|
295
|
+
const path = ticketPathFromToplevel(store, key);
|
|
296
|
+
const bytes = git(cwd, "show", `${baseSha}:${path}`);
|
|
297
|
+
if (bytes.status !== 0) {
|
|
298
|
+
throw new ClaimError(`no such task on ${base}: ${id} — a lock-only claim is built on origin's default branch, so the ticket must exist there`, "invalid");
|
|
299
|
+
}
|
|
300
|
+
// Strict parse first — it carries unknown frontmatter through, so the flip
|
|
301
|
+
// commit can't silently drop a hand-added field — falling back to lenient
|
|
302
|
+
// for bytes another checkout or an older CLI wrote oddly (branch reads
|
|
303
|
+
// degrade, they don't refuse the tree).
|
|
304
|
+
let doc;
|
|
305
|
+
try {
|
|
306
|
+
doc = parseTicket(bytes.stdout, `${base}:${path}`);
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
doc = parseTicketLenient(bytes.stdout);
|
|
310
|
+
}
|
|
311
|
+
if (!doc) {
|
|
312
|
+
throw new ClaimError(`${id} on ${base} isn't a readable ticket file`, "invalid");
|
|
313
|
+
}
|
|
314
|
+
if (doc.status !== "todo") {
|
|
315
|
+
throw new ClaimError(`${id} is ${doc.status} on ${base} — only todo tickets can be claimed (a local promote counts once it lands on the default branch)`, "invalid");
|
|
316
|
+
}
|
|
317
|
+
const blockers = doc.blockedBy.filter((blocker) => {
|
|
318
|
+
const raw = git(cwd, "show", `${baseSha}:${ticketPathFromToplevel(store, blocker)}`);
|
|
319
|
+
if (raw.status !== 0)
|
|
320
|
+
return false; // missing blocker doesn't block, as in openBlockers
|
|
321
|
+
const status = parseTicketLenient(raw.stdout)?.status;
|
|
322
|
+
return status !== undefined && status !== "done" && status !== "canceled";
|
|
323
|
+
});
|
|
324
|
+
if (blockers.length) {
|
|
325
|
+
throw new ClaimError(`${id} is blocked by ${blockers.map((b) => store.displayId(b)).join(", ")} — not claimable`, "invalid");
|
|
326
|
+
}
|
|
327
|
+
const deliveredBy = git(cwd, "symbolic-ref", "--quiet", "--short", "HEAD").stdout ||
|
|
328
|
+
gitMust(cwd, "rev-parse", "HEAD");
|
|
329
|
+
const flipped = serializeTicket({
|
|
330
|
+
...doc,
|
|
331
|
+
status: "in_progress",
|
|
332
|
+
updatedAt: new Date().toISOString(),
|
|
333
|
+
});
|
|
334
|
+
// The temp-index dance claim-io.ts proved out: build the flip commit against
|
|
335
|
+
// the base tree without ever touching the checkout or its index.
|
|
336
|
+
const index = join(tmpdir(), `task-claim-index-${process.pid}-${Date.now()}`);
|
|
337
|
+
const env = { GIT_INDEX_FILE: index };
|
|
338
|
+
let commit;
|
|
339
|
+
try {
|
|
340
|
+
if (runGit(cwd, ["read-tree", baseSha], { env }).status !== 0) {
|
|
341
|
+
throw new Error(`git read-tree failed on ${base}`);
|
|
342
|
+
}
|
|
343
|
+
const blob = runGit(cwd, ["hash-object", "-w", "--stdin"], { input: flipped });
|
|
344
|
+
if (blob.status !== 0)
|
|
345
|
+
throw new Error("git hash-object failed");
|
|
346
|
+
if (runGit(cwd, ["update-index", "--add", "--cacheinfo", `100644,${blob.stdout},${path}`], { env })
|
|
347
|
+
.status !== 0) {
|
|
348
|
+
throw new Error(`git update-index failed for ${path}`);
|
|
349
|
+
}
|
|
350
|
+
const tree = runGit(cwd, ["write-tree"], { env });
|
|
351
|
+
if (tree.status !== 0)
|
|
352
|
+
throw new Error("git write-tree failed");
|
|
353
|
+
const made = git(cwd, "commit-tree", tree.stdout, "-p", baseSha, "-m", `chore(board): claim ${id} → in_progress (lock-only)\n\ndelivered_by: ${deliveredBy}`);
|
|
354
|
+
if (made.status !== 0) {
|
|
355
|
+
throw new Error("git commit-tree failed — is git user.name/user.email configured?");
|
|
356
|
+
}
|
|
357
|
+
commit = made.stdout;
|
|
358
|
+
}
|
|
359
|
+
finally {
|
|
360
|
+
rmSync(index, { force: true });
|
|
361
|
+
}
|
|
362
|
+
// The same compare-and-swap as plain claim: the empty lease means "the ref
|
|
363
|
+
// must not exist", so two concurrent claimers still get exactly one winner.
|
|
364
|
+
const push = runGit(cwd, ["push", "--quiet", "origin", `${commit}:refs/heads/${branch}`, `--force-with-lease=refs/heads/${branch}:`], { timeoutMs: GIT_NETWORK_TIMEOUT_MS });
|
|
365
|
+
if (push.status !== 0) {
|
|
366
|
+
if (remoteBranchExists(cwd, branch)) {
|
|
367
|
+
throw new ClaimError(`${id} is already claimed — ${branch} was just created on origin`, "claimed");
|
|
368
|
+
}
|
|
369
|
+
throw new ClaimError(`${id}: push of ${branch} was rejected (likely a concurrent claim) — ${push.stderr || "no detail from git"}`, "claimed");
|
|
370
|
+
}
|
|
371
|
+
// Keep the remote-tracking ref in step so an immediate read (the inbox, the
|
|
372
|
+
// serve UI) sees the claim without another fetch.
|
|
373
|
+
git(cwd, "update-ref", `refs/remotes/origin/${branch}`, commit);
|
|
374
|
+
// The checkout's copy of the ticket wasn't touched — present the claim as
|
|
375
|
+
// made, preferring the local ticket (asks, relations) when it exists.
|
|
376
|
+
const local = store.get(key);
|
|
377
|
+
const task = local
|
|
378
|
+
? { ...local, status: "in_progress" }
|
|
379
|
+
: {
|
|
380
|
+
id,
|
|
381
|
+
key,
|
|
382
|
+
title: doc.title,
|
|
383
|
+
description: doc.description,
|
|
384
|
+
status: "in_progress",
|
|
385
|
+
tags: doc.tags,
|
|
386
|
+
goal: doc.goal,
|
|
387
|
+
needsHuman: false,
|
|
388
|
+
asks: [],
|
|
389
|
+
blocks: [],
|
|
390
|
+
blockedBy: doc.blockedBy,
|
|
391
|
+
prs: doc.prs,
|
|
392
|
+
position: doc.position,
|
|
393
|
+
createdAt: doc.createdAt,
|
|
394
|
+
updatedAt: doc.updatedAt,
|
|
395
|
+
};
|
|
396
|
+
return { task, branch, base, deliveredBy };
|
|
221
397
|
}
|
|
222
398
|
/**
|
|
223
399
|
* Abandon a claim cleanly: delete the branch on origin and locally. The status
|
|
@@ -247,9 +423,92 @@ export function release(store, key) {
|
|
|
247
423
|
const local = git(cwd, "branch", "--quiet", "-D", branch).status === 0;
|
|
248
424
|
const remote = remoteBranchExists(cwd, branch);
|
|
249
425
|
if (remote)
|
|
250
|
-
|
|
426
|
+
deleteRemoteBranchVerified(cwd, branch);
|
|
251
427
|
return { branch, remote, local };
|
|
252
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* `task sweep`: for every claim branch on origin whose ticket is done,
|
|
431
|
+
* canceled, or missing on the current checkout, delete the branch — with the
|
|
432
|
+
* same deletion verification as `--release`, so a survivor is a failure, never
|
|
433
|
+
* a silent lie. This is the liveness half of the lock: environments that can't
|
|
434
|
+
* delete remote branches leave stale claims behind (`--release` there fails
|
|
435
|
+
* loudly rather than lying), and sweep, run from a runner that *can* delete
|
|
436
|
+
* (CI on push-to-main or cron, a laptop cron), heals them.
|
|
437
|
+
*
|
|
438
|
+
* Deliberately pure git and zero judgment — no vendor awareness, no agent in
|
|
439
|
+
* the loop — and scoped to exactly the branches the claim protocol mints:
|
|
440
|
+
* `<namespace><prefix>-<key>` with a valid ticket key. A branch under the
|
|
441
|
+
* namespace that doesn't fit the scheme (a pre-migration numeric claim, a
|
|
442
|
+
* hand-made branch) is *skipped and reported*, never deleted — it may be an
|
|
443
|
+
* open PR's head, and deleting what claiming didn't create isn't janitorial
|
|
444
|
+
* work, it's a judgment call. Within the scheme, the ticket's status on this
|
|
445
|
+
* checkout decides: done/canceled/missing → delete, anything live → keep.
|
|
446
|
+
* Boards are discovered repo-wide, the way `task serve` finds them, so one
|
|
447
|
+
* sweep covers every board's namespace.
|
|
448
|
+
*/
|
|
449
|
+
export function sweep(cwd) {
|
|
450
|
+
const scope = findScopeRoot(cwd);
|
|
451
|
+
const boards = [];
|
|
452
|
+
for (const ref of findBoards(scope)) {
|
|
453
|
+
try {
|
|
454
|
+
boards.push(openBoard(ref.root));
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
// An unreadable board can't vouch for its branches — skip it.
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
if (boards.length === 0) {
|
|
461
|
+
throw new ClaimError("no .task directory found in this directory or any parent — run `task init` first", "invalid");
|
|
462
|
+
}
|
|
463
|
+
// One ls-remote per distinct namespace (normally exactly one — `task check`
|
|
464
|
+
// lints that boards agree), each branch matched to the board whose
|
|
465
|
+
// `<prefix>-` leads its final segment.
|
|
466
|
+
const namespaces = new Map();
|
|
467
|
+
for (const store of boards) {
|
|
468
|
+
let namespace;
|
|
469
|
+
try {
|
|
470
|
+
namespace = claimNamespace(store.config);
|
|
471
|
+
}
|
|
472
|
+
catch {
|
|
473
|
+
continue; // a malformed prefix can't have minted branches worth sweeping
|
|
474
|
+
}
|
|
475
|
+
const list = namespaces.get(namespace) ?? [];
|
|
476
|
+
list.push(store);
|
|
477
|
+
namespaces.set(namespace, list);
|
|
478
|
+
}
|
|
479
|
+
const result = { swept: [], kept: [], skipped: [], failed: [] };
|
|
480
|
+
for (const [namespace, stores] of namespaces) {
|
|
481
|
+
for (const branch of [...remoteClaims(scope, namespace)].sort()) {
|
|
482
|
+
const rest = branch.slice(namespace.length);
|
|
483
|
+
const store = stores.find((s) => rest.startsWith(`${s.config.prefix.toLowerCase()}-`));
|
|
484
|
+
const key = store ? rest.slice(store.config.prefix.length + 1) : null;
|
|
485
|
+
if (!store || !key || !isTicketKey(key)) {
|
|
486
|
+
result.skipped.push(branch);
|
|
487
|
+
continue;
|
|
488
|
+
}
|
|
489
|
+
const task = store.get(key);
|
|
490
|
+
if (task && task.status !== "done" && task.status !== "canceled") {
|
|
491
|
+
result.kept.push({ branch, ticket: task.id, status: task.status });
|
|
492
|
+
continue;
|
|
493
|
+
}
|
|
494
|
+
const entry = task
|
|
495
|
+
? { branch, ticket: task.id, reason: task.status }
|
|
496
|
+
: { branch, ticket: store.displayId(key), reason: "missing" };
|
|
497
|
+
try {
|
|
498
|
+
deleteRemoteBranchVerified(scope, branch);
|
|
499
|
+
git(scope, "update-ref", "-d", `refs/remotes/origin/${branch}`);
|
|
500
|
+
result.swept.push(entry);
|
|
501
|
+
}
|
|
502
|
+
catch (error) {
|
|
503
|
+
result.failed.push({
|
|
504
|
+
branch,
|
|
505
|
+
error: error instanceof Error ? error.message : String(error),
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
return result;
|
|
511
|
+
}
|
|
253
512
|
/**
|
|
254
513
|
* The dispatcher's queue view: `todo` in position order, minus blocked, minus
|
|
255
514
|
* tickets whose claim branch already exists on origin (one ls-remote for the
|
package/dist/claim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../src/claim.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../src/claim.ts"],"names":[],"mappings":"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"}
|
package/dist/claim.test.d.ts
CHANGED
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
* and already-claimed tickets — open asks never exclude a ticket.
|
|
11
11
|
* 4. `task claim --release` deletes the branch both sides and the ticket is
|
|
12
12
|
* claimable again.
|
|
13
|
+
* 5. `task claim --lock-only` takes the same lock without touching the
|
|
14
|
+
* checkout — a branch-pinned (even dirty) session can hold it — and
|
|
15
|
+
* `--release` works on it symmetrically.
|
|
16
|
+
* 6. Deletions are verified: against a remote that silently drops deletion
|
|
17
|
+
* pushes (TAS-8b7s9), release and sweep fail loudly instead of lying.
|
|
18
|
+
* 7. `task sweep` deletes claim branches whose tickets are done, canceled or
|
|
19
|
+
* missing on the current checkout, and leaves live ones — and any branch
|
|
20
|
+
* named outside the claim scheme — alone.
|
|
13
21
|
*/
|
|
14
22
|
export {};
|
|
15
23
|
//# sourceMappingURL=claim.test.d.ts.map
|
package/dist/claim.test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.test.d.ts","sourceRoot":"","sources":["../src/claim.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claim.test.d.ts","sourceRoot":"","sources":["../src/claim.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
|