@cat-factory/node-server 0.123.1 → 0.125.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/container.d.ts +9 -1
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js.map +1 -1
- package/dist/db/schema.d.ts +45 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +20 -4
- package/dist/db/schema.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/realtime.d.ts +65 -3
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +99 -15
- package/dist/realtime.js.map +1 -1
- package/dist/repositories/drizzle/reviews.d.ts +38 -23
- package/dist/repositories/drizzle/reviews.d.ts.map +1 -1
- package/dist/repositories/drizzle/reviews.js +261 -65
- package/dist/repositories/drizzle/reviews.js.map +1 -1
- package/dist/server.d.ts +8 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +48 -42
- package/dist/server.js.map +1 -1
- package/drizzle/20260728090659_review_rev/migration.sql +3 -0
- package/drizzle/20260728090659_review_rev/snapshot.json +17502 -0
- package/drizzle/20260728095931_review_block_unique/migration.sql +32 -0
- package/drizzle/20260728095931_review_block_unique/snapshot.json +17502 -0
- package/package.json +20 -20
|
@@ -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
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
-
|
|
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
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
.
|
|
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
|
-
|
|
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
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
.
|
|
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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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Hono } from 'hono';
|
|
|
4
4
|
import { type AppCachesProfile } from '@cat-factory/caching';
|
|
5
5
|
import { type NodeContainerOptions } from './container.js';
|
|
6
6
|
import { type ReadinessProbe } from './readiness.js';
|
|
7
|
-
import { NodeRealtimeHub, attachRealtime } from './realtime.js';
|
|
7
|
+
import { type MachineSubscribeDeps, NodeRealtimeHub, attachRealtime } from './realtime.js';
|
|
8
8
|
export interface CreateServerOptions extends NodeContainerOptions {
|
|
9
9
|
}
|
|
10
10
|
export interface CreateAppOptions {
|
|
@@ -42,6 +42,13 @@ export declare function serveAppWithRealtime(opts: {
|
|
|
42
42
|
env: NodeJS.ProcessEnv;
|
|
43
43
|
host?: string;
|
|
44
44
|
label: string;
|
|
45
|
+
/**
|
|
46
|
+
* Supplied by a deployment that can act as a MOTHERSHIP, enabling the machine-authed inbound
|
|
47
|
+
* event subscription (`GET /internal/events/subscribe/:ws`). The local facade's mothership boot
|
|
48
|
+
* deliberately leaves it off — it is a machine-API client, not a server (see
|
|
49
|
+
* {@link MachineSubscribeDeps}).
|
|
50
|
+
*/
|
|
51
|
+
machineSubscribe?: MachineSubscribeDeps;
|
|
45
52
|
}): {
|
|
46
53
|
server: ReturnType<typeof serve>;
|
|
47
54
|
stopRealtime: ReturnType<typeof attachRealtime>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EACL,KAAK,MAAM,EAEX,KAAK,aAAa,EAClB,KAAK,eAAe,EAcrB,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,sBAAsB,CAAA;AAE7E,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,gBAAgB,CAAA;AAsB9E,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -97,8 +97,8 @@ export function serveAppWithRealtime(opts) {
|
|
|
97
97
|
const server = serve({ fetch: opts.app.fetch, port, ...(hostname ? { hostname } : {}) });
|
|
98
98
|
// Accept the SPA's WebSocket event-stream upgrades on the same listener (the Worker uses a
|
|
99
99
|
// per-workspace Durable Object; `@hono/node-server` doesn't upgrade on its own, so attach a
|
|
100
|
-
// `ws` server here).
|
|
101
|
-
const stopRealtime = attachRealtime(server, opts.realtimeHub, opts.auth, logger);
|
|
100
|
+
// `ws` server here). Same listener serves the mothership-mode machine subscription when wired.
|
|
101
|
+
const stopRealtime = attachRealtime(server, opts.realtimeHub, opts.auth, logger, opts.machineSubscribe);
|
|
102
102
|
logger.info({ port, host: hostname ?? '0.0.0.0' }, `${opts.label} listening`);
|
|
103
103
|
return { server, stopRealtime };
|
|
104
104
|
}
|
|
@@ -150,6 +150,44 @@ export async function start(options = {}) {
|
|
|
150
150
|
throw err;
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Bring up every pg-boss consumer as ONE parallel wave (app-startup initiative, item 2). Each is an
|
|
155
|
+
* independent `createQueue(name)` + `work(name)` on its OWN queue with no ordering dependency
|
|
156
|
+
* between them, so awaiting them serially cost ~10 back-to-back DB round trips on the boot path for
|
|
157
|
+
* no reason; the wave collapses that to ~2.
|
|
158
|
+
*
|
|
159
|
+
* Called AFTER `boss.start()` and BEFORE listen: the documented invariant is that an enqueued job
|
|
160
|
+
* always has a consumer (revisiting that ordering is item 11, not this slice). A parked run waits
|
|
161
|
+
* for a human indefinitely (no decision timeout); the escalating notification — not a killed run —
|
|
162
|
+
* signals a human is overdue.
|
|
163
|
+
*
|
|
164
|
+
* Extracted from {@link bootServer} to keep it within the function-size budget, alongside
|
|
165
|
+
* {@link startBackgroundSweepers}; the set + concurrency are unchanged.
|
|
166
|
+
*/
|
|
167
|
+
async function startDurableWorkers(boss, container, runtime) {
|
|
168
|
+
const opts = { concurrency: runtime.concurrency };
|
|
169
|
+
await Promise.all([
|
|
170
|
+
startExecutionWorker(boss, container, runtime.drive, logger, opts),
|
|
171
|
+
// Durably drive bootstrap runs too (the Worker uses a per-run BootstrapWorkflow);
|
|
172
|
+
// a no-op queue when the bootstrap module isn't wired.
|
|
173
|
+
startBootstrapWorker(boss, container, runtime.drive, logger, opts),
|
|
174
|
+
// Durably drive env-config-repair runs (the Worker uses a per-run EnvConfigRepairWorkflow);
|
|
175
|
+
// a no-op queue when the repair module isn't wired.
|
|
176
|
+
startEnvConfigRepairWorker(boss, container, runtime.drive, logger, opts),
|
|
177
|
+
// Durably drive ephemeral-environment self-test runs (the Worker uses a per-run
|
|
178
|
+
// EnvironmentTestWorkflow); a no-op queue when the environments module isn't wired.
|
|
179
|
+
startEnvTestWorker(boss, container, runtime.drive, logger, opts),
|
|
180
|
+
// Async GitHub ingest (the analogue of the Worker's GITHUB_SYNC_QUEUE consumer +
|
|
181
|
+
// GitHubBackfillWorkflow): drain the `github.sync` queue the gateway seams enqueue onto,
|
|
182
|
+
// so webhook deliveries / resyncs / backfills apply out of band and the request acks fast.
|
|
183
|
+
startGitHubSyncWorker(boss, container, logger, opts),
|
|
184
|
+
// Async TRACKER ingest (the analogue of the Worker's TRACKER_SYNC_QUEUE consumer): drain the
|
|
185
|
+
// `tracker.sync` queue the webhook receiver enqueues onto, so a pushed issue event fires its
|
|
186
|
+
// intake schedule — and a ticket reply drives the parked review — out of band, while the
|
|
187
|
+
// tracker gets its prompt 2xx. A no-op queue when task sources aren't wired.
|
|
188
|
+
startTrackerSyncWorker(boss, container, logger, opts),
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
153
191
|
/**
|
|
154
192
|
* Start every background sweeper (the setInterval-based maintenance timers) after the listener
|
|
155
193
|
* binds, returning each one's stop fn so {@link bootServer}'s ordered shutdown can halt them.
|
|
@@ -419,46 +457,7 @@ async function bootServer(options, env) {
|
|
|
419
457
|
onWarn: (problem) => logger.warn({ code: problem.code }, problem.message),
|
|
420
458
|
});
|
|
421
459
|
const runtime = executionRuntime(container.config, env);
|
|
422
|
-
|
|
423
|
-
// Each is an independent `createQueue(name)` + `work(name)` on its OWN queue with no ordering
|
|
424
|
-
// dependency between them, so awaiting them serially cost ~10 back-to-back DB round trips on the
|
|
425
|
-
// boot path for no reason; the wave collapses that to ~2. Kept AFTER `boss.start()` and BEFORE
|
|
426
|
-
// listen: the documented invariant is that an enqueued job always has a consumer (revisiting
|
|
427
|
-
// that ordering is item 11, not this slice). A parked run waits for a human indefinitely (no
|
|
428
|
-
// decision timeout); the escalating notification — not a killed run — signals a human is overdue.
|
|
429
|
-
await Promise.all([
|
|
430
|
-
startExecutionWorker(boss, container, runtime.drive, logger, {
|
|
431
|
-
concurrency: runtime.concurrency,
|
|
432
|
-
}),
|
|
433
|
-
// Durably drive bootstrap runs too (the Worker uses a per-run BootstrapWorkflow);
|
|
434
|
-
// a no-op queue when the bootstrap module isn't wired.
|
|
435
|
-
startBootstrapWorker(boss, container, runtime.drive, logger, {
|
|
436
|
-
concurrency: runtime.concurrency,
|
|
437
|
-
}),
|
|
438
|
-
// Durably drive env-config-repair runs (the Worker uses a per-run EnvConfigRepairWorkflow);
|
|
439
|
-
// a no-op queue when the repair module isn't wired.
|
|
440
|
-
startEnvConfigRepairWorker(boss, container, runtime.drive, logger, {
|
|
441
|
-
concurrency: runtime.concurrency,
|
|
442
|
-
}),
|
|
443
|
-
// Durably drive ephemeral-environment self-test runs (the Worker uses a per-run
|
|
444
|
-
// EnvironmentTestWorkflow); a no-op queue when the environments module isn't wired.
|
|
445
|
-
startEnvTestWorker(boss, container, runtime.drive, logger, {
|
|
446
|
-
concurrency: runtime.concurrency,
|
|
447
|
-
}),
|
|
448
|
-
// Async GitHub ingest (the analogue of the Worker's GITHUB_SYNC_QUEUE consumer +
|
|
449
|
-
// GitHubBackfillWorkflow): drain the `github.sync` queue the gateway seams enqueue onto,
|
|
450
|
-
// so webhook deliveries / resyncs / backfills apply out of band and the request acks fast.
|
|
451
|
-
startGitHubSyncWorker(boss, container, logger, {
|
|
452
|
-
concurrency: runtime.concurrency,
|
|
453
|
-
}),
|
|
454
|
-
// Async TRACKER ingest (the analogue of the Worker's TRACKER_SYNC_QUEUE consumer): drain the
|
|
455
|
-
// `tracker.sync` queue the webhook receiver enqueues onto, so a pushed issue event fires its
|
|
456
|
-
// intake schedule — and a ticket reply drives the parked review — out of band, while the
|
|
457
|
-
// tracker gets its prompt 2xx. A no-op queue when task sources aren't wired.
|
|
458
|
-
startTrackerSyncWorker(boss, container, logger, {
|
|
459
|
-
concurrency: runtime.concurrency,
|
|
460
|
-
}),
|
|
461
|
-
]);
|
|
460
|
+
await startDurableWorkers(boss, container, runtime);
|
|
462
461
|
bootClock.mark('workers');
|
|
463
462
|
// Readiness probe for `/ready`: a live Postgres round-trip + the pg-boss flag, draining the
|
|
464
463
|
// instant shutdown begins so a load balancer stops routing here while in-flight requests finish.
|
|
@@ -477,6 +476,13 @@ async function bootServer(options, env) {
|
|
|
477
476
|
env,
|
|
478
477
|
host: options.host,
|
|
479
478
|
label: 'cat-factory node server',
|
|
479
|
+
// Mothership-mode INBOUND real-time: a Node deployment can be a mothership, so accept the
|
|
480
|
+
// machine-authed per-workspace subscription on this listener too. The scope binding reads the
|
|
481
|
+
// deployment's OWN workspace store — the same resolver the persistence RPC and the upstream
|
|
482
|
+
// publish endpoint scope against.
|
|
483
|
+
machineSubscribe: {
|
|
484
|
+
accountOf: (workspaceId) => repos.workspaceRepository.accountOf(workspaceId),
|
|
485
|
+
},
|
|
480
486
|
});
|
|
481
487
|
bootClock.mark('listen');
|
|
482
488
|
// One structured line naming where the boot seconds went (app-startup initiative, item 1). The
|