@codetreker/daynight 0.8.5 → 0.8.13
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/api/client.d.ts +5 -1
- package/dist/api/client.js +104 -24
- package/dist/api/client.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/parse.d.ts +4 -4
- package/dist/api/parse.js +28 -4
- package/dist/api/parse.js.map +1 -1
- package/dist/api/types.d.ts +23 -1
- package/dist/cli/byte-output-helper.d.ts +1 -0
- package/dist/cli/byte-output-helper.js +48 -0
- package/dist/cli/byte-output-helper.js.map +1 -0
- package/dist/cli/byte-output.d.ts +7 -0
- package/dist/cli/byte-output.js +199 -0
- package/dist/cli/byte-output.js.map +1 -0
- package/dist/cli/context.d.ts +2 -0
- package/dist/cli/context.js +15 -9
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/schema.js +6 -6
- package/dist/cli/schema.js.map +1 -1
- package/dist/commands/review/adapters/copilot.d.ts +3 -0
- package/dist/commands/review/adapters/copilot.js +16 -7
- package/dist/commands/review/adapters/copilot.js.map +1 -1
- package/dist/commands/review/adapters/github-review-state.d.ts +21 -0
- package/dist/commands/review/adapters/github-review-state.js +144 -0
- package/dist/commands/review/adapters/github-review-state.js.map +1 -0
- package/dist/commands/review/adapters/github.d.ts +2 -1
- package/dist/commands/review/adapters/github.js +31 -4
- package/dist/commands/review/adapters/github.js.map +1 -1
- package/dist/commands/review/coordinator.js +134 -7
- package/dist/commands/review/coordinator.js.map +1 -1
- package/dist/commands/review/model.d.ts +21 -0
- package/dist/commands/review/publication.d.ts +14 -0
- package/dist/commands/review/publication.js +47 -0
- package/dist/commands/review/publication.js.map +1 -0
- package/dist/commands/review/skills/daynight-review/SKILL.md +59 -20
- package/dist/commands/review/store.d.ts +20 -0
- package/dist/commands/review/store.js +134 -5
- package/dist/commands/review/store.js.map +1 -1
- package/dist/commands/server/runtime.d.ts +1 -1
- package/dist/commands/server/runtime.js +8 -1
- package/dist/commands/server/runtime.js.map +1 -1
- package/dist/commands/skill/agents.d.ts +1 -1
- package/dist/commands/skill/agents.js +1 -1
- package/dist/commands/skill/agents.js.map +1 -1
- package/dist/commands/skill/command.js +7 -5
- package/dist/commands/skill/command.js.map +1 -1
- package/dist/commands/skill/definition.js +3 -3
- package/dist/commands/skill/definition.js.map +1 -1
- package/dist/commands/skill/install.d.ts +2 -1
- package/dist/commands/skill/install.js +13 -5
- package/dist/commands/skill/install.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/SKILL.md +56 -0
- package/dist/commands/skill/skills/using-daynight/references/autopilot.md +71 -0
- package/dist/commands/skill/skills/using-daynight/references/create-task.md +103 -0
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +72 -0
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +80 -0
- package/dist/commands/skill/targets.d.ts +1 -0
- package/dist/commands/skill/targets.js +9 -2
- package/dist/commands/skill/targets.js.map +1 -1
- package/dist/commands/task/attachment-rendering.d.ts +5 -0
- package/dist/commands/task/attachment-rendering.js +38 -0
- package/dist/commands/task/attachment-rendering.js.map +1 -0
- package/dist/commands/task/attachment.d.ts +6 -0
- package/dist/commands/task/attachment.js +91 -0
- package/dist/commands/task/attachment.js.map +1 -0
- package/dist/commands/task/command.js +26 -6
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +53 -8
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/rendering.d.ts +1 -0
- package/dist/commands/task/rendering.js +25 -4
- package/dist/commands/task/rendering.js.map +1 -1
- package/package.json +3 -2
- package/dist/commands/skill/skills/daynight/SKILL.md +0 -95
- package/dist/commands/skill/skills/daynight/references/commands.md +0 -155
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
export const pullRequestReviewSnapshotQuery = `query PullRequestReviewSnapshot($owner: String!, $name: String!, $number: Int!, $reviewCursor: String, $threadCursor: String) {
|
|
2
|
+
viewer { id }
|
|
3
|
+
repository(owner: $owner, name: $name) {
|
|
4
|
+
databaseId
|
|
5
|
+
pullRequest(number: $number) {
|
|
6
|
+
number state isDraft headRefOid baseRefName
|
|
7
|
+
reviews(first: 100, after: $reviewCursor) {
|
|
8
|
+
totalCount
|
|
9
|
+
nodes { id author { ... on Node { id } } commit { oid } body state }
|
|
10
|
+
pageInfo { hasNextPage endCursor }
|
|
11
|
+
}
|
|
12
|
+
reviewThreads(first: 100, after: $threadCursor) {
|
|
13
|
+
totalCount
|
|
14
|
+
nodes {
|
|
15
|
+
id isResolved
|
|
16
|
+
comments(first: 1) { totalCount nodes { replyTo { id } pullRequestReview { id } } }
|
|
17
|
+
}
|
|
18
|
+
pageInfo { hasNextPage endCursor }
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}`;
|
|
23
|
+
const object = (value, subject) => {
|
|
24
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
25
|
+
throw new Error(`${subject} must be an object.`);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
const text = (value, subject) => {
|
|
29
|
+
if (typeof value !== "string" || value.trim() === "" || /[\r\n\0]/.test(value))
|
|
30
|
+
throw new Error(`${subject} must be nonempty text without control characters.`);
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
const count = (value, subject) => {
|
|
34
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)
|
|
35
|
+
throw new Error(`${subject} must be a nonnegative safe integer.`);
|
|
36
|
+
return value;
|
|
37
|
+
};
|
|
38
|
+
const page = (value, subject, parse) => {
|
|
39
|
+
const connection = object(value, subject);
|
|
40
|
+
const totalCount = count(connection.totalCount, `${subject} count`);
|
|
41
|
+
if (!Array.isArray(connection.nodes) || connection.nodes.length > 100)
|
|
42
|
+
throw new Error(`${subject} has an invalid page.`);
|
|
43
|
+
const nodes = connection.nodes.map(parse);
|
|
44
|
+
const info = object(connection.pageInfo, `${subject} page info`);
|
|
45
|
+
if (typeof info.hasNextPage !== "boolean" || (info.endCursor !== null && typeof info.endCursor !== "string"))
|
|
46
|
+
throw new Error(`${subject} has invalid pagination.`);
|
|
47
|
+
const cursor = info.endCursor === null ? null : text(info.endCursor, `${subject} cursor`);
|
|
48
|
+
if (info.hasNextPage && (cursor === null || nodes.length === 0))
|
|
49
|
+
throw new Error(`${subject} has an incomplete page.`);
|
|
50
|
+
return { totalCount, nodes, cursor: info.hasNextPage ? cursor : null };
|
|
51
|
+
};
|
|
52
|
+
const review = (value) => {
|
|
53
|
+
const data = object(value, "PR review");
|
|
54
|
+
if (typeof data.body !== "string" || data.body.includes("\0"))
|
|
55
|
+
throw new Error("PR review has an invalid body.");
|
|
56
|
+
if (data.state !== "APPROVED" && data.state !== "COMMENTED" && data.state !== "CHANGES_REQUESTED" && data.state !== "DISMISSED" && data.state !== "PENDING")
|
|
57
|
+
throw new Error("PR review has an invalid state.");
|
|
58
|
+
return {
|
|
59
|
+
id: text(data.id, "PR review ID"),
|
|
60
|
+
authorId: data.author === null ? null : text(object(data.author, "PR review author").id, "PR review author ID"),
|
|
61
|
+
headSha: data.commit === null ? null : text(object(data.commit, "PR review commit").oid, "PR review commit SHA"),
|
|
62
|
+
body: data.body, state: data.state,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
const thread = (value) => {
|
|
66
|
+
const data = object(value, "PR review thread");
|
|
67
|
+
if (typeof data.isResolved !== "boolean")
|
|
68
|
+
throw new Error("PR review thread has an invalid resolution flag.");
|
|
69
|
+
const comments = object(data.comments, "PR review thread comments");
|
|
70
|
+
if (count(comments.totalCount, "PR review thread comment count") < 1 || !Array.isArray(comments.nodes) || comments.nodes.length !== 1)
|
|
71
|
+
throw new Error("PR review thread has no complete root comment.");
|
|
72
|
+
const root = object(comments.nodes[0], "PR review thread root comment");
|
|
73
|
+
if (root.replyTo !== null)
|
|
74
|
+
throw new Error("PR review thread first comment is not its root comment.");
|
|
75
|
+
return {
|
|
76
|
+
id: text(data.id, "PR review thread ID"), isResolved: data.isResolved,
|
|
77
|
+
reviewId: root.pullRequestReview === null ? null : text(object(root.pullRequestReview, "PR thread review").id, "PR thread review ID"),
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
export const parsePullRequestReviewSnapshot = (value, repositoryId, number) => {
|
|
81
|
+
const data = object(object(value, "GraphQL response").data, "GraphQL data");
|
|
82
|
+
const repository = object(data.repository, "GitHub repository");
|
|
83
|
+
if (String(count(repository.databaseId, "GitHub repository ID")) !== repositoryId)
|
|
84
|
+
throw new Error("GitHub returned a different repository than requested.");
|
|
85
|
+
const pullRequest = object(repository.pullRequest, "PR");
|
|
86
|
+
if (pullRequest.number !== number)
|
|
87
|
+
throw new Error("GitHub returned a different PR than requested.");
|
|
88
|
+
if (pullRequest.state !== "OPEN" && pullRequest.state !== "CLOSED" && pullRequest.state !== "MERGED")
|
|
89
|
+
throw new Error("PR has an invalid state.");
|
|
90
|
+
if (typeof pullRequest.isDraft !== "boolean")
|
|
91
|
+
throw new Error("PR has an invalid Draft flag.");
|
|
92
|
+
return {
|
|
93
|
+
state: pullRequest.state === "OPEN" ? "open" : pullRequest.state === "CLOSED" ? "closed" : "merged",
|
|
94
|
+
draft: pullRequest.isDraft, headSha: text(pullRequest.headRefOid, "PR head SHA"), baseRef: text(pullRequest.baseRefName, "PR base branch"),
|
|
95
|
+
viewerId: text(object(data.viewer, "GitHub viewer").id, "GitHub viewer ID"),
|
|
96
|
+
reviews: page(pullRequest.reviews, "PR reviews", review), threads: page(pullRequest.reviewThreads, "PR review threads", thread),
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export const reviewSnapshotCollection = (subject) => {
|
|
100
|
+
const nodes = new Map();
|
|
101
|
+
const cursors = new Set();
|
|
102
|
+
let totalCount = null;
|
|
103
|
+
let complete = false;
|
|
104
|
+
let cursor = null;
|
|
105
|
+
let finalPage = null;
|
|
106
|
+
return {
|
|
107
|
+
observe: (page) => {
|
|
108
|
+
if (complete) {
|
|
109
|
+
if (JSON.stringify(page) !== finalPage)
|
|
110
|
+
throw new Error(`${subject} changed after collection.`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (totalCount === null)
|
|
114
|
+
totalCount = page.totalCount;
|
|
115
|
+
else if (totalCount !== page.totalCount)
|
|
116
|
+
throw new Error(`${subject} count changed during pagination.`);
|
|
117
|
+
for (const node of page.nodes) {
|
|
118
|
+
if (nodes.has(node.id))
|
|
119
|
+
throw new Error(`${subject} repeated an ID during pagination.`);
|
|
120
|
+
nodes.set(node.id, node);
|
|
121
|
+
}
|
|
122
|
+
if (nodes.size > totalCount)
|
|
123
|
+
throw new Error(`${subject} returned more entries than its count.`);
|
|
124
|
+
if (page.cursor === null) {
|
|
125
|
+
if (nodes.size !== totalCount)
|
|
126
|
+
throw new Error(`${subject} returned an incomplete collection.`);
|
|
127
|
+
complete = true;
|
|
128
|
+
finalPage = JSON.stringify(page);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
if (nodes.size === totalCount)
|
|
132
|
+
throw new Error(`${subject} has a cursor after its complete collection.`);
|
|
133
|
+
if (cursors.has(page.cursor))
|
|
134
|
+
throw new Error(`${subject} repeated a cursor.`);
|
|
135
|
+
cursors.add(page.cursor);
|
|
136
|
+
cursor = page.cursor;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
complete: () => complete,
|
|
140
|
+
cursor: () => cursor,
|
|
141
|
+
nodes: () => [...nodes.values()],
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=github-review-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-review-state.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/github-review-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RepositoryConfiguration } from "../config.js";
|
|
2
|
-
import type { PullRequestObservation, RepositoryIdentity } from "../model.js";
|
|
2
|
+
import type { PullRequestObservation, PullRequestReviewSnapshot, RepositoryIdentity } from "../model.js";
|
|
3
3
|
export type CommandOptions = {
|
|
4
4
|
timeoutMs: number;
|
|
5
5
|
maxBufferBytes: number;
|
|
@@ -27,6 +27,7 @@ export type GitHubClient = {
|
|
|
27
27
|
listOpenPullRequests: (repository: GitHubRepository, cutoff: number, signal?: AbortSignal) => Promise<PullRequestObservation[]>;
|
|
28
28
|
getPullRequest: (repository: GitHubRepository, number: number, signal?: AbortSignal) => Promise<PullRequestObservation>;
|
|
29
29
|
getPullRequestChecks: (repository: GitHubRepository, number: number, signal?: AbortSignal) => Promise<PullRequestChecks>;
|
|
30
|
+
getPullRequestReviewSnapshot: (repository: GitHubRepository, number: number, signal?: AbortSignal) => Promise<PullRequestReviewSnapshot>;
|
|
30
31
|
};
|
|
31
32
|
export declare class GitHubApiError extends Error {
|
|
32
33
|
readonly status: number | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
+
import { parsePullRequestReviewSnapshot, pullRequestReviewSnapshotQuery, reviewSnapshotCollection } from "./github-review-state.js";
|
|
2
3
|
export class GitHubApiError extends Error {
|
|
3
4
|
status;
|
|
4
5
|
retryAt;
|
|
@@ -481,9 +482,8 @@ export const createGitHubClient = (options = {}) => {
|
|
|
481
482
|
// gh only groups flat variables for the literal "graphql" endpoint, not absolute URLs.
|
|
482
483
|
// https://github.com/cli/cli/blob/fa92838bef95fe4a29c1587693885d5e9bdb6cf1/pkg/cmd/api/http.go#L16-L55
|
|
483
484
|
const variable = (name) => ported ? `variables[${name}]` : name;
|
|
484
|
-
const fields = query === undefined ? [] : ["--raw-field", `query=${
|
|
485
|
-
|
|
486
|
-
...["headCursor", "mergeCursor"].flatMap((key) => [query[key] === null ? "--field" : "--raw-field", `${variable(key)}=${query[key] === null ? "null" : query[key]}`])];
|
|
485
|
+
const fields = query === undefined ? [] : ["--raw-field", `query=${query.document}`,
|
|
486
|
+
...Object.entries(query.variables).flatMap(([key, value]) => [typeof value === "string" ? "--raw-field" : "--field", `${variable(key)}=${value === null ? "null" : value}`])];
|
|
487
487
|
result = await execute("gh", ["api", "--include", "--method", query === undefined ? "GET" : "POST", "--hostname", ported ? origin.hostname : host,
|
|
488
488
|
"--header", "Accept: application/vnd.github+json", "--header", "X-GitHub-Api-Version: 2022-11-28", ...fields, target], { timeoutMs, maxBufferBytes, ...(signal === undefined ? {} : { signal }), ...(authentication.environment === undefined ? {} : { environment: authentication.environment }) });
|
|
489
489
|
}
|
|
@@ -612,7 +612,7 @@ export const createGitHubClient = (options = {}) => {
|
|
|
612
612
|
let first = null;
|
|
613
613
|
let ready = true;
|
|
614
614
|
do {
|
|
615
|
-
const response = await request(repository.host, "graphql", signal, query);
|
|
615
|
+
const response = await request(repository.host, "graphql", signal, { document: pullRequestChecksQuery, variables: query });
|
|
616
616
|
const snapshot = pullRequestChecks(response.body);
|
|
617
617
|
if (first === null)
|
|
618
618
|
first = snapshot;
|
|
@@ -627,6 +627,33 @@ export const createGitHubClient = (options = {}) => {
|
|
|
627
627
|
} while (!head.complete() || (first.mergeSha !== null && !merge.complete()));
|
|
628
628
|
return { headSha: first.headSha, baseRef: first.baseRef, ready: ready && head.ready() && merge.ready() };
|
|
629
629
|
},
|
|
630
|
+
getPullRequestReviewSnapshot: async (repository, number, signal) => {
|
|
631
|
+
positiveInteger(number, "PR number");
|
|
632
|
+
const variables = { owner: repository.owner, name: repository.name, number, reviewCursor: null, threadCursor: null };
|
|
633
|
+
const reviews = reviewSnapshotCollection("PR reviews");
|
|
634
|
+
const threads = reviewSnapshotCollection("PR review threads");
|
|
635
|
+
let first = null;
|
|
636
|
+
let pages = 0;
|
|
637
|
+
let bytes = 0;
|
|
638
|
+
do {
|
|
639
|
+
if (++pages > 1_000)
|
|
640
|
+
throw new Error("PR review snapshot exceeded its pagination limit.");
|
|
641
|
+
const response = await request(repository.host, "graphql", signal, { document: pullRequestReviewSnapshotQuery, variables });
|
|
642
|
+
bytes += Buffer.byteLength(JSON.stringify(response.body), "utf8");
|
|
643
|
+
if (bytes > maxBufferBytes)
|
|
644
|
+
throw new Error("PR review snapshot exceeded its response size limit.");
|
|
645
|
+
const snapshot = parsePullRequestReviewSnapshot(response.body, repository.githubId, number);
|
|
646
|
+
if (first === null)
|
|
647
|
+
first = snapshot;
|
|
648
|
+
else if (snapshot.state !== first.state || snapshot.draft !== first.draft || snapshot.headSha !== first.headSha || snapshot.baseRef !== first.baseRef || snapshot.viewerId !== first.viewerId)
|
|
649
|
+
throw new Error("PR review target or viewer changed during pagination.");
|
|
650
|
+
reviews.observe(snapshot.reviews);
|
|
651
|
+
threads.observe(snapshot.threads);
|
|
652
|
+
variables.reviewCursor = reviews.cursor();
|
|
653
|
+
variables.threadCursor = threads.cursor();
|
|
654
|
+
} while (!reviews.complete() || !threads.complete());
|
|
655
|
+
return { state: first.state, draft: first.draft, headSha: first.headSha, baseRef: first.baseRef, viewerId: first.viewerId, reviews: reviews.nodes(), threads: threads.nodes() };
|
|
656
|
+
},
|
|
630
657
|
};
|
|
631
658
|
};
|
|
632
659
|
//# sourceMappingURL=github.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/commands/review/adapters/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { setImmediate } from "node:timers/promises";
|
|
3
3
|
import { GitCommandError } from "./adapters/worktrees.js";
|
|
4
4
|
import { GitHubApiError } from "./adapters/github.js";
|
|
5
|
+
import { findReviewPublication, findLegacyReviewPublication, hasOpenReviewConversations, hasPendingReviewPublication, findLegacyReviewPublisher } from "./publication.js";
|
|
5
6
|
import { pollRepository } from "./polling.js";
|
|
6
7
|
const key = (identity) => JSON.stringify([identity.host, identity.githubId, identity.number]);
|
|
7
8
|
const target = (pr) => JSON.stringify([pr.desiredRevision, pr.headSha, pr.baseRef]);
|
|
@@ -30,6 +31,7 @@ export const runCoordinator = async (options) => {
|
|
|
30
31
|
const reservations = new Map();
|
|
31
32
|
const blocked = new Set();
|
|
32
33
|
const cleanupRetryAt = new Map();
|
|
34
|
+
const verificationRetryAt = new Map();
|
|
33
35
|
const waiting = new Map();
|
|
34
36
|
const checkAdmissions = new Map();
|
|
35
37
|
const pending = new Set();
|
|
@@ -62,14 +64,64 @@ export const runCoordinator = async (options) => {
|
|
|
62
64
|
pending.add(task);
|
|
63
65
|
};
|
|
64
66
|
const checksRetryAt = (error) => Math.max(now() + configuration.pollIntervalMs, error instanceof GitHubApiError && error.retryAt !== null ? error.retryAt : 0);
|
|
67
|
+
const settlePriorApproval = (pr, snapshot) => {
|
|
68
|
+
if (snapshot.state !== "open" || snapshot.draft || snapshot.headSha !== pr.headSha || snapshot.baseRef !== pr.baseRef)
|
|
69
|
+
return false;
|
|
70
|
+
const approved = store.listReviews(pr).some((review) => {
|
|
71
|
+
if (review.headSha !== pr.headSha || review.baseRef !== pr.baseRef)
|
|
72
|
+
return false;
|
|
73
|
+
const publication = store.getReviewPublication(review.id);
|
|
74
|
+
if (publication?.outcome === "approved") {
|
|
75
|
+
const remote = snapshot.reviews.find((item) => item.id === publication.remoteReviewId && item.authorId === publication.publisherId);
|
|
76
|
+
return remote !== undefined && publication.publisherId !== null &&
|
|
77
|
+
findReviewPublication(review, { ...snapshot, reviews: [remote] }, publication.publisherId, publication.identityFormat)?.outcome === "approved";
|
|
78
|
+
}
|
|
79
|
+
if (publication?.phase !== "legacy")
|
|
80
|
+
return false;
|
|
81
|
+
const historical = findLegacyReviewPublication(review, snapshot);
|
|
82
|
+
if (historical === null)
|
|
83
|
+
return false;
|
|
84
|
+
store.adoptHistoricalApproval(review.id, historical);
|
|
85
|
+
return true;
|
|
86
|
+
});
|
|
87
|
+
return approved && store.settleApprovedTarget(pr, pr.headSha, pr.baseRef, stopped, now());
|
|
88
|
+
};
|
|
89
|
+
const publicationContext = (review, snapshot) => {
|
|
90
|
+
let captured = review === null ? null : store.getReviewPublication(review.id);
|
|
91
|
+
if (review !== null && captured?.identityFormat === "legacy" && captured.publisherId === null) {
|
|
92
|
+
const historicalActor = findLegacyReviewPublisher(review, snapshot);
|
|
93
|
+
if (historicalActor !== null) {
|
|
94
|
+
store.adoptLegacyReviewPublisher(review.id, historicalActor);
|
|
95
|
+
captured = store.getReviewPublication(review.id);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const publisherId = captured === null || captured.publisherId === null ? snapshot.viewerId : captured.publisherId;
|
|
99
|
+
const identityFormat = captured === null ? "line" : captured.identityFormat;
|
|
100
|
+
const hasResult = review !== null && findReviewPublication(review, snapshot, publisherId, identityFormat) !== null;
|
|
101
|
+
const sameRoundRecovery = hasResult || (review !== null && snapshot.viewerId === publisherId &&
|
|
102
|
+
hasPendingReviewPublication(review, snapshot, publisherId, identityFormat));
|
|
103
|
+
return { captured, publisherId, identityFormat, hasResult, sameRoundRecovery };
|
|
104
|
+
};
|
|
65
105
|
const checkCandidate = async (repository, pr, admission) => {
|
|
66
106
|
const prKey = key(pr);
|
|
67
107
|
try {
|
|
68
|
-
const checks = await
|
|
108
|
+
const [checks, snapshot] = await Promise.all([
|
|
109
|
+
client.getPullRequestChecks(repository.local.repository, pr.number, signal),
|
|
110
|
+
client.getPullRequestReviewSnapshot(repository.local.repository, pr.number, signal),
|
|
111
|
+
]);
|
|
69
112
|
const candidate = waiting.get(prKey);
|
|
70
113
|
if (signal.aborted || checkAdmissions.get(prKey) !== admission || candidate === undefined || target(candidate.pullRequest) !== admission.target)
|
|
71
114
|
return;
|
|
72
|
-
|
|
115
|
+
if (settlePriorApproval(pr, snapshot))
|
|
116
|
+
return;
|
|
117
|
+
const { publisherId, hasResult, sameRoundRecovery } = publicationContext(candidate.review, snapshot);
|
|
118
|
+
const actorReady = publisherId === snapshot.viewerId || hasResult;
|
|
119
|
+
if (!actorReady && !admission.reported)
|
|
120
|
+
log({ level: "error", phase: "publisher", repository: repository.configuration.coordinate,
|
|
121
|
+
number: pr.number, revision: pr.desiredRevision, message: "The authenticated account differs from this round's captured publisher; review admission is waiting without consuming an agent attempt." });
|
|
122
|
+
const ready = actorReady && checks.ready && checks.headSha === pr.headSha && checks.baseRef === pr.baseRef &&
|
|
123
|
+
snapshot.state === "open" && !snapshot.draft && snapshot.headSha === pr.headSha && snapshot.baseRef === pr.baseRef &&
|
|
124
|
+
(sameRoundRecovery || !hasOpenReviewConversations(snapshot));
|
|
73
125
|
if (!admission.reported || admission.ready !== ready)
|
|
74
126
|
log({ level: "info", phase: "ci", repository: repository.configuration.coordinate,
|
|
75
127
|
number: pr.number, revision: pr.desiredRevision, message: ready ? "All CI checks passed for the waiting PR target." : "The PR is waiting for all CI checks to finish and pass." });
|
|
@@ -120,7 +172,7 @@ export const runCoordinator = async (options) => {
|
|
|
120
172
|
}
|
|
121
173
|
// Persist uncertainty before requesting the runtime's explicit startup recovery proof.
|
|
122
174
|
for (const review of store.listActiveReviews()) {
|
|
123
|
-
if (review.status === "retry_wait")
|
|
175
|
+
if (review.status === "retry_wait" || store.getReviewPublication(review.id)?.phase === "pending")
|
|
124
176
|
continue;
|
|
125
177
|
const interrupted = store.markInterrupted(review.id, "A previous coordinator stopped before this operation was resolved.", now());
|
|
126
178
|
try {
|
|
@@ -158,6 +210,20 @@ export const runCoordinator = async (options) => {
|
|
|
158
210
|
if (previous === null || previous.startPrNumber === null)
|
|
159
211
|
log({ level: "info", phase: "initialize", repository: repository.configuration.coordinate,
|
|
160
212
|
message: `Permanently excluding PR numbers through ${observed.startPrNumber}.` });
|
|
213
|
+
for (const pr of store.listPullRequests(repository.local.repository)) {
|
|
214
|
+
if (pr.state !== "open" || pr.draft)
|
|
215
|
+
continue;
|
|
216
|
+
const completed = store.listReviews(pr).findLast((review) => review.status === "completed" && isCurrent(review, pr));
|
|
217
|
+
if (completed === undefined)
|
|
218
|
+
continue;
|
|
219
|
+
const publication = store.getReviewPublication(completed.id);
|
|
220
|
+
if (publication === null || publication.followupConsumed || publication.outcome === "approved")
|
|
221
|
+
continue;
|
|
222
|
+
const snapshot = await client.getPullRequestReviewSnapshot(repository.local.repository, pr.number, signal);
|
|
223
|
+
if (snapshot.state !== "open" || snapshot.draft || snapshot.headSha !== pr.headSha || snapshot.baseRef !== pr.baseRef)
|
|
224
|
+
continue;
|
|
225
|
+
store.reconcileCompletedPublication(completed.id, publication.phase === "legacy" ? findLegacyReviewPublication(completed, snapshot) : null, !hasOpenReviewConversations(snapshot), now());
|
|
226
|
+
}
|
|
161
227
|
cancelIneligible();
|
|
162
228
|
repository.nextPollAt = now() + configuration.pollIntervalMs;
|
|
163
229
|
}
|
|
@@ -173,6 +239,36 @@ export const runCoordinator = async (options) => {
|
|
|
173
239
|
message: repository.blocked ? "Repository preparation is blocked and requires intervention." : "Repository polling failed; the previous complete observation remains in effect.", error, retryAt });
|
|
174
240
|
}
|
|
175
241
|
};
|
|
242
|
+
const verifyPublication = async (repository, review) => {
|
|
243
|
+
let snapshot;
|
|
244
|
+
let publication;
|
|
245
|
+
try {
|
|
246
|
+
snapshot = await client.getPullRequestReviewSnapshot(repository.local.repository, review.number, signal);
|
|
247
|
+
const captured = store.getReviewPublication(review.id);
|
|
248
|
+
const publisherId = captured.publisherId;
|
|
249
|
+
publication = findReviewPublication(review, snapshot, publisherId, captured.identityFormat);
|
|
250
|
+
if (publication === null && snapshot.viewerId !== publisherId)
|
|
251
|
+
throw new Error("The authenticated account changed before the captured publisher's review publication could be confirmed.");
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
const retryAt = checksRetryAt(error);
|
|
255
|
+
verificationRetryAt.set(review.id, retryAt);
|
|
256
|
+
store.recordPublicationError(review.id, message(error), now());
|
|
257
|
+
report(review, "publication", "Remote publication verification failed; retrying this read without another agent attempt.", error, retryAt);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
verificationRetryAt.delete(review.id);
|
|
261
|
+
if (publication === null) {
|
|
262
|
+
store.rejectPublicationVerification(review.id);
|
|
263
|
+
const time = now();
|
|
264
|
+
const ended = store.retryReview({ reviewId: review.id, attempt: review.attemptCount }, excluded, { error: "The completed agent did not publish an authenticated approval or resolvable review conversation for the captured review identity.", retryAt: time + retryDelay(configuration, review.attemptCount) }, time);
|
|
265
|
+
report(ended, ended.status, "The completion marker had no valid remote publication; the captured round remains incomplete.");
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const completed = store.confirmReviewPublication({ reviewId: review.id, attempt: review.attemptCount }, publication, excluded, now());
|
|
269
|
+
store.reconcileCompletedPublication(completed.id, null, !hasOpenReviewConversations(snapshot), now());
|
|
270
|
+
report(completed, "completed", "The exact completion marker and authenticated remote review publication were confirmed after all managed processes stopped.");
|
|
271
|
+
};
|
|
176
272
|
const endAttempt = async (review, outcome, error, aborted) => {
|
|
177
273
|
let proof;
|
|
178
274
|
try {
|
|
@@ -184,8 +280,9 @@ export const runCoordinator = async (options) => {
|
|
|
184
280
|
}
|
|
185
281
|
const time = now();
|
|
186
282
|
if (outcome?.completed === true && !aborted) {
|
|
187
|
-
|
|
188
|
-
|
|
283
|
+
store.beginPublicationVerification(outcome.attempt, proof, time);
|
|
284
|
+
const repository = localRepositories.get(repositoryKey(review));
|
|
285
|
+
await verifyPublication(repository, store.getReview(review.id));
|
|
189
286
|
return;
|
|
190
287
|
}
|
|
191
288
|
const reason = error === undefined ? new Error(`Copilot review did not complete: exit=${outcome?.exitCode}, signal=${outcome?.signal}, interruption=${outcome?.interruption}; ${outcome?.errors.map(message).join("; ")}`) : error;
|
|
@@ -240,8 +337,26 @@ export const runCoordinator = async (options) => {
|
|
|
240
337
|
report(deferred, "ci", "The PR is waiting for passing CI checks before agent launch; no agent attempt was consumed.", undefined, deferred.retryAt === null ? undefined : deferred.retryAt);
|
|
241
338
|
return;
|
|
242
339
|
}
|
|
340
|
+
const snapshot = await client.getPullRequestReviewSnapshot(local.repository, review.number, reservation.controller.signal);
|
|
341
|
+
if (settlePriorApproval(store.getPullRequest(review), snapshot))
|
|
342
|
+
return;
|
|
343
|
+
const { captured, publisherId, identityFormat, hasResult, sameRoundRecovery } = publicationContext(review, snapshot);
|
|
344
|
+
if (snapshot.viewerId !== publisherId && !hasResult) {
|
|
345
|
+
const time = now();
|
|
346
|
+
const deferred = store.deferPreparation(review.id, stopped, { error: "The authenticated account differs from this round's captured publisher and no submitted result can be confirmed read-only.", retryAt: checksRetryAt() }, time);
|
|
347
|
+
report(deferred, "publisher", "Waiting for the captured publishing account without consuming an agent attempt.");
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
if (snapshot.state !== "open" || snapshot.draft || snapshot.headSha !== review.headSha || snapshot.baseRef !== review.baseRef ||
|
|
351
|
+
(!sameRoundRecovery && hasOpenReviewConversations(snapshot))) {
|
|
352
|
+
const time = now();
|
|
353
|
+
store.deferPreparation(review.id, stopped, { error: "The PR is waiting for its eligible target and resolved review conversations.", retryAt: checksRetryAt() }, time);
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (captured === null || captured.publisherId === null)
|
|
357
|
+
store.captureReviewPublisher(review.id, publisherId);
|
|
243
358
|
const previous = store.listReviews(review).filter((item) => item.id !== review.id && item.status !== "completed").at(-1);
|
|
244
|
-
const input = { signal: reservation.controller.signal, onProcess: processes.onProcess, stopProcess: processes.stop, excludeProcess: processes.exclude,
|
|
359
|
+
const input = { publisherId, publicationIdentityFormat: identityFormat, signal: reservation.controller.signal, onProcess: processes.onProcess, stopProcess: processes.stop, excludeProcess: processes.exclude,
|
|
245
360
|
...(previous === undefined ? {} : { previousReview: previous }) };
|
|
246
361
|
report(review, "launch", "Launching the PR's persisted Copilot session.");
|
|
247
362
|
const outcome = await runner.run(store, review.id, worktree, input);
|
|
@@ -314,6 +429,17 @@ export const runCoordinator = async (options) => {
|
|
|
314
429
|
reservations.set(prKey, reservation);
|
|
315
430
|
track(() => cleanup(repository, pr, reservation), () => { reservations.delete(prKey); });
|
|
316
431
|
}
|
|
432
|
+
for (const review of store.listActiveReviews()) {
|
|
433
|
+
if (store.getReviewPublication(review.id)?.phase !== "pending")
|
|
434
|
+
continue;
|
|
435
|
+
const prKey = key(review);
|
|
436
|
+
const repository = localRepositories.get(repositoryKey(review));
|
|
437
|
+
if (repository === undefined || repository.blocked || reservations.has(prKey) || blocked.has(prKey) || (verificationRetryAt.get(review.id) ?? 0) > time)
|
|
438
|
+
continue;
|
|
439
|
+
const reservation = { kind: "verification", controller: new AbortController(), reviewId: review.id };
|
|
440
|
+
reservations.set(prKey, reservation);
|
|
441
|
+
track(() => verifyPublication(repository, review), () => { reservations.delete(prKey); });
|
|
442
|
+
}
|
|
317
443
|
const eligible = new Set();
|
|
318
444
|
for (const candidate of store.listCandidates(time)) {
|
|
319
445
|
const pr = candidate.pullRequest;
|
|
@@ -359,7 +485,8 @@ export const runCoordinator = async (options) => {
|
|
|
359
485
|
report(review, "reserved", "Reserved this PR across worktree preparation and agent execution.");
|
|
360
486
|
track(() => reviewPullRequest(repository, review, reservation), () => { reservations.delete(prKey); workers--; });
|
|
361
487
|
}
|
|
362
|
-
const deadlines =
|
|
488
|
+
const deadlines = [...verificationRetryAt.values()].filter((deadline) => deadline > now());
|
|
489
|
+
deadlines.push(...repositories.filter((repository) => !repository.polling && !repository.blocked).map((repository) => repository.nextPollAt));
|
|
363
490
|
if (workers < configuration.maxConcurrentWorker)
|
|
364
491
|
for (const review of store.listActiveReviews()) {
|
|
365
492
|
if (review.status === "retry_wait" && review.retryAt !== null && review.retryAt > now() && !blocked.has(key(review)))
|