jonah-fleet 1.9.2 → 1.11.0

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,26 @@ 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.11.0](https://github.com/juliendurandeu/jonah-fleet/compare/v1.10.0...v1.11.0) (2026-09-17)
9
+
10
+
11
+ ### Features
12
+
13
+ * **daemon:** auto-reconcile orphaned local routine runs on startup ([#188](https://github.com/juliendurandeu/jonah-fleet/issues/188)) ([dcc7746](https://github.com/juliendurandeu/jonah-fleet/commit/dcc7746268cd1921dbfb8e23c57ac46cf9217b83))
14
+
15
+ ## [1.10.0](https://github.com/juliendurandeu/jonah-fleet/compare/v1.9.2...v1.10.0) (2026-09-17)
16
+
17
+
18
+ ### Features
19
+
20
+ * **radar:** expand Category A heuristics to include prompt engineering optimizations and release tag_name ([#186](https://github.com/juliendurandeu/jonah-fleet/issues/186)) ([37fb3fc](https://github.com/juliendurandeu/jonah-fleet/commit/37fb3fca85b2f880de90df6a4baf9ec50f624003))
21
+ * **radar:** surface actionable opportunities with deterministic A/B/C classification ([#181](https://github.com/juliendurandeu/jonah-fleet/issues/181)) ([b9809c0](https://github.com/juliendurandeu/jonah-fleet/commit/b9809c0c1b54cb690c878d574cecbe1a4ce33480))
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **runner:** capture stderr and handle signal exit codes in fallback error diagnostics ([#176](https://github.com/juliendurandeu/jonah-fleet/issues/176)) ([9bbe8eb](https://github.com/juliendurandeu/jonah-fleet/commit/9bbe8eb7cd52deab74c0bc9d503011511502a98f))
27
+
8
28
  ## [1.9.2](https://github.com/juliendurandeu/jonah-fleet/compare/v1.9.1...v1.9.2) (2026-09-16)
9
29
 
10
30
 
@@ -41,10 +61,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
41
61
  * **runner,daemon:** prevent stale report ghosting and fix keyboard lockup in targeted prompts ([#166](https://github.com/juliendurandeu/jonah-fleet/issues/166)) ([0de89e2](https://github.com/juliendurandeu/jonah-fleet/commit/0de89e24427f9e575f08cd721434ab5156fdcb94))
42
62
  * **workflows:** harden workflow templates against shell injection, credential persistence, and timeouts ([04a0dd3](https://github.com/juliendurandeu/jonah-fleet/commit/04a0dd3a0457fd4d6db74fcd4709fcef0d28d84e))
43
63
 
44
- ## [Unreleased] - 2026-09-16
64
+ ## [Unreleased] - 2026-09-17
45
65
 
46
66
  ### Features
47
67
 
68
+ * **daemon:** auto-reconcile orphaned local routine run issues on daemon startup after host reboots or process crashes.
69
+ * **radar:** expand Category A heuristics in `fetch-symphony-radar.js` to detect prompt engineering optimizations and release `tag_name` fallbacks, prioritize Category A invariants over runtime keywords, and refine empty lookback checklist phrasing ([#184](https://github.com/juliendurandeu/jonah-fleet/issues/184)).
70
+ * **radar:** deterministically classify upstream changes across Symphony and Funes into Category A/B/C and surface architectural opportunities with callout summaries, breakdown matrices, and dynamic triage checklists ([#152](https://github.com/juliendurandeu/jonah-fleet/issues/152)).
48
71
  * **telemetry:** introduce live progress reporting in routine run tracking issues (`routine-log`) using bounded Compact Milestone Cards (3–5 bullet points for Intake & Strategy, Verification & Tests, Autonomous Handoff, and Run Completed) across `autowork`, `peer-review`, `optimizer`, and `ORCHESTRATION.md`.
49
72
  * **workflows:** automatically post Interruption Cards to routine run issue comment streams upon failure, timeout, or cancellation, linking directly to the Actions run logs before applying `status:failure,needs-attention`.
50
73
  * **runner:** add `formatMilestoneCard`, `formatInterruptionCard`, and `tryPostLocalRunMilestone` helpers to local runner `runner.ts` to post interruption cards on non-zero exit codes with offline fallback.
package/dist/index.js CHANGED
@@ -2656,7 +2656,8 @@ import pc11 from "picocolors";
2656
2656
  import fs12 from "fs";
2657
2657
  import path12 from "path";
2658
2658
  import os2 from "os";
2659
- import { spawn, execSync as execSync2 } from "child_process";
2659
+ import { spawn, execSync as execSync2, execFile as execFile4 } from "child_process";
2660
+ import { promisify as promisify4 } from "util";
2660
2661
 
2661
2662
  // src/lib/worktree.ts
2662
2663
  import fs10 from "fs";
@@ -3496,6 +3497,7 @@ var TerminalSpinner = class {
3496
3497
 
3497
3498
  // src/lib/runner.ts
3498
3499
  import pc10 from "picocolors";
3500
+ var execFileAsync4 = promisify4(execFile4);
3499
3501
  var LineBufferedStreamParser = class {
3500
3502
  buffer = "";
3501
3503
  onLine;
@@ -3677,6 +3679,25 @@ function tryPostLocalRunMilestone(cwd, issueNumber, cardContent) {
3677
3679
  } catch {
3678
3680
  }
3679
3681
  }
3682
+ async function tryPostLocalRunMilestoneAsync(cwd, issueNumber, cardContent) {
3683
+ const tmpFile = path12.join(os2.tmpdir(), `jonah-fleet-milestone-${issueNumber}-${Date.now()}.md`);
3684
+ try {
3685
+ await fs12.promises.writeFile(tmpFile, cardContent, "utf8");
3686
+ await execFileAsync4("gh", ["issue", "comment", String(issueNumber), "--body-file", tmpFile], {
3687
+ cwd
3688
+ });
3689
+ return true;
3690
+ } catch {
3691
+ return false;
3692
+ } finally {
3693
+ try {
3694
+ if (fs12.existsSync(tmpFile)) {
3695
+ await fs12.promises.unlink(tmpFile);
3696
+ }
3697
+ } catch {
3698
+ }
3699
+ }
3700
+ }
3680
3701
  function tryReconcileLocalRunIssue(cwd, issueNumber, reportContent, exitCode, hostname, routine) {
3681
3702
  try {
3682
3703
  if (exitCode !== 0) {
@@ -3721,6 +3742,76 @@ _Generated by Jonah Fleet local runner on ${hostname}._`;
3721
3742
  } catch {
3722
3743
  }
3723
3744
  }
3745
+ async function tryMarkLocalRunInterruptedAsync(cwd, issueNumber, hostname, reason = "Host machine process terminated mid-execution (machine reboot or SIGKILL)", routine = "local-routine") {
3746
+ try {
3747
+ const interruptionCard = formatInterruptionCard({
3748
+ routine,
3749
+ status: reason,
3750
+ runner: `local (${hostname})`,
3751
+ step: "Local execution interrupted before completion"
3752
+ });
3753
+ await tryPostLocalRunMilestoneAsync(cwd, issueNumber, interruptionCard);
3754
+ await execFileAsync4(
3755
+ "gh",
3756
+ ["issue", "edit", String(issueNumber), "--add-label", "status:failure,needs-attention", "--remove-label", "status:running"],
3757
+ { cwd }
3758
+ );
3759
+ return true;
3760
+ } catch {
3761
+ return false;
3762
+ }
3763
+ }
3764
+ async function tryReconcileLocalRunIssueAsync(cwd, issueNumber, reportContent, exitCode, hostname, routine) {
3765
+ try {
3766
+ if (exitCode !== 0) {
3767
+ const interruptionCard = formatInterruptionCard({
3768
+ routine: routine || "local-routine",
3769
+ status: `exit code ${exitCode}`,
3770
+ runner: `local (${hostname})`
3771
+ });
3772
+ await tryPostLocalRunMilestoneAsync(cwd, issueNumber, interruptionCard);
3773
+ }
3774
+ const finalBody = `${reportContent}
3775
+
3776
+ ---
3777
+ _Generated by Jonah Fleet local runner on ${hostname}._`;
3778
+ const tmpFile = path12.join(os2.tmpdir(), `jonah-fleet-run-${issueNumber}-${Date.now()}.md`);
3779
+ await fs12.promises.writeFile(tmpFile, finalBody, "utf8");
3780
+ try {
3781
+ await execFileAsync4("gh", ["issue", "edit", String(issueNumber), "--body-file", tmpFile], {
3782
+ cwd
3783
+ });
3784
+ if (exitCode === 0) {
3785
+ await execFileAsync4(
3786
+ "gh",
3787
+ ["issue", "edit", String(issueNumber), "--add-label", "status:success", "--remove-label", "status:running"],
3788
+ { cwd }
3789
+ );
3790
+ await execFileAsync4(
3791
+ "gh",
3792
+ ["issue", "close", String(issueNumber), "--reason", "completed"],
3793
+ { cwd }
3794
+ );
3795
+ } else {
3796
+ await execFileAsync4(
3797
+ "gh",
3798
+ ["issue", "edit", String(issueNumber), "--add-label", "status:failure,needs-attention", "--remove-label", "status:running"],
3799
+ { cwd }
3800
+ );
3801
+ }
3802
+ return true;
3803
+ } finally {
3804
+ try {
3805
+ if (fs12.existsSync(tmpFile)) {
3806
+ await fs12.promises.unlink(tmpFile);
3807
+ }
3808
+ } catch {
3809
+ }
3810
+ }
3811
+ } catch {
3812
+ return false;
3813
+ }
3814
+ }
3724
3815
  function extractFreshRunReport(executionReportPath, targetReportPath, startTime) {
3725
3816
  try {
3726
3817
  if (fs12.existsSync(executionReportPath)) {
@@ -3742,6 +3833,39 @@ function extractFreshRunReport(executionReportPath, targetReportPath, startTime)
3742
3833
  }
3743
3834
  return null;
3744
3835
  }
3836
+ function resolveExitCode(code, signal) {
3837
+ return code ?? (signal ? 1 : 0);
3838
+ }
3839
+ function formatFallbackRunReport(options) {
3840
+ const result = options.exitCode === 0 ? "SUCCESS" : "FAILURE";
3841
+ let reportContent = `## Run Summary
3842
+
3843
+ | Metric | Value |
3844
+ |---|---|
3845
+ | Routine | \`${options.routine}\` |
3846
+ | Timestamp | \`${options.timestamp}\` |
3847
+ | Result | \`${result}\` |
3848
+ | Exit Code | \`${options.exitCode}\` |
3849
+ | Host | \`${options.hostname}\` |
3850
+ | Target | \`${options.targetLabel}\` |
3851
+ | Duration | \`${options.durationSec}s\` |
3852
+ `;
3853
+ if (options.exitCode !== 0) {
3854
+ const errorChunks = [options.output?.trim(), options.stderr?.trim()].filter(Boolean);
3855
+ const combinedError = errorChunks.join("\n");
3856
+ if (combinedError.trim()) {
3857
+ const sanitizedOutput = stripAnsi(combinedError.trim()).split("\n").slice(-15).join("\n");
3858
+ reportContent += `
3859
+ ### Error Output
3860
+
3861
+ \`\`\`
3862
+ ${sanitizedOutput}
3863
+ \`\`\`
3864
+ `;
3865
+ }
3866
+ }
3867
+ return reportContent;
3868
+ }
3745
3869
  async function runLocalRoutine(options) {
3746
3870
  const targetDir = path12.resolve(options.targetDir);
3747
3871
  const routine = options.routine;
@@ -3970,7 +4094,9 @@ Timeout: ${printTimeout}`,
3970
4094
  }
3971
4095
  }
3972
4096
  });
4097
+ let accumulatedStderr = "";
3973
4098
  const stderrParser = new LineBufferedStreamParser((line) => {
4099
+ accumulatedStderr += line + "\n";
3974
4100
  checkTargetDetection(line);
3975
4101
  if (options.verbose) {
3976
4102
  console.error(pc10.dim(`[stderr] ${line}`));
@@ -4014,9 +4140,9 @@ Timeout: ${printTimeout}`,
4014
4140
  spinner?.stop();
4015
4141
  reject(err);
4016
4142
  });
4017
- child.on("close", (code) => {
4143
+ child.on("close", (code, signal) => {
4018
4144
  spinner?.stop();
4019
- resolve(code ?? 0);
4145
+ resolve(resolveExitCode(code, signal));
4020
4146
  });
4021
4147
  });
4022
4148
  } finally {
@@ -4034,28 +4160,16 @@ Timeout: ${printTimeout}`,
4034
4160
  const durationSec = Math.round(durationMs / 1e3);
4035
4161
  let reportContent = extractFreshRunReport(executionReportPath, targetReportPath, startTime) || "";
4036
4162
  if (!reportContent) {
4037
- reportContent = `## Run Summary
4038
-
4039
- | Metric | Value |
4040
- |---|---|
4041
- | Routine | \`${routine}\` |
4042
- | Timestamp | \`${timestamp}\` |
4043
- | Result | \`${exitCode === 0 ? "SUCCESS" : "FAILURE"}\` |
4044
- | Exit Code | \`${exitCode}\` |
4045
- | Host | \`${hostname}\` |
4046
- | Target | \`${targetLabel}\` |
4047
- | Duration | \`${durationSec}s\` |
4048
- `;
4049
- if (exitCode !== 0 && output.trim()) {
4050
- const sanitizedOutput = stripAnsi(output.trim()).split("\n").slice(-15).join("\n");
4051
- reportContent += `
4052
- ### Error Output
4053
-
4054
- \`\`\`
4055
- ${sanitizedOutput}
4056
- \`\`\`
4057
- `;
4058
- }
4163
+ reportContent = formatFallbackRunReport({
4164
+ routine,
4165
+ timestamp,
4166
+ exitCode,
4167
+ hostname,
4168
+ targetLabel,
4169
+ durationSec,
4170
+ output,
4171
+ stderr: accumulatedStderr
4172
+ });
4059
4173
  }
4060
4174
  try {
4061
4175
  fs12.writeFileSync(targetReportPath, reportContent, "utf8");
@@ -4121,6 +4235,7 @@ ${sanitizedOutput}
4121
4235
  success: exitCode === 0,
4122
4236
  exitCode,
4123
4237
  output,
4238
+ stderr: accumulatedStderr,
4124
4239
  worktreePath,
4125
4240
  branchName,
4126
4241
  issueNumber: routineIssueNumber
@@ -4198,8 +4313,9 @@ import pc14 from "picocolors";
4198
4313
  // src/lib/daemon.ts
4199
4314
  import fs14 from "fs";
4200
4315
  import path14 from "path";
4201
- import { spawn as spawn2, execFile as execFile4 } from "child_process";
4202
- import { promisify as promisify4 } from "util";
4316
+ import os3 from "os";
4317
+ import { spawn as spawn2, execFile as execFile5 } from "child_process";
4318
+ import { promisify as promisify5 } from "util";
4203
4319
 
4204
4320
  // src/lib/daemon-keys.ts
4205
4321
  import readline2 from "readline";
@@ -4588,7 +4704,7 @@ function formatDaemonStatusLine(options = {}) {
4588
4704
 
4589
4705
  // src/lib/daemon.ts
4590
4706
  import pc13 from "picocolors";
4591
- var execFileAsync4 = promisify4(execFile4);
4707
+ var execFileAsync5 = promisify5(execFile5);
4592
4708
  function getDaemonStatePath(repoRoot) {
4593
4709
  return path14.join(repoRoot, ".jonah-fleet", "daemon.json");
4594
4710
  }
@@ -4633,7 +4749,7 @@ function filterReviewablePRs(prs) {
4633
4749
  }
4634
4750
  async function getOpenReviewablePRs(repoRoot) {
4635
4751
  try {
4636
- const { stdout } = await execFileAsync4(
4752
+ const { stdout } = await execFileAsync5(
4637
4753
  "gh",
4638
4754
  ["pr", "list", "--state", "open", "--draft=false", "--json", "number,headRefName,title"],
4639
4755
  { cwd: repoRoot }
@@ -4703,6 +4819,99 @@ async function stopDaemon(repoRoot) {
4703
4819
  return false;
4704
4820
  }
4705
4821
  }
4822
+ async function queryOrphanedLocalRunIssues(repoRoot) {
4823
+ try {
4824
+ const { stdout } = await execFileAsync5(
4825
+ "gh",
4826
+ ["issue", "list", "--state", "open", "--label", "runner:local,status:running", "--json", "number,title,createdAt", "--limit", "20"],
4827
+ { cwd: repoRoot }
4828
+ );
4829
+ return JSON.parse(stdout || "[]");
4830
+ } catch {
4831
+ return [];
4832
+ }
4833
+ }
4834
+ async function reconcileOrphanedLocalRuns(optionsOrRepoRoot) {
4835
+ const options = typeof optionsOrRepoRoot === "string" ? { repoRoot: optionsOrRepoRoot } : optionsOrRepoRoot;
4836
+ const { repoRoot } = options;
4837
+ const queryFn = options.queryIssues || queryOrphanedLocalRunIssues;
4838
+ try {
4839
+ const issues = await queryFn(repoRoot);
4840
+ if (!issues || issues.length === 0) return 0;
4841
+ const runsDir = path14.join(repoRoot, ".jonah-fleet", "runs");
4842
+ let reconciledCount = 0;
4843
+ const hostname = os3.hostname();
4844
+ for (const issue of issues) {
4845
+ try {
4846
+ let completedReport;
4847
+ let isSuccess = false;
4848
+ let metaRoutine;
4849
+ if (fs14.existsSync(runsDir)) {
4850
+ const files = fs14.readdirSync(runsDir);
4851
+ for (const file of files) {
4852
+ if (file.endsWith(".json")) {
4853
+ try {
4854
+ const meta = JSON.parse(fs14.readFileSync(path14.join(runsDir, file), "utf8"));
4855
+ if (meta.issueNumber === issue.number) {
4856
+ metaRoutine = meta.routine;
4857
+ const mdFile = file.replace(/\.json$/, ".md");
4858
+ const mdPath = path14.join(runsDir, mdFile);
4859
+ if (fs14.existsSync(mdPath)) {
4860
+ completedReport = fs14.readFileSync(mdPath, "utf8");
4861
+ isSuccess = meta.success === true || meta.exitCode === 0;
4862
+ break;
4863
+ }
4864
+ }
4865
+ } catch {
4866
+ }
4867
+ }
4868
+ }
4869
+ }
4870
+ if (options.reconcileRun) {
4871
+ const ok = await options.reconcileRun(
4872
+ repoRoot,
4873
+ issue.number,
4874
+ completedReport,
4875
+ isSuccess,
4876
+ metaRoutine
4877
+ );
4878
+ if (ok) reconciledCount++;
4879
+ } else if (completedReport) {
4880
+ const ok = await tryReconcileLocalRunIssueAsync(
4881
+ repoRoot,
4882
+ issue.number,
4883
+ completedReport,
4884
+ isSuccess ? 0 : 1,
4885
+ hostname,
4886
+ metaRoutine
4887
+ );
4888
+ if (ok) reconciledCount++;
4889
+ } else {
4890
+ const ok = await tryMarkLocalRunInterruptedAsync(
4891
+ repoRoot,
4892
+ issue.number,
4893
+ hostname,
4894
+ "Host machine daemon process was terminated before completion (e.g. machine reboot or SIGKILL).",
4895
+ metaRoutine || "local-routine"
4896
+ );
4897
+ if (ok) reconciledCount++;
4898
+ }
4899
+ } catch {
4900
+ }
4901
+ }
4902
+ if (reconciledCount > 0) {
4903
+ console.log(
4904
+ pc13.yellow(
4905
+ `
4906
+ \u26A0\uFE0F Reconciled ${reconciledCount} orphaned local routine run issue(s) from previous session.`
4907
+ )
4908
+ );
4909
+ }
4910
+ return reconciledCount;
4911
+ } catch {
4912
+ return 0;
4913
+ }
4914
+ }
4706
4915
  async function drainReviewQueue(drainOptions) {
4707
4916
  const {
4708
4917
  repoRoot,
@@ -5362,6 +5571,8 @@ ${pc13.cyan("Enter Issue # to work (Esc/Enter to cancel):")} `, {
5362
5571
  }
5363
5572
  });
5364
5573
  keyboard?.start();
5574
+ void reconcileOrphanedLocalRuns(repoRoot).catch(() => {
5575
+ });
5365
5576
  if (routines.includes("peer-review")) {
5366
5577
  await performReviewDrain();
5367
5578
  }
@@ -58,6 +58,26 @@ export declare function startBackgroundDaemon(repoRoot: string, options?: Daemon
58
58
  * Stops a running daemon process.
59
59
  */
60
60
  export declare function stopDaemon(repoRoot: string): Promise<boolean>;
61
+ export interface ReconcileOrphanedRunsOptions {
62
+ repoRoot: string;
63
+ queryIssues?: (repoRoot: string) => Promise<Array<{
64
+ number: number;
65
+ title: string;
66
+ createdAt: string;
67
+ }>>;
68
+ reconcileRun?: (repoRoot: string, issueNumber: number, report: string | undefined, isSuccess: boolean, routine?: string) => Promise<boolean>;
69
+ }
70
+ export declare function queryOrphanedLocalRunIssues(repoRoot: string): Promise<Array<{
71
+ number: number;
72
+ title: string;
73
+ createdAt: string;
74
+ }>>;
75
+ /**
76
+ * Scans for open routine run issues labeled `runner:local,status:running` that were abandoned
77
+ * by a process crash, SIGKILL, or host machine reboot, and reconciles them.
78
+ * Operates asynchronously and fails gracefully on network / CLI errors without preventing daemon startup.
79
+ */
80
+ export declare function reconcileOrphanedLocalRuns(optionsOrRepoRoot: string | ReconcileOrphanedRunsOptions): Promise<number>;
61
81
  export interface DrainReviewQueueOptions {
62
82
  repoRoot: string;
63
83
  state?: DaemonState;
@@ -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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"}
@@ -19,6 +19,7 @@ export interface RunLocalRoutineResult {
19
19
  success: boolean;
20
20
  exitCode: number;
21
21
  output: string;
22
+ stderr?: string;
22
23
  worktreePath?: string;
23
24
  branchName?: string;
24
25
  issueNumber?: number;
@@ -139,17 +140,54 @@ export declare function formatInterruptionCard(options: InterruptionCardOptions)
139
140
  * Fails gracefully if offline or unauthenticated.
140
141
  */
141
142
  export declare function tryPostLocalRunMilestone(cwd: string, issueNumber: number, cardContent: string): void;
143
+ /**
144
+ * Posts a milestone comment to a local routine tracking issue asynchronously.
145
+ * Fails gracefully if offline or unauthenticated.
146
+ */
147
+ export declare function tryPostLocalRunMilestoneAsync(cwd: string, issueNumber: number, cardContent: string): Promise<boolean>;
142
148
  /**
143
149
  * Reconciles a GitHub issue for local routine execution.
144
150
  * Closes the issue if success, leaves it open with needs-attention if failure.
145
151
  * Fails gracefully if offline or unauthenticated.
146
152
  */
147
153
  export declare function tryReconcileLocalRunIssue(cwd: string, issueNumber: number, reportContent: string, exitCode: number, hostname: string, routine?: string): void;
154
+ /**
155
+ * Asynchronously marks an interrupted local routine run as failed and posts an interruption card.
156
+ * Leaves the issue open with status:failure,needs-attention for maintainer triage.
157
+ * Fails gracefully if offline or unauthenticated.
158
+ */
159
+ export declare function tryMarkLocalRunInterruptedAsync(cwd: string, issueNumber: number, hostname: string, reason?: string, routine?: string): Promise<boolean>;
160
+ /**
161
+ * Asynchronously reconciles a GitHub issue for local routine execution.
162
+ * Closes the issue if success, leaves it open with needs-attention if failure.
163
+ * Fails gracefully if offline or unauthenticated.
164
+ */
165
+ export declare function tryReconcileLocalRunIssueAsync(cwd: string, issueNumber: number, reportContent: string, exitCode: number, hostname: string, routine?: string): Promise<boolean>;
148
166
  /**
149
167
  * Reads a freshly generated run report from execution or target directory.
150
168
  * Returns null if no fresh report exists (e.g. file missing or older than run start).
151
169
  */
152
170
  export declare function extractFreshRunReport(executionReportPath: string, targetReportPath: string, startTime: number): string | null;
171
+ export interface FallbackReportOptions {
172
+ routine: string;
173
+ timestamp: string;
174
+ exitCode: number;
175
+ hostname: string;
176
+ targetLabel: string;
177
+ durationSec: number;
178
+ output?: string;
179
+ stderr?: string;
180
+ }
181
+ /**
182
+ * Resolves child process exit code, ensuring signals (e.g. SIGTERM, SIGINT)
183
+ * resolve to a non-zero exit code instead of defaulting to 0.
184
+ */
185
+ export declare function resolveExitCode(code: number | null, signal: NodeJS.Signals | string | null): number;
186
+ /**
187
+ * Formats a fallback summary markdown report when no fresh run-report.md was generated.
188
+ * Includes sanitized trailing error output from stdout and/or stderr if exitCode is non-zero.
189
+ */
190
+ export declare function formatFallbackRunReport(options: FallbackReportOptions): string;
153
191
  /**
154
192
  * Runs a routine locally with worktree isolation and Antigravity CLI invocation.
155
193
  */
@@ -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":"AAuBA,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QAC7C,SAAS,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE;YACV,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IACF,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAyB;IAEvC,YAAY,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAEzC;IAEM,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAU/B;IAEM,KAAK,IAAI,IAAI,CAKnB;CACF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAWzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAgDxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAY1F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAoB9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3F,MAAM,CAuBR;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAepB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAUzE;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAa/E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CA0CN;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAoF,EAC5F,OAAO,GAAE,MAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA+ClB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAoBf;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAEnG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAc9E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAubrG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jonah-fleet",
3
- "version": "1.9.2",
3
+ "version": "1.11.0",
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",