@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.
- package/dist/modules/tasks/TrackerWebhookService.d.ts +8 -0
- package/dist/modules/tasks/TrackerWebhookService.d.ts.map +1 -1
- package/dist/modules/tasks/TrackerWebhookService.js +36 -9
- package/dist/modules/tasks/TrackerWebhookService.js.map +1 -1
- package/dist/modules/writeback/IssueWritebackService.d.ts +30 -1
- package/dist/modules/writeback/IssueWritebackService.d.ts.map +1 -1
- package/dist/modules/writeback/IssueWritebackService.js +65 -3
- package/dist/modules/writeback/IssueWritebackService.js.map +1 -1
- package/dist/modules/writeback/reviewQuestions.logic.d.ts +23 -9
- package/dist/modules/writeback/reviewQuestions.logic.d.ts.map +1 -1
- package/dist/modules/writeback/reviewQuestions.logic.js +40 -27
- package/dist/modules/writeback/reviewQuestions.logic.js.map +1 -1
- package/package.json +4 -4
|
@@ -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;
|
|
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
|
-
|
|
165
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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":"AAAA,OAAO,EAEL,KAAK,MAAM,EAOX,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,
|
|
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
|
-
|
|
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,
|
|
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
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* - **
|
|
18
|
-
* is reading this in their tracker, and telling them only about an HTTP
|
|
19
|
-
* person who came through the ticket to leave it.
|
|
20
|
-
*
|
|
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":"
|
|
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.
|
|
63
|
-
*
|
|
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:
|
|
68
|
-
|
|
69
|
-
'any code is written.',
|
|
70
|
-
|
|
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:
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* - **
|
|
88
|
-
* is reading this in their tracker, and telling them only about an HTTP
|
|
89
|
-
* person who came through the ticket to leave it.
|
|
90
|
-
*
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEjE,gGAAgG;AAChG,mGAAmG;AACnG,4FAA4F;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,6FAA6F;AAC7F,6FAA6F;AAC7F,8FAA8F;AAC9F,6FAA6F;AAC7F,oCAAoC;AACpC,EAAE;AACF,+FAA+F;AAC/F,+FAA+F;AAC/F,qFAAqF;AACrF,0FAA0F;AAC1F,+FAA+F;AAC/F,+FAA+F;AAC/F,qFAAqF;AACrF,2CAA2C;AAE3C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgD;IAC1E,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAA;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAE7B,qDAAqD;AACrD,MAAM,eAAe,GAAG,GAAG,CAAA;AAE3B,+FAA+F;AAC/F,MAAM,YAAY,GAAG,EAAE,CAAA;AAEvB;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEhC,gGAAgG;AAChG,MAAM,eAAe,GAAG,eAAe,CAAA;AAEvC;4EAC4E;AAC5E,SAAS,UAAU,CAAC,KAAa,EAAE,GAAW;IAC5C,OAAO,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW;IAC3C,OAAO,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;AAC5D,CAAC;AAED
|
|
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.
|
|
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.
|
|
31
|
-
"@cat-factory/kernel": "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.
|
|
38
|
+
"@cat-factory/caching": "0.15.3"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "tsc -b tsconfig.build.json",
|