jonah-fleet 1.31.5 → 1.31.6
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/CHANGELOG.md +17 -6
- package/dist/index.js +212 -25
- package/dist/lib/daemon.d.ts +73 -11
- package/dist/lib/daemon.d.ts.map +1 -1
- package/dist/lib/presets.d.ts.map +1 -1
- package/dist/lib/runner.d.ts +8 -1
- package/dist/lib/runner.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,23 @@ All notable changes to `jonah-fleet` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.31.6](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.5...v1.31.6) (2026-10-03)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **daemon:** persist evaluated PR review state and filter out already-reviewed commits ([#601](https://github.com/Jonah-Projects/jonah-fleet/issues/601)) ([37d6b01](https://github.com/Jonah-Projects/jonah-fleet/commit/37d6b01f48d9105be15e7da94414208d8b80b20e))
|
|
14
|
+
|
|
15
|
+
## [Unreleased] - 2026-10-03
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **runner,daemon:** scope skill discovery by routine to eliminate context bloat, add fast-path merge mode for approved PRs with green CI, and calibrate `peer-review` and `optimizer` to `gemini-3.8-flash-medium`
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **daemon:** persist evaluated PR review states and failure cooldowns across watchdog cycles in `daemon.json` and filter out already-reviewed commits in `filterReviewablePRs` to prevent repetitive re-review loops
|
|
24
|
+
|
|
8
25
|
## [1.31.5](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.4...v1.31.5) (2026-10-02)
|
|
9
26
|
|
|
10
27
|
|
|
@@ -33,12 +50,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
33
50
|
|
|
34
51
|
* **runner,daemon:** add startup transient 503 retry and exempt from PR failure cooldown ([#575](https://github.com/Jonah-Projects/jonah-fleet/issues/575)) ([c6f37eb](https://github.com/Jonah-Projects/jonah-fleet/commit/c6f37ebd4bc7072f267c77c42eba255aa71b2d78))
|
|
35
52
|
|
|
36
|
-
## [Unreleased] - 2026-10-02
|
|
37
|
-
|
|
38
|
-
### Bug Fixes
|
|
39
|
-
|
|
40
|
-
* **daemon,terminal-card:** classify upstream ecosystem radar digests and `needs-attention` issues as human/maintainer-gated in backlog preflight triage, preventing repetitive autowork scan looping on informational digests
|
|
41
|
-
|
|
42
53
|
## [1.31.1](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.0...v1.31.1) (2026-10-01)
|
|
43
54
|
|
|
44
55
|
|
package/dist/index.js
CHANGED
|
@@ -15,8 +15,20 @@ import path2 from "path";
|
|
|
15
15
|
import fs from "fs";
|
|
16
16
|
import path from "path";
|
|
17
17
|
import { fileURLToPath } from "url";
|
|
18
|
+
var DEFAULT_ROUTINE_MODELS = {
|
|
19
|
+
autowork: "gemini-3.8-flash-high",
|
|
20
|
+
"peer-review": "gemini-3.8-flash-medium",
|
|
21
|
+
optimizer: "gemini-3.8-flash-medium",
|
|
22
|
+
"issues-housekeeping": "gemini-3.8-flash-medium",
|
|
23
|
+
"dependency-update-security-check": "gemini-3.8-flash-medium",
|
|
24
|
+
"product-planning": "gemini-3.8-flash-high",
|
|
25
|
+
"analytics-review": "gemini-3.8-flash-medium",
|
|
26
|
+
"design-review": "gemini-3.8-flash-high"
|
|
27
|
+
};
|
|
18
28
|
var DEFAULT_MODELS_CONFIG = {
|
|
19
29
|
default: "gemini-3.8-flash-high",
|
|
30
|
+
"peer-review": "gemini-3.8-flash-medium",
|
|
31
|
+
optimizer: "gemini-3.8-flash-medium",
|
|
20
32
|
"issues-housekeeping": "gemini-3.8-flash-medium",
|
|
21
33
|
"dependency-update-security-check": "gemini-3.8-flash-medium",
|
|
22
34
|
"analytics-review": "gemini-3.8-flash-medium"
|
|
@@ -4500,14 +4512,23 @@ function buildAgyArgs(prompt, model, printTimeout) {
|
|
|
4500
4512
|
"--dangerously-skip-permissions"
|
|
4501
4513
|
];
|
|
4502
4514
|
}
|
|
4503
|
-
|
|
4515
|
+
var ROUTINE_RELEVANT_SKILLS = {
|
|
4516
|
+
"peer-review": ["code-review", "resolving-merge-conflicts", "tdd"],
|
|
4517
|
+
autowork: ["tdd", "resolving-merge-conflicts", "diagnosing-bugs", "codebase-design"],
|
|
4518
|
+
optimizer: ["code-review", "codebase-design", "writing-for-agents"]
|
|
4519
|
+
};
|
|
4520
|
+
function discoverSkillsPrompt(targetDir, routine) {
|
|
4504
4521
|
const skillsDir = path13.join(targetDir, ".agents", "skills");
|
|
4505
4522
|
if (!fs13.existsSync(skillsDir)) return "";
|
|
4523
|
+
const relevantList = routine ? ROUTINE_RELEVANT_SKILLS[routine] : void 0;
|
|
4506
4524
|
let skillsPrompt = "";
|
|
4507
4525
|
try {
|
|
4508
4526
|
const entries = fs13.readdirSync(skillsDir, { withFileTypes: true });
|
|
4509
4527
|
for (const entry of entries) {
|
|
4510
4528
|
if (entry.isDirectory()) {
|
|
4529
|
+
if (relevantList && !relevantList.includes(entry.name)) {
|
|
4530
|
+
continue;
|
|
4531
|
+
}
|
|
4511
4532
|
const skillPath = path13.join(".agents", "skills", entry.name, "SKILL.md");
|
|
4512
4533
|
const fullPath = path13.join(targetDir, skillPath);
|
|
4513
4534
|
if (fs13.existsSync(fullPath)) {
|
|
@@ -4520,11 +4541,14 @@ function discoverSkillsPrompt(targetDir) {
|
|
|
4520
4541
|
return skillsPrompt;
|
|
4521
4542
|
}
|
|
4522
4543
|
function buildRoutinePrompt(targetDir, routine, options = {}) {
|
|
4523
|
-
const skillsPrompt = discoverSkillsPrompt(targetDir);
|
|
4524
|
-
const promptFile = `.github/prompts/${routine}.md`;
|
|
4525
4544
|
const repoContext = `Working repository is located at ${targetDir}. All git, gh, and workspace commands must execute strictly within this repository.`;
|
|
4526
4545
|
const logPrompt = options.routineIssueNumber ? ` Tracking run log issue: #${options.routineIssueNumber}.` : "";
|
|
4527
4546
|
const headlessGuardrail = ` Execution Guardrail: You are executing in a headless autonomous session. You MUST NEVER call schedule or yield your turn with plain text to wait on background tasks or verification checks. If a verification command (tests, type-check, lint) runs in the background, inspect its completion with manage_task(Action='status') or manage_subagents(Action='list') (status polling with these tools is explicitly exempted from loop guard circuit breakers), or execute commands with sufficient WaitMsBeforeAsync (up to 10000 ms). DO NOT busy-wait by repeatedly calling read tools (such as view_file) on unchanged files to pass time while waiting, as calling non-polling tools with identical parameters will trip the loop circuit breaker. Read-only status commands (gh run view, gh pr view, gh pr checks, git status) are also exempted from loop guard repetition limits. Never stop calling tools or yield your turn until the routine's terminal Definition of Done is fully reached.`;
|
|
4547
|
+
if (routine === "peer-review" && options.pr && options.fastPathMerge) {
|
|
4548
|
+
return `You are the Peer Review routine for this repository. ${repoContext} Fast-Path Merge Mode: PR #${options.pr} has already received clean code review approval and remote CI has passed. Verify final PR status with gh pr checks ${options.pr} and execute the merge immediately: gh pr merge ${options.pr} --squash --delete-branch. Post the final merge confirmation or milestone card to conclude.${logPrompt}${headlessGuardrail}`;
|
|
4549
|
+
}
|
|
4550
|
+
const skillsPrompt = discoverSkillsPrompt(targetDir, routine);
|
|
4551
|
+
const promptFile = `.github/prompts/${routine}.md`;
|
|
4528
4552
|
if (routine === "autowork") {
|
|
4529
4553
|
if (options.issue) {
|
|
4530
4554
|
return `You are the Autowork routine for this repository. ${repoContext} Read and follow the instructions in ${promptFile} exactly. ${skillsPrompt}Your target is issue #${options.issue}. You are in Targeted mode: work issue #${options.issue} directly, ahead of Phase 1 convergence and priority scan.${logPrompt}${headlessGuardrail}`;
|
|
@@ -4937,7 +4961,7 @@ async function preserveUncommittedWork(worktreePath, routine) {
|
|
|
4937
4961
|
async function runLocalRoutine(options) {
|
|
4938
4962
|
const targetDir = path13.resolve(options.targetDir);
|
|
4939
4963
|
const routine = options.routine;
|
|
4940
|
-
const model = options.model || "gemini-3.8-flash-
|
|
4964
|
+
const model = options.model || DEFAULT_ROUTINE_MODELS[routine] || "gemini-3.8-flash-medium";
|
|
4941
4965
|
const printTimeout = options.printTimeout || "30m";
|
|
4942
4966
|
const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
4943
4967
|
const hostname = os2.hostname();
|
|
@@ -4969,7 +4993,8 @@ async function runLocalRoutine(options) {
|
|
|
4969
4993
|
const prompt = buildRoutinePrompt(executionDir, routine, {
|
|
4970
4994
|
issue: options.issue,
|
|
4971
4995
|
pr: options.pr,
|
|
4972
|
-
routineIssueNumber
|
|
4996
|
+
routineIssueNumber,
|
|
4997
|
+
fastPathMerge: options.fastPathMerge
|
|
4973
4998
|
});
|
|
4974
4999
|
if (options.dryRun) {
|
|
4975
5000
|
return {
|
|
@@ -5947,6 +5972,15 @@ function isDaemonRunning(repoRoot) {
|
|
|
5947
5972
|
return false;
|
|
5948
5973
|
}
|
|
5949
5974
|
}
|
|
5975
|
+
function isBotLogin(login) {
|
|
5976
|
+
if (!login) return false;
|
|
5977
|
+
const l = login.toLowerCase().trim();
|
|
5978
|
+
const configuredBot = process.env.AGENT_BOT_LOGIN?.toLowerCase().replace(/^@/, "");
|
|
5979
|
+
if (configuredBot && l === configuredBot) {
|
|
5980
|
+
return true;
|
|
5981
|
+
}
|
|
5982
|
+
return l.endsWith("[bot]") || l.endsWith("-bot") || l.endsWith("_bot") || l === "github-actions" || l === "github-actions[bot]" || l === "jonah-fleet-bot";
|
|
5983
|
+
}
|
|
5950
5984
|
function isPRCiPending(pr) {
|
|
5951
5985
|
if (!pr.statusCheckRollup || !Array.isArray(pr.statusCheckRollup) || pr.statusCheckRollup.length === 0) {
|
|
5952
5986
|
return false;
|
|
@@ -5961,33 +5995,142 @@ function isPRCiPending(pr) {
|
|
|
5961
5995
|
return false;
|
|
5962
5996
|
});
|
|
5963
5997
|
}
|
|
5998
|
+
function isPRCiGreen(pr) {
|
|
5999
|
+
if (!pr.statusCheckRollup || !Array.isArray(pr.statusCheckRollup) || pr.statusCheckRollup.length === 0) {
|
|
6000
|
+
return false;
|
|
6001
|
+
}
|
|
6002
|
+
if (isPRCiPending(pr)) {
|
|
6003
|
+
return false;
|
|
6004
|
+
}
|
|
6005
|
+
return pr.statusCheckRollup.every((check) => {
|
|
6006
|
+
const conclusion = (check.conclusion || "").toUpperCase();
|
|
6007
|
+
const state = (check.state || "").toUpperCase();
|
|
6008
|
+
if (conclusion === "SUCCESS" || conclusion === "NEUTRAL" || conclusion === "SKIPPED") {
|
|
6009
|
+
return true;
|
|
6010
|
+
}
|
|
6011
|
+
if (state === "SUCCESS") {
|
|
6012
|
+
return true;
|
|
6013
|
+
}
|
|
6014
|
+
return false;
|
|
6015
|
+
});
|
|
6016
|
+
}
|
|
6017
|
+
function isPRCiFailed(pr) {
|
|
6018
|
+
if (!pr.statusCheckRollup || !Array.isArray(pr.statusCheckRollup) || pr.statusCheckRollup.length === 0) {
|
|
6019
|
+
return false;
|
|
6020
|
+
}
|
|
6021
|
+
return pr.statusCheckRollup.some((check) => {
|
|
6022
|
+
const conclusion = (check.conclusion || "").toUpperCase();
|
|
6023
|
+
const state = (check.state || "").toUpperCase();
|
|
6024
|
+
return conclusion === "FAILURE" || conclusion === "TIMED_OUT" || conclusion === "CANCELLED" || state === "FAILURE" || state === "ERROR";
|
|
6025
|
+
});
|
|
6026
|
+
}
|
|
6027
|
+
function isPRApproved(pr) {
|
|
6028
|
+
if (pr.reviewDecision?.toUpperCase() === "APPROVED") return true;
|
|
6029
|
+
if (pr.reviews && Array.isArray(pr.reviews)) {
|
|
6030
|
+
const hasApproved = pr.reviews.some((r) => {
|
|
6031
|
+
const state = (r.state || "").toUpperCase();
|
|
6032
|
+
if (state === "APPROVED") return true;
|
|
6033
|
+
if (pr.headRefOid && r.commit?.oid === pr.headRefOid && /Approved for squash-merge/i.test(r.body || "")) {
|
|
6034
|
+
return true;
|
|
6035
|
+
}
|
|
6036
|
+
return false;
|
|
6037
|
+
});
|
|
6038
|
+
if (hasApproved) return true;
|
|
6039
|
+
}
|
|
6040
|
+
return false;
|
|
6041
|
+
}
|
|
6042
|
+
function getRecord(record, key) {
|
|
6043
|
+
if (!record) return void 0;
|
|
6044
|
+
if (record instanceof Map) return record.get(key);
|
|
6045
|
+
return record[key] ?? record[String(key)];
|
|
6046
|
+
}
|
|
6047
|
+
function isPRAlreadyEvaluated(pr, options = {}) {
|
|
6048
|
+
const headOid = pr.headRefOid;
|
|
6049
|
+
const prNum = pr.number;
|
|
6050
|
+
const cooldown = getRecord(options.failureCooldowns, prNum);
|
|
6051
|
+
if (cooldown) {
|
|
6052
|
+
const cooldownDurationMs = options.cooldownDurationMs ?? 15 * 60 * 1e3;
|
|
6053
|
+
if (Date.now() - cooldown.failedAt < cooldownDurationMs) {
|
|
6054
|
+
return true;
|
|
6055
|
+
}
|
|
6056
|
+
}
|
|
6057
|
+
const evaluatedPRs = options.evaluatedPRs;
|
|
6058
|
+
if (evaluatedPRs && headOid) {
|
|
6059
|
+
const record = getRecord(evaluatedPRs, prNum);
|
|
6060
|
+
if (record && record.headRefOid === headOid) {
|
|
6061
|
+
if (record.success) {
|
|
6062
|
+
const isGreen = isPRCiGreen(pr);
|
|
6063
|
+
const wasGreen = record.ciState === "green";
|
|
6064
|
+
if (isGreen && !wasGreen && (record.outcome === "approved" || record.outcome === "approved_pending_ci")) {
|
|
6065
|
+
return false;
|
|
6066
|
+
}
|
|
6067
|
+
return true;
|
|
6068
|
+
}
|
|
6069
|
+
}
|
|
6070
|
+
}
|
|
6071
|
+
if (headOid && pr.reviews && Array.isArray(pr.reviews)) {
|
|
6072
|
+
const botReview = pr.reviews.find(
|
|
6073
|
+
(r) => isBotLogin(r.author?.login) && r.commit?.oid === headOid
|
|
6074
|
+
);
|
|
6075
|
+
if (botReview) {
|
|
6076
|
+
const body = botReview.body || "";
|
|
6077
|
+
const state = (botReview.state || "").toUpperCase();
|
|
6078
|
+
if (state === "CHANGES_REQUESTED" || /bounce.*draft/i.test(body) || /blocking findings/i.test(body) || /needs-human/i.test(body)) {
|
|
6079
|
+
return true;
|
|
6080
|
+
}
|
|
6081
|
+
if (state === "APPROVED" || /Approved for squash-merge/i.test(body)) {
|
|
6082
|
+
if (isPRCiPending(pr) || isPRCiFailed(pr)) {
|
|
6083
|
+
return true;
|
|
6084
|
+
}
|
|
6085
|
+
if (evaluatedPRs) {
|
|
6086
|
+
const record = getRecord(evaluatedPRs, prNum);
|
|
6087
|
+
if (record && record.headRefOid === headOid && record.ciState === "green") {
|
|
6088
|
+
return true;
|
|
6089
|
+
}
|
|
6090
|
+
}
|
|
6091
|
+
} else if (state === "COMMENTED") {
|
|
6092
|
+
if (/Decision:/i.test(body) || /Findings Summary/i.test(body) || /## Standards/i.test(body)) {
|
|
6093
|
+
if (!isPRCiGreen(pr)) {
|
|
6094
|
+
return true;
|
|
6095
|
+
}
|
|
6096
|
+
}
|
|
6097
|
+
}
|
|
6098
|
+
}
|
|
6099
|
+
}
|
|
6100
|
+
return false;
|
|
6101
|
+
}
|
|
5964
6102
|
function filterReviewablePRs(prs, options = {}) {
|
|
5965
6103
|
return (prs || []).filter(
|
|
5966
|
-
(pr) => pr && typeof pr.number === "number" && !pr.headRefName?.startsWith("release-please--") && !pr.title?.startsWith("chore(main): release") && (options.allowPendingCi || !isPRCiPending(pr))
|
|
6104
|
+
(pr) => pr && typeof pr.number === "number" && !pr.headRefName?.startsWith("release-please--") && !pr.title?.startsWith("chore(main): release") && (options.allowPendingCi || !isPRCiPending(pr)) && !isPRAlreadyEvaluated(pr, options)
|
|
5967
6105
|
);
|
|
5968
6106
|
}
|
|
5969
|
-
async function getOpenReviewablePRs(repoRoot) {
|
|
6107
|
+
async function getOpenReviewablePRs(repoRoot, options = {}) {
|
|
5970
6108
|
try {
|
|
5971
6109
|
const { stdout } = await execFileAsync5(
|
|
5972
6110
|
"gh",
|
|
5973
|
-
[
|
|
6111
|
+
[
|
|
6112
|
+
"pr",
|
|
6113
|
+
"list",
|
|
6114
|
+
"--state",
|
|
6115
|
+
"open",
|
|
6116
|
+
"--draft=false",
|
|
6117
|
+
"--json",
|
|
6118
|
+
"number,headRefName,headRefOid,title,statusCheckRollup,reviews"
|
|
6119
|
+
],
|
|
5974
6120
|
{ cwd: repoRoot }
|
|
5975
6121
|
);
|
|
5976
6122
|
const prs = JSON.parse(stdout);
|
|
5977
|
-
|
|
6123
|
+
const daemonState = options.evaluatedPRs ? null : readDaemonState(repoRoot);
|
|
6124
|
+
const effectiveOptions = {
|
|
6125
|
+
...options,
|
|
6126
|
+
evaluatedPRs: options.evaluatedPRs || daemonState?.evaluatedPRs,
|
|
6127
|
+
failureCooldowns: options.failureCooldowns || daemonState?.failureCooldowns
|
|
6128
|
+
};
|
|
6129
|
+
return filterReviewablePRs(prs, effectiveOptions);
|
|
5978
6130
|
} catch {
|
|
5979
6131
|
return [];
|
|
5980
6132
|
}
|
|
5981
6133
|
}
|
|
5982
|
-
function isBotLogin(login) {
|
|
5983
|
-
if (!login) return false;
|
|
5984
|
-
const l = login.toLowerCase().trim();
|
|
5985
|
-
const configuredBot = process.env.AGENT_BOT_LOGIN?.toLowerCase().replace(/^@/, "");
|
|
5986
|
-
if (configuredBot && l === configuredBot) {
|
|
5987
|
-
return true;
|
|
5988
|
-
}
|
|
5989
|
-
return l.endsWith("[bot]") || l.endsWith("-bot") || l.endsWith("_bot") || l === "github-actions" || l === "github-actions[bot]" || l === "jonah-fleet-bot";
|
|
5990
|
-
}
|
|
5991
6134
|
function classifyBacklogIssues(issues, openPRs = []) {
|
|
5992
6135
|
const actionable = [];
|
|
5993
6136
|
const inProgress = [];
|
|
@@ -6297,6 +6440,22 @@ async function reconcileOrphanedLocalRuns(optionsOrRepoRoot) {
|
|
|
6297
6440
|
return 0;
|
|
6298
6441
|
}
|
|
6299
6442
|
}
|
|
6443
|
+
function recordPRFailure(prNum, headRefOid, failureCooldowns, state) {
|
|
6444
|
+
const prev = failureCooldowns?.get(prNum);
|
|
6445
|
+
const nextRecord = { failedAt: Date.now(), count: (prev?.count || 0) + 1 };
|
|
6446
|
+
failureCooldowns?.set(prNum, nextRecord);
|
|
6447
|
+
if (state) {
|
|
6448
|
+
if (!state.failureCooldowns) state.failureCooldowns = {};
|
|
6449
|
+
state.failureCooldowns[prNum] = nextRecord;
|
|
6450
|
+
if (!state.evaluatedPRs) state.evaluatedPRs = {};
|
|
6451
|
+
state.evaluatedPRs[prNum] = {
|
|
6452
|
+
headRefOid,
|
|
6453
|
+
evaluatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6454
|
+
success: false,
|
|
6455
|
+
outcome: "failed"
|
|
6456
|
+
};
|
|
6457
|
+
}
|
|
6458
|
+
}
|
|
6300
6459
|
async function drainReviewQueue(drainOptions) {
|
|
6301
6460
|
const {
|
|
6302
6461
|
repoRoot,
|
|
@@ -6369,6 +6528,7 @@ async function drainReviewQueue(drainOptions) {
|
|
|
6369
6528
|
)
|
|
6370
6529
|
);
|
|
6371
6530
|
await cleanupStaleWorktrees(repoRoot);
|
|
6531
|
+
const isFastPath = isPRCiGreen(currentPR) && isPRApproved(currentPR);
|
|
6372
6532
|
const result = await runRoutine({
|
|
6373
6533
|
targetDir: repoRoot,
|
|
6374
6534
|
routine: "peer-review",
|
|
@@ -6377,6 +6537,7 @@ async function drainReviewQueue(drainOptions) {
|
|
|
6377
6537
|
model: options.model,
|
|
6378
6538
|
verbose: options.verbose,
|
|
6379
6539
|
noWorktree: false,
|
|
6540
|
+
fastPathMerge: isFastPath,
|
|
6380
6541
|
onTargetDetected: (target) => {
|
|
6381
6542
|
targetPRStr = target;
|
|
6382
6543
|
if (state) {
|
|
@@ -6428,13 +6589,25 @@ async function drainReviewQueue(drainOptions) {
|
|
|
6428
6589
|
console.log(formatPeerReviewOutcomeMessage(targetLabel, outcome, "Local"));
|
|
6429
6590
|
if (typeof prNum === "number") {
|
|
6430
6591
|
failureCooldowns?.delete(prNum);
|
|
6592
|
+
if (state) {
|
|
6593
|
+
if (!state.evaluatedPRs) state.evaluatedPRs = {};
|
|
6594
|
+
state.evaluatedPRs[prNum] = {
|
|
6595
|
+
headRefOid: currentPR.headRefOid,
|
|
6596
|
+
evaluatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6597
|
+
success: true,
|
|
6598
|
+
outcome,
|
|
6599
|
+
ciState: isPRCiGreen(currentPR) ? "green" : isPRCiPending(currentPR) ? "pending" : "other"
|
|
6600
|
+
};
|
|
6601
|
+
if (state.failureCooldowns) {
|
|
6602
|
+
delete state.failureCooldowns[prNum];
|
|
6603
|
+
}
|
|
6604
|
+
}
|
|
6431
6605
|
}
|
|
6432
6606
|
} else {
|
|
6433
6607
|
console.warn(pc14.yellow(`\u26A0\uFE0F Local peer-review on ${targetLabel} completed with code ${result.exitCode}.
|
|
6434
6608
|
`));
|
|
6435
6609
|
if (typeof prNum === "number") {
|
|
6436
|
-
|
|
6437
|
-
failureCooldowns?.set(prNum, { failedAt: Date.now(), count: (prev?.count || 0) + 1 });
|
|
6610
|
+
recordPRFailure(prNum, currentPR.headRefOid, failureCooldowns, state);
|
|
6438
6611
|
}
|
|
6439
6612
|
}
|
|
6440
6613
|
} catch (err) {
|
|
@@ -6453,8 +6626,7 @@ async function drainReviewQueue(drainOptions) {
|
|
|
6453
6626
|
if (currentPR) {
|
|
6454
6627
|
attemptedPRNumbers.add(currentPR.number);
|
|
6455
6628
|
onAttempted?.(currentPR.number);
|
|
6456
|
-
|
|
6457
|
-
failureCooldowns?.set(currentPR.number, { failedAt: Date.now(), count: (prev?.count || 0) + 1 });
|
|
6629
|
+
recordPRFailure(currentPR.number, currentPR.headRefOid, failureCooldowns, state);
|
|
6458
6630
|
}
|
|
6459
6631
|
} finally {
|
|
6460
6632
|
if (state) {
|
|
@@ -6586,19 +6758,35 @@ async function performAutoworkScan(scanOptions) {
|
|
|
6586
6758
|
}
|
|
6587
6759
|
return { executed: true };
|
|
6588
6760
|
}
|
|
6589
|
-
|
|
6761
|
+
function initializeDaemonState(repoRoot, options = {}) {
|
|
6590
6762
|
const reviewInterval = options.reviewInterval || 3;
|
|
6591
6763
|
const autoworkInterval = options.autoworkInterval || options.interval || 30;
|
|
6592
6764
|
const routines = options.routines || ["peer-review", "autowork"];
|
|
6765
|
+
const existingState = readDaemonState(repoRoot);
|
|
6593
6766
|
const state = {
|
|
6594
6767
|
pid: process.pid,
|
|
6595
6768
|
startedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6596
6769
|
reviewIntervalMinutes: reviewInterval,
|
|
6597
6770
|
autoworkIntervalMinutes: autoworkInterval,
|
|
6598
6771
|
routines,
|
|
6599
|
-
status: "idle"
|
|
6772
|
+
status: "idle",
|
|
6773
|
+
evaluatedPRs: existingState?.evaluatedPRs,
|
|
6774
|
+
failureCooldowns: existingState?.failureCooldowns
|
|
6600
6775
|
};
|
|
6601
6776
|
writeDaemonState(repoRoot, state);
|
|
6777
|
+
const failureCooldowns = /* @__PURE__ */ new Map();
|
|
6778
|
+
if (state.failureCooldowns) {
|
|
6779
|
+
for (const [key, val] of Object.entries(state.failureCooldowns)) {
|
|
6780
|
+
failureCooldowns.set(parseInt(key, 10), val);
|
|
6781
|
+
}
|
|
6782
|
+
}
|
|
6783
|
+
return { state, failureCooldowns };
|
|
6784
|
+
}
|
|
6785
|
+
async function runDaemonLoop(repoRoot, options = {}) {
|
|
6786
|
+
const reviewInterval = options.reviewInterval || 3;
|
|
6787
|
+
const autoworkInterval = options.autoworkInterval || options.interval || 30;
|
|
6788
|
+
const routines = options.routines || ["peer-review", "autowork"];
|
|
6789
|
+
const { state, failureCooldowns } = initializeDaemonState(repoRoot, options);
|
|
6602
6790
|
console.log(
|
|
6603
6791
|
renderFleetBanner({
|
|
6604
6792
|
command: "DAEMON",
|
|
@@ -6627,7 +6815,6 @@ async function runDaemonLoop(repoRoot, options = {}) {
|
|
|
6627
6815
|
let stopResolve;
|
|
6628
6816
|
const reviewIntervalMs = reviewInterval * 60 * 1e3;
|
|
6629
6817
|
const autoworkIntervalMs = autoworkInterval * 60 * 1e3;
|
|
6630
|
-
const failureCooldowns = /* @__PURE__ */ new Map();
|
|
6631
6818
|
const quotaCooldownMs = (options.quotaCooldownMinutes ?? 15) * 60 * 1e3;
|
|
6632
6819
|
let quotaCooldownUntil;
|
|
6633
6820
|
const handleQuotaPause = (resetInfo) => {
|
package/dist/lib/daemon.d.ts
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { type BacklogTriageReport, type BacklogIssueInfo } from './terminal-card.js';
|
|
2
2
|
export type BacklogIssue = BacklogIssueInfo;
|
|
3
3
|
export type { BacklogTriageReport };
|
|
4
|
+
export type EvaluatedPROutcome = 'approved' | 'approved_pending_ci' | 'bounced' | 'bounced_to_draft' | 'merged' | 'rejected' | 'failed' | string;
|
|
5
|
+
export type EvaluatedPRCiState = 'green' | 'pending' | 'other';
|
|
6
|
+
export interface EvaluatedPRRecord {
|
|
7
|
+
headRefOid?: string;
|
|
8
|
+
evaluatedAt: string;
|
|
9
|
+
success: boolean;
|
|
10
|
+
outcome?: EvaluatedPROutcome;
|
|
11
|
+
ciState?: EvaluatedPRCiState;
|
|
12
|
+
}
|
|
13
|
+
export interface PRFailureRecord {
|
|
14
|
+
failedAt: number;
|
|
15
|
+
count: number;
|
|
16
|
+
}
|
|
4
17
|
export interface DaemonState {
|
|
5
18
|
pid: number;
|
|
6
19
|
startedAt: string;
|
|
@@ -13,6 +26,8 @@ export interface DaemonState {
|
|
|
13
26
|
activeRoutine?: string;
|
|
14
27
|
activeTarget?: string;
|
|
15
28
|
activeWorktree?: string;
|
|
29
|
+
evaluatedPRs?: Record<number, EvaluatedPRRecord>;
|
|
30
|
+
failureCooldowns?: Record<number, PRFailureRecord>;
|
|
16
31
|
}
|
|
17
32
|
export interface DaemonOptions {
|
|
18
33
|
interval?: number;
|
|
@@ -45,40 +60,84 @@ export declare function isDaemonRunning(repoRoot: string): boolean;
|
|
|
45
60
|
export interface ReviewablePR {
|
|
46
61
|
number: number;
|
|
47
62
|
headRefName: string;
|
|
63
|
+
headRefOid?: string;
|
|
48
64
|
title: string;
|
|
65
|
+
reviewDecision?: string;
|
|
49
66
|
statusCheckRollup?: Array<{
|
|
50
67
|
status?: string;
|
|
51
68
|
state?: string;
|
|
52
69
|
conclusion?: string | null;
|
|
53
70
|
}>;
|
|
71
|
+
reviews?: Array<{
|
|
72
|
+
id?: string;
|
|
73
|
+
author?: {
|
|
74
|
+
login: string;
|
|
75
|
+
};
|
|
76
|
+
state?: string;
|
|
77
|
+
commit?: {
|
|
78
|
+
oid: string;
|
|
79
|
+
};
|
|
80
|
+
submittedAt?: string;
|
|
81
|
+
body?: string;
|
|
82
|
+
}>;
|
|
83
|
+
comments?: Array<{
|
|
84
|
+
id?: string;
|
|
85
|
+
author?: {
|
|
86
|
+
login: string;
|
|
87
|
+
};
|
|
88
|
+
body?: string;
|
|
89
|
+
createdAt?: string;
|
|
90
|
+
}>;
|
|
54
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Checks if a GitHub user login corresponds to a bot account or designated agent persona.
|
|
94
|
+
*/
|
|
95
|
+
export declare function isBotLogin(login?: string | null): boolean;
|
|
55
96
|
/**
|
|
56
97
|
* Checks if a pull request has CI checks that are currently running, queued, or pending.
|
|
57
98
|
*/
|
|
58
99
|
export declare function isPRCiPending(pr: ReviewablePR): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Checks if all CI checks on a pull request have completed successfully (green).
|
|
102
|
+
*/
|
|
103
|
+
export declare function isPRCiGreen(pr: ReviewablePR): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Checks if any CI check on a pull request has explicitly failed or errored.
|
|
106
|
+
*/
|
|
107
|
+
export declare function isPRCiFailed(pr: ReviewablePR): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Checks if a pull request has already received approval either through reviewDecision
|
|
110
|
+
* or an APPROVED review from a reviewer/bot on its current head commit.
|
|
111
|
+
*/
|
|
112
|
+
export declare function isPRApproved(pr: ReviewablePR): boolean;
|
|
59
113
|
export interface FilterReviewablePROptions {
|
|
60
114
|
allowPendingCi?: boolean;
|
|
115
|
+
evaluatedPRs?: Record<string | number, EvaluatedPRRecord> | Map<number, EvaluatedPRRecord>;
|
|
116
|
+
failureCooldowns?: Record<string | number, PRFailureRecord> | Map<number, PRFailureRecord>;
|
|
117
|
+
cooldownDurationMs?: number;
|
|
61
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Determines whether a pull request has already been evaluated or reviewed
|
|
121
|
+
* on its current head commit, preventing wasteful re-review loops.
|
|
122
|
+
*/
|
|
123
|
+
export declare function isPRAlreadyEvaluated(pr: ReviewablePR, options?: FilterReviewablePROptions): boolean;
|
|
62
124
|
/**
|
|
63
125
|
* Filters a list of pull requests to include only reviewable PRs,
|
|
64
126
|
* excluding automated release-please branches, release PR titles,
|
|
65
|
-
*
|
|
127
|
+
* PRs with active CI checks in progress (unless allowPendingCi is true),
|
|
128
|
+
* and PRs already evaluated or reviewed on the current head commit.
|
|
66
129
|
*/
|
|
67
130
|
export declare function filterReviewablePRs(prs: ReviewablePR[], options?: FilterReviewablePROptions): ReviewablePR[];
|
|
68
131
|
/**
|
|
69
132
|
* Fast pre-flight check to query open ready PRs in ~100ms with 0 token cost,
|
|
70
133
|
* excluding drafts, automated release-please branches, release PR titles,
|
|
71
|
-
*
|
|
134
|
+
* PRs with active CI checks still running, and already evaluated PRs.
|
|
72
135
|
*/
|
|
73
|
-
export declare function getOpenReviewablePRs(repoRoot: string): Promise<ReviewablePR[]>;
|
|
136
|
+
export declare function getOpenReviewablePRs(repoRoot: string, options?: FilterReviewablePROptions): Promise<ReviewablePR[]>;
|
|
74
137
|
/**
|
|
75
138
|
* Fast pre-flight check to query number of open ready PRs in ~100ms with 0 token cost.
|
|
76
139
|
*/
|
|
77
140
|
export declare function countOpenReadyPRs(repoRoot: string): Promise<number>;
|
|
78
|
-
/**
|
|
79
|
-
* Checks if a GitHub user login corresponds to a bot account or designated agent persona.
|
|
80
|
-
*/
|
|
81
|
-
export declare function isBotLogin(login?: string | null): boolean;
|
|
82
141
|
export interface BacklogPR {
|
|
83
142
|
number: number;
|
|
84
143
|
title?: string;
|
|
@@ -137,10 +196,6 @@ export declare function queryOrphanedLocalRunIssues(repoRoot: string): Promise<A
|
|
|
137
196
|
* Operates asynchronously and fails gracefully on network / CLI errors without preventing daemon startup.
|
|
138
197
|
*/
|
|
139
198
|
export declare function reconcileOrphanedLocalRuns(optionsOrRepoRoot: string | ReconcileOrphanedRunsOptions): Promise<number>;
|
|
140
|
-
export interface PRFailureRecord {
|
|
141
|
-
failedAt: number;
|
|
142
|
-
count: number;
|
|
143
|
-
}
|
|
144
199
|
export interface DrainReviewQueueOptions {
|
|
145
200
|
repoRoot: string;
|
|
146
201
|
state?: DaemonState;
|
|
@@ -197,6 +252,13 @@ export declare function performAutoworkScan(scanOptions: PerformAutoworkScanOpti
|
|
|
197
252
|
executed: boolean;
|
|
198
253
|
reason?: string;
|
|
199
254
|
}>;
|
|
255
|
+
/**
|
|
256
|
+
* Initializes and persists daemon state, and populates in-memory failure cooldowns.
|
|
257
|
+
*/
|
|
258
|
+
export declare function initializeDaemonState(repoRoot: string, options?: DaemonOptions): {
|
|
259
|
+
state: DaemonState;
|
|
260
|
+
failureCooldowns: Map<number, PRFailureRecord>;
|
|
261
|
+
};
|
|
200
262
|
/**
|
|
201
263
|
* Runs the multi-cadence polling daemon loop in the current process with interactive controls.
|
|
202
264
|
*/
|
package/dist/lib/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"AA0BA,OAAO,EAOL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC5C,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lib/presets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lib/presets.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/runner.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface RunLocalRoutineOptions {
|
|
|
12
12
|
dryRun?: boolean;
|
|
13
13
|
verbose?: boolean;
|
|
14
14
|
showCard?: boolean;
|
|
15
|
+
fastPathMerge?: boolean;
|
|
15
16
|
env?: Record<string, string>;
|
|
16
17
|
onLog?: (chunk: string) => void;
|
|
17
18
|
onTargetDetected?: (target: string) => void;
|
|
@@ -108,10 +109,15 @@ export declare function formatVerboseEvent(event: StreamJsonEvent): string | nul
|
|
|
108
109
|
* Builds the invocation arguments for Antigravity CLI in stream-json mode.
|
|
109
110
|
*/
|
|
110
111
|
export declare function buildAgyArgs(prompt: string, model: string, printTimeout: string): string[];
|
|
112
|
+
/**
|
|
113
|
+
* Routine-to-relevant-skills mapping to prevent context token bloat in autonomous sub-sessions.
|
|
114
|
+
*/
|
|
115
|
+
export declare const ROUTINE_RELEVANT_SKILLS: Record<string, string[]>;
|
|
111
116
|
/**
|
|
112
117
|
* Discovers domain skills in .agents/skills and formats instruction string.
|
|
118
|
+
* Optionally filtered by routine to prevent prompt context bloat.
|
|
113
119
|
*/
|
|
114
|
-
export declare function discoverSkillsPrompt(targetDir: string): string;
|
|
120
|
+
export declare function discoverSkillsPrompt(targetDir: string, routine?: string): string;
|
|
115
121
|
/**
|
|
116
122
|
* Builds the prompt string for a given routine and target.
|
|
117
123
|
*/
|
|
@@ -119,6 +125,7 @@ export declare function buildRoutinePrompt(targetDir: string, routine: string, o
|
|
|
119
125
|
issue?: string | number;
|
|
120
126
|
pr?: string | number;
|
|
121
127
|
routineIssueNumber?: number;
|
|
128
|
+
fastPathMerge?: boolean;
|
|
122
129
|
}): string;
|
|
123
130
|
/**
|
|
124
131
|
* Checks if Antigravity CLI (`agy`) is installed and accessible.
|
package/dist/lib/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAQA,OAAO,EAgBL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED