@cat-factory/node-server 0.121.1 → 0.122.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":"container-github-deps.d.ts","sourceRoot":"","sources":["../src/container-github-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAKtB,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,KAAK,EACL,YAAY,EACZ,4BAA4B,EAC5B,WAAW,EACX,gBAAgB,EAGhB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EAExB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAgBvB,MAAM,qBAAqB,CAAA;AAO5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AA4B/C,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/B,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;CACpD;AA6CD,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,SAAS,CAAA;IACb,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAChD,6FAA6F;IAC7F,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3D,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC1C,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,YAAY,CAAA;IACnC,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,kGAAkG;IAClG,kBAAkB,EAAE,YAAY,GAAG,SAAS,CAAA;IAC5C,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,eAAe,EAAE,eAAe,CAAA;IAChC,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,0FAA0F;IAC1F,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,YAAY,EAAE,YAAY,GAAG,SAAS,CAAA;IACtC,KAAK,EAAE,aAAa,CAAA;IACpB,eAAe,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;IAC7D,sBAAsB,EAAE,qBAAqB,CAAA;IAC7C,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAgL/E"}
1
+ {"version":3,"file":"container-github-deps.d.ts","sourceRoot":"","sources":["../src/container-github-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAKtB,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,KAAK,EACL,YAAY,EACZ,4BAA4B,EAC5B,WAAW,EACX,gBAAgB,EAGhB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EAExB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAgBvB,MAAM,qBAAqB,CAAA;AAO5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AA+B/C,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/B,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;CACpD;AAiDD,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,SAAS,CAAA;IACb,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAChD,6FAA6F;IAC7F,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3D,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC1C,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,YAAY,CAAA;IACnC,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,kGAAkG;IAClG,kBAAkB,EAAE,YAAY,GAAG,SAAS,CAAA;IAC5C,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,eAAe,EAAE,eAAe,CAAA;IAChC,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,0FAA0F;IAC1F,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,YAAY,EAAE,YAAY,GAAG,SAAS,CAAA;IACtC,KAAK,EAAE,aAAa,CAAA;IACpB,eAAe,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;IAC7D,sBAAsB,EAAE,qBAAqB,CAAA;IAC7C,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAgL/E"}
@@ -6,7 +6,7 @@ import { buildNodeGitHubIssueFiler } from './container-executor-deps.js';
6
6
  import { DrizzleDocumentRepository } from './repositories/documents.js';
7
7
  import { DrizzleBranchProjectionRepository, DrizzleCheckRunProjectionRepository, DrizzleCommitProjectionRepository, DrizzleIssueProjectionRepository, DrizzlePullRequestProjectionRepository, } from './repositories/github.js';
8
8
  import { DrizzleTaskConnectionRepository, DrizzleTaskRepository, DrizzleTaskSourceSettingsRepository, } from './repositories/tasks.js';
9
- import { DrizzleReviewQuestionPostRepository } from './repositories/drizzle/settings.js';
9
+ import { DrizzleReviewQuestionPostRepository, DrizzleTrackerCommentIngestRepository, } from './repositories/drizzle/settings.js';
10
10
  import { DrizzleUserRepoAccessRepository } from './repositories/userRepoAccess.js';
11
11
  // The engine's CI/mergeability gate reads never persist rate-limit snapshots (that is the
12
12
  // GitHub sync/webhook path's job), so the client backing them takes a no-op rate-limit store.
@@ -49,6 +49,10 @@ function selectNodeTasksDeps(config, db, githubClient, installations) {
49
49
  taskConnectionRepository,
50
50
  taskSourceSettingsRepository: new DrizzleTaskSourceSettingsRepository(db),
51
51
  taskRepository: new DrizzleTaskRepository(db),
52
+ // Idempotency markers for INBOUND tracker comments. Wired alongside the task module rather
53
+ // than the writeback, because it guards the INGEST half (a redelivered comment applying its
54
+ // answers twice), which exists only when the task projection does.
55
+ trackerCommentIngestRepository: new DrizzleTrackerCommentIngestRepository(db),
52
56
  },
53
57
  taskConnectionRepository,
54
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"container-github-deps.js","sourceRoot":"","sources":["../src/container-github-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-github-deps.js","sourceRoot":"","sources":["../src/container-github-deps.ts"],"names":[],"mappings":"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"}
@@ -252,6 +252,133 @@ export declare const reviewQuestionPosts: import("drizzle-orm/pg-core").PgTableW
252
252
  };
253
253
  dialect: 'pg';
254
254
  }>;
255
+ export declare const trackerCommentIngests: import("drizzle-orm/pg-core").PgTableWithColumns<{
256
+ name: "tracker_comment_ingests";
257
+ schema: undefined;
258
+ columns: {
259
+ workspace_id: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
260
+ name: string;
261
+ tableName: "tracker_comment_ingests";
262
+ dataType: "string";
263
+ data: string;
264
+ driverParam: string;
265
+ notNull: true;
266
+ hasDefault: false;
267
+ isPrimaryKey: false;
268
+ isAutoincrement: false;
269
+ hasRuntimeDefault: false;
270
+ enumValues: undefined;
271
+ identity: undefined;
272
+ generated: undefined;
273
+ }>;
274
+ source: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
275
+ name: string;
276
+ tableName: "tracker_comment_ingests";
277
+ dataType: "string";
278
+ data: string;
279
+ driverParam: string;
280
+ notNull: true;
281
+ hasDefault: false;
282
+ isPrimaryKey: false;
283
+ isAutoincrement: false;
284
+ hasRuntimeDefault: false;
285
+ enumValues: undefined;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }>;
289
+ external_id: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
290
+ name: string;
291
+ tableName: "tracker_comment_ingests";
292
+ dataType: "string";
293
+ data: string;
294
+ driverParam: string;
295
+ notNull: true;
296
+ hasDefault: false;
297
+ isPrimaryKey: false;
298
+ isAutoincrement: false;
299
+ hasRuntimeDefault: false;
300
+ enumValues: undefined;
301
+ identity: undefined;
302
+ generated: undefined;
303
+ }>;
304
+ comment_id: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
305
+ name: string;
306
+ tableName: "tracker_comment_ingests";
307
+ dataType: "string";
308
+ data: string;
309
+ driverParam: string;
310
+ notNull: true;
311
+ hasDefault: false;
312
+ isPrimaryKey: false;
313
+ isAutoincrement: false;
314
+ hasRuntimeDefault: false;
315
+ enumValues: undefined;
316
+ identity: undefined;
317
+ generated: undefined;
318
+ }>;
319
+ status: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
320
+ name: string;
321
+ tableName: "tracker_comment_ingests";
322
+ dataType: "string";
323
+ data: string;
324
+ driverParam: string;
325
+ notNull: true;
326
+ hasDefault: false;
327
+ isPrimaryKey: false;
328
+ isAutoincrement: false;
329
+ hasRuntimeDefault: false;
330
+ enumValues: undefined;
331
+ identity: undefined;
332
+ generated: undefined;
333
+ }>;
334
+ attempts: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>, {
335
+ name: string;
336
+ tableName: "tracker_comment_ingests";
337
+ dataType: "number int32";
338
+ data: number;
339
+ driverParam: string | number;
340
+ notNull: true;
341
+ hasDefault: true;
342
+ isPrimaryKey: false;
343
+ isAutoincrement: false;
344
+ hasRuntimeDefault: false;
345
+ enumValues: undefined;
346
+ identity: undefined;
347
+ generated: undefined;
348
+ }>;
349
+ error: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, {
350
+ name: string;
351
+ tableName: "tracker_comment_ingests";
352
+ dataType: "string";
353
+ data: string;
354
+ driverParam: string;
355
+ notNull: false;
356
+ hasDefault: false;
357
+ isPrimaryKey: false;
358
+ isAutoincrement: false;
359
+ hasRuntimeDefault: false;
360
+ enumValues: undefined;
361
+ identity: undefined;
362
+ generated: undefined;
363
+ }>;
364
+ updated_at: import("drizzle-orm/pg-core").PgBuildColumn<"tracker_comment_ingests", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
365
+ name: string;
366
+ tableName: "tracker_comment_ingests";
367
+ dataType: "number int53";
368
+ data: number;
369
+ driverParam: string | number;
370
+ notNull: true;
371
+ hasDefault: false;
372
+ isPrimaryKey: false;
373
+ isAutoincrement: false;
374
+ hasRuntimeDefault: false;
375
+ enumValues: undefined;
376
+ identity: undefined;
377
+ generated: undefined;
378
+ }>;
379
+ };
380
+ dialect: 'pg';
381
+ }>;
255
382
  export declare const taskConnections: import("drizzle-orm/pg-core").PgTableWithColumns<{
256
383
  name: "task_connections";
257
384
  schema: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../../src/db/schema/tracker.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa1B,CAAA;AAOF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/B,CAAA;AAOD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AAKD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAA;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBjB,CAAA"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../../src/db/schema/tracker.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa1B,CAAA;AAOF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/B,CAAA;AAQD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAA;AAOD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AAKD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAA;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBjB,CAAA"}
@@ -37,6 +37,22 @@ export const reviewQuestionPosts = pgTable('review_question_posts', {
37
37
  error: text('error'),
38
38
  updated_at: bigint('updated_at', { mode: 'number' }).notNull(),
39
39
  }, (t) => [primaryKey({ columns: [t.workspace_id, t.review_id, t.iteration, t.issue_ref] })]);
40
+ // Idempotency markers for INBOUND tracker comments (mirror of D1 migration 0064): one row per
41
+ // (workspace, source, external_id, comment_id). Every tracker redelivers, and an async queue job is
42
+ // retried on any error, so the row is CLAIMED before a comment's review commands are applied —
43
+ // otherwise one reporter comment would answer the same finding several times. A `failed` row is
44
+ // re-claimable; `applied` is terminal; a `pending` one is re-claimable only once abandoned, so an
45
+ // ingester killed mid-apply cannot silence that comment forever.
46
+ export const trackerCommentIngests = pgTable('tracker_comment_ingests', {
47
+ workspace_id: text('workspace_id').notNull(),
48
+ source: text('source').notNull(),
49
+ external_id: text('external_id').notNull(),
50
+ comment_id: text('comment_id').notNull(),
51
+ status: text('status').notNull(),
52
+ attempts: integer('attempts').notNull().default(0),
53
+ error: text('error'),
54
+ updated_at: bigint('updated_at', { mode: 'number' }).notNull(),
55
+ }, (t) => [primaryKey({ columns: [t.workspace_id, t.source, t.external_id, t.comment_id] })]);
40
56
  // Task-source integration (mirror of D1 migration 0014): a workspace's connections
41
57
  // to external issue trackers (Jira) and local projections of the issues it imported.
42
58
  // `credentials` is an encrypted JSON bag (AES-256-GCM envelope), never sent on the
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../src/db/schema/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../src/db/schema/tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Logger, ServerContainer, TrackerWebhookIngest } from '@cat-factory/server';
2
+ import type { TrackerWebhookEvent } from '@cat-factory/kernel';
3
+ import type { PgBoss } from 'pg-boss';
4
+ export declare const TRACKER_SYNC_QUEUE = "tracker.sync";
5
+ /** One unit of async tracker work: a verified, parsed delivery for one workspace. */
6
+ export interface TrackerSyncJob {
7
+ workspaceId: string;
8
+ event: TrackerWebhookEvent;
9
+ }
10
+ /**
11
+ * pg-boss tracker webhook ingest: enqueues a verified, parsed delivery so the receiver acks fast
12
+ * and the worker applies it asynchronously. Node analogue of the Worker's `CfTrackerWebhookIngest`.
13
+ */
14
+ export declare class PgBossTrackerWebhookIngest implements TrackerWebhookIngest {
15
+ private readonly boss;
16
+ constructor(boss: PgBoss);
17
+ enqueueEvent(workspaceId: string, event: TrackerWebhookEvent): Promise<boolean>;
18
+ }
19
+ /**
20
+ * Create the tracker-sync queue and start the worker that applies queued deliveries.
21
+ *
22
+ * No-op-safe: with no tracker-webhook module wired (task sources unconfigured) a job is completed
23
+ * (dropped) rather than retried forever — the enqueue path is only reachable through the receiver,
24
+ * which requires the module, so a job with no module is a boot-ordering edge, not a steady state.
25
+ * `localConcurrency` lets independent deliveries apply in parallel, the same throughput lever the
26
+ * GitHub-sync worker uses.
27
+ */
28
+ export declare function startTrackerSyncWorker(boss: PgBoss, container: ServerContainer, log: Logger, options?: {
29
+ concurrency?: number;
30
+ }): Promise<void>;
31
+ //# sourceMappingURL=trackerSyncRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerSyncRunner.d.ts","sourceRoot":"","sources":["../../src/execution/trackerSyncRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAO,MAAM,EAAe,MAAM,SAAS,CAAA;AAgBvD,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAEhD,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,mBAAmB,CAAA;CAC3B;AA4BD;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,MAAM,EAAI;IAEvC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;CACF;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACrC,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
@@ -0,0 +1,85 @@
1
+ // Async TRACKER ingest on pg-boss: the Node analogue of the Worker's `TRACKER_SYNC_QUEUE`
2
+ // consumer, and a deliberate copy of `githubSyncRunner.ts`'s shape for the same reasons.
3
+ //
4
+ // The shared `taskWebhookController` verifies a delivery's HMAC over the raw body, parses it
5
+ // through the source's provider, and hands the neutral event to the `trackerWebhook` gateway
6
+ // seam; on Node that enqueues a job here so the HTTP request acks fast — every tracker expects a
7
+ // prompt 2xx and will redeliver otherwise, and the handle can fire a whole pipeline (intake) or
8
+ // drive a parked review through an LLM incorporation (a reply), neither of which belongs inside a
9
+ // webhook request. A registered worker drains the queue and applies each job through the SAME
10
+ // `TrackerWebhookService` the inline path uses, so only WHERE the work runs changes.
11
+ //
12
+ // A queue-less container (a pure-logic test, a local dev boot with no boss) gets the shared
13
+ // `InlineTrackerWebhookIngest` instead and the controller applies the event in-request.
14
+ export const TRACKER_SYNC_QUEUE = 'tracker.sync';
15
+ // Retry a handful of times with backoff so a transient failure (a DB blip, a rate-limited tracker
16
+ // comment) is redriven rather than dropped. The apply is idempotent by the ingest CLAIM (a comment
17
+ // already applied is skipped, an abandoned claim is retaken), so a retry is safe — which is
18
+ // exactly why the claim had to exist before this queue did.
19
+ const RETRY_LIMIT = 5;
20
+ const RETRY_DELAY_SECONDS = 5;
21
+ // `expireInSeconds` is an ABSOLUTE cap on a single job (pg-boss times a job out at
22
+ // `started_on + expireInSeconds`; heartbeats do NOT refresh it). A reply's apply runs an
23
+ // incorporation LLM call in the worst case, so size it past that with headroom — but well below
24
+ // the ingest claim's abandonment window, or an expired job would be retried while its claim is
25
+ // still considered in-flight and the comment would go unanswered until the window elapsed.
26
+ const EXPIRE_SECONDS = 5 * 60;
27
+ // Fast crash recovery, DECOUPLED from that cap: a live worker auto-heartbeats its active job, so
28
+ // a crashed worker is detected within `HEARTBEAT_SECONDS` and pg-boss frees the job for a retry.
29
+ const HEARTBEAT_SECONDS = 60;
30
+ function sendOptions() {
31
+ return {
32
+ retryLimit: RETRY_LIMIT,
33
+ retryDelay: RETRY_DELAY_SECONDS,
34
+ retryBackoff: true,
35
+ expireInSeconds: EXPIRE_SECONDS,
36
+ heartbeatSeconds: HEARTBEAT_SECONDS,
37
+ };
38
+ }
39
+ /**
40
+ * pg-boss tracker webhook ingest: enqueues a verified, parsed delivery so the receiver acks fast
41
+ * and the worker applies it asynchronously. Node analogue of the Worker's `CfTrackerWebhookIngest`.
42
+ */
43
+ export class PgBossTrackerWebhookIngest {
44
+ boss;
45
+ constructor(boss) {
46
+ this.boss = boss;
47
+ }
48
+ async enqueueEvent(workspaceId, event) {
49
+ await this.boss.send(TRACKER_SYNC_QUEUE, { workspaceId, event }, sendOptions());
50
+ return true;
51
+ }
52
+ }
53
+ /**
54
+ * Create the tracker-sync queue and start the worker that applies queued deliveries.
55
+ *
56
+ * No-op-safe: with no tracker-webhook module wired (task sources unconfigured) a job is completed
57
+ * (dropped) rather than retried forever — the enqueue path is only reachable through the receiver,
58
+ * which requires the module, so a job with no module is a boot-ordering edge, not a steady state.
59
+ * `localConcurrency` lets independent deliveries apply in parallel, the same throughput lever the
60
+ * GitHub-sync worker uses.
61
+ */
62
+ export async function startTrackerSyncWorker(boss, container, log, options = {}) {
63
+ const concurrency = Math.max(1, options.concurrency ?? 5);
64
+ await boss.createQueue(TRACKER_SYNC_QUEUE);
65
+ await boss.work(TRACKER_SYNC_QUEUE, { localConcurrency: concurrency }, async (jobs) => {
66
+ const service = container.trackerWebhook?.service;
67
+ if (!service)
68
+ return;
69
+ for (const job of jobs) {
70
+ try {
71
+ await service.handle(job.data.workspaceId, job.data.event);
72
+ }
73
+ catch (error) {
74
+ log.error({
75
+ workspaceId: job.data.workspaceId,
76
+ source: job.data.event.source,
77
+ kind: job.data.event.kind,
78
+ err: error instanceof Error ? error.message : String(error),
79
+ }, 'tracker webhook job failed');
80
+ throw error; // let pg-boss retry/backoff (the durable backstop)
81
+ }
82
+ }
83
+ });
84
+ }
85
+ //# sourceMappingURL=trackerSyncRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerSyncRunner.js","sourceRoot":"","sources":["../../src/execution/trackerSyncRunner.ts"],"names":[],"mappings":"AAIA,0FAA0F;AAC1F,yFAAyF;AACzF,EAAE;AACF,6FAA6F;AAC7F,6FAA6F;AAC7F,iGAAiG;AACjG,gGAAgG;AAChG,kGAAkG;AAClG,8FAA8F;AAC9F,qFAAqF;AACrF,EAAE;AACF,4FAA4F;AAC5F,wFAAwF;AAExF,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAA;AAQhD,kGAAkG;AAClG,mGAAmG;AACnG,4FAA4F;AAC5F,4DAA4D;AAC5D,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,mFAAmF;AACnF,yFAAyF;AACzF,gGAAgG;AAChG,+FAA+F;AAC/F,2FAA2F;AAC3F,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,CAAA;AAC7B,iGAAiG;AACjG,iGAAiG;AACjG,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B,SAAS,WAAW;IAClB,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,UAAU,EAAE,mBAAmB;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,cAAc;QAC/B,gBAAgB,EAAE,iBAAiB;KACpC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IACR,IAAI;IAAjC,YAA6B,IAAY;oBAAZ,IAAI;IAAW,CAAC;IAE7C,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,KAA0B;QAChE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;QAC/E,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,SAA0B,EAC1B,GAAW,EACX,OAAO,GAA6B,EAAE;IAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAA;IACzD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAA;IAC1C,MAAM,IAAI,CAAC,IAAI,CACb,kBAAkB,EAClB,EAAE,gBAAgB,EAAE,WAAW,EAAE,EACjC,KAAK,EAAE,IAA2B,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,EAAE,OAAO,CAAA;QACjD,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CACP;oBACE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW;oBACjC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;oBAC7B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBACzB,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC5D,EACD,4BAA4B,CAC7B,CAAA;gBACD,MAAM,KAAK,CAAA,CAAC,mDAAmD;YACjE,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../src/gateways.ts"],"names":[],"mappings":"AAOA,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AA+FrC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAYzF"}
1
+ {"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../src/gateways.ts"],"names":[],"mappings":"AAOA,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAgGrC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAgBzF"}
package/dist/gateways.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { DEEPSEEK_BASE_URL, MOONSHOT_BASE_URL, OPENAI_BASE_URL, OPENROUTER_BASE_URL, QWEN_BASE_URL, } from '@cat-factory/agents';
2
- import {} from '@cat-factory/server';
2
+ import { InlineTrackerWebhookIngest, } from '@cat-factory/server';
3
3
  import { PgBossGitHubBackfillScheduler, PgBossGitHubWebhookIngest, } from './execution/githubSyncRunner.js';
4
+ import { PgBossTrackerWebhookIngest } from './execution/trackerSyncRunner.js';
4
5
  // Node implementations of the runtime gateway seams. Async GitHub ingest is backed by
5
6
  // pg-boss when the durable job engine is up (the production/dev path): backfills, webhook
6
7
  // deliveries and repo resyncs enqueue on the `github.sync` queue so the request acks fast,
@@ -97,6 +98,10 @@ export function createNodeGateways(env, boss) {
97
98
  ? new PgBossGitHubBackfillScheduler(boss)
98
99
  : new InlineGitHubBackfillScheduler(),
99
100
  githubWebhook: boss ? new PgBossGitHubWebhookIngest(boss) : new InlineGitHubWebhookIngest(),
101
+ // Inbound TRACKER deliveries. The queue-less fallback is the SHARED inline seam rather than a
102
+ // Node-local class: unlike the GitHub-sync seams there is nothing runtime-specific about doing
103
+ // nothing, and a second copy is a second place for the boolean to be wrong.
104
+ trackerWebhook: boss ? new PgBossTrackerWebhookIngest(boss) : new InlineTrackerWebhookIngest(),
100
105
  llmUpstream: new HttpLlmUpstream(env),
101
106
  // Container web-search upstream is resolved per-account by the proxy controller
102
107
  // (keys moved out of env into the per-account settings store), so no boot-time
@@ -1 +1 @@
1
- {"version":3,"file":"gateways.js","sourceRoot":"","sources":["../src/gateways.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateways.js","sourceRoot":"","sources":["../src/gateways.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AccountSettingsRecord, AccountSettingsRepository, KeyFingerprintStore, LocalSettingsRecord, LocalSettingsRepository, ModelPreset, ModelPresetRepository, NotificationWebhookRecord, NotificationWebhookRepository, ReviewQuestionPostClaimWindow, ReviewQuestionPostKey, ReviewQuestionPostRecord, ReviewQuestionPostRepository, TrackerSettings, TrackerSettingsRepository, UserSettings, UserSettingsRepository, WorkspaceSettings, WorkspaceSettingsRepository } from '@cat-factory/kernel';
1
+ import type { AccountSettingsRecord, AccountSettingsRepository, KeyFingerprintStore, LocalSettingsRecord, LocalSettingsRepository, ModelPreset, ModelPresetRepository, NotificationWebhookRecord, NotificationWebhookRepository, ReviewQuestionPostClaimWindow, ReviewQuestionPostKey, ReviewQuestionPostRecord, ReviewQuestionPostRepository, TrackerCommentIngestClaimWindow, TrackerCommentIngestKey, TrackerCommentIngestRecord, TrackerCommentIngestRepository, TrackerSettings, TrackerSettingsRepository, UserSettings, UserSettingsRepository, WorkspaceSettings, WorkspaceSettingsRepository } from '@cat-factory/kernel';
2
2
  import type { DrizzleDb } from '../../db/client.js';
3
3
  export declare class DrizzleKeyFingerprintStore implements KeyFingerprintStore {
4
4
  private readonly db;
@@ -115,4 +115,26 @@ export declare class DrizzleReviewQuestionPostRepository implements ReviewQuesti
115
115
  }, now: number): Promise<void>;
116
116
  get(key: ReviewQuestionPostKey): Promise<ReviewQuestionPostRecord | null>;
117
117
  }
118
+ /**
119
+ * Idempotency markers for INBOUND tracker comments — one row per
120
+ * `(workspace, source, externalId, commentId)` in `tracker_comment_ingests` (mirror of the D1
121
+ * `D1TrackerCommentIngestRepository`).
122
+ *
123
+ * Same atomic-claim shape as {@link DrizzleReviewQuestionPostRepository} above, for the same
124
+ * reason: a read-then-write would let two concurrent deliveries of one comment both decide to
125
+ * apply it, and each apply answers a finding a human is reading.
126
+ */
127
+ export declare class DrizzleTrackerCommentIngestRepository implements TrackerCommentIngestRepository {
128
+ private readonly db;
129
+ constructor(db: DrizzleDb);
130
+ private where;
131
+ claim(key: TrackerCommentIngestKey, window: TrackerCommentIngestClaimWindow): Promise<boolean>;
132
+ settle(key: TrackerCommentIngestKey, outcome: {
133
+ status: 'applied';
134
+ } | {
135
+ status: 'failed';
136
+ error: string;
137
+ }, now: number): Promise<void>;
138
+ get(key: TrackerCommentIngestKey): Promise<TrackerCommentIngestRecord | null>;
139
+ }
118
140
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/settings.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAE5B,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAgBnD,qBAAa,0BAA2B,YAAW,mBAAmB;IAElE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFtB,YACmB,EAAE,EAAE,SAAS,EACb,GAAG,GAAE,MAAM,MAAyB,EACnD;IAEE,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOlC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5C;CACF;AAED,qBAAa,6BAA8B,YAAW,sBAAsB;IAC9D,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAGtD;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlE;CACF;AAuBD;;;;;;;;GAQG;AAEH,qBAAa,4BAA6B,YAAW,qBAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAOtE;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAOtD;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQjE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCpE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3D;CACF;AAED;;;;GAIG;AAEH,qBAAa,gCAAiC,YAAW,yBAAyB;IACpE,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAe9D;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBvE;CACF;AAED;;;;GAIG;AACH,qBAAa,oCAAqC,YAAW,6BAA6B;IAC5E,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAcxE;IAEK,GAAG,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1D;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/C;CACF;AA8BD;;;;;GAKG;AAEH,qBAAa,kCAAmC,YAAW,2BAA2B;IACxE,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAQhE;IAEK,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAWxF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C5E;CACF;AAED;;;;;GAKG;AAEH,qBAAa,gCAAiC,YAAW,yBAAyB;IACpE,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAgB3E;IAEK,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBzD;IAEK,OAAO,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAUhD;CACF;AAMD;;;;;GAKG;AAEH,qBAAa,8BAA+B,YAAW,uBAAuB;IAChE,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAS/C;IAEK,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAavD;CACF;AAED;;;;;;;;;GASG;AACH,qBAAa,mCAAoC,YAAW,4BAA4B;IAC1E,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAE9C,OAAO,CAAC,KAAK;IASP,KAAK,CAAC,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,CAuC/F;IAEK,MAAM,CACV,GAAG,EAAE,qBAAqB,EAC1B,OAAO,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACnE,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CASf;IAEK,GAAG,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAa9E;CACF"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/settings.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  // CoreRepositories set by ./drizzle.ts (the barrel).
6
6
  import { parseNotificationWebhookTypes } from '@cat-factory/server';
7
7
  import { and, eq, inArray, lte, or, sql } from 'drizzle-orm';
8
- import { accountSettings, keyFingerprint, localSettings, modelPresets, notificationWebhooks, reviewQuestionPosts, trackerSettings, userSettings, workspaceSettings, } from '../../db/schema.js';
8
+ import { accountSettings, keyFingerprint, localSettings, modelPresets, notificationWebhooks, reviewQuestionPosts, trackerCommentIngests, trackerSettings, userSettings, workspaceSettings, } from '../../db/schema.js';
9
9
  /** The fixed singleton-row id for the deployment's key fingerprint (ADR 0026 D6.1). */
10
10
  const KEY_FINGERPRINT_ID = 'key';
11
11
  export class DrizzleKeyFingerprintStore {
@@ -542,4 +542,81 @@ export class DrizzleReviewQuestionPostRepository {
542
542
  };
543
543
  }
544
544
  }
545
+ /**
546
+ * Idempotency markers for INBOUND tracker comments — one row per
547
+ * `(workspace, source, externalId, commentId)` in `tracker_comment_ingests` (mirror of the D1
548
+ * `D1TrackerCommentIngestRepository`).
549
+ *
550
+ * Same atomic-claim shape as {@link DrizzleReviewQuestionPostRepository} above, for the same
551
+ * reason: a read-then-write would let two concurrent deliveries of one comment both decide to
552
+ * apply it, and each apply answers a finding a human is reading.
553
+ */
554
+ export class DrizzleTrackerCommentIngestRepository {
555
+ db;
556
+ constructor(db) {
557
+ this.db = db;
558
+ }
559
+ where(key) {
560
+ return and(eq(trackerCommentIngests.workspace_id, key.workspaceId), eq(trackerCommentIngests.source, key.source), eq(trackerCommentIngests.external_id, key.externalId), eq(trackerCommentIngests.comment_id, key.commentId));
561
+ }
562
+ async claim(key, window) {
563
+ const claimed = await this.db
564
+ .insert(trackerCommentIngests)
565
+ .values({
566
+ workspace_id: key.workspaceId,
567
+ source: key.source,
568
+ external_id: key.externalId,
569
+ comment_id: key.commentId,
570
+ status: 'pending',
571
+ attempts: 1,
572
+ error: null,
573
+ updated_at: window.now,
574
+ })
575
+ .onConflictDoUpdate({
576
+ target: [
577
+ trackerCommentIngests.workspace_id,
578
+ trackerCommentIngests.source,
579
+ trackerCommentIngests.external_id,
580
+ trackerCommentIngests.comment_id,
581
+ ],
582
+ set: {
583
+ status: 'pending',
584
+ attempts: sql `${trackerCommentIngests.attempts} + 1`,
585
+ error: null,
586
+ updated_at: window.now,
587
+ },
588
+ // `failed` retries a transient failure; an old `pending` takes over from an ingester that
589
+ // died mid-apply (see TRACKER_COMMENT_INGEST_CLAIM_TTL_MS). A fresh `pending` is an apply
590
+ // still in flight and must NOT be stolen.
591
+ setWhere: or(eq(trackerCommentIngests.status, 'failed'), and(eq(trackerCommentIngests.status, 'pending'), lte(trackerCommentIngests.updated_at, window.reclaimPendingBefore))),
592
+ })
593
+ .returning({ commentId: trackerCommentIngests.comment_id });
594
+ return claimed.length > 0;
595
+ }
596
+ async settle(key, outcome, now) {
597
+ await this.db
598
+ .update(trackerCommentIngests)
599
+ .set({
600
+ status: outcome.status,
601
+ error: outcome.status === 'failed' ? outcome.error : null,
602
+ updated_at: now,
603
+ })
604
+ .where(this.where(key));
605
+ }
606
+ async get(key) {
607
+ const [row] = await this.db.select().from(trackerCommentIngests).where(this.where(key)).limit(1);
608
+ if (!row)
609
+ return null;
610
+ return {
611
+ workspaceId: row.workspace_id,
612
+ source: row.source,
613
+ externalId: row.external_id,
614
+ commentId: row.comment_id,
615
+ status: row.status,
616
+ attempts: row.attempts,
617
+ error: row.error,
618
+ updatedAt: row.updated_at,
619
+ };
620
+ }
621
+ }
545
622
  //# sourceMappingURL=settings.js.map