@nickmeriano/task 0.4.1 → 0.5.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/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  export declare const STATUSES: readonly ["backlog", "todo", "in_progress", "done", "canceled"];
4
4
  export type Status = (typeof STATUSES)[number];
5
5
  export interface Task {
6
- /** Display id — `<prefix>-<number>`, e.g. "PHONE-12". */
6
+ /** Display id — `<prefix>-<number>`, e.g. "PHO-12". */
7
7
  id: string;
8
8
  number: number;
9
9
  title: string;
@@ -13,6 +13,15 @@ export interface Task {
13
13
  milestone: string | null;
14
14
  /** This ticket can't be finished by an agent alone. */
15
15
  needsHuman: boolean;
16
+ /**
17
+ * Task numbers this one blocks / is blocked by. One relation, two views:
18
+ * a single `(blocker, blocked)` row shows up in the blocker's `blocks` and
19
+ * the blocked task's `blockedBy`, so the mirror can never drift.
20
+ */
21
+ blocks: number[];
22
+ blockedBy: number[];
23
+ /** Pull request URLs attached to this task. */
24
+ prs: string[];
16
25
  /** Sort key within a status column; smaller sorts first. */
17
26
  position: number;
18
27
  createdAt: string;
@@ -27,7 +36,7 @@ export interface Comment {
27
36
  }
28
37
  export interface ProjectConfig {
29
38
  name: string;
30
- /** Uppercase id prefix, e.g. "PHONE" → PHONE-1, PHONE-2, … */
39
+ /** Uppercase id prefix, e.g. "PHO" → PHO-1, PHO-2, … */
31
40
  prefix: string;
32
41
  version: number;
33
42
  }
@@ -46,6 +55,9 @@ export interface TaskInput {
46
55
  tags?: string[];
47
56
  milestone?: string | null;
48
57
  needsHuman?: boolean;
58
+ blocks?: number[];
59
+ blockedBy?: number[];
60
+ prs?: string[];
49
61
  }
50
62
  export interface TaskPatch {
51
63
  title?: string;
@@ -54,6 +66,13 @@ export interface TaskPatch {
54
66
  tags?: string[];
55
67
  milestone?: string | null;
56
68
  needsHuman?: boolean;
69
+ /**
70
+ * Full replacement, like `tags` — the store reconciles the relation table
71
+ * to match. Writing either side updates the other task's mirror view.
72
+ */
73
+ blocks?: number[];
74
+ blockedBy?: number[];
75
+ prs?: string[];
57
76
  /** Explicit board position (used by drag-and-drop in the UI). */
58
77
  position?: number;
59
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,eAAO,MAAM,QAAQ,iEAMX,CAAA;AACV,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,MAAM,WAAW,IAAI;IACnB,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAA;IACnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAEvD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,eAAO,MAAM,QAAQ,iEAMX,CAAA;AACV,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,MAAM,WAAW,IAAI;IACnB,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAEvD"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS;IACT,MAAM;IACN,aAAa;IACb,MAAM;IACN,UAAU;CACF,CAAA;AAgEV,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAQ,QAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;gEACgE;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS;IACT,MAAM;IACN,aAAa;IACb,MAAM;IACN,UAAU;CACF,CAAA;AAmFV,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAQ,QAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nickmeriano/task",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "A task manager that lives in your repo — SQLite in .task/, a zero-dependency CLI for humans and agents, and a live kanban/table UI via `task serve`.",
6
6
  "license": "MIT",
package/skill/SKILL.md CHANGED
@@ -40,6 +40,9 @@ task update <id> [--title t] [--description text] [--status s] [--tags a,b]
40
40
  task start <id> # → in_progress
41
41
  task done <id> # → done
42
42
  task move <id> <status> # any status change
43
+ task link <id> --blocked-by <id> # mark a dependency (or --blocks)
44
+ task unlink <id> --blocked-by <id> # remove one (or --blocks)
45
+ task update <id> --pr <url> # attach a pull request (appends)
43
46
  task comment <id> "text" --author claude
44
47
  task delete <id>
45
48
  task whoami # who comments are attributed to
@@ -53,9 +56,22 @@ and wait for a human, so **never run either on your own initiative**; suggest
53
56
  - `<id>` is `PREFIX-12` or just `12`.
54
57
  - Statuses: `backlog` `todo` `in_progress` `done` `canceled`.
55
58
  - `--tag a,b` matches a task carrying *either* tag, not both.
56
- - Clear a field by passing it empty: `--tags ""`, `--milestone ""`.
59
+ - Clear a field by passing it empty: `--tags ""`, `--milestone ""`, `--prs ""`.
57
60
  - `task list` hides done/canceled by default; `--all` shows everything.
58
61
 
62
+ **Dependencies.** `task link A --blocked-by B` and `task link B --blocks A`
63
+ write the same relation — each task's `task show` lists both its `blocked`
64
+ and `blocks` sides, with the other task's current status. Before starting a
65
+ task, check it isn't blocked by something still open; when you discover an
66
+ ordering ("this can't land until X does"), record it with `task link` instead
67
+ of prose in a comment. Blocked tasks wear a red "Blocked" badge on the board
68
+ until every blocker is done or canceled.
69
+
70
+ **Pull requests.** When you open a PR for a task, attach it:
71
+ `task update <id> --pr <url>`. Put the task id in the PR title too (e.g.
72
+ `[TAS-6] Fix retry loop`) so the two reference each other from both sides.
73
+ `--pr` appends one URL; `--prs url1,url2` replaces the whole list.
74
+
59
75
  ## How to work with the board
60
76
 
61
77
  **Starting work.** Before picking up a request, check `task list --json` —
package/src/cli.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  // task init
6
6
  // task add "Wire up webhooks" --tags api,infra --milestone launch
7
7
  // task list --status todo,in_progress
8
- // task start TASK-3 && task done TASK-3
8
+ // task start TAS-3 && task done TAS-3
9
9
  // task serve
10
10
 
11
11
  import { spawn } from "node:child_process"
@@ -134,6 +134,10 @@ function patchFromFlags(flags: Args["flags"]): TaskPatch {
134
134
  if (milestone !== undefined) patch.milestone = milestone.trim() || null
135
135
  if (flags["needs-human"]) patch.needsHuman = true
136
136
  if (flags["no-needs-human"]) patch.needsHuman = false
137
+ // Replace semantics like --tags; `--pr` (append one) is handled per-command
138
+ // because appending needs the task's current list.
139
+ const prs = str(flags, "prs")
140
+ if (prs !== undefined) patch.prs = prs.split(",").map((p) => p.trim()).filter(Boolean)
137
141
  return patch
138
142
  }
139
143
 
@@ -196,7 +200,10 @@ function cmdAdd(args: Args): void {
196
200
  const title = args.positional.join(" ").trim()
197
201
  if (!title) fail(`usage: task add <title> [--description …] [--status …] [--tags a,b] [--milestone …] [--needs-human]`)
198
202
  const store = openStore()
199
- const task = store.create({ title, ...patchFromFlags(args.flags) })
203
+ const patch = patchFromFlags(args.flags)
204
+ const pr = str(args.flags, "pr")
205
+ if (pr) patch.prs = [...(patch.prs ?? []), pr]
206
+ const task = store.create({ title, ...patch })
200
207
  if (args.flags.json) {
201
208
  console.log(JSON.stringify({ task }, null, 2))
202
209
  } else {
@@ -243,11 +250,22 @@ function cmdShow(args: Args): void {
243
250
  console.log(JSON.stringify({ task, comments }, null, 2))
244
251
  return
245
252
  }
253
+ // A linked task is only as useful as knowing whether it's still in the way.
254
+ const describeLinks = (numbers: number[]): string =>
255
+ numbers
256
+ .map((n) => {
257
+ const other = store.get(n)
258
+ return other ? `${other.id} (${other.status})` : store.displayId(n)
259
+ })
260
+ .join(", ")
246
261
  console.log(`${task.id} ${task.title}`)
247
262
  console.log(`status ${task.status}`)
248
263
  if (task.needsHuman) console.log(`needs a human`)
249
264
  if (task.tags.length) console.log(`tags ${task.tags.join(", ")}`)
250
265
  if (task.milestone) console.log(`milestone ${task.milestone}`)
266
+ if (task.blockedBy.length) console.log(`blocked by ${describeLinks(task.blockedBy)}`)
267
+ if (task.blocks.length) console.log(`blocks ${describeLinks(task.blocks)}`)
268
+ for (const pr of task.prs) console.log(`pr ${pr}`)
251
269
  console.log(`created ${task.createdAt}`)
252
270
  console.log(`updated ${task.updatedAt}`)
253
271
  if (task.description) console.log(`\n${task.description}`)
@@ -264,10 +282,17 @@ function cmdUpdate(args: Args, forcedStatus?: Status): void {
264
282
  const ref = args.positional[0]
265
283
  if (!ref) fail("usage: task update <id> [--status …] [--title …] …")
266
284
  const store = openStore()
285
+ const number = store.parseId(ref)
267
286
  const patch = patchFromFlags(args.flags)
268
287
  if (forcedStatus) patch.status = forcedStatus
288
+ const pr = str(args.flags, "pr")
289
+ if (pr) {
290
+ // Append, dedup — `--pr <url>` is "attach this PR", not "replace the list".
291
+ const current = patch.prs ?? store.get(number)?.prs ?? []
292
+ patch.prs = current.includes(pr) ? current : [...current, pr]
293
+ }
269
294
  if (Object.keys(patch).length === 0) fail("nothing to update — pass at least one flag")
270
- const task = store.update(store.parseId(ref), patch)
295
+ const task = store.update(number, patch)
271
296
  if (args.flags.json) {
272
297
  console.log(JSON.stringify({ task }, null, 2))
273
298
  } else {
@@ -295,6 +320,36 @@ function cmdComment(args: Args): void {
295
320
  }
296
321
  }
297
322
 
323
+ /**
324
+ * `task link TAS-3 --blocked-by TAS-5` / `task unlink TAS-3 --blocks TAS-9`.
325
+ * One relation with two spellings: either flag writes the same (blocker,
326
+ * blocked) row, so the other task's `task show` reflects it immediately.
327
+ */
328
+ function cmdLink(args: Args, action: "link" | "unlink"): void {
329
+ const ref = args.positional[0]
330
+ const blocks = str(args.flags, "blocks")
331
+ const blockedBy = str(args.flags, "blocked-by")
332
+ if (!ref || (blocks ? blockedBy : !blockedBy)) {
333
+ fail(`usage: task ${action} <id> (--blocks <id> | --blocked-by <id>)`)
334
+ }
335
+ const store = openStore()
336
+ const relation = blocks ? "blocks" : "blocked_by"
337
+ const target = store.parseId((blocks ?? blockedBy)!)
338
+ const number = store.parseId(ref)
339
+ const task =
340
+ action === "link" ? store.link(number, relation, target) : store.unlink(number, relation, target)
341
+ if (args.flags.json) {
342
+ console.log(JSON.stringify({ task }, null, 2))
343
+ } else {
344
+ const verb = action === "link" ? "now" : "no longer"
345
+ const [subject, object] =
346
+ relation === "blocks"
347
+ ? [task.id, store.displayId(target)]
348
+ : [store.displayId(target), task.id]
349
+ console.log(`${subject} ${verb} blocks ${object}`)
350
+ }
351
+ }
352
+
298
353
  const AUTHOR_SOURCE: Record<string, string> = {
299
354
  flag: "--author",
300
355
  env: "$TASK_AUTHOR",
@@ -519,9 +574,14 @@ Usage
519
574
  task update <id> [--title <t>] [--description <text>] [--status <s>]
520
575
  [--tags <a,b>] [--milestone <m>]
521
576
  [--needs-human | --no-needs-human]
577
+ [--pr <url>] [--prs <url1,url2>]
522
578
  task move <id> <status> shorthand for update --status
523
579
  task start <id> → in_progress
524
580
  task done <id> → done
581
+ task link <id> --blocked-by <id>
582
+ task link <id> --blocks <id> mark a dependency — one relation, visible from
583
+ both tasks (A blocked by B ⇔ B blocks A)
584
+ task unlink <id> (--blocks <id> | --blocked-by <id>)
525
585
  task comment <id> <text> [--author <who>]
526
586
  task delete <id>
527
587
  task whoami who your comments are attributed to
@@ -544,11 +604,13 @@ Usage
544
604
  tasks — those are in .task/ either way
545
605
 
546
606
  Values
547
- <id> TASK-12, or just 12
607
+ <id> TAS-12, or just 12
548
608
  status ${STATUSES.join(" ")}
549
609
  --tag a,b matches a task carrying *either* tag
550
610
  --needs-human this can't be finished by an agent alone
551
- clearing --tags "" drops all tags, --milestone "" clears it
611
+ --pr <url> attach a pull request (appends); --prs replaces the whole list
612
+ clearing --tags "" drops all tags, --milestone "" clears it, --prs ""
613
+ detaches all PRs
552
614
 
553
615
  Comment authors resolve --author → $TASK_AUTHOR → git config user.name →
554
616
  anonymous, so there is nothing to set up. \`task whoami\` shows which one won.
@@ -588,6 +650,10 @@ function main(): void | Promise<void> {
588
650
  return cmdUpdate(args, "in_progress")
589
651
  case "done":
590
652
  return cmdUpdate(args, "done")
653
+ case "link":
654
+ return cmdLink(args, "link")
655
+ case "unlink":
656
+ return cmdLink(args, "unlink")
591
657
  case "comment":
592
658
  return cmdComment(args)
593
659
  case "whoami":
package/src/server.ts CHANGED
@@ -48,10 +48,26 @@ function parsePatch(body: Record<string, unknown>): TaskPatch {
48
48
  patch.milestone = body.milestone === "" ? null : body.milestone
49
49
  }
50
50
  if (typeof body.needsHuman === "boolean") patch.needsHuman = body.needsHuman
51
+ if (Array.isArray(body.blocks)) patch.blocks = body.blocks.map(taskNumber)
52
+ if (Array.isArray(body.blockedBy)) patch.blockedBy = body.blockedBy.map(taskNumber)
53
+ if (Array.isArray(body.prs)) {
54
+ patch.prs = body.prs.map((pr) => {
55
+ const url = String(pr).trim()
56
+ // Anything the UI would render as a clickable link has to be a link.
57
+ if (!/^https?:\/\//.test(url)) throw new Error(`not a PR url: ${url}`)
58
+ return url
59
+ })
60
+ }
51
61
  if (typeof body.position === "number") patch.position = body.position
52
62
  return patch
53
63
  }
54
64
 
65
+ function taskNumber(value: unknown): number {
66
+ const n = Number(value)
67
+ if (!Number.isInteger(n) || n <= 0) throw new Error(`invalid task number: ${String(value)}`)
68
+ return n
69
+ }
70
+
55
71
  /**
56
72
  * `task serve` — one plain node:http server for the static UI, the JSON API,
57
73
  * and an SSE stream that pings whenever anything writes to a `.task/` (the UI
package/src/store.ts CHANGED
@@ -79,10 +79,10 @@ export function findBoards(serveRoot: string, maxDepth = 6): BoardRef[] {
79
79
  return boards
80
80
  }
81
81
 
82
- /** Derive an id prefix from a project name: "phone agent" → "PHONE". */
82
+ /** Derive an id prefix from a project name: "phone agent" → "PHO". */
83
83
  export function derivePrefix(name: string): string {
84
84
  const word = name.toUpperCase().replace(/[^A-Z0-9]+/g, " ").trim().split(" ")[0]
85
- return (word || "TASK").slice(0, 10)
85
+ return (word || "TAS").slice(0, 3)
86
86
  }
87
87
 
88
88
  interface TaskRow {
@@ -93,6 +93,7 @@ interface TaskRow {
93
93
  tags: string
94
94
  milestone: string | null
95
95
  needs_human: number
96
+ prs: string
96
97
  position: number
97
98
  created_at: string
98
99
  updated_at: string
@@ -160,12 +161,24 @@ export class TaskStore {
160
161
  tags: JSON.parse(row.tags) as string[],
161
162
  milestone: row.milestone,
162
163
  needsHuman: row.needs_human !== 0,
164
+ blocks: this.linkedNumbers("blocker_id", row.id),
165
+ blockedBy: this.linkedNumbers("blocked_id", row.id),
166
+ prs: JSON.parse(row.prs) as string[],
163
167
  position: row.position,
164
168
  createdAt: row.created_at,
165
169
  updatedAt: row.updated_at,
166
170
  }
167
171
  }
168
172
 
173
+ /** The other end of every link where `column` is this task. */
174
+ private linkedNumbers(column: "blocker_id" | "blocked_id", number: number): number[] {
175
+ const other = column === "blocker_id" ? "blocked_id" : "blocker_id"
176
+ const rows = this.db
177
+ .prepare(`SELECT ${other} AS n FROM task_links WHERE ${column} = ? ORDER BY ${other}`)
178
+ .all(number) as unknown as { n: number }[]
179
+ return rows.map((r) => r.n)
180
+ }
181
+
169
182
  private toComment(row: CommentRow): Comment {
170
183
  return {
171
184
  id: row.id,
@@ -217,8 +230,8 @@ export class TaskStore {
217
230
  const timestamp = now()
218
231
  const result = this.db
219
232
  .prepare(
220
- `INSERT INTO tasks (title, description, status, tags, milestone, needs_human, position, created_at, updated_at)
221
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
233
+ `INSERT INTO tasks (title, description, status, tags, milestone, needs_human, prs, position, created_at, updated_at)
234
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
222
235
  )
223
236
  .run(
224
237
  input.title,
@@ -227,17 +240,31 @@ export class TaskStore {
227
240
  JSON.stringify(input.tags ?? []),
228
241
  input.milestone ?? null,
229
242
  input.needsHuman ? 1 : 0,
243
+ JSON.stringify(input.prs ?? []),
230
244
  (max.max ?? 0) + POSITION_GAP,
231
245
  timestamp,
232
246
  timestamp,
233
247
  )
234
- return this.get(Number(result.lastInsertRowid))!
248
+ const number = Number(result.lastInsertRowid)
249
+ if (input.blocks !== undefined) this.reconcileLinks("blocker_id", number, input.blocks)
250
+ if (input.blockedBy !== undefined) this.reconcileLinks("blocked_id", number, input.blockedBy)
251
+ return this.get(number)!
235
252
  }
236
253
 
237
254
  update(number: number, patch: TaskPatch): Task {
238
255
  const existing = this.get(number)
239
256
  if (!existing) throw new Error(`no such task: ${this.displayId(number)}`)
240
257
 
258
+ // Reconciled outside the UPDATE — links live in their own table. Done
259
+ // first so a bad target rejects the whole patch before anything writes.
260
+ let linksChanged = false
261
+ if (patch.blocks !== undefined) {
262
+ linksChanged = this.reconcileLinks("blocker_id", number, patch.blocks)
263
+ }
264
+ if (patch.blockedBy !== undefined) {
265
+ linksChanged = this.reconcileLinks("blocked_id", number, patch.blockedBy) || linksChanged
266
+ }
267
+
241
268
  const sets: string[] = []
242
269
  const params: (string | number | null)[] = []
243
270
  const set = (column: string, value: string | number | null) => {
@@ -250,6 +277,7 @@ export class TaskStore {
250
277
  if (patch.tags !== undefined) set("tags", JSON.stringify(patch.tags))
251
278
  if (patch.milestone !== undefined) set("milestone", patch.milestone)
252
279
  if (patch.needsHuman !== undefined) set("needs_human", patch.needsHuman ? 1 : 0)
280
+ if (patch.prs !== undefined) set("prs", JSON.stringify(patch.prs))
253
281
  if (patch.status !== undefined) {
254
282
  set("status", patch.status)
255
283
  if (patch.position === undefined && patch.status !== existing.status) {
@@ -263,10 +291,73 @@ export class TaskStore {
263
291
  }
264
292
  if (patch.position !== undefined) set("position", patch.position)
265
293
 
266
- if (sets.length === 0) return existing
267
- set("updated_at", now())
268
- params.push(number)
269
- this.db.prepare(`UPDATE tasks SET ${sets.join(", ")} WHERE id = ?`).run(...params)
294
+ if (sets.length === 0 && !linksChanged) return existing
295
+ if (sets.length > 0) {
296
+ set("updated_at", now())
297
+ params.push(number)
298
+ this.db.prepare(`UPDATE tasks SET ${sets.join(", ")} WHERE id = ?`).run(...params)
299
+ }
300
+ return this.get(number)!
301
+ }
302
+
303
+ /**
304
+ * Make the link table agree with `targets` for one side of one task —
305
+ * `blocker_id` when setting what `number` blocks, `blocked_id` when setting
306
+ * what blocks it. The other task's view is the same row read from the other
307
+ * end, so there is no second write to keep consistent. Every task touched
308
+ * (both ends of every added or removed link) gets its `updated_at` bumped.
309
+ */
310
+ private reconcileLinks(
311
+ column: "blocker_id" | "blocked_id",
312
+ number: number,
313
+ targets: number[],
314
+ ): boolean {
315
+ const other = column === "blocker_id" ? "blocked_id" : "blocker_id"
316
+ const wanted = [...new Set(targets)]
317
+ for (const target of wanted) {
318
+ if (target === number) {
319
+ throw new Error(`a task can't block itself: ${this.displayId(number)}`)
320
+ }
321
+ if (!this.db.prepare("SELECT id FROM tasks WHERE id = ?").get(target)) {
322
+ throw new Error(`no such task: ${this.displayId(target)}`)
323
+ }
324
+ }
325
+ const current = new Set(this.linkedNumbers(column, number))
326
+ const removed = [...current].filter((n) => !wanted.includes(n))
327
+ const added = wanted.filter((n) => !current.has(n))
328
+ for (const n of removed) {
329
+ this.db
330
+ .prepare(`DELETE FROM task_links WHERE ${column} = ? AND ${other} = ?`)
331
+ .run(number, n)
332
+ }
333
+ for (const n of added) {
334
+ this.db
335
+ .prepare(`INSERT OR IGNORE INTO task_links (${column}, ${other}) VALUES (?, ?)`)
336
+ .run(number, n)
337
+ }
338
+ const touched = [...removed, ...added]
339
+ if (touched.length > 0) {
340
+ const timestamp = now()
341
+ const bump = this.db.prepare("UPDATE tasks SET updated_at = ? WHERE id = ?")
342
+ for (const n of [...touched, number]) bump.run(timestamp, n)
343
+ }
344
+ return touched.length > 0
345
+ }
346
+
347
+ /** `task link A --blocks B` and friends — additive, unlike the patch form. */
348
+ link(number: number, relation: "blocks" | "blocked_by", target: number): Task {
349
+ if (!this.get(number)) throw new Error(`no such task: ${this.displayId(number)}`)
350
+ const column = relation === "blocks" ? "blocker_id" : "blocked_id"
351
+ const current = this.linkedNumbers(column, number)
352
+ this.reconcileLinks(column, number, [...current, target])
353
+ return this.get(number)!
354
+ }
355
+
356
+ unlink(number: number, relation: "blocks" | "blocked_by", target: number): Task {
357
+ if (!this.get(number)) throw new Error(`no such task: ${this.displayId(number)}`)
358
+ const column = relation === "blocks" ? "blocker_id" : "blocked_id"
359
+ const current = this.linkedNumbers(column, number)
360
+ this.reconcileLinks(column, number, current.filter((n) => n !== target))
270
361
  return this.get(number)!
271
362
  }
272
363
 
@@ -365,6 +456,17 @@ const MIGRATIONS: string[] = [
365
456
  ALTER TABLE tasks ADD COLUMN needs_human INTEGER NOT NULL DEFAULT 0;
366
457
  ALTER TABLE tasks DROP COLUMN priority;
367
458
  ALTER TABLE tasks DROP COLUMN assignee;`,
459
+
460
+ // v3 — dependencies and pull requests. One direction of "blocks" is the
461
+ // whole relation: (blocker, blocked) read from the blocked side is
462
+ // "blocked by", so the mirror is a query, not a second row. PRs are a JSON
463
+ // list of URLs, same shape as tags.
464
+ `CREATE TABLE task_links (
465
+ blocker_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
466
+ blocked_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
467
+ PRIMARY KEY (blocker_id, blocked_id)
468
+ );
469
+ ALTER TABLE tasks ADD COLUMN prs TEXT NOT NULL DEFAULT '[]';`,
368
470
  ]
369
471
 
370
472
  /**
package/src/types.ts CHANGED
@@ -10,7 +10,7 @@ export const STATUSES = [
10
10
  export type Status = (typeof STATUSES)[number]
11
11
 
12
12
  export interface Task {
13
- /** Display id — `<prefix>-<number>`, e.g. "PHONE-12". */
13
+ /** Display id — `<prefix>-<number>`, e.g. "PHO-12". */
14
14
  id: string
15
15
  number: number
16
16
  title: string
@@ -20,6 +20,15 @@ export interface Task {
20
20
  milestone: string | null
21
21
  /** This ticket can't be finished by an agent alone. */
22
22
  needsHuman: boolean
23
+ /**
24
+ * Task numbers this one blocks / is blocked by. One relation, two views:
25
+ * a single `(blocker, blocked)` row shows up in the blocker's `blocks` and
26
+ * the blocked task's `blockedBy`, so the mirror can never drift.
27
+ */
28
+ blocks: number[]
29
+ blockedBy: number[]
30
+ /** Pull request URLs attached to this task. */
31
+ prs: string[]
23
32
  /** Sort key within a status column; smaller sorts first. */
24
33
  position: number
25
34
  createdAt: string
@@ -36,7 +45,7 @@ export interface Comment {
36
45
 
37
46
  export interface ProjectConfig {
38
47
  name: string
39
- /** Uppercase id prefix, e.g. "PHONE" → PHONE-1, PHONE-2, … */
48
+ /** Uppercase id prefix, e.g. "PHO" → PHO-1, PHO-2, … */
40
49
  prefix: string
41
50
  version: number
42
51
  }
@@ -57,6 +66,9 @@ export interface TaskInput {
57
66
  tags?: string[]
58
67
  milestone?: string | null
59
68
  needsHuman?: boolean
69
+ blocks?: number[]
70
+ blockedBy?: number[]
71
+ prs?: string[]
60
72
  }
61
73
 
62
74
  export interface TaskPatch {
@@ -66,6 +78,13 @@ export interface TaskPatch {
66
78
  tags?: string[]
67
79
  milestone?: string | null
68
80
  needsHuman?: boolean
81
+ /**
82
+ * Full replacement, like `tags` — the store reconciles the relation table
83
+ * to match. Writing either side updates the other task's mirror view.
84
+ */
85
+ blocks?: number[]
86
+ blockedBy?: number[]
87
+ prs?: string[]
69
88
  /** Explicit board position (used by drag-and-drop in the UI). */
70
89
  position?: number
71
90
  }