jonah-fleet 1.31.5 → 1.31.7

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 CHANGED
@@ -5,6 +5,31 @@ 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.7](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.6...v1.31.7) (2026-10-03)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **peer-review,runner:** mention target PR with native GitHub links in run logs ([#599](https://github.com/Jonah-Projects/jonah-fleet/issues/599)) ([e22a1fb](https://github.com/Jonah-Projects/jonah-fleet/commit/e22a1fb42141b3748633289d9ac9582a70ffe631))
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
+ * **peer-review,prompts,runner:** mention target PR with native GitHub links instead of backticked plain text in peer review run logs, milestone cards, and routine issue initialization
25
+
26
+ ## [1.31.6](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.5...v1.31.6) (2026-10-03)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * **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))
32
+
8
33
  ## [1.31.5](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.4...v1.31.5) (2026-10-02)
9
34
 
10
35
 
@@ -33,12 +58,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
33
58
 
34
59
  * **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
60
 
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
61
  ## [1.31.1](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.31.0...v1.31.1) (2026-10-01)
43
62
 
44
63
 
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
- function discoverSkillsPrompt(targetDir) {
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}`;
@@ -4541,22 +4565,31 @@ function buildRoutinePrompt(targetDir, routine, options = {}) {
4541
4565
  }
4542
4566
  function tryCreateLocalRunIssue(cwd, routine, timestamp, targetLabel, hostname) {
4543
4567
  try {
4544
- const title = `[${routine}] run ${timestamp} (local)`;
4568
+ const title = targetLabel && targetLabel !== routine ? `[${routine}] run ${timestamp} (${targetLabel})` : `[${routine}] run ${timestamp} (local)`;
4569
+ const formattedTarget = targetLabel.includes("#") ? targetLabel : `\`${targetLabel}\``;
4545
4570
  const body = `### Autonomous Routine Execution in Progress (runner:local)
4546
4571
  - **Routine**: \`${routine}\`
4547
4572
  - **Timestamp**: \`${timestamp}\`
4548
- - **Target**: \`${targetLabel}\`
4573
+ - **Target**: ${formattedTarget}
4549
4574
  - **Host**: \`${hostname}\`
4550
4575
 
4551
4576
  _Running via Jonah Fleet CLI runner._`;
4552
4577
  const labels = `routine-log,routine:${routine},status:running,runner:local`;
4553
- const out = execSync2(`gh issue create --title ${JSON.stringify(title)} --body ${JSON.stringify(body)} --label ${JSON.stringify(labels)}`, {
4554
- cwd,
4555
- encoding: "utf8",
4556
- stdio: ["ignore", "pipe", "ignore"]
4557
- }).trim();
4558
- const match = out.match(/(\d+)$/);
4559
- return match ? parseInt(match[1], 10) : void 0;
4578
+ const tmpFile = path13.join(os2.tmpdir(), `jonah-fleet-run-issue-${Date.now()}.md`);
4579
+ fs13.writeFileSync(tmpFile, body, "utf8");
4580
+ try {
4581
+ const out = execSync2(`gh issue create --title ${JSON.stringify(title)} --body-file ${JSON.stringify(tmpFile)} --label ${JSON.stringify(labels)}`, {
4582
+ cwd,
4583
+ encoding: "utf8",
4584
+ stdio: ["ignore", "pipe", "ignore"]
4585
+ }).trim();
4586
+ const match = out.match(/(\d+)$/);
4587
+ return match ? parseInt(match[1], 10) : void 0;
4588
+ } finally {
4589
+ if (fs13.existsSync(tmpFile)) {
4590
+ fs13.unlinkSync(tmpFile);
4591
+ }
4592
+ }
4560
4593
  } catch {
4561
4594
  return void 0;
4562
4595
  }
@@ -4937,7 +4970,7 @@ async function preserveUncommittedWork(worktreePath, routine) {
4937
4970
  async function runLocalRoutine(options) {
4938
4971
  const targetDir = path13.resolve(options.targetDir);
4939
4972
  const routine = options.routine;
4940
- const model = options.model || "gemini-3.8-flash-high";
4973
+ const model = options.model || DEFAULT_ROUTINE_MODELS[routine] || "gemini-3.8-flash-medium";
4941
4974
  const printTimeout = options.printTimeout || "30m";
4942
4975
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
4943
4976
  const hostname = os2.hostname();
@@ -4969,7 +5002,8 @@ async function runLocalRoutine(options) {
4969
5002
  const prompt = buildRoutinePrompt(executionDir, routine, {
4970
5003
  issue: options.issue,
4971
5004
  pr: options.pr,
4972
- routineIssueNumber
5005
+ routineIssueNumber,
5006
+ fastPathMerge: options.fastPathMerge
4973
5007
  });
4974
5008
  if (options.dryRun) {
4975
5009
  return {
@@ -5947,6 +5981,15 @@ function isDaemonRunning(repoRoot) {
5947
5981
  return false;
5948
5982
  }
5949
5983
  }
5984
+ function isBotLogin(login) {
5985
+ if (!login) return false;
5986
+ const l = login.toLowerCase().trim();
5987
+ const configuredBot = process.env.AGENT_BOT_LOGIN?.toLowerCase().replace(/^@/, "");
5988
+ if (configuredBot && l === configuredBot) {
5989
+ return true;
5990
+ }
5991
+ return l.endsWith("[bot]") || l.endsWith("-bot") || l.endsWith("_bot") || l === "github-actions" || l === "github-actions[bot]" || l === "jonah-fleet-bot";
5992
+ }
5950
5993
  function isPRCiPending(pr) {
5951
5994
  if (!pr.statusCheckRollup || !Array.isArray(pr.statusCheckRollup) || pr.statusCheckRollup.length === 0) {
5952
5995
  return false;
@@ -5961,33 +6004,142 @@ function isPRCiPending(pr) {
5961
6004
  return false;
5962
6005
  });
5963
6006
  }
6007
+ function isPRCiGreen(pr) {
6008
+ if (!pr.statusCheckRollup || !Array.isArray(pr.statusCheckRollup) || pr.statusCheckRollup.length === 0) {
6009
+ return false;
6010
+ }
6011
+ if (isPRCiPending(pr)) {
6012
+ return false;
6013
+ }
6014
+ return pr.statusCheckRollup.every((check) => {
6015
+ const conclusion = (check.conclusion || "").toUpperCase();
6016
+ const state = (check.state || "").toUpperCase();
6017
+ if (conclusion === "SUCCESS" || conclusion === "NEUTRAL" || conclusion === "SKIPPED") {
6018
+ return true;
6019
+ }
6020
+ if (state === "SUCCESS") {
6021
+ return true;
6022
+ }
6023
+ return false;
6024
+ });
6025
+ }
6026
+ function isPRCiFailed(pr) {
6027
+ if (!pr.statusCheckRollup || !Array.isArray(pr.statusCheckRollup) || pr.statusCheckRollup.length === 0) {
6028
+ return false;
6029
+ }
6030
+ return pr.statusCheckRollup.some((check) => {
6031
+ const conclusion = (check.conclusion || "").toUpperCase();
6032
+ const state = (check.state || "").toUpperCase();
6033
+ return conclusion === "FAILURE" || conclusion === "TIMED_OUT" || conclusion === "CANCELLED" || state === "FAILURE" || state === "ERROR";
6034
+ });
6035
+ }
6036
+ function isPRApproved(pr) {
6037
+ if (pr.reviewDecision?.toUpperCase() === "APPROVED") return true;
6038
+ if (pr.reviews && Array.isArray(pr.reviews)) {
6039
+ const hasApproved = pr.reviews.some((r) => {
6040
+ const state = (r.state || "").toUpperCase();
6041
+ if (state === "APPROVED") return true;
6042
+ if (pr.headRefOid && r.commit?.oid === pr.headRefOid && /Approved for squash-merge/i.test(r.body || "")) {
6043
+ return true;
6044
+ }
6045
+ return false;
6046
+ });
6047
+ if (hasApproved) return true;
6048
+ }
6049
+ return false;
6050
+ }
6051
+ function getRecord(record, key) {
6052
+ if (!record) return void 0;
6053
+ if (record instanceof Map) return record.get(key);
6054
+ return record[key] ?? record[String(key)];
6055
+ }
6056
+ function isPRAlreadyEvaluated(pr, options = {}) {
6057
+ const headOid = pr.headRefOid;
6058
+ const prNum = pr.number;
6059
+ const cooldown = getRecord(options.failureCooldowns, prNum);
6060
+ if (cooldown) {
6061
+ const cooldownDurationMs = options.cooldownDurationMs ?? 15 * 60 * 1e3;
6062
+ if (Date.now() - cooldown.failedAt < cooldownDurationMs) {
6063
+ return true;
6064
+ }
6065
+ }
6066
+ const evaluatedPRs = options.evaluatedPRs;
6067
+ if (evaluatedPRs && headOid) {
6068
+ const record = getRecord(evaluatedPRs, prNum);
6069
+ if (record && record.headRefOid === headOid) {
6070
+ if (record.success) {
6071
+ const isGreen = isPRCiGreen(pr);
6072
+ const wasGreen = record.ciState === "green";
6073
+ if (isGreen && !wasGreen && (record.outcome === "approved" || record.outcome === "approved_pending_ci")) {
6074
+ return false;
6075
+ }
6076
+ return true;
6077
+ }
6078
+ }
6079
+ }
6080
+ if (headOid && pr.reviews && Array.isArray(pr.reviews)) {
6081
+ const botReview = pr.reviews.find(
6082
+ (r) => isBotLogin(r.author?.login) && r.commit?.oid === headOid
6083
+ );
6084
+ if (botReview) {
6085
+ const body = botReview.body || "";
6086
+ const state = (botReview.state || "").toUpperCase();
6087
+ if (state === "CHANGES_REQUESTED" || /bounce.*draft/i.test(body) || /blocking findings/i.test(body) || /needs-human/i.test(body)) {
6088
+ return true;
6089
+ }
6090
+ if (state === "APPROVED" || /Approved for squash-merge/i.test(body)) {
6091
+ if (isPRCiPending(pr) || isPRCiFailed(pr)) {
6092
+ return true;
6093
+ }
6094
+ if (evaluatedPRs) {
6095
+ const record = getRecord(evaluatedPRs, prNum);
6096
+ if (record && record.headRefOid === headOid && record.ciState === "green") {
6097
+ return true;
6098
+ }
6099
+ }
6100
+ } else if (state === "COMMENTED") {
6101
+ if (/Decision:/i.test(body) || /Findings Summary/i.test(body) || /## Standards/i.test(body)) {
6102
+ if (!isPRCiGreen(pr)) {
6103
+ return true;
6104
+ }
6105
+ }
6106
+ }
6107
+ }
6108
+ }
6109
+ return false;
6110
+ }
5964
6111
  function filterReviewablePRs(prs, options = {}) {
5965
6112
  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))
6113
+ (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
6114
  );
5968
6115
  }
5969
- async function getOpenReviewablePRs(repoRoot) {
6116
+ async function getOpenReviewablePRs(repoRoot, options = {}) {
5970
6117
  try {
5971
6118
  const { stdout } = await execFileAsync5(
5972
6119
  "gh",
5973
- ["pr", "list", "--state", "open", "--draft=false", "--json", "number,headRefName,title,statusCheckRollup"],
6120
+ [
6121
+ "pr",
6122
+ "list",
6123
+ "--state",
6124
+ "open",
6125
+ "--draft=false",
6126
+ "--json",
6127
+ "number,headRefName,headRefOid,title,statusCheckRollup,reviews"
6128
+ ],
5974
6129
  { cwd: repoRoot }
5975
6130
  );
5976
6131
  const prs = JSON.parse(stdout);
5977
- return filterReviewablePRs(prs);
6132
+ const daemonState = options.evaluatedPRs ? null : readDaemonState(repoRoot);
6133
+ const effectiveOptions = {
6134
+ ...options,
6135
+ evaluatedPRs: options.evaluatedPRs || daemonState?.evaluatedPRs,
6136
+ failureCooldowns: options.failureCooldowns || daemonState?.failureCooldowns
6137
+ };
6138
+ return filterReviewablePRs(prs, effectiveOptions);
5978
6139
  } catch {
5979
6140
  return [];
5980
6141
  }
5981
6142
  }
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
6143
  function classifyBacklogIssues(issues, openPRs = []) {
5992
6144
  const actionable = [];
5993
6145
  const inProgress = [];
@@ -6297,6 +6449,22 @@ async function reconcileOrphanedLocalRuns(optionsOrRepoRoot) {
6297
6449
  return 0;
6298
6450
  }
6299
6451
  }
6452
+ function recordPRFailure(prNum, headRefOid, failureCooldowns, state) {
6453
+ const prev = failureCooldowns?.get(prNum);
6454
+ const nextRecord = { failedAt: Date.now(), count: (prev?.count || 0) + 1 };
6455
+ failureCooldowns?.set(prNum, nextRecord);
6456
+ if (state) {
6457
+ if (!state.failureCooldowns) state.failureCooldowns = {};
6458
+ state.failureCooldowns[prNum] = nextRecord;
6459
+ if (!state.evaluatedPRs) state.evaluatedPRs = {};
6460
+ state.evaluatedPRs[prNum] = {
6461
+ headRefOid,
6462
+ evaluatedAt: (/* @__PURE__ */ new Date()).toISOString(),
6463
+ success: false,
6464
+ outcome: "failed"
6465
+ };
6466
+ }
6467
+ }
6300
6468
  async function drainReviewQueue(drainOptions) {
6301
6469
  const {
6302
6470
  repoRoot,
@@ -6369,6 +6537,7 @@ async function drainReviewQueue(drainOptions) {
6369
6537
  )
6370
6538
  );
6371
6539
  await cleanupStaleWorktrees(repoRoot);
6540
+ const isFastPath = isPRCiGreen(currentPR) && isPRApproved(currentPR);
6372
6541
  const result = await runRoutine({
6373
6542
  targetDir: repoRoot,
6374
6543
  routine: "peer-review",
@@ -6377,6 +6546,7 @@ async function drainReviewQueue(drainOptions) {
6377
6546
  model: options.model,
6378
6547
  verbose: options.verbose,
6379
6548
  noWorktree: false,
6549
+ fastPathMerge: isFastPath,
6380
6550
  onTargetDetected: (target) => {
6381
6551
  targetPRStr = target;
6382
6552
  if (state) {
@@ -6428,13 +6598,25 @@ async function drainReviewQueue(drainOptions) {
6428
6598
  console.log(formatPeerReviewOutcomeMessage(targetLabel, outcome, "Local"));
6429
6599
  if (typeof prNum === "number") {
6430
6600
  failureCooldowns?.delete(prNum);
6601
+ if (state) {
6602
+ if (!state.evaluatedPRs) state.evaluatedPRs = {};
6603
+ state.evaluatedPRs[prNum] = {
6604
+ headRefOid: currentPR.headRefOid,
6605
+ evaluatedAt: (/* @__PURE__ */ new Date()).toISOString(),
6606
+ success: true,
6607
+ outcome,
6608
+ ciState: isPRCiGreen(currentPR) ? "green" : isPRCiPending(currentPR) ? "pending" : "other"
6609
+ };
6610
+ if (state.failureCooldowns) {
6611
+ delete state.failureCooldowns[prNum];
6612
+ }
6613
+ }
6431
6614
  }
6432
6615
  } else {
6433
6616
  console.warn(pc14.yellow(`\u26A0\uFE0F Local peer-review on ${targetLabel} completed with code ${result.exitCode}.
6434
6617
  `));
6435
6618
  if (typeof prNum === "number") {
6436
- const prev = failureCooldowns?.get(prNum);
6437
- failureCooldowns?.set(prNum, { failedAt: Date.now(), count: (prev?.count || 0) + 1 });
6619
+ recordPRFailure(prNum, currentPR.headRefOid, failureCooldowns, state);
6438
6620
  }
6439
6621
  }
6440
6622
  } catch (err) {
@@ -6453,8 +6635,7 @@ async function drainReviewQueue(drainOptions) {
6453
6635
  if (currentPR) {
6454
6636
  attemptedPRNumbers.add(currentPR.number);
6455
6637
  onAttempted?.(currentPR.number);
6456
- const prev = failureCooldowns?.get(currentPR.number);
6457
- failureCooldowns?.set(currentPR.number, { failedAt: Date.now(), count: (prev?.count || 0) + 1 });
6638
+ recordPRFailure(currentPR.number, currentPR.headRefOid, failureCooldowns, state);
6458
6639
  }
6459
6640
  } finally {
6460
6641
  if (state) {
@@ -6586,19 +6767,35 @@ async function performAutoworkScan(scanOptions) {
6586
6767
  }
6587
6768
  return { executed: true };
6588
6769
  }
6589
- async function runDaemonLoop(repoRoot, options = {}) {
6770
+ function initializeDaemonState(repoRoot, options = {}) {
6590
6771
  const reviewInterval = options.reviewInterval || 3;
6591
6772
  const autoworkInterval = options.autoworkInterval || options.interval || 30;
6592
6773
  const routines = options.routines || ["peer-review", "autowork"];
6774
+ const existingState = readDaemonState(repoRoot);
6593
6775
  const state = {
6594
6776
  pid: process.pid,
6595
6777
  startedAt: (/* @__PURE__ */ new Date()).toISOString(),
6596
6778
  reviewIntervalMinutes: reviewInterval,
6597
6779
  autoworkIntervalMinutes: autoworkInterval,
6598
6780
  routines,
6599
- status: "idle"
6781
+ status: "idle",
6782
+ evaluatedPRs: existingState?.evaluatedPRs,
6783
+ failureCooldowns: existingState?.failureCooldowns
6600
6784
  };
6601
6785
  writeDaemonState(repoRoot, state);
6786
+ const failureCooldowns = /* @__PURE__ */ new Map();
6787
+ if (state.failureCooldowns) {
6788
+ for (const [key, val] of Object.entries(state.failureCooldowns)) {
6789
+ failureCooldowns.set(parseInt(key, 10), val);
6790
+ }
6791
+ }
6792
+ return { state, failureCooldowns };
6793
+ }
6794
+ async function runDaemonLoop(repoRoot, options = {}) {
6795
+ const reviewInterval = options.reviewInterval || 3;
6796
+ const autoworkInterval = options.autoworkInterval || options.interval || 30;
6797
+ const routines = options.routines || ["peer-review", "autowork"];
6798
+ const { state, failureCooldowns } = initializeDaemonState(repoRoot, options);
6602
6799
  console.log(
6603
6800
  renderFleetBanner({
6604
6801
  command: "DAEMON",
@@ -6627,7 +6824,6 @@ async function runDaemonLoop(repoRoot, options = {}) {
6627
6824
  let stopResolve;
6628
6825
  const reviewIntervalMs = reviewInterval * 60 * 1e3;
6629
6826
  const autoworkIntervalMs = autoworkInterval * 60 * 1e3;
6630
- const failureCooldowns = /* @__PURE__ */ new Map();
6631
6827
  const quotaCooldownMs = (options.quotaCooldownMinutes ?? 15) * 60 * 1e3;
6632
6828
  let quotaCooldownUntil;
6633
6829
  const handleQuotaPause = (resetInfo) => {
@@ -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
- * and PRs with active CI checks in progress (unless allowPendingCi is true).
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
- * and PRs with active CI checks still running.
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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"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"}
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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"}
@@ -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.
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jonah-fleet",
3
- "version": "1.31.5",
3
+ "version": "1.31.7",
4
4
  "description": "Standalone autonomous agent fleet with Symphony orchestration, claim protocols, and continuous improvement loops",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -137,7 +137,7 @@ How live execution progress is reported during autonomous routine runs:
137
137
  ### <Emoji> Milestone: <Milestone Name>
138
138
  - **Phase**: `<Phase Identifier>`
139
139
  - **Status**: <Status Emoji + Summary>
140
- - **Target / Context**: `<Target Issue/PR or Context>`
140
+ - **Target / Context**: <Target Issue/PR or Context>
141
141
  - **Key Decision / Finding**: <Summary of key decision, root cause, or verification outcome>
142
142
  - **Next**: <Next planned milestone>
143
143
  ```
@@ -253,7 +253,7 @@ _Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/ru
253
253
  gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🧭 Milestone: Intake & Strategy
254
254
  - **Phase**: \`Phase 1 · Target Selection & Planning\`
255
255
  - **Status**: ⏳ In Progress
256
- - **Target / Context**: \`#<TARGET_ISSUE> (<Title>)\`
256
+ - **Target / Context**: #<TARGET_ISSUE> (<Title>)
257
257
  - **Prior Failure Context**: <summary of past error/crash and strategy to avoid repeating it>
258
258
  - **Key Decision / Finding**: <Summary of plan, root cause, or reproduction strategy>
259
259
  - **Next**: Implementation & Test Verification" || true
@@ -272,7 +272,7 @@ _Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/ru
272
272
  gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🧪 Milestone: Verification & Tests
273
273
  - **Phase**: \`Phase 2 · Implementation & Verification\`
274
274
  - **Status**: ✅ Tests Passing
275
- - **Target / Context**: \`#<TARGET_ISSUE>\`
275
+ - **Target / Context**: #<TARGET_ISSUE>
276
276
  - **Key Decision / Finding**: Tests verified passing with zero failures and clean type-check.
277
277
  - **Next**: PR Creation & Autonomous Handoff" || true
278
278
  ```
@@ -300,7 +300,7 @@ _Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/ru
300
300
  gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🚀 Milestone: Autonomous Handoff
301
301
  - **Phase**: \`Phase 3 · Autonomous Handoff\`
302
302
  - **Status**: ✅ PR Marked Ready
303
- - **Target / Context**: \`PR #<PR_NUMBER> (closes #<TARGET_ISSUE>)\`
303
+ - **Target / Context**: PR #<PR_NUMBER> (closes #<TARGET_ISSUE>)
304
304
  - **Key Decision / Finding**: Pushed branch and marked PR ready for review.
305
305
  - **Next**: In-session review wait or run completion" || true
306
306
  ```
@@ -340,7 +340,7 @@ After completing (SUCCESS or FAILURE), record run execution details to `.jonah-f
340
340
  gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🏁 Milestone: Run Completed
341
341
  - **Phase**: \`Phase 4 · Reconciliation\`
342
342
  - **Status**: ✅ SUCCESS
343
- - **Target / Context**: \`#<TARGET_ISSUE>\` · \`PR #<PR_NUMBER>\`
343
+ - **Target / Context**: #<TARGET_ISSUE> · PR #<PR_NUMBER>
344
344
  - **Key Decision / Finding**: All DoD criteria satisfied and verified.
345
345
  - **Next**: Routine finished; issue closed by harness" || true
346
346
  ```
@@ -129,7 +129,7 @@ Check if `$PR_NUMBER` is set:
129
129
  gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🧭 Milestone: Intake & Review Scope
130
130
  - **Phase**: \`Phase 1 · Review Target & Scope\`
131
131
  - **Status**: ⏳ In Progress
132
- - **Target / Context**: \`PR #<PR_NUMBER> (Round N)\`
132
+ - **Target / Context**: PR #<PR_NUMBER> (Round N)
133
133
  - **Prior Failure Context**: <summary of past review failure/crash and verification focus, or None>
134
134
  - **Key Decision / Finding**: Claimed review window; starting multi-angle evaluation passes.
135
135
  - **Next**: Multi-Angle Code Review Pass" || true
@@ -277,7 +277,7 @@ After completing (SUCCESS or FAILURE), record run execution details to `.jonah-f
277
277
  gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🏁 Milestone: Run Completed
278
278
  - **Phase**: \`Phase 4 · Reconciliation\`
279
279
  - **Status**: ✅ SUCCESS
280
- - **Target / Context**: \`PR #<PR_NUMBER>\`
280
+ - **Target / Context**: PR #<PR_NUMBER>
281
281
  - **Key Decision / Finding**: Review completed with decision \`<MERGE | BOUNCE | ESCALATE | DEFER_CI>\`.
282
282
  - **Next**: Routine finished; issue closed by harness" || true
283
283
  ```
@@ -241,10 +241,18 @@ jobs:
241
241
  TIMESTAMP=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
242
242
  if [ -n "$PR_ARG" ]; then
243
243
  TITLE="[peer-review] run ${TIMESTAMP} (PR #${PR_ARG})"
244
+ BODY="### Autonomous Routine Execution in Progress
245
+ - **Routine**: \`peer-review\`
246
+ - **Timestamp**: \`${TIMESTAMP}\`
247
+ - **Trigger**: \`${EVENT_NAME}\`
248
+ - **Target**: PR #${PR_ARG}
249
+ - **Run ID**: [\`${RUN_ID}\`](${SERVER_URL}/${REPOSITORY}/actions/runs/${RUN_ID})
250
+
251
+ ---
252
+ _Generated by [Antigravity](${SERVER_URL}/${REPOSITORY}/actions/runs/${RUN_ID})_"
244
253
  else
245
254
  TITLE="[peer-review] run ${TIMESTAMP}"
246
- fi
247
- BODY="### Autonomous Routine Execution in Progress
255
+ BODY="### Autonomous Routine Execution in Progress
248
256
  - **Routine**: \`peer-review\`
249
257
  - **Timestamp**: \`${TIMESTAMP}\`
250
258
  - **Trigger**: \`${EVENT_NAME}\`
@@ -252,6 +260,7 @@ jobs:
252
260
 
253
261
  ---
254
262
  _Generated by [Antigravity](${SERVER_URL}/${REPOSITORY}/actions/runs/${RUN_ID})_"
263
+ fi
255
264
  ISSUE_URL=$(gh issue create --title "$TITLE" --body "$BODY" --label "routine-log,routine:peer-review,status:running,runner:github-actions")
256
265
  ISSUE_NUMBER=$(echo "$ISSUE_URL" | grep -oE '[0-9]+$')
257
266
  echo "issue_number=$ISSUE_NUMBER" >> "$GITHUB_OUTPUT"