@cat-factory/integrations 0.133.0 → 0.134.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.
@@ -116,6 +116,10 @@ export declare class TrackerWebhookService {
116
116
  *
117
117
  * 1. **A named finding id decides it.** The ids are platform-minted and unique across both
118
118
  * stores, so a comment that names one is unambiguous no matter how many reviews are live.
119
+ * A comment naming ids from BOTH reviews still resolves to one of them, and `applyCommands`
120
+ * then rejects the other's ids as belonging to another review — reported in the ack rather
121
+ * than dropped, because "that id is real, just not in the loop you are answering" is the one
122
+ * rejection a reporter can act on.
119
123
  * 2. **Otherwise the review PARKED ON A HUMAN decides it** (`reviewAwaitsHuman`). A bare
120
124
  * `proceed` is about the loop that stopped the run, which is the one holding a human's
121
125
  * answer and not merely the one that has not settled: `incorporating` / `reviewing` are the
@@ -125,6 +129,10 @@ export declare class TrackerWebhookService {
125
129
  * every review is settled or mid-cycle, where the ack says what it did (`settled`, or the
126
130
  * current state) whichever one is picked, so the choice cannot mislead.
127
131
  *
132
+ * Deliberately NO special case for a single candidate. Tie-break 1 already answers the one-review
133
+ * case correctly (there is nothing to break a tie between), so a `length <= 1` short-circuit
134
+ * would only create a second path that could answer differently from the general one.
135
+ *
128
136
  * Reads every wired subject's store in parallel: they are independent point lookups on a path
129
137
  * that has already established the comment carries commands.
130
138
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TrackerWebhookService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EAIX,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iCAAiC,EACtC,KAAK,gBAAgB,EAGrB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EAInB,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAA;AA4B5B;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACnC,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAClF,iDAAiD;IACjD,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC,CAAA;IAC3B,iDAAiD;IACjD,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CAAA;IAC3B,2FAA2F;IAC3F,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC9F,wFAAwF;IACxF,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACvE,mDAAmD;IACnD,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,eAAe,CAAC,CAAA;CAC5B;AAiBD,MAAM,WAAW,iCAAiC;IAChD,cAAc,EAAE,cAAc,CAAA;IAC9B,wBAAwB,EAAE,wBAAwB,CAAA;IAClD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClF;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC3E;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,8BAA8B,CAAA;IACxD,mFAAmF;IACnF,cAAc,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAA;IACnE,gGAAgG;IAChG,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC/E,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAKvC,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,YAA6B,IAAI,EAAE,iCAAiC,EAEnE;IAED,2CAA2C;IACrC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAI5F;IAED;;;;;;OAMG;YACW,WAAW;IASzB;;;;;;;;;;;;OAYG;YACW,aAAa;IAyG3B;;;;;;;;;;;;;;;;;;;;;OAqBG;YACW,aAAa;IA+B3B;;;;;;OAMG;YACW,aAAa;IAmI3B,OAAO,CAAC,GAAG;CAGZ"}
1
+ {"version":3,"file":"TrackerWebhookService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ import { isAllowedReplyAuthor, isPlatformAuthoredComment, parseReviewReplyComman
8
8
  * here too instead of being silently unreachable from a ticket.
9
9
  */
10
10
  const REPLY_SUBJECTS = Object.keys(REVIEW_QUESTION_POLICIES);
11
+ /** The finding ids a comment's commands name, across every id-addressed verb. */
12
+ function namedItemIds(commands) {
13
+ return new Set(commands.flatMap((command) => command.verb === 'answer' || command.verb === 'dismiss' ? [command.itemId] : []));
14
+ }
11
15
  /** Longest reply text stored against a finding, after scrubbing. */
12
16
  const MAX_REPLY_CHARS = 4_000;
13
17
  export class TrackerWebhookService {
@@ -141,6 +145,10 @@ export class TrackerWebhookService {
141
145
  *
142
146
  * 1. **A named finding id decides it.** The ids are platform-minted and unique across both
143
147
  * stores, so a comment that names one is unambiguous no matter how many reviews are live.
148
+ * A comment naming ids from BOTH reviews still resolves to one of them, and `applyCommands`
149
+ * then rejects the other's ids as belonging to another review — reported in the ack rather
150
+ * than dropped, because "that id is real, just not in the loop you are answering" is the one
151
+ * rejection a reporter can act on.
144
152
  * 2. **Otherwise the review PARKED ON A HUMAN decides it** (`reviewAwaitsHuman`). A bare
145
153
  * `proceed` is about the loop that stopped the run, which is the one holding a human's
146
154
  * answer and not merely the one that has not settled: `incorporating` / `reviewing` are the
@@ -150,6 +158,10 @@ export class TrackerWebhookService {
150
158
  * every review is settled or mid-cycle, where the ack says what it did (`settled`, or the
151
159
  * current state) whichever one is picked, so the choice cannot mislead.
152
160
  *
161
+ * Deliberately NO special case for a single candidate. Tie-break 1 already answers the one-review
162
+ * case correctly (there is nothing to break a tie between), so a `length <= 1` short-circuit
163
+ * would only create a second path that could answer differently from the general one.
164
+ *
153
165
  * Reads every wired subject's store in parallel: they are independent point lookups on a path
154
166
  * that has already established the comment carries commands.
155
167
  */
@@ -161,13 +173,18 @@ export class TrackerWebhookService {
161
173
  const review = await gateway.getForBlock(workspaceId, blockId);
162
174
  return review ? { subject, gateway, review } : null;
163
175
  }))).filter((candidate) => candidate !== null);
164
- if (candidates.length <= 1)
165
- return candidates[0] ?? null;
166
- const named = new Set(commands.flatMap((command) => command.verb === 'answer' || command.verb === 'dismiss' ? [command.itemId] : []));
167
- return (candidates.find((c) => c.review.items.some((item) => named.has(item.id))) ??
176
+ const named = namedItemIds(commands);
177
+ const chosen = candidates.find((c) => c.review.items.some((item) => named.has(item.id))) ??
168
178
  candidates.find((c) => reviewAwaitsHuman(c.review.status)) ??
169
- candidates[0] ??
170
- null);
179
+ candidates[0];
180
+ if (!chosen)
181
+ return null;
182
+ return {
183
+ ...chosen,
184
+ foreignItemIds: new Set(candidates
185
+ .filter((c) => c !== chosen)
186
+ .flatMap((c) => c.review.items.map((item) => item.id))),
187
+ };
171
188
  }
172
189
  /**
173
190
  * Apply a comment's commands to a live review, in the order written, and describe what happened.
@@ -177,7 +194,7 @@ export class TrackerWebhookService {
177
194
  * good faith deserves to learn the questions moved on rather than watch their reply vanish.
178
195
  */
179
196
  async applyCommands(workspaceId, blockId, target, commands) {
180
- const { subject, gateway, review } = target;
197
+ const { subject, gateway, review, foreignItemIds } = target;
181
198
  const runId = (await this.deps.resolveRunId?.(workspaceId, blockId)) ?? '';
182
199
  if (review.status === 'incorporated') {
183
200
  return {
@@ -192,6 +209,16 @@ export class TrackerWebhookService {
192
209
  };
193
210
  }
194
211
  const byId = new Map(review.items.map((item) => [item.id, item]));
212
+ /**
213
+ * Why an id-addressed command found no finding. A ticket can carry the question comments of
214
+ * BOTH live reviews, so an id that is real but in the other loop is the likely mistake, and it
215
+ * has a remedy: a separate comment naming only that review's ids resolves to that review.
216
+ * Reporting it as "no finding" would tell a reporter an id they can see is not real.
217
+ */
218
+ const missingReason = (itemId) => foreignItemIds.has(itemId)
219
+ ? `finding \`${itemId}\` belongs to the other review on this ticket — answer it in a ` +
220
+ 'separate comment naming only its findings'
221
+ : `no finding \`${itemId}\``;
195
222
  const answered = [];
196
223
  const dismissed = [];
197
224
  const rejected = [];
@@ -201,7 +228,7 @@ export class TrackerWebhookService {
201
228
  switch (command.verb) {
202
229
  case 'answer': {
203
230
  if (!byId.has(command.itemId)) {
204
- rejected.push({ command: command.line, reason: `no finding \`${command.itemId}\`` });
231
+ rejected.push({ command: command.line, reason: missingReason(command.itemId) });
205
232
  break;
206
233
  }
207
234
  const reply = (redactSecrets(command.text) ?? '').trim().slice(0, MAX_REPLY_CHARS);
@@ -215,7 +242,7 @@ export class TrackerWebhookService {
215
242
  }
216
243
  case 'dismiss': {
217
244
  if (!byId.has(command.itemId)) {
218
- rejected.push({ command: command.line, reason: `no finding \`${command.itemId}\`` });
245
+ rejected.push({ command: command.line, reason: missingReason(command.itemId) });
219
246
  break;
220
247
  }
221
248
  current = await gateway.setItemStatus(workspaceId, current.id, command.itemId, 'dismissed');
@@ -1 +1 @@
1
- {"version":3,"file":"TrackerWebhookService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrackerWebhookService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Logger, type Block, type Clock, type IssueWritebackProvider, type PullRequestRef, type ReviewQuestionPost, type ReviewQuestionPostOutcome, type ReviewQuestionPostRepository, type TaskRepository, type TaskSourceKind, type ReviewReplyAck, type TrackerSettingsRepository } from '@cat-factory/kernel';
1
+ import { type Logger, type Block, type Clock, type IssueWritebackProvider, type PullRequestRef, type ReviewQuestionPost, type ReviewQuestionPostOutcome, type ReviewQuestionPostRepository, type TaskConnectionRepository, type TaskRepository, type TaskSourceKind, type ReviewReplyAck, type TrackerSettingsRepository } from '@cat-factory/kernel';
2
2
  import type { FetchLike, JiraConnection, LinearConnection } from '../tracker/TicketTrackerService.js';
3
3
  export interface IssueWritebackServiceDependencies {
4
4
  trackerSettingsRepository: TrackerSettingsRepository;
@@ -45,6 +45,22 @@ export interface IssueWritebackServiceDependencies {
45
45
  * findings on every durable-driver replay (see the port doc).
46
46
  */
47
47
  reviewQuestionPostRepository?: ReviewQuestionPostRepository;
48
+ /**
49
+ * The per-`(workspace, source)` tracker connection, read for ONE thing here: whether an inbound
50
+ * webhook secret has been minted, which is what decides if a reply typed on the ticket can ever
51
+ * reach the run (`backend/docs/adr/0032-tracker-webhook-intake.md` fails closed without one).
52
+ *
53
+ * A question comment that leads with `@cat-factory answer …` on a connection with no secret is
54
+ * advice that silently does nothing, and it is the reporter — the one person who came in through
55
+ * the ticket — who follows it. So the copy asks before it promises. Absent ⇒ the ticket channel
56
+ * is reported UNWIRED, which is the honest reading: a facade that cannot establish the fact
57
+ * cannot offer the channel.
58
+ *
59
+ * Only the per-workspace half is visible from here. The other half is the facade's own
60
+ * `trackerCommentIngestRepository`, which both runtimes wire unconditionally and the tracker
61
+ * webhook conformance suite proves end to end.
62
+ */
63
+ taskConnectionRepository?: TaskConnectionRepository;
48
64
  /**
49
65
  * Wall clock for the marker rows and their abandonment window. The facade's shared `Clock`,
50
66
  * like every other service here; defaults to the real clock so a test can pin time without
@@ -70,6 +86,19 @@ export declare class IssueWritebackService implements IssueWritebackProvider {
70
86
  inProgressLabel?: string;
71
87
  }): Promise<void>;
72
88
  postReviewQuestions(workspaceId: string, block: Block, post: ReviewQuestionPost): Promise<ReviewQuestionPostOutcome>;
89
+ /**
90
+ * Whether a reply typed on a ticket reaches the run, per DISTINCT source across the block's
91
+ * linked issues.
92
+ *
93
+ * One connection read per distinct source, indexed into a `Map`, rather than one per issue: the
94
+ * fact belongs to `(workspace, source)`, and a block linked to three issues on one tracker would
95
+ * otherwise pay three decrypting reads for one answer.
96
+ *
97
+ * An unreadable connection resolves to `false` and is REPORTED, never guessed at: the failure
98
+ * mode of guessing `true` is a reporter told to reply where nothing listens, which is the exact
99
+ * thing this resolution exists to prevent.
100
+ */
101
+ private resolveTicketReplyChannels;
73
102
  /**
74
103
  * Acknowledge a ticket reply on the very issue it arrived on.
75
104
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IssueWritebackService.d.ts","sourceRoot":"","sources":["../../../src/modules/writeback/IssueWritebackService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IssueWritebackService.d.ts","sourceRoot":"","sources":["../../../src/modules/writeback/IssueWritebackService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { describeError, noopLogger, redactSecrets, resolveWritebackFlag, runBestEffort, REVIEW_QUESTION_POLICIES, REVIEW_QUESTION_POST_CLAIM_TTL_MS, } from '@cat-factory/kernel';
1
+ import { describeError, noopLogger, redactSecrets, resolveWritebackFlag, runBestEffort, REVIEW_QUESTION_POLICIES, REVIEW_QUESTION_POST_CLAIM_TTL_MS, trackerWebhookSecret, } from '@cat-factory/kernel';
2
2
  import { issueRefFor, renderReviewQuestionsComment } from './reviewQuestions.logic.js';
3
3
  import { renderReviewReplyAck } from './reviewReplies.logic.js';
4
4
  import { buildJiraCommentPayload, pickTransitionByCategory, } from '../tracker/jira.writeback.logic.js';
@@ -87,7 +87,20 @@ export class IssueWritebackService {
87
87
  const issues = await this.deps.taskRepository.listByBlock(workspaceId, block.id);
88
88
  if (issues.length === 0)
89
89
  return empty;
90
- const body = renderReviewQuestionsComment(post);
90
+ // Which of these issues can be REPLIED to, resolved once per distinct source rather than per
91
+ // issue: the answer is a property of the `(workspace, source)` connection, and several issues
92
+ // on one block routinely share one. Two bodies at most, so the render is memoised on the same
93
+ // boolean instead of being recomputed alongside it.
94
+ const repliesBySource = await this.resolveTicketReplyChannels(workspaceId, issues);
95
+ const bodies = new Map();
96
+ const bodyFor = (ticketReplies) => {
97
+ const cached = bodies.get(ticketReplies);
98
+ if (cached !== undefined)
99
+ return cached;
100
+ const rendered = renderReviewQuestionsComment(post, { ticketReplies });
101
+ bodies.set(ticketReplies, rendered);
102
+ return rendered;
103
+ };
91
104
  const now = () => (this.deps.clock ?? Date).now();
92
105
  const outcome = { ...empty };
93
106
  // Sequential on purpose: a review typically has ONE linked issue, and posting the same
@@ -124,6 +137,21 @@ export class IssueWritebackService {
124
137
  outcome.skipped += 1;
125
138
  continue;
126
139
  }
140
+ const ticketReplies = repliesBySource.get(issue.source) ?? false;
141
+ if (!ticketReplies) {
142
+ // Said once per claimed post (the marker bounds it), because the remedy is the operator's
143
+ // and the symptom otherwise reaches nobody: the reporter is being asked a question they
144
+ // cannot answer from where they are reading it, and the comment they get says so only by
145
+ // omission.
146
+ this.log.warn('review questions posted with no ticket reply channel', {
147
+ workspaceId,
148
+ blockId: block.id,
149
+ subject: post.subject,
150
+ source: issue.source,
151
+ externalId: issue.externalId,
152
+ remedy: `mint an inbound webhook secret for the ${issue.source} connection`,
153
+ });
154
+ }
127
155
  try {
128
156
  // Deliberately NOT wrapped in a wall-clock deadline. A timeout cannot distinguish "the
129
157
  // comment never landed" from "it landed, slowly": settling `failed` on that guess makes
@@ -131,7 +159,7 @@ export class IssueWritebackService {
131
159
  // outcome this whole marker exists to prevent. A hung transport is instead cut off by
132
160
  // the driver's own step limit, and the claim's abandonment window (above) makes that
133
161
  // row re-claimable — self-healing without ever inventing a duplicate.
134
- const delivered = await this.comment(workspaceId, issue, body);
162
+ const delivered = await this.comment(workspaceId, issue, bodyFor(ticketReplies));
135
163
  if (!delivered)
136
164
  throw new Error(`No ${issue.source} comment transport is wired`);
137
165
  await markers.settle(key, { status: 'posted' }, now());
@@ -157,6 +185,40 @@ export class IssueWritebackService {
157
185
  }
158
186
  return outcome;
159
187
  }
188
+ /**
189
+ * Whether a reply typed on a ticket reaches the run, per DISTINCT source across the block's
190
+ * linked issues.
191
+ *
192
+ * One connection read per distinct source, indexed into a `Map`, rather than one per issue: the
193
+ * fact belongs to `(workspace, source)`, and a block linked to three issues on one tracker would
194
+ * otherwise pay three decrypting reads for one answer.
195
+ *
196
+ * An unreadable connection resolves to `false` and is REPORTED, never guessed at: the failure
197
+ * mode of guessing `true` is a reporter told to reply where nothing listens, which is the exact
198
+ * thing this resolution exists to prevent.
199
+ */
200
+ async resolveTicketReplyChannels(workspaceId, issues) {
201
+ const wired = new Map();
202
+ const connections = this.deps.taskConnectionRepository;
203
+ if (!connections)
204
+ return wired;
205
+ const sources = [...new Set(issues.map((issue) => issue.source))];
206
+ await Promise.all(sources.map(async (source) => {
207
+ try {
208
+ const connection = await connections.getByWorkspace(workspaceId, source);
209
+ wired.set(source, trackerWebhookSecret(connection?.credentials) !== '');
210
+ }
211
+ catch (error) {
212
+ this.log.warn('tracker connection unreadable; offering the API answer path only', {
213
+ workspaceId,
214
+ source,
215
+ ...describeError(error),
216
+ });
217
+ wired.set(source, false);
218
+ }
219
+ }));
220
+ return wired;
221
+ }
160
222
  /**
161
223
  * Acknowledge a ticket reply on the very issue it arrived on.
162
224
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IssueWritebackService.js","sourceRoot":"","sources":["../../../src/modules/writeback/IssueWritebackService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IssueWritebackService.js","sourceRoot":"","sources":["../../../src/modules/writeback/IssueWritebackService.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,33 @@ import type { ReviewQuestionPost, TaskRecord } from '@cat-factory/kernel';
5
5
  * hand out the same external id.
6
6
  */
7
7
  export declare function issueRefFor(issue: Pick<TaskRecord, 'source' | 'externalId'>): string;
8
+ /** What a reader of this comment can actually answer through. */
9
+ export interface ReviewQuestionChannels {
10
+ /**
11
+ * Whether a reply typed on THIS ticket reaches the run.
12
+ *
13
+ * Load-bearing, and REQUIRED rather than defaulted, because it decides which channel the copy
14
+ * puts first and a wrong default is invisible: the inbound path needs a minted per-connection
15
+ * webhook secret, so a workspace on pull-based intake has none, and telling that reporter to
16
+ * reply on the ticket is the "question with no reply channel" this renderer's own contract
17
+ * calls worse than no question. A caller that has not established the fact must say `false`.
18
+ */
19
+ ticketReplies: boolean;
20
+ }
8
21
  /**
9
22
  * Render a parked review's open findings as a tracker comment.
10
23
  *
11
24
  * Three properties are load-bearing:
12
25
  *
13
- * - **Every finding is rendered with its stable id.** That id is what a caller passes to
14
- * `POST /api/v1/runs/:runId/decisions/<subject>/items/:itemId/reply`, and what a ticket reply
15
- * names. A comment without ids is unanswerable, so the id leads each entry. Ids are
16
- * platform-minted, so they are the ONE thing here rendered verbatim.
17
- * - **The comment states BOTH places an answer can go**, the reply grammar first. The reporter
18
- * is reading this in their tracker, and telling them only about an HTTP route asks the one
19
- * person who came through the ticket to leave it. The API line stays for the integration
20
- * watching the same run.
26
+ * - **Every finding is rendered with its stable id.** That id is what a caller passes to the
27
+ * subject's reply route, and what a ticket reply names. A comment without ids is unanswerable,
28
+ * so the id leads each entry. Ids are platform-minted, so they are the ONE thing here rendered
29
+ * verbatim.
30
+ * - **It offers only channels that WORK.** Where a ticket reply reaches the run, the grammar comes
31
+ * first: the reporter is reading this in their tracker, and telling them only about an HTTP
32
+ * route asks the one person who came through the ticket to leave it. Where it does not
33
+ * ({@link ReviewQuestionChannels}), the grammar is OMITTED rather than printed as advice that
34
+ * silently does nothing, and the API line carries the whole answer path on its own.
21
35
  * - **The wording matches the SUBJECT.** A bug reporter asked to "get the requirements straight"
22
36
  * reasonably concludes the comment landed on the wrong ticket.
23
37
  *
@@ -25,5 +39,5 @@ export declare function issueRefFor(issue: Pick<TaskRecord, 'source' | 'external
25
39
  * convert it (Jira via the ADF payload builder, Linear natively) exactly as they already do
26
40
  * for the PR-open/PR-merge comments.
27
41
  */
28
- export declare function renderReviewQuestionsComment(post: ReviewQuestionPost): string;
42
+ export declare function renderReviewQuestionsComment(post: ReviewQuestionPost, channels: ReviewQuestionChannels): string;
29
43
  //# sourceMappingURL=reviewQuestions.logic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviewQuestions.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/writeback/reviewQuestions.logic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAyB,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAqBhG;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAAG,MAAM,CAEpF;AA8DD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAmC7E"}
1
+ {"version":3,"file":"reviewQuestions.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/writeback/reviewQuestions.logic.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAyB,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAqBhG;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAAG,MAAM,CAEpF;AAiFD,iEAAiE;AACjE,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;OAQG;IACH,aAAa,EAAE,OAAO,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,CAmCR"}
@@ -1,3 +1,4 @@
1
+ import { replyPublicRunClarityFindingContract, replyPublicRunFindingContract, } from '@cat-factory/contracts';
1
2
  import { hostMarkdown, redactSecrets } from '@cat-factory/kernel';
2
3
  // The marker every platform-authored tracker comment opens with. Shared with the reply renderer
3
4
  // (and the ingest guard that keys off it) so the two can never emit different prefixes — a comment
@@ -59,35 +60,47 @@ function safeProse(value, max) {
59
60
  *
60
61
  * A `Record` over the closed {@link ReviewQuestionSubject} union rather than a branch, so adding a
61
62
  * subject cannot ship with the requirements loop's wording (and, worse, the requirements loop's
62
- * route) on a comment about something else. `route` is the path SEGMENT the public decision
63
- * surface mounts each review family under.
63
+ * route) on a comment about something else.
64
+ *
65
+ * Both members are FUNCTIONS, and both for the same reason: a string with holes in it is a
66
+ * contract nothing checks. `opening` was a `{n}`/`{s}`/`{i}`/`{max}` mini-template filled by
67
+ * sequential `.replace()`, so a mistyped placeholder shipped a literal `{n}` to a bug reporter
68
+ * with nothing failing; as a function the arity is a typecheck. And `replyPath` delegates to the
69
+ * ROUTE CONTRACT's own `pathResolver` rather than restating the path, because the hand-written
70
+ * copy said `…/items/<id>/reply` where the surface serves `…/findings/:itemId/reply` — a 404
71
+ * printed on a reporter's ticket, pinned by a test that had copied the same mistake. Deriving it
72
+ * from the one source the server routes off means the two cannot disagree again.
64
73
  */
65
74
  const SUBJECT_COPY = {
66
75
  requirements: {
67
- opening: 'cat-factory paused this work to get its requirements straight. It raised {n} ' +
68
- 'open question{s} (review pass {i} of {max}) and the run is waiting for answers before ' +
69
- 'any code is written.',
70
- route: 'requirements',
76
+ opening: (n, i, max) => `cat-factory paused this work to get its requirements straight. It raised ${n} ` +
77
+ `open question${n === 1 ? '' : 's'} (review pass ${i} of ${max}) and the run is waiting ` +
78
+ 'for answers before any code is written.',
79
+ replyPath: (runId, itemId) => replyPublicRunFindingContract.pathResolver({ runId, itemId }),
71
80
  },
72
81
  clarity: {
73
- opening: 'cat-factory cannot confidently fix this bug from the report as written. It raised {n} ' +
74
- 'open question{s} (triage pass {i} of {max}) and the run is waiting for answers.',
75
- route: 'clarity',
82
+ opening: (n, i, max) => `cat-factory cannot confidently fix this bug from the report as written. It raised ${n} ` +
83
+ `open question${n === 1 ? '' : 's'} (triage pass ${i} of ${max}) and the run is waiting ` +
84
+ 'for answers.',
85
+ replyPath: (runId, itemId) => replyPublicRunClarityFindingContract.pathResolver({ runId, itemId }),
76
86
  },
77
87
  };
88
+ /** The `<id>` stand-in rendered into the API path, since one comment covers every finding. */
89
+ const ID_PLACEHOLDER = '<id>';
78
90
  /**
79
91
  * Render a parked review's open findings as a tracker comment.
80
92
  *
81
93
  * Three properties are load-bearing:
82
94
  *
83
- * - **Every finding is rendered with its stable id.** That id is what a caller passes to
84
- * `POST /api/v1/runs/:runId/decisions/<subject>/items/:itemId/reply`, and what a ticket reply
85
- * names. A comment without ids is unanswerable, so the id leads each entry. Ids are
86
- * platform-minted, so they are the ONE thing here rendered verbatim.
87
- * - **The comment states BOTH places an answer can go**, the reply grammar first. The reporter
88
- * is reading this in their tracker, and telling them only about an HTTP route asks the one
89
- * person who came through the ticket to leave it. The API line stays for the integration
90
- * watching the same run.
95
+ * - **Every finding is rendered with its stable id.** That id is what a caller passes to the
96
+ * subject's reply route, and what a ticket reply names. A comment without ids is unanswerable,
97
+ * so the id leads each entry. Ids are platform-minted, so they are the ONE thing here rendered
98
+ * verbatim.
99
+ * - **It offers only channels that WORK.** Where a ticket reply reaches the run, the grammar comes
100
+ * first: the reporter is reading this in their tracker, and telling them only about an HTTP
101
+ * route asks the one person who came through the ticket to leave it. Where it does not
102
+ * ({@link ReviewQuestionChannels}), the grammar is OMITTED rather than printed as advice that
103
+ * silently does nothing, and the API line carries the whole answer path on its own.
91
104
  * - **The wording matches the SUBJECT.** A bug reporter asked to "get the requirements straight"
92
105
  * reasonably concludes the comment landed on the wrong ticket.
93
106
  *
@@ -95,17 +108,13 @@ const SUBJECT_COPY = {
95
108
  * convert it (Jira via the ADF payload builder, Linear natively) exactly as they already do
96
109
  * for the PR-open/PR-merge comments.
97
110
  */
98
- export function renderReviewQuestionsComment(post) {
111
+ export function renderReviewQuestionsComment(post, channels) {
99
112
  const copy = SUBJECT_COPY[post.subject];
100
113
  const shown = post.findings.slice(0, MAX_FINDINGS);
101
114
  const omitted = post.findings.length - shown.length;
102
115
  const lines = [
103
116
  PLATFORM_COMMENT_MARKER +
104
- copy.opening
105
- .replace('{n}', String(post.findings.length))
106
- .replace('{s}', post.findings.length === 1 ? '' : 's')
107
- .replace('{i}', String(post.iteration))
108
- .replace('{max}', String(post.maxIterations)),
117
+ copy.opening(post.findings.length, post.iteration, post.maxIterations),
109
118
  '',
110
119
  ];
111
120
  for (const finding of shown) {
@@ -115,10 +124,14 @@ export function renderReviewQuestionsComment(post) {
115
124
  lines.push(`_${omitted} further question${omitted === 1 ? '' : 's'} omitted for length — open ` +
116
125
  `run \`${post.runId}\` to see all of them._`, '');
117
126
  }
118
- lines.push('Answer here by replying with `@cat-factory answer <id> <your answer>` on its own line for ' +
119
- 'each (or `@cat-factory dismiss <id>` for the ones that do not apply). The same answers go ' +
120
- `through the platform API at \`POST /api/v1/runs/${post.runId}/decisions/${copy.route}/items/<id>/reply\`. ` +
121
- 'The run resumes as soon as none are left open.');
127
+ const apiPath = `\`POST ${copy.replyPath(post.runId, ID_PLACEHOLDER)}\``;
128
+ lines.push(channels.ticketReplies
129
+ ? 'Answer here by replying with `@cat-factory answer <id> <your answer>` on its own line ' +
130
+ 'for each (or `@cat-factory dismiss <id>` for the ones that do not apply). The same ' +
131
+ `answers go through the platform API at ${apiPath}. The run resumes as soon as none ` +
132
+ 'are left open.'
133
+ : `Answer each question by its id through the platform API — ${apiPath} — or dismiss the ` +
134
+ 'ones that do not apply. The run resumes as soon as none are left open.');
122
135
  return capComment(lines.join('\n'));
123
136
  }
124
137
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reviewQuestions.logic.js","sourceRoot":"","sources":["../../../src/modules/writeback/reviewQuestions.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewQuestions.logic.js","sourceRoot":"","sources":["../../../src/modules/writeback/reviewQuestions.logic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/integrations",
3
- "version": "0.133.0",
3
+ "version": "0.134.1",
4
4
  "description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,15 +27,15 @@
27
27
  "ai": "^7.0.51",
28
28
  "p-map": "^7.0.6",
29
29
  "yaml": "^2.9.0",
30
- "@cat-factory/contracts": "0.249.0",
31
- "@cat-factory/kernel": "0.247.0"
30
+ "@cat-factory/contracts": "0.250.0",
31
+ "@cat-factory/kernel": "0.248.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "typescript": "7.0.2",
35
35
  "undici": "^8.10.0",
36
36
  "valibot": "^1.4.2",
37
37
  "vitest": "^4.1.10",
38
- "@cat-factory/caching": "0.15.2"
38
+ "@cat-factory/caching": "0.15.3"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b tsconfig.build.json",