@cat-factory/node-server 0.124.0 → 0.125.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/reviews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/reviews.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  // matches across stores; this layer only owns the Drizzle queries. Assembled into the
5
5
  // CoreRepositories set by ./drizzle.ts (the barrel).
6
6
  import { parseJsonArray } from './_shared.js';
7
- import { and, desc, eq } from 'drizzle-orm';
7
+ import { and, desc, eq, sql } from 'drizzle-orm';
8
8
  import { brainstormSessions, clarityReviews, consensusSessions, docInterviewSessions, requirementReviews, } from '../../db/schema.js';
9
9
  function rowToRequirementReview(row) {
10
10
  return {
@@ -17,18 +17,40 @@ function rowToRequirementReview(row) {
17
17
  iteration: row.iteration,
18
18
  maxIterations: row.max_iterations,
19
19
  recommendations: parseJsonArray(row.recommendations ?? '[]'),
20
+ rev: row.rev ?? 0,
20
21
  createdAt: row.created_at,
21
22
  updatedAt: row.updated_at,
22
23
  };
23
24
  }
24
25
  /**
25
26
  * Requirements reviews over Postgres (the Drizzle mirror of the Worker's
26
- * `D1RequirementReviewRepository`, migration 0021). The reviewed items live as a JSON
27
- * array in `items`; the service keeps at most one live review per block (it deletes
28
- * the block's prior review before inserting a fresh one), so `getByBlock` returns the
29
- * latest. Behaviourally identical to the D1 repo so the cross-runtime conformance
30
- * suite asserts the same requirements-rework substitution against both stores.
27
+ * `D1RequirementReviewRepository`, migration 0021). The reviewed items live as a JSON array in
28
+ * `items`; a block holds at most ONE live review a UNIQUE index on (workspace_id, block_id)
29
+ * enforces that, and {@link DrizzleRequirementReviewRepository.replaceForBlock} publishes a fresh
30
+ * one as a single upsert against it so `getByBlock` returns it. Every read-modify-write rides
31
+ * the rev-guarded
32
+ * {@link compareAndSwap}. Behaviourally identical to the D1 repo, so the cross-runtime
33
+ * conformance suite asserts the same substitution AND the same concurrency semantics against
34
+ * both stores.
31
35
  */
36
+ /** Row values for an insert (a fresh row starts at rev 0; the writes below own the bump). */
37
+ function requirementReviewValues(workspaceId, review) {
38
+ return {
39
+ workspace_id: workspaceId,
40
+ id: review.id,
41
+ block_id: review.blockId,
42
+ status: review.status,
43
+ items: JSON.stringify(review.items),
44
+ model: review.model,
45
+ incorporated_requirements: review.incorporatedRequirements,
46
+ iteration: review.iteration ?? 1,
47
+ max_iterations: review.maxIterations ?? 1,
48
+ recommendations: JSON.stringify(review.recommendations ?? []),
49
+ rev: 0,
50
+ created_at: review.createdAt,
51
+ updated_at: review.updatedAt,
52
+ };
53
+ }
32
54
  export class DrizzleRequirementReviewRepository {
33
55
  db;
34
56
  constructor(db) {
@@ -51,22 +73,13 @@ export class DrizzleRequirementReviewRepository {
51
73
  .limit(1);
52
74
  return rows[0] ? rowToRequirementReview(rows[0]) : null;
53
75
  }
76
+ /**
77
+ * Force-write. A fresh insert starts at rev 0; a write over an existing row BUMPS it, so a
78
+ * concurrent {@link compareAndSwap} holding the old revision still detects that the row moved.
79
+ */
54
80
  async upsert(workspaceId, review) {
55
- const values = {
56
- workspace_id: workspaceId,
57
- id: review.id,
58
- block_id: review.blockId,
59
- status: review.status,
60
- items: JSON.stringify(review.items),
61
- model: review.model,
62
- incorporated_requirements: review.incorporatedRequirements,
63
- iteration: review.iteration ?? 1,
64
- max_iterations: review.maxIterations ?? 1,
65
- recommendations: JSON.stringify(review.recommendations ?? []),
66
- created_at: review.createdAt,
67
- updated_at: review.updatedAt,
68
- };
69
- await this.db
81
+ const values = requirementReviewValues(workspaceId, review);
82
+ const rows = await this.db
70
83
  .insert(requirementReviews)
71
84
  .values(values)
72
85
  .onConflictDoUpdate({
@@ -80,14 +93,80 @@ export class DrizzleRequirementReviewRepository {
80
93
  iteration: values.iteration,
81
94
  max_iterations: values.max_iterations,
82
95
  recommendations: values.recommendations,
96
+ rev: sql `${requirementReviews.rev} + 1`,
83
97
  updated_at: values.updated_at,
84
98
  },
85
- });
99
+ })
100
+ .returning({ rev: requirementReviews.rev });
101
+ if (rows[0])
102
+ review.rev = rows[0].rev;
86
103
  }
87
- async deleteByBlock(workspaceId, blockId) {
88
- await this.db
89
- .delete(requirementReviews)
90
- .where(and(eq(requirementReviews.workspace_id, workspaceId), eq(requirementReviews.block_id, blockId)));
104
+ async compareAndSwap(workspaceId, review) {
105
+ // Conditional update guarded on the rev last read onto this review; writes only while the
106
+ // stored row is unchanged, and never inserts (a deleted review must stay deleted).
107
+ const values = requirementReviewValues(workspaceId, review);
108
+ const rows = await this.db
109
+ .update(requirementReviews)
110
+ .set({
111
+ block_id: values.block_id,
112
+ status: values.status,
113
+ items: values.items,
114
+ model: values.model,
115
+ incorporated_requirements: values.incorporated_requirements,
116
+ iteration: values.iteration,
117
+ max_iterations: values.max_iterations,
118
+ recommendations: values.recommendations,
119
+ rev: sql `${requirementReviews.rev} + 1`,
120
+ updated_at: values.updated_at,
121
+ })
122
+ .where(and(eq(requirementReviews.workspace_id, workspaceId), eq(requirementReviews.id, review.id), eq(requirementReviews.rev, review.rev ?? 0)))
123
+ .returning({ rev: requirementReviews.rev });
124
+ if (!rows[0])
125
+ return false;
126
+ review.rev = rows[0].rev;
127
+ return true;
128
+ }
129
+ /**
130
+ * Publish `review` as the block's one live review, as a SINGLE conflict-targeted upsert on the
131
+ * block's UNIQUE index.
132
+ *
133
+ * This deliberately is NOT a transactioned delete-then-insert. A transaction is not a
134
+ * uniqueness constraint: at Postgres' default READ COMMITTED a DELETE takes no predicate lock,
135
+ * so two concurrent review runs each delete nothing (or each other's already-gone row), each
136
+ * insert, and both commit — leaving the block with TWO live reviews, which is the exact hazard
137
+ * this method exists to prevent. (SQLite serializes writers, so D1 was accidentally safe; a
138
+ * domain invariant must not rest on which runtime it happens to run under.) One statement
139
+ * against the constraint has no window to interleave into on either runtime.
140
+ *
141
+ * The predecessor's row IS this row — its `id` is overwritten — so the superseded review is
142
+ * gone rather than left beside the live one, and `rev` restarts at 0 so a writer still holding
143
+ * the predecessor's revision can't match.
144
+ */
145
+ async replaceForBlock(workspaceId, review) {
146
+ const values = requirementReviewValues(workspaceId, review);
147
+ const rows = await this.db
148
+ .insert(requirementReviews)
149
+ .values(values)
150
+ .onConflictDoUpdate({
151
+ target: [requirementReviews.workspace_id, requirementReviews.block_id],
152
+ set: {
153
+ id: values.id,
154
+ status: values.status,
155
+ items: values.items,
156
+ model: values.model,
157
+ incorporated_requirements: values.incorporated_requirements,
158
+ iteration: values.iteration,
159
+ max_iterations: values.max_iterations,
160
+ recommendations: values.recommendations,
161
+ rev: 0,
162
+ created_at: values.created_at,
163
+ updated_at: values.updated_at,
164
+ },
165
+ })
166
+ .returning({ rev: requirementReviews.rev });
167
+ // Read the revision back rather than assuming it: the caller keeps mutating this object
168
+ // through `compareAndSwap`, so a `rev` it only believes is right desynchronises it.
169
+ review.rev = rows[0]?.rev ?? 0;
91
170
  }
92
171
  }
93
172
  function rowToDocInterviewSession(row) {
@@ -208,6 +287,7 @@ function rowToClarityReview(row) {
208
287
  clarifiedReport: row.clarified_report,
209
288
  iteration: row.iteration,
210
289
  maxIterations: row.max_iterations,
290
+ rev: row.rev ?? 0,
211
291
  createdAt: row.created_at,
212
292
  updatedAt: row.updated_at,
213
293
  };
@@ -295,6 +375,23 @@ export class DrizzleConsensusSessionRepository {
295
375
  * `D1ClarityReviewRepository`. Behaviourally identical to the D1 repo so the cross-runtime
296
376
  * conformance suite asserts the same clarified-brief substitution against both stores.
297
377
  */
378
+ /** Row values for an insert (a fresh row starts at rev 0; the writes below own the bump). */
379
+ function clarityReviewValues(workspaceId, review) {
380
+ return {
381
+ workspace_id: workspaceId,
382
+ id: review.id,
383
+ block_id: review.blockId,
384
+ status: review.status,
385
+ items: JSON.stringify(review.items),
386
+ model: review.model,
387
+ clarified_report: review.clarifiedReport,
388
+ iteration: review.iteration ?? 1,
389
+ max_iterations: review.maxIterations ?? 1,
390
+ rev: 0,
391
+ created_at: review.createdAt,
392
+ updated_at: review.updatedAt,
393
+ };
394
+ }
298
395
  export class DrizzleClarityReviewRepository {
299
396
  db;
300
397
  constructor(db) {
@@ -318,20 +415,8 @@ export class DrizzleClarityReviewRepository {
318
415
  return rows[0] ? rowToClarityReview(rows[0]) : null;
319
416
  }
320
417
  async upsert(workspaceId, review) {
321
- const values = {
322
- workspace_id: workspaceId,
323
- id: review.id,
324
- block_id: review.blockId,
325
- status: review.status,
326
- items: JSON.stringify(review.items),
327
- model: review.model,
328
- clarified_report: review.clarifiedReport,
329
- iteration: review.iteration ?? 1,
330
- max_iterations: review.maxIterations ?? 1,
331
- created_at: review.createdAt,
332
- updated_at: review.updatedAt,
333
- };
334
- await this.db
418
+ const values = clarityReviewValues(workspaceId, review);
419
+ const rows = await this.db
335
420
  .insert(clarityReviews)
336
421
  .values(values)
337
422
  .onConflictDoUpdate({
@@ -344,14 +429,63 @@ export class DrizzleClarityReviewRepository {
344
429
  clarified_report: values.clarified_report,
345
430
  iteration: values.iteration,
346
431
  max_iterations: values.max_iterations,
432
+ rev: sql `${clarityReviews.rev} + 1`,
347
433
  updated_at: values.updated_at,
348
434
  },
349
- });
435
+ })
436
+ .returning({ rev: clarityReviews.rev });
437
+ if (rows[0])
438
+ review.rev = rows[0].rev;
350
439
  }
351
- async deleteByBlock(workspaceId, blockId) {
352
- await this.db
353
- .delete(clarityReviews)
354
- .where(and(eq(clarityReviews.workspace_id, workspaceId), eq(clarityReviews.block_id, blockId)));
440
+ async compareAndSwap(workspaceId, review) {
441
+ const values = clarityReviewValues(workspaceId, review);
442
+ const rows = await this.db
443
+ .update(clarityReviews)
444
+ .set({
445
+ block_id: values.block_id,
446
+ status: values.status,
447
+ items: values.items,
448
+ model: values.model,
449
+ clarified_report: values.clarified_report,
450
+ iteration: values.iteration,
451
+ max_iterations: values.max_iterations,
452
+ rev: sql `${clarityReviews.rev} + 1`,
453
+ updated_at: values.updated_at,
454
+ })
455
+ .where(and(eq(clarityReviews.workspace_id, workspaceId), eq(clarityReviews.id, review.id), eq(clarityReviews.rev, review.rev ?? 0)))
456
+ .returning({ rev: clarityReviews.rev });
457
+ if (!rows[0])
458
+ return false;
459
+ review.rev = rows[0].rev;
460
+ return true;
461
+ }
462
+ /**
463
+ * A single conflict-targeted upsert on the block's UNIQUE index — see
464
+ * {@link DrizzleRequirementReviewRepository.replaceForBlock} for why a transactioned
465
+ * delete-then-insert does not hold this invariant under READ COMMITTED.
466
+ */
467
+ async replaceForBlock(workspaceId, review) {
468
+ const values = clarityReviewValues(workspaceId, review);
469
+ const rows = await this.db
470
+ .insert(clarityReviews)
471
+ .values(values)
472
+ .onConflictDoUpdate({
473
+ target: [clarityReviews.workspace_id, clarityReviews.block_id],
474
+ set: {
475
+ id: values.id,
476
+ status: values.status,
477
+ items: values.items,
478
+ model: values.model,
479
+ clarified_report: values.clarified_report,
480
+ iteration: values.iteration,
481
+ max_iterations: values.max_iterations,
482
+ rev: 0,
483
+ created_at: values.created_at,
484
+ updated_at: values.updated_at,
485
+ },
486
+ })
487
+ .returning({ rev: clarityReviews.rev });
488
+ review.rev = rows[0]?.rev ?? 0;
355
489
  }
356
490
  }
357
491
  function rowToBrainstormSession(row) {
@@ -374,6 +508,7 @@ function rowToBrainstormSession(row) {
374
508
  convergedDirection: row.converged_direction,
375
509
  iteration: row.iteration,
376
510
  maxIterations: row.max_iterations,
511
+ rev: row.rev ?? 0,
377
512
  createdAt: row.created_at,
378
513
  updatedAt: row.updated_at,
379
514
  };
@@ -385,6 +520,24 @@ function rowToBrainstormSession(row) {
385
520
  * stores. Keyed per (block, stage): a block may hold a live `requirements` AND `architecture`
386
521
  * session at once.
387
522
  */
523
+ /** Row values for an insert (a fresh row starts at rev 0; the writes below own the bump). */
524
+ function brainstormSessionValues(workspaceId, session) {
525
+ return {
526
+ workspace_id: workspaceId,
527
+ id: session.id,
528
+ block_id: session.blockId,
529
+ stage: session.stage,
530
+ status: session.status,
531
+ items: JSON.stringify(session.items),
532
+ model: session.model,
533
+ converged_direction: session.convergedDirection,
534
+ iteration: session.iteration ?? 1,
535
+ max_iterations: session.maxIterations ?? 1,
536
+ rev: 0,
537
+ created_at: session.createdAt,
538
+ updated_at: session.updatedAt,
539
+ };
540
+ }
388
541
  export class DrizzleBrainstormSessionRepository {
389
542
  db;
390
543
  constructor(db) {
@@ -408,21 +561,8 @@ export class DrizzleBrainstormSessionRepository {
408
561
  return rows[0] ? rowToBrainstormSession(rows[0]) : null;
409
562
  }
410
563
  async upsert(workspaceId, session) {
411
- const values = {
412
- workspace_id: workspaceId,
413
- id: session.id,
414
- block_id: session.blockId,
415
- stage: session.stage,
416
- status: session.status,
417
- items: JSON.stringify(session.items),
418
- model: session.model,
419
- converged_direction: session.convergedDirection,
420
- iteration: session.iteration ?? 1,
421
- max_iterations: session.maxIterations ?? 1,
422
- created_at: session.createdAt,
423
- updated_at: session.updatedAt,
424
- };
425
- await this.db
564
+ const values = brainstormSessionValues(workspaceId, session);
565
+ const rows = await this.db
426
566
  .insert(brainstormSessions)
427
567
  .values(values)
428
568
  .onConflictDoUpdate({
@@ -436,14 +576,70 @@ export class DrizzleBrainstormSessionRepository {
436
576
  converged_direction: values.converged_direction,
437
577
  iteration: values.iteration,
438
578
  max_iterations: values.max_iterations,
579
+ rev: sql `${brainstormSessions.rev} + 1`,
439
580
  updated_at: values.updated_at,
440
581
  },
441
- });
582
+ })
583
+ .returning({ rev: brainstormSessions.rev });
584
+ if (rows[0])
585
+ session.rev = rows[0].rev;
442
586
  }
443
- async deleteByBlockStage(workspaceId, blockId, stage) {
444
- await this.db
445
- .delete(brainstormSessions)
446
- .where(and(eq(brainstormSessions.workspace_id, workspaceId), eq(brainstormSessions.block_id, blockId), eq(brainstormSessions.stage, stage)));
587
+ async compareAndSwap(workspaceId, session) {
588
+ const values = brainstormSessionValues(workspaceId, session);
589
+ const rows = await this.db
590
+ .update(brainstormSessions)
591
+ .set({
592
+ block_id: values.block_id,
593
+ stage: values.stage,
594
+ status: values.status,
595
+ items: values.items,
596
+ model: values.model,
597
+ converged_direction: values.converged_direction,
598
+ iteration: values.iteration,
599
+ max_iterations: values.max_iterations,
600
+ rev: sql `${brainstormSessions.rev} + 1`,
601
+ updated_at: values.updated_at,
602
+ })
603
+ .where(and(eq(brainstormSessions.workspace_id, workspaceId), eq(brainstormSessions.id, session.id), eq(brainstormSessions.rev, session.rev ?? 0)))
604
+ .returning({ rev: brainstormSessions.rev });
605
+ if (!rows[0])
606
+ return false;
607
+ session.rev = rows[0].rev;
608
+ return true;
609
+ }
610
+ /**
611
+ * A single conflict-targeted upsert on the (block, STAGE) UNIQUE index — see
612
+ * {@link DrizzleRequirementReviewRepository.replaceForBlock} for why a transactioned
613
+ * delete-then-insert does not hold this invariant under READ COMMITTED. The stage is part of
614
+ * the conflict target, so the block's other live stage is untouched by construction rather
615
+ * than by a scoped delete.
616
+ */
617
+ async replaceForBlockStage(workspaceId, session) {
618
+ const values = brainstormSessionValues(workspaceId, session);
619
+ const rows = await this.db
620
+ .insert(brainstormSessions)
621
+ .values(values)
622
+ .onConflictDoUpdate({
623
+ target: [
624
+ brainstormSessions.workspace_id,
625
+ brainstormSessions.block_id,
626
+ brainstormSessions.stage,
627
+ ],
628
+ set: {
629
+ id: values.id,
630
+ status: values.status,
631
+ items: values.items,
632
+ model: values.model,
633
+ converged_direction: values.converged_direction,
634
+ iteration: values.iteration,
635
+ max_iterations: values.max_iterations,
636
+ rev: 0,
637
+ created_at: values.created_at,
638
+ updated_at: values.updated_at,
639
+ },
640
+ })
641
+ .returning({ rev: brainstormSessions.rev });
642
+ session.rev = rows[0]?.rev ?? 0;
447
643
  }
448
644
  }
449
645
  //# sourceMappingURL=reviews.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/reviews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/reviews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "brainstorm_sessions" ADD COLUMN "rev" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "clarity_reviews" ADD COLUMN "rev" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
3
+ ALTER TABLE "requirement_reviews" ADD COLUMN "rev" integer DEFAULT 0 NOT NULL;