@agent-native/recap-cli 0.4.7 → 0.5.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/recap.d.ts +10 -1
- package/dist/recap.d.ts.map +1 -1
- package/dist/recap.js +91 -31
- package/dist/recap.js.map +1 -1
- package/dist/workflows/pr-visual-recap.yml +19 -3
- package/package.json +1 -1
package/dist/recap.d.ts
CHANGED
|
@@ -66,7 +66,8 @@ export declare function writePrVisualRecapWorkflow(baseDir: string, options?: {
|
|
|
66
66
|
*
|
|
67
67
|
* Callers must trigger on the same `pull_request` event types so that
|
|
68
68
|
* `github.event.pull_request.*` expressions in the reusable workflow resolve
|
|
69
|
-
* correctly (workflow_call inherits the caller's event context).
|
|
69
|
+
* correctly (workflow_call inherits the caller's event context). The `labeled`
|
|
70
|
+
* event lets required-label configurations run as soon as a maintainer opts in.
|
|
70
71
|
*
|
|
71
72
|
* @param options.cliVersion Semver or tag to pin (default "main" / latest).
|
|
72
73
|
* @param options.ref Git ref to pin the reusable workflow to (default "@main").
|
|
@@ -77,6 +78,7 @@ export declare function buildReusableCallerWorkflow(options?: {
|
|
|
77
78
|
model?: string;
|
|
78
79
|
runsOn?: string;
|
|
79
80
|
gateRunsOn?: string;
|
|
81
|
+
requiredLabels?: string;
|
|
80
82
|
}): string;
|
|
81
83
|
/** Write the thin caller workflow that references the reusable workflow. */
|
|
82
84
|
export declare function writePrVisualRecapReusableCallerWorkflow(baseDir: string, options?: {
|
|
@@ -86,6 +88,7 @@ export declare function writePrVisualRecapReusableCallerWorkflow(baseDir: string
|
|
|
86
88
|
model?: string;
|
|
87
89
|
runsOn?: string;
|
|
88
90
|
gateRunsOn?: string;
|
|
91
|
+
requiredLabels?: string;
|
|
89
92
|
}): WriteWorkflowResult;
|
|
90
93
|
type RecapAgentValue = "claude" | "codex" | "openai-compatible";
|
|
91
94
|
export type RecapAgent = "claude" | "codex" | "openai-compatible";
|
|
@@ -137,6 +140,7 @@ export declare function buildRecapSetupPlan(input: {
|
|
|
137
140
|
repo?: string;
|
|
138
141
|
runsOn?: string;
|
|
139
142
|
gateRunsOn?: string;
|
|
143
|
+
requiredLabels?: string;
|
|
140
144
|
env?: NodeJS.ProcessEnv;
|
|
141
145
|
}): RecapSetupPlan;
|
|
142
146
|
export type RecapSecretScanMode = "off" | "high-confidence" | "strict";
|
|
@@ -432,6 +436,9 @@ export interface RecapGatePullRequest {
|
|
|
432
436
|
login?: string | null;
|
|
433
437
|
type?: string | null;
|
|
434
438
|
} | null;
|
|
439
|
+
labels?: Array<string | {
|
|
440
|
+
name?: string | null;
|
|
441
|
+
} | null> | null;
|
|
435
442
|
}
|
|
436
443
|
export interface RecapGateInput {
|
|
437
444
|
/** The `pull_request` payload object, or null when absent. */
|
|
@@ -456,6 +463,8 @@ export interface RecapGateInput {
|
|
|
456
463
|
baseUrl?: string;
|
|
457
464
|
/** Raw VISUAL_RECAP_SKILL_SOURCE value (auto/latest/repo; may be undefined). */
|
|
458
465
|
skillSource: string | undefined;
|
|
466
|
+
/** Comma-separated PR labels required before the recap runs. */
|
|
467
|
+
requiredLabels?: string;
|
|
459
468
|
/** Filenames changed by the PR (for the self-modifying guard). */
|
|
460
469
|
changedFiles: string[];
|
|
461
470
|
}
|
package/dist/recap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../src/recap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../src/recap.ts"],"names":[],"mappings":"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"}
|
package/dist/recap.js
CHANGED
|
@@ -89,6 +89,7 @@ export const PR_VISUAL_RECAP_SETUP = [
|
|
|
89
89
|
" VISUAL_RECAP_REASONING (variable) — reasoning depth (none|minimal|low|medium|high|xhigh; Codex only)",
|
|
90
90
|
' VISUAL_RECAP_RUNS_ON (variable) — JSON hosted label or self-hosted label array; defaults to "ubuntu-latest"',
|
|
91
91
|
" VISUAL_RECAP_GATE_RUNS_ON (variable) — trusted same-repo authors only; plain single gate label; defaults to ubuntu-latest",
|
|
92
|
+
" VISUAL_RECAP_REQUIRED_LABELS (variable) — comma-separated PR labels; when set, recaps run only when the PR has at least one listed label",
|
|
92
93
|
" VISUAL_RECAP_SKILL_SOURCE=repo (variable) — pin CI to the repo-local visual-recap skill instead of latest bundled guidance",
|
|
93
94
|
" VISUAL_RECAP_SECRET_SCAN=off|high-confidence|strict (variable) — default high-confidence; strict restores generic TOKEN/SECRET assignment suppression",
|
|
94
95
|
" PLAN_RECAP_APP_URL (secret) — only when self-hosting the plan app (defaults to https://plan.agent-native.com)",
|
|
@@ -127,7 +128,8 @@ export function writePrVisualRecapWorkflow(baseDir, options = {}) {
|
|
|
127
128
|
*
|
|
128
129
|
* Callers must trigger on the same `pull_request` event types so that
|
|
129
130
|
* `github.event.pull_request.*` expressions in the reusable workflow resolve
|
|
130
|
-
* correctly (workflow_call inherits the caller's event context).
|
|
131
|
+
* correctly (workflow_call inherits the caller's event context). The `labeled`
|
|
132
|
+
* event lets required-label configurations run as soon as a maintainer opts in.
|
|
131
133
|
*
|
|
132
134
|
* @param options.cliVersion Semver or tag to pin (default "main" / latest).
|
|
133
135
|
* @param options.ref Git ref to pin the reusable workflow to (default "@main").
|
|
@@ -142,6 +144,14 @@ export function buildReusableCallerWorkflow(options = {}) {
|
|
|
142
144
|
const gateRunsOnValue = options.gateRunsOn === undefined
|
|
143
145
|
? "${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}"
|
|
144
146
|
: JSON.stringify(options.gateRunsOn);
|
|
147
|
+
const requiredLabelsValue = options.requiredLabels === undefined
|
|
148
|
+
? "${{ vars.VISUAL_RECAP_REQUIRED_LABELS || '' }}"
|
|
149
|
+
: JSON.stringify(options.requiredLabels);
|
|
150
|
+
const labeledEventEnabled = options.requiredLabels === undefined
|
|
151
|
+
? "vars.VISUAL_RECAP_REQUIRED_LABELS != ''"
|
|
152
|
+
: options.requiredLabels.trim()
|
|
153
|
+
? "true"
|
|
154
|
+
: "false";
|
|
145
155
|
return (`name: PR Visual Recap\n` +
|
|
146
156
|
`\n` +
|
|
147
157
|
`# Thin caller — the full workflow logic lives in BuilderIO/agent-native.\n` +
|
|
@@ -151,10 +161,11 @@ export function buildReusableCallerWorkflow(options = {}) {
|
|
|
151
161
|
`\n` +
|
|
152
162
|
`on:\n` +
|
|
153
163
|
` pull_request:\n` +
|
|
154
|
-
` types: [opened, synchronize, reopened, ready_for_review, closed]\n` +
|
|
164
|
+
` types: [opened, synchronize, reopened, ready_for_review, labeled, closed]\n` +
|
|
155
165
|
`\n` +
|
|
156
166
|
`jobs:\n` +
|
|
157
167
|
` visual-recap:\n` +
|
|
168
|
+
` if: github.event.action != 'labeled' || ${labeledEventEnabled}\n` +
|
|
158
169
|
` permissions:\n` +
|
|
159
170
|
` actions: write\n` +
|
|
160
171
|
` contents: read\n` +
|
|
@@ -179,6 +190,7 @@ export function buildReusableCallerWorkflow(options = {}) {
|
|
|
179
190
|
` core-cli-version: \${{ vars.CORE_CLI_VERSION || 'latest' }}\n` +
|
|
180
191
|
` runs-on: ${runsOnValue}\n` +
|
|
181
192
|
` gate-runs-on: ${gateRunsOnValue}\n` +
|
|
193
|
+
` required-labels: ${requiredLabelsValue}\n` +
|
|
182
194
|
` # Pin recap-cli and core-cli independently when using the openai-compatible backend.\n` +
|
|
183
195
|
``);
|
|
184
196
|
}
|
|
@@ -196,6 +208,7 @@ export function writePrVisualRecapReusableCallerWorkflow(baseDir, options = {})
|
|
|
196
208
|
model: options.model,
|
|
197
209
|
runsOn: options.runsOn,
|
|
198
210
|
gateRunsOn: options.gateRunsOn,
|
|
211
|
+
requiredLabels: options.requiredLabels,
|
|
199
212
|
});
|
|
200
213
|
if (fs.existsSync(file)) {
|
|
201
214
|
const current = fs.readFileSync(file, "utf8");
|
|
@@ -592,6 +605,7 @@ export function buildRecapSetupPlan(input) {
|
|
|
592
605
|
"VISUAL_RECAP_MODEL",
|
|
593
606
|
"VISUAL_RECAP_REASONING",
|
|
594
607
|
"VISUAL_RECAP_SKILL_SOURCE",
|
|
608
|
+
"VISUAL_RECAP_REQUIRED_LABELS",
|
|
595
609
|
]) {
|
|
596
610
|
const value = envValue(env, key);
|
|
597
611
|
if (value)
|
|
@@ -625,6 +639,9 @@ export function buildRecapSetupPlan(input) {
|
|
|
625
639
|
variableValues.VISUAL_RECAP_GATE_RUNS_ON =
|
|
626
640
|
parseRecapGateRunsOn(gateRunsOn);
|
|
627
641
|
}
|
|
642
|
+
const requiredLabels = input.requiredLabels ?? envValue(env, "VISUAL_RECAP_REQUIRED_LABELS");
|
|
643
|
+
if (requiredLabels)
|
|
644
|
+
variableValues.VISUAL_RECAP_REQUIRED_LABELS = requiredLabels;
|
|
628
645
|
return {
|
|
629
646
|
agent,
|
|
630
647
|
appUrl,
|
|
@@ -660,6 +677,7 @@ function runSetup(args) {
|
|
|
660
677
|
repo,
|
|
661
678
|
runsOn: optionalArg(args, "runs-on"),
|
|
662
679
|
gateRunsOn: optionalArg(args, "gate-runs-on"),
|
|
680
|
+
requiredLabels: optionalArg(args, "required-labels"),
|
|
663
681
|
});
|
|
664
682
|
const runnerProblem = plan.variableProblems.find((problem) => problem.requirement.name === "VISUAL_RECAP_RUNS_ON" ||
|
|
665
683
|
problem.requirement.name === "VISUAL_RECAP_GATE_RUNS_ON");
|
|
@@ -687,6 +705,7 @@ function runSetup(args) {
|
|
|
687
705
|
agent: plan.agent !== "claude" ? plan.agent : undefined,
|
|
688
706
|
runsOn: plan.variableValues.VISUAL_RECAP_RUNS_ON,
|
|
689
707
|
gateRunsOn: plan.variableValues.VISUAL_RECAP_GATE_RUNS_ON,
|
|
708
|
+
requiredLabels: plan.variableValues.VISUAL_RECAP_REQUIRED_LABELS,
|
|
690
709
|
});
|
|
691
710
|
if (result.status === "refused") {
|
|
692
711
|
process.stderr.write(`recap setup: ${result.message}\n`);
|
|
@@ -1953,7 +1972,7 @@ export function buildCommentBody(env = process.env) {
|
|
|
1953
1972
|
// they likewise cannot inject markdown or HTML.
|
|
1954
1973
|
const lightImageUrl = trustedRecapImageUrl(env.RECAP_LIGHT_IMAGE_URL || env.RECAP_IMAGE_URL, base);
|
|
1955
1974
|
const darkImageUrl = trustedRecapImageUrl(env.RECAP_DARK_IMAGE_URL, base);
|
|
1956
|
-
const fallbackImageUrl = lightImageUrl || darkImageUrl;
|
|
1975
|
+
const fallbackImageUrl = env.RECAP_SHOT_OK === "false" ? undefined : lightImageUrl || darkImageUrl;
|
|
1957
1976
|
if (!fallbackImageUrl) {
|
|
1958
1977
|
const diagnostic = sanitizeAgentFailureSummary((env.RECAP_SHOT_REASON || "").trim(), 500) ||
|
|
1959
1978
|
(env.RECAP_SHOT_OK === "true"
|
|
@@ -2664,6 +2683,8 @@ const RECAP_SHOT_VIEWPORT = {
|
|
|
2664
2683
|
const RECAP_SHOT_DEVICE_SCALE_FACTOR = 2;
|
|
2665
2684
|
const RECAP_DOCUMENT_SELECTOR = "[data-plan-document]";
|
|
2666
2685
|
const RECAP_DOCUMENT_WAIT_TIMEOUT = 30_000;
|
|
2686
|
+
const RECAP_DOCUMENT_LOAD_ATTEMPTS = 2;
|
|
2687
|
+
const RECAP_SHOT_HARD_TIMEOUT = RECAP_DOCUMENT_WAIT_TIMEOUT * RECAP_DOCUMENT_LOAD_ATTEMPTS + 30_000;
|
|
2667
2688
|
/**
|
|
2668
2689
|
* Identity shim for esbuild's `__name` helper, injected into the browser before
|
|
2669
2690
|
* any screenshot init script or `page.evaluate` payload.
|
|
@@ -2699,6 +2720,11 @@ function shouldTrySystemChromeFallback(err) {
|
|
|
2699
2720
|
const message = err instanceof Error ? err.message : String(err);
|
|
2700
2721
|
return /Executable doesn't exist|playwright install|browser.*not found|chromium.*not found/i.test(message);
|
|
2701
2722
|
}
|
|
2723
|
+
function shouldRetryRecapDocumentLoad(err) {
|
|
2724
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
2725
|
+
return (/waitForSelector:\s*Timeout/i.test(message) &&
|
|
2726
|
+
message.includes(RECAP_DOCUMENT_SELECTOR));
|
|
2727
|
+
}
|
|
2702
2728
|
export async function launchRecapChromium(chromium) {
|
|
2703
2729
|
const launchOptions = { args: ["--no-sandbox"] };
|
|
2704
2730
|
try {
|
|
@@ -2801,9 +2827,9 @@ importPlaywright = defaultImportPlaywright) {
|
|
|
2801
2827
|
let reason = "";
|
|
2802
2828
|
let browser;
|
|
2803
2829
|
const hardTimer = setTimeout(() => {
|
|
2804
|
-
done({ ok: false, reason: "hard
|
|
2830
|
+
done({ ok: false, reason: "hard 90s timeout reached" });
|
|
2805
2831
|
process.exit(0);
|
|
2806
|
-
},
|
|
2832
|
+
}, RECAP_SHOT_HARD_TIMEOUT);
|
|
2807
2833
|
try {
|
|
2808
2834
|
browser = await launchRecapChromium(chromium);
|
|
2809
2835
|
const context = await browser.newContext({
|
|
@@ -2859,31 +2885,43 @@ importPlaywright = defaultImportPlaywright) {
|
|
|
2859
2885
|
});
|
|
2860
2886
|
}
|
|
2861
2887
|
const page = await context.newPage();
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2888
|
+
for (let attempt = 1; attempt <= RECAP_DOCUMENT_LOAD_ATTEMPTS; attempt += 1) {
|
|
2889
|
+
try {
|
|
2890
|
+
const navigationResponse = await page.goto(captureUrl, {
|
|
2891
|
+
waitUntil: "domcontentloaded",
|
|
2892
|
+
timeout: 45_000,
|
|
2893
|
+
});
|
|
2894
|
+
if (!navigationResponse) {
|
|
2895
|
+
throw new Error("recap page did not return an HTTP response");
|
|
2896
|
+
}
|
|
2897
|
+
if (!navigationResponse.ok()) {
|
|
2898
|
+
throw new Error(`recap page returned HTTP ${navigationResponse.status()} while loading ${navigationResponse.url()}`);
|
|
2899
|
+
}
|
|
2900
|
+
const contentType = navigationResponse.headers()["content-type"] ?? "";
|
|
2901
|
+
if (contentType && !/\btext\/html\b/i.test(contentType)) {
|
|
2902
|
+
throw new Error(`recap page returned unexpected content type ${contentType} while loading ${navigationResponse.url()}`);
|
|
2903
|
+
}
|
|
2904
|
+
await page.waitForLoadState("load", { timeout: 15_000 }).catch(() => {
|
|
2905
|
+
// The selectors below are the real readiness signal for screenshots.
|
|
2906
|
+
// Some recap pages keep long-lived/background requests open.
|
|
2907
|
+
});
|
|
2908
|
+
// The app shell renders <main> and the loading skeleton before the plan
|
|
2909
|
+
// query resolves. Waiting for the actual document root prevents a
|
|
2910
|
+
// successful-looking screenshot from capturing that transient skeleton.
|
|
2911
|
+
await page.waitForSelector(RECAP_DOCUMENT_SELECTOR, {
|
|
2912
|
+
timeout: RECAP_DOCUMENT_WAIT_TIMEOUT,
|
|
2913
|
+
state: "visible",
|
|
2914
|
+
});
|
|
2915
|
+
break;
|
|
2916
|
+
}
|
|
2917
|
+
catch (err) {
|
|
2918
|
+
if (attempt === RECAP_DOCUMENT_LOAD_ATTEMPTS ||
|
|
2919
|
+
!shouldRetryRecapDocumentLoad(err)) {
|
|
2920
|
+
throw err;
|
|
2921
|
+
}
|
|
2922
|
+
process.stderr.write(`[recap shot] recap document did not become ready; retrying once\n`);
|
|
2923
|
+
}
|
|
2875
2924
|
}
|
|
2876
|
-
await page.waitForLoadState("load", { timeout: 15_000 }).catch(() => {
|
|
2877
|
-
// The selectors below are the real readiness signal for screenshots.
|
|
2878
|
-
// Some recap pages keep long-lived/background requests open.
|
|
2879
|
-
});
|
|
2880
|
-
// The app shell renders <main> and the loading skeleton before the plan
|
|
2881
|
-
// query resolves. Waiting for the actual document root prevents a
|
|
2882
|
-
// successful-looking screenshot from capturing that transient skeleton.
|
|
2883
|
-
await page.waitForSelector(RECAP_DOCUMENT_SELECTOR, {
|
|
2884
|
-
timeout: RECAP_DOCUMENT_WAIT_TIMEOUT,
|
|
2885
|
-
state: "visible",
|
|
2886
|
-
});
|
|
2887
2925
|
await page.waitForTimeout(1_200);
|
|
2888
2926
|
await page.evaluate((background) => {
|
|
2889
2927
|
document.documentElement.style.zoom = "100%";
|
|
@@ -3073,6 +3111,18 @@ function normalizeRecapSkillSourceMode(value) {
|
|
|
3073
3111
|
function isRepoPinnedRecapSkillSource(value) {
|
|
3074
3112
|
return normalizeRecapSkillSourceMode(value) === "repo";
|
|
3075
3113
|
}
|
|
3114
|
+
function parseRequiredRecapLabels(value) {
|
|
3115
|
+
return (value || "")
|
|
3116
|
+
.split(",")
|
|
3117
|
+
.map((label) => label.trim().toLowerCase())
|
|
3118
|
+
.filter(Boolean);
|
|
3119
|
+
}
|
|
3120
|
+
function pullRequestLabelNames(pr) {
|
|
3121
|
+
return new Set((Array.isArray(pr.labels) ? pr.labels : [])
|
|
3122
|
+
.map((label) => (typeof label === "string" ? label : label && label.name))
|
|
3123
|
+
.filter((label) => Boolean(label))
|
|
3124
|
+
.map((label) => label.toLowerCase()));
|
|
3125
|
+
}
|
|
3076
3126
|
export function isRecapSensitivePath(p, options = {}) {
|
|
3077
3127
|
const skillSource = options.skillSource;
|
|
3078
3128
|
if (p.startsWith(".claude/") ||
|
|
@@ -3101,6 +3151,13 @@ export function evaluateRecapGate(input) {
|
|
|
3101
3151
|
reasons.push("no pull_request payload");
|
|
3102
3152
|
if (pr && pr.draft)
|
|
3103
3153
|
reasons.push("draft PR");
|
|
3154
|
+
const requiredLabels = parseRequiredRecapLabels(input.requiredLabels);
|
|
3155
|
+
if (pr && requiredLabels.length > 0) {
|
|
3156
|
+
const prLabels = pullRequestLabelNames(pr);
|
|
3157
|
+
if (!requiredLabels.some((label) => prLabels.has(label))) {
|
|
3158
|
+
reasons.push(`missing required recap label (${requiredLabels.join(", ")})`);
|
|
3159
|
+
}
|
|
3160
|
+
}
|
|
3104
3161
|
// Fork PRs only receive repo secrets when the org/repo opts into GitHub's
|
|
3105
3162
|
// "Send secrets to workflows from pull requests" setting (common in private
|
|
3106
3163
|
// orgs that use forks heavily). The real gate is therefore secret
|
|
@@ -3285,6 +3342,7 @@ async function runGate() {
|
|
|
3285
3342
|
model: process.env.VISUAL_RECAP_MODEL,
|
|
3286
3343
|
baseUrl: process.env.VISUAL_RECAP_BASE_URL,
|
|
3287
3344
|
skillSource: process.env.VISUAL_RECAP_SKILL_SOURCE,
|
|
3345
|
+
requiredLabels: process.env.VISUAL_RECAP_REQUIRED_LABELS,
|
|
3288
3346
|
changedFiles,
|
|
3289
3347
|
});
|
|
3290
3348
|
// If listing PR files failed, append the same fail-closed reason the inline
|
|
@@ -3902,7 +3960,7 @@ function runAgentSummary(args) {
|
|
|
3902
3960
|
const HELP = `npx @agent-native/recap-cli@latest recap — PR visual recap helpers (used by the GitHub Action)
|
|
3903
3961
|
|
|
3904
3962
|
Usage:
|
|
3905
|
-
npx @agent-native/recap-cli@latest recap setup [--repo owner/name] [--agent claude|codex|openai-compatible] [--app-url <url>] [--runs-on <json>] [--gate-runs-on <label>] [--skip-secrets] [--dry-run] [--force]
|
|
3963
|
+
npx @agent-native/recap-cli@latest recap setup [--repo owner/name] [--agent claude|codex|openai-compatible] [--app-url <url>] [--runs-on <json>] [--gate-runs-on <label>] [--required-labels <labels>] [--skip-secrets] [--dry-run] [--force]
|
|
3906
3964
|
npx @agent-native/recap-cli@latest recap doctor [--repo owner/name] [--agent claude|codex|openai-compatible] [--app-url <url>]
|
|
3907
3965
|
npx @agent-native/recap-cli@latest recap collect-diff --base <baseSha> --head <headSha> [--out recap.diff] [--stat recap.stat]
|
|
3908
3966
|
npx @agent-native/recap-cli@latest recap block-reference [--app-url <url>] [--out recap-blocks.md]
|
|
@@ -3965,7 +4023,9 @@ Usage:
|
|
|
3965
4023
|
MEMBER, or COLLABORATOR authors. The stock gate does not check out the PR
|
|
3966
4024
|
tree; it evaluates workflow logic and PR metadata. Fork and untrusted PRs
|
|
3967
4025
|
use GitHub-hosted ubuntu-latest instead, so they may remain unscheduled when
|
|
3968
|
-
a repository disables GitHub-hosted runners.
|
|
4026
|
+
a repository disables GitHub-hosted runners. Pass
|
|
4027
|
+
--required-labels "visual recap" to run recaps only after a PR has a listed
|
|
4028
|
+
label; comma-separated labels are OR-matched.
|
|
3969
4029
|
npx @agent-native/recap-cli@latest recap doctor
|
|
3970
4030
|
Check workflow presence/drift, local Plans publish-token availability, gh
|
|
3971
4031
|
repo access, and required GitHub Actions secrets and variables for the
|