@jamesaphoenix/tx-test-utils 0.5.3 → 0.5.4

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 CHANGED
@@ -17,6 +17,14 @@ tx init --codex # AGENTS.md + .codex/agents
17
17
  tx init --claude --codex # scaffold both
18
18
  ```
19
19
 
20
+ Watchdog onboarding (optional, default off):
21
+
22
+ ```bash
23
+ tx init --watchdog # scaffold watchdog assets with runtime auto-detect
24
+ tx init --watchdog --watchdog-runtime codex
25
+ tx init --watchdog --watchdog-runtime both
26
+ ```
27
+
20
28
  ---
21
29
 
22
30
  ## The Problem
@@ -172,6 +180,30 @@ tx done $task
172
180
 
173
181
  ---
174
182
 
183
+ ## Watchdog (Opt-In)
184
+
185
+ Use watchdog when you want detached, self-healing RALPH loops that can survive terminal closes and reconcile stale runs/tasks automatically.
186
+
187
+ Use it for:
188
+ - Long-running unattended execution
189
+ - Automatic stalled-run reaping and orphan task reset
190
+ - Background supervision through launchd/systemd
191
+
192
+ Skip it for:
193
+ - Short interactive sessions
194
+ - One-off local runs you supervise manually
195
+
196
+ Quick start:
197
+
198
+ ```bash
199
+ tx init --watchdog --watchdog-runtime auto
200
+ ./scripts/watchdog-launcher.sh start
201
+ ./scripts/watchdog-launcher.sh status
202
+ ```
203
+
204
+ Detailed rollout, detached service setup, rollback, and troubleshooting:
205
+ - [Watchdog Runbook](apps/docs/content/docs/watchdog-runbook.mdx)
206
+
175
207
  ## Why tx?
176
208
 
177
209
  | | Native Tasks | CLAUDE.md | tx |
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module @tx/test-utils/factories/task
5
5
  */
6
- import type { Task, TaskStatus } from "@jamesaphoenix/tx-types";
6
+ import type { Task, TaskAssigneeType, TaskStatus } from "@jamesaphoenix/tx-types";
7
7
  import type { TestDatabase } from "../database/index.js";
8
8
  /**
9
9
  * Options for creating a test task.
@@ -27,6 +27,14 @@ export interface CreateTaskOptions {
27
27
  createdAt?: Date;
28
28
  /** Completion timestamp (only if status is 'done') */
29
29
  completedAt?: Date | null;
30
+ /** Task assignee type */
31
+ assigneeType?: TaskAssigneeType | null;
32
+ /** Task assignee identifier */
33
+ assigneeId?: string | null;
34
+ /** Task assigned timestamp */
35
+ assignedAt?: Date | null;
36
+ /** Assignment source */
37
+ assignedBy?: string | null;
30
38
  }
31
39
  /**
32
40
  * Factory class for creating test tasks.
@@ -1 +1 @@
1
- {"version":3,"file":"task.factory.d.ts","sourceRoot":"","sources":["../../src/factories/task.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,IAAI,EAEJ,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,yBAAyB;IACzB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,sDAAsD;IACtD,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEtB,EAAE,EAAE,YAAY,EAAE,SAAS,SAAiB;IAKxD;;OAEG;IACH,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI;IA6C7C;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI,EAAE;IAWlE;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAIrE;;OAEG;IACH,SAAS,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAQhD;;OAEG;IACH,YAAY,CACV,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,GAAE,iBAAsB,GACnC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE;IASrC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,YAAY,EAChB,UAAS,iBAAsB,KAC9B,IAGF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,IAAI,YAAY,EAChB,OAAO,MAAM,EACb,UAAS,iBAAsB,KAC9B,IAAI,EAGN,CAAA"}
1
+ {"version":3,"file":"task.factory.d.ts","sourceRoot":"","sources":["../../src/factories/task.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,gBAAgB,EAEhB,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,yBAAyB;IACzB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,sDAAsD;IACtD,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACzB,yBAAyB;IACzB,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACtC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,8BAA8B;IAC9B,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACxB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEtB,EAAE,EAAE,YAAY,EAAE,SAAS,SAAiB;IAKxD;;OAEG;IACH,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAqD7C;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI,EAAE;IAWlE;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAIrE;;OAEG;IACH,SAAS,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI;IAQhD;;OAEG;IACH,YAAY,CACV,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,GAAE,iBAAsB,GACnC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;KAAE;IASrC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,YAAY,EAChB,UAAS,iBAAsB,KAC9B,IAGF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,IAAI,YAAY,EAChB,OAAO,MAAM,EACb,UAAS,iBAAsB,KAC9B,IAAI,EAGN,CAAA"}
@@ -49,6 +49,10 @@ export class TaskFactory {
49
49
  const metadata = options.metadata ?? {};
50
50
  const createdAt = options.createdAt ?? now;
51
51
  const completedAt = options.completedAt ?? (status === "done" ? now : null);
52
+ const assigneeType = options.assigneeType ?? null;
53
+ const assigneeId = options.assigneeId ?? null;
54
+ const assignedAt = options.assignedAt ?? null;
55
+ const assignedBy = options.assignedBy ?? null;
52
56
  this.db.run(`INSERT INTO tasks (id, title, description, status, parent_id, score, metadata, created_at, updated_at, completed_at)
53
57
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
54
58
  id,
@@ -72,7 +76,11 @@ export class TaskFactory {
72
76
  metadata,
73
77
  createdAt,
74
78
  updatedAt: now,
75
- completedAt
79
+ completedAt,
80
+ assigneeType,
81
+ assigneeId,
82
+ assignedAt,
83
+ assignedBy
76
84
  };
77
85
  }
78
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"task.factory.js","sourceRoot":"","sources":["../../src/factories/task.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.factory.js","sourceRoot":"","sources":["../../src/factories/task.factory.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export interface SharedTestLayer<L> {
56
56
  * ```
57
57
  */
58
58
  export declare const createSharedTestLayer: () => Promise<{
59
- layer: Layer.Layer<import("@jamesaphoenix/tx-core").MigrationService | import("@jamesaphoenix/tx-core").SqliteClient | import("@jamesaphoenix/tx-core").TaskRepository | import("@jamesaphoenix/tx-core").DependencyRepository | import("@jamesaphoenix/tx-core").LearningRepository | import("@jamesaphoenix/tx-core").FileLearningRepository | import("@jamesaphoenix/tx-core").AttemptRepository | import("@jamesaphoenix/tx-core").RunRepository | import("@jamesaphoenix/tx-core").AnchorRepository | import("@jamesaphoenix/tx-core").EdgeRepository | import("@jamesaphoenix/tx-core").DeduplicationRepository | import("@jamesaphoenix/tx-core").CandidateRepository | import("@jamesaphoenix/tx-core").TrackedProjectRepository | import("@jamesaphoenix/tx-core").WorkerRepository | import("@jamesaphoenix/tx-core").ClaimRepository | import("@jamesaphoenix/tx-core").OrchestratorStateRepository | import("@jamesaphoenix/tx-core").TaskService | import("@jamesaphoenix/tx-core").DependencyService | import("@jamesaphoenix/tx-core").ReadyService | import("@jamesaphoenix/tx-core").HierarchyService | import("@jamesaphoenix/tx-core").EdgeService | import("@jamesaphoenix/tx-core").GraphExpansionService | import("@jamesaphoenix/tx-core").FeedbackTrackerService | import("@jamesaphoenix/tx-core").DiversifierService | import("@jamesaphoenix/tx-core").RetrieverService | import("@jamesaphoenix/tx-core").LearningService | import("@jamesaphoenix/tx-core").FileLearningService | import("@jamesaphoenix/tx-core").AttemptService | import("@jamesaphoenix/tx-core").AnchorVerificationService | import("@jamesaphoenix/tx-core").AnchorService | import("@jamesaphoenix/tx-core").DeduplicationService | import("@jamesaphoenix/tx-core").SyncService | import("@jamesaphoenix/tx-core").SwarmVerificationService | import("@jamesaphoenix/tx-core").PromotionService | import("@jamesaphoenix/tx-core").WorkerService | import("@jamesaphoenix/tx-core").ClaimService | import("@jamesaphoenix/tx-core").OrchestratorService | import("@jamesaphoenix/tx-core").DaemonService | import("@jamesaphoenix/tx-core").TracingService | import("@jamesaphoenix/tx-core").CompactionRepository | import("@jamesaphoenix/tx-core").CompactionService | import("@jamesaphoenix/tx-core").ValidationService | import("@jamesaphoenix/tx-core").MessageRepository | import("@jamesaphoenix/tx-core").MessageService | import("@jamesaphoenix/tx-core").DocRepository | import("@jamesaphoenix/tx-core").DocService, import("@jamesaphoenix/tx-core").DatabaseError, never>;
59
+ layer: Layer.Layer<import("@jamesaphoenix/tx-core").MigrationService | import("@jamesaphoenix/tx-core").SqliteClient | import("@jamesaphoenix/tx-core").TaskRepository | import("@jamesaphoenix/tx-core").DependencyRepository | import("@jamesaphoenix/tx-core").LearningRepository | import("@jamesaphoenix/tx-core").FileLearningRepository | import("@jamesaphoenix/tx-core").AttemptRepository | import("@jamesaphoenix/tx-core").RunRepository | import("@jamesaphoenix/tx-core").AnchorRepository | import("@jamesaphoenix/tx-core").EdgeRepository | import("@jamesaphoenix/tx-core").DeduplicationRepository | import("@jamesaphoenix/tx-core").CandidateRepository | import("@jamesaphoenix/tx-core").TrackedProjectRepository | import("@jamesaphoenix/tx-core").WorkerRepository | import("@jamesaphoenix/tx-core").ClaimRepository | import("@jamesaphoenix/tx-core").OrchestratorStateRepository | import("@jamesaphoenix/tx-core").TaskService | import("@jamesaphoenix/tx-core").DependencyService | import("@jamesaphoenix/tx-core").ReadyService | import("@jamesaphoenix/tx-core").HierarchyService | import("@jamesaphoenix/tx-core").EdgeService | import("@jamesaphoenix/tx-core").GraphExpansionService | import("@jamesaphoenix/tx-core").FeedbackTrackerService | import("@jamesaphoenix/tx-core").DiversifierService | import("@jamesaphoenix/tx-core").RetrieverService | import("@jamesaphoenix/tx-core").LearningService | import("@jamesaphoenix/tx-core").FileLearningService | import("@jamesaphoenix/tx-core").AttemptService | import("@jamesaphoenix/tx-core").AnchorVerificationService | import("@jamesaphoenix/tx-core").AnchorService | import("@jamesaphoenix/tx-core").DeduplicationService | import("@jamesaphoenix/tx-core").SyncService | import("@jamesaphoenix/tx-core").SwarmVerificationService | import("@jamesaphoenix/tx-core").PromotionService | import("@jamesaphoenix/tx-core").WorkerService | import("@jamesaphoenix/tx-core").RunHeartbeatService | import("@jamesaphoenix/tx-core").ClaimService | import("@jamesaphoenix/tx-core").OrchestratorService | import("@jamesaphoenix/tx-core").DaemonService | import("@jamesaphoenix/tx-core").TracingService | import("@jamesaphoenix/tx-core").CompactionRepository | import("@jamesaphoenix/tx-core").CompactionService | import("@jamesaphoenix/tx-core").ValidationService | import("@jamesaphoenix/tx-core").MessageRepository | import("@jamesaphoenix/tx-core").MessageService | import("@jamesaphoenix/tx-core").DocRepository | import("@jamesaphoenix/tx-core").DocService, import("@jamesaphoenix/tx-core").DatabaseError, never>;
60
60
  reset: () => Promise<void>;
61
61
  close: () => Promise<void>;
62
62
  getDb: () => Database;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamesaphoenix/tx-test-utils",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Test utilities, factories, fixtures, and helpers for tx monorepo",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",