@urateam/core 0.1.21 → 0.1.23

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.
Files changed (76) hide show
  1. package/dist/__tests__/deep-review-passes-override.test.d.ts +2 -0
  2. package/dist/__tests__/deep-review-passes-override.test.d.ts.map +1 -0
  3. package/dist/__tests__/deep-review-passes-override.test.js +59 -0
  4. package/dist/__tests__/deep-review-passes-override.test.js.map +1 -0
  5. package/dist/__tests__/notifier.test.js +19 -2
  6. package/dist/__tests__/notifier.test.js.map +1 -1
  7. package/dist/__tests__/openrouter-fanout.test.js +37 -3
  8. package/dist/__tests__/openrouter-fanout.test.js.map +1 -1
  9. package/dist/__tests__/post-fanout-comments.test.js +40 -1
  10. package/dist/__tests__/post-fanout-comments.test.js.map +1 -1
  11. package/dist/__tests__/ralph.test.js +33 -0
  12. package/dist/__tests__/ralph.test.js.map +1 -1
  13. package/dist/__tests__/recover-stuck.test.js +112 -0
  14. package/dist/__tests__/recover-stuck.test.js.map +1 -1
  15. package/dist/__tests__/review-provider-registry.test.js +78 -1
  16. package/dist/__tests__/review-provider-registry.test.js.map +1 -1
  17. package/dist/__tests__/security.test.js +6 -2
  18. package/dist/__tests__/security.test.js.map +1 -1
  19. package/dist/audit/events.d.ts +5 -0
  20. package/dist/audit/events.d.ts.map +1 -1
  21. package/dist/audit/events.js +13 -0
  22. package/dist/audit/events.js.map +1 -1
  23. package/dist/entrypoint.js +7 -13
  24. package/dist/entrypoint.js.map +1 -1
  25. package/dist/executor/ralph.d.ts.map +1 -1
  26. package/dist/executor/ralph.js +19 -1
  27. package/dist/executor/ralph.js.map +1 -1
  28. package/dist/executor/review/openrouter-fanout.d.ts +7 -0
  29. package/dist/executor/review/openrouter-fanout.d.ts.map +1 -1
  30. package/dist/executor/review/openrouter-fanout.js +12 -1
  31. package/dist/executor/review/openrouter-fanout.js.map +1 -1
  32. package/dist/executor/review/post-fanout-comments.d.ts +6 -1
  33. package/dist/executor/review/post-fanout-comments.d.ts.map +1 -1
  34. package/dist/executor/review/post-fanout-comments.js +16 -4
  35. package/dist/executor/review/post-fanout-comments.js.map +1 -1
  36. package/dist/executor/review/review-provider.d.ts +2 -0
  37. package/dist/executor/review/review-provider.d.ts.map +1 -1
  38. package/dist/executor/review/review-provider.js +28 -0
  39. package/dist/executor/review/review-provider.js.map +1 -1
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +2 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/notifier/linear.d.ts.map +1 -1
  45. package/dist/notifier/linear.js +12 -0
  46. package/dist/notifier/linear.js.map +1 -1
  47. package/dist/pipeline/config.d.ts +13 -0
  48. package/dist/pipeline/config.d.ts.map +1 -1
  49. package/dist/pipeline/config.js +38 -0
  50. package/dist/pipeline/config.js.map +1 -1
  51. package/dist/pipeline/index.d.ts +1 -1
  52. package/dist/pipeline/index.d.ts.map +1 -1
  53. package/dist/pipeline/index.js +1 -1
  54. package/dist/pipeline/index.js.map +1 -1
  55. package/dist/pipeline/runner.d.ts.map +1 -1
  56. package/dist/pipeline/runner.js +16 -5
  57. package/dist/pipeline/runner.js.map +1 -1
  58. package/dist/pm/actions/recover-stuck.d.ts +6 -1
  59. package/dist/pm/actions/recover-stuck.d.ts.map +1 -1
  60. package/dist/pm/actions/recover-stuck.js +31 -12
  61. package/dist/pm/actions/recover-stuck.js.map +1 -1
  62. package/dist/pm/scheduler.d.ts.map +1 -1
  63. package/dist/pm/scheduler.js +3 -1
  64. package/dist/pm/scheduler.js.map +1 -1
  65. package/dist/repo/github-from-env.d.ts +7 -0
  66. package/dist/repo/github-from-env.d.ts.map +1 -0
  67. package/dist/repo/github-from-env.js +31 -0
  68. package/dist/repo/github-from-env.js.map +1 -0
  69. package/dist/security/sandbox.d.ts.map +1 -1
  70. package/dist/security/sandbox.js +7 -1
  71. package/dist/security/sandbox.js.map +1 -1
  72. package/dist/types.d.ts +2 -0
  73. package/dist/types.d.ts.map +1 -1
  74. package/dist/types.js +1 -0
  75. package/dist/types.js.map +1 -1
  76. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deep-review-passes-override.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-review-passes-override.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/deep-review-passes-override.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * BEC-163 — env-var override for `deepReviewPasses` so operators can enable
3
+ * BEC-134 OpenRouter fanout without forking the built-in pipeline configs.
4
+ *
5
+ * Default behavior (env unset) is unchanged: every pipeline keeps its
6
+ * compiled-in `deepReviewPasses` value (0 for the built-ins).
7
+ */
8
+ import { describe, it, expect } from "vitest";
9
+ import { defaultConfigs, applyDeepReviewPassesOverride, } from "../pipeline/config.js";
10
+ describe("applyDeepReviewPassesOverride (BEC-163)", () => {
11
+ it("returns configs unchanged when env value is undefined", () => {
12
+ const out = applyDeepReviewPassesOverride(defaultConfigs, undefined);
13
+ expect(out).toEqual(defaultConfigs);
14
+ // Same reference for unchanged map is a nice-to-have but not required.
15
+ for (const [k, cfg] of Object.entries(out)) {
16
+ expect(cfg.deepReviewPasses).toBe(defaultConfigs[k].deepReviewPasses);
17
+ }
18
+ });
19
+ it("sets deepReviewPasses on every pipeline that has a review stage", () => {
20
+ const out = applyDeepReviewPassesOverride(defaultConfigs, "1");
21
+ expect(out["auto-implement"].deepReviewPasses).toBe(1);
22
+ expect(out["bug"].deepReviewPasses).toBe(1);
23
+ expect(out["needs-design"].deepReviewPasses).toBe(1);
24
+ });
25
+ it("does NOT touch pipelines without a review stage (e.g. quick-fix)", () => {
26
+ const out = applyDeepReviewPassesOverride(defaultConfigs, "1");
27
+ // quick-fix has stages: ["implement", "test"] — no review. Fanout would
28
+ // require a review stage to attach to, so the override is meaningless.
29
+ // Leave the default 0 so cost doesn't bump for trivial pipelines.
30
+ expect(out["quick-fix"].deepReviewPasses).toBe(0);
31
+ expect(out["quick-fix"].stages).not.toContain("review");
32
+ });
33
+ it("accepts integer values higher than 1", () => {
34
+ const out = applyDeepReviewPassesOverride(defaultConfigs, "3");
35
+ expect(out["auto-implement"].deepReviewPasses).toBe(3);
36
+ });
37
+ it("accepts 0 to explicitly disable on review-having pipelines", () => {
38
+ // Caller wants to assert: env=0 keeps the default-disabled state but
39
+ // proves the override path executed.
40
+ const out = applyDeepReviewPassesOverride(defaultConfigs, "0");
41
+ expect(out["auto-implement"].deepReviewPasses).toBe(0);
42
+ });
43
+ it("ignores invalid values (non-integer / negative) and returns the input unchanged", () => {
44
+ expect(applyDeepReviewPassesOverride(defaultConfigs, "lots")["auto-implement"].deepReviewPasses).toBe(0);
45
+ expect(applyDeepReviewPassesOverride(defaultConfigs, "-1")["auto-implement"].deepReviewPasses).toBe(0);
46
+ expect(applyDeepReviewPassesOverride(defaultConfigs, "")["auto-implement"].deepReviewPasses).toBe(0);
47
+ // BEC-163 review feedback: parseInt silently truncates "1.5" → 1. Reject
48
+ // floats explicitly so an operator who fat-fingers a decimal sees the
49
+ // ignored-warning instead of a silent partial-match.
50
+ expect(applyDeepReviewPassesOverride(defaultConfigs, "1.5")["auto-implement"].deepReviewPasses).toBe(0);
51
+ expect(applyDeepReviewPassesOverride(defaultConfigs, "1e2")["auto-implement"].deepReviewPasses).toBe(0);
52
+ });
53
+ it("does not mutate the input map", () => {
54
+ const before = JSON.parse(JSON.stringify(defaultConfigs));
55
+ applyDeepReviewPassesOverride(defaultConfigs, "2");
56
+ expect(defaultConfigs).toEqual(before);
57
+ });
58
+ });
59
+ //# sourceMappingURL=deep-review-passes-override.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-review-passes-override.test.js","sourceRoot":"","sources":["../../src/__tests__/deep-review-passes-override.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,6BAA6B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpC,uEAAuE;QACvE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,GAAG,GAAG,6BAA6B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,GAAG,GAAG,6BAA6B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/D,wEAAwE;QACxE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,6BAA6B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,qEAAqE;QACrE,qCAAqC;QACrC,MAAM,GAAG,GAAG,6BAA6B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CACJ,6BAA6B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CACzF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,MAAM,CACJ,6BAA6B,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CACvF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,MAAM,CACJ,6BAA6B,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CACrF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,yEAAyE;QACzE,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,CACJ,6BAA6B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CACxF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,MAAM,CACJ,6BAA6B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CACxF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1D,6BAA6B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -159,7 +159,7 @@ describe("LinearNotifier", () => {
159
159
  expect(body).toContain("1,000 input");
160
160
  expect(body).toContain("500 output");
161
161
  });
162
- it("formats pipeline complete comment correctly (no auto-merge)", async () => {
162
+ it("formats pipeline complete comment correctly (no auto-merge) and transitions to In Review", async () => {
163
163
  const notifier = new TestableLinearNotifier();
164
164
  const run = makeRun();
165
165
  const result = makePipelineResult();
@@ -169,7 +169,24 @@ describe("LinearNotifier", () => {
169
169
  expect(body).toContain("Pipeline Complete");
170
170
  expect(body).toContain("https://github.com/org/repo/pull/42");
171
171
  expect(body).toContain("3");
172
- // "In Review" is now set by onHumanReviewNeeded, not onPipelineComplete
172
+ // BEC-165: any pipeline that ends with a PR but isn't auto-merged must
173
+ // transition to "In Review". Previously this responsibility was delegated
174
+ // to onHumanReviewNeeded — but not every PR-creating runner path calls it
175
+ // (auto-implement with autoMerge:false skips both onHumanReviewNeeded and
176
+ // any state-transition path), leaving Linear stuck on "In Progress" → the
177
+ // recover-stuck → re-run loop documented in BEC-165.
178
+ expect(notifier.transitions).toEqual([{ issueId: "TEAM-123", stateName: "In Review" }]);
179
+ });
180
+ it("BEC-165: pipeline complete without PR (rare) does not transition state", async () => {
181
+ const notifier = new TestableLinearNotifier();
182
+ const run = makeRun();
183
+ // The PipelineResult type declares prUrl as required string; runner.ts
184
+ // passes "" or a real URL. Empty string is the "no PR opened" signal that
185
+ // the production callsite uses (`if (result.prUrl)` falsy check).
186
+ const result = { ...makePipelineResult(), prUrl: "" };
187
+ await notifier.onPipelineComplete(run, result);
188
+ // No PR opened (e.g. no-op run, hard failure earlier) — leave state alone
189
+ // so a separate failure-handler path can decide.
173
190
  expect(notifier.transitions).toEqual([]);
174
191
  });
175
192
  it("transitions to Done when auto-merged", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.test.js","sourceRoot":"","sources":["../../src/__tests__/notifier.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifier.test.js","sourceRoot":"","sources":["../../src/__tests__/notifier.test.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,12 @@ describe("OpenRouterFanoutProvider", () => {
67
67
  expect(failed[0].errorMessage).toContain("boom");
68
68
  expect(ok).toHaveLength(2);
69
69
  });
70
- it("malformed JSON output → run failed with parser error", async () => {
70
+ it("malformed JSON output → run completed with raw output preserved (BEC-158 fallback)", async () => {
71
+ // BEC-158 contract: when the model emits prose that doesn't parse as
72
+ // structured findings, the run should NOT be marked failed. Instead, the
73
+ // raw content is preserved on `rawOutput` so post-fanout-comments can
74
+ // post it as a fallback advisory comment. A parser exception ≠ provider
75
+ // failure; the API call succeeded and we paid for it.
71
76
  chatCompletion.mockResolvedValue({ content: "not json", inputTokens: 1, outputTokens: 1 });
72
77
  const { OpenRouterFanoutProvider } = await import("../executor/review/openrouter-fanout.js");
73
78
  const p = new OpenRouterFanoutProvider({
@@ -75,8 +80,10 @@ describe("OpenRouterFanoutProvider", () => {
75
80
  models: ["m1"], timeoutMs: 1000, maxInputTokens: 100_000,
76
81
  });
77
82
  const runs = await p.runReview(ctx());
78
- expect(runs[0].status).toBe("failed");
79
- expect(runs[0].errorMessage).toContain("not parseable");
83
+ expect(runs[0].status).toBe("completed");
84
+ expect(runs[0].findings).toEqual([]);
85
+ expect(runs[0].rawOutput).toBe("not json");
86
+ expect(runs[0].errorMessage).toBeUndefined();
80
87
  });
81
88
  it("all models fail → returns N failed runs (does not throw)", async () => {
82
89
  chatCompletion.mockRejectedValue(new Error("dead"));
@@ -89,5 +96,32 @@ describe("OpenRouterFanoutProvider", () => {
89
96
  expect(runs).toHaveLength(2);
90
97
  expect(runs.every((r) => r.status === "failed")).toBe(true);
91
98
  });
99
+ describe("BEC-164 maxOutputTokens config", () => {
100
+ it("when unset, no max_tokens is forwarded to chatCompletion (preserves model default)", async () => {
101
+ chatCompletion.mockResolvedValue({ content: validJson, inputTokens: 1, outputTokens: 1 });
102
+ const { OpenRouterFanoutProvider } = await import("../executor/review/openrouter-fanout.js");
103
+ const p = new OpenRouterFanoutProvider({
104
+ apiKey: "k", baseUrl: "https://x/api/v1",
105
+ models: ["m1"], timeoutMs: 1000, maxInputTokens: 100_000,
106
+ // maxOutputTokens intentionally omitted
107
+ });
108
+ await p.runReview(ctx());
109
+ const opts = chatCompletion.mock.calls[0][2];
110
+ expect(opts.maxTokens).toBeUndefined();
111
+ });
112
+ it("when set, maxTokens is forwarded so OpenRouter sends max_tokens in the request body", async () => {
113
+ chatCompletion.mockResolvedValue({ content: validJson, inputTokens: 1, outputTokens: 1 });
114
+ const { OpenRouterFanoutProvider } = await import("../executor/review/openrouter-fanout.js");
115
+ const p = new OpenRouterFanoutProvider({
116
+ apiKey: "k", baseUrl: "https://x/api/v1",
117
+ models: ["m1", "m2"], timeoutMs: 1000, maxInputTokens: 100_000,
118
+ maxOutputTokens: 4000,
119
+ });
120
+ await p.runReview(ctx());
121
+ // Both parallel calls receive the cap.
122
+ expect(chatCompletion.mock.calls[0][2].maxTokens).toBe(4000);
123
+ expect(chatCompletion.mock.calls[1][2].maxTokens).toBe(4000);
124
+ });
125
+ });
92
126
  });
93
127
  //# sourceMappingURL=openrouter-fanout.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter-fanout.test.js","sourceRoot":"","sources":["../../src/__tests__/openrouter-fanout.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter-fanout.test.js","sourceRoot":"","sources":["../../src/__tests__/openrouter-fanout.test.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,16 @@ const failedRun = {
22
22
  durationMs: 200,
23
23
  errorMessage: "rate limited",
24
24
  };
25
+ const rawOutputRun = {
26
+ modelId: "google/gemini-2.5-pro",
27
+ providerId: "openrouter",
28
+ status: "completed",
29
+ findings: [],
30
+ rawOutput: "This is plain prose from the model. It looks good overall, but watch out for the N+1 query in service.ts.",
31
+ inputTokens: 80,
32
+ outputTokens: 40,
33
+ durationMs: 800,
34
+ };
25
35
  describe("postFanoutCommentsToPR", () => {
26
36
  beforeEach(() => {
27
37
  addPRComment.mockReset();
@@ -76,9 +86,38 @@ describe("postFanoutCommentsToPR", () => {
76
86
  .mockRejectedValueOnce(new Error("rate limit"))
77
87
  .mockResolvedValueOnce(undefined);
78
88
  // Should not throw
79
- await expect(postFanoutCommentsToPR({}, "o", "r", 1, [completedRun, failedRun])).resolves.toBeUndefined();
89
+ await expect(postFanoutCommentsToPR({}, "o", "r", 1, [completedRun, failedRun])).resolves.toBeDefined();
80
90
  // Both addPRComment calls were attempted
81
91
  expect(addPRComment).toHaveBeenCalledTimes(2);
82
92
  });
93
+ // BEC-158: fallback advisory comment when structured parse failed
94
+ it("posts raw output as fallback advisory comment when structured parse failed", async () => {
95
+ addPRComment.mockResolvedValue(undefined);
96
+ const { postFanoutCommentsToPR } = await import("../executor/review/post-fanout-comments.js");
97
+ const result = await postFanoutCommentsToPR({}, "o", "r", 1, [rawOutputRun]);
98
+ expect(addPRComment).toHaveBeenCalledOnce();
99
+ const body = addPRComment.mock.calls[0][4];
100
+ expect(body).toContain("google/gemini-2.5-pro");
101
+ expect(body).toContain("raw output, structured parse failed");
102
+ expect(body).toContain("plain prose from the model");
103
+ expect(body).toContain("Advisory only");
104
+ expect(result.fallbackCount).toBe(1);
105
+ });
106
+ it("returns fallbackCount=0 when all runs have structured findings", async () => {
107
+ addPRComment.mockResolvedValue(undefined);
108
+ const { postFanoutCommentsToPR } = await import("../executor/review/post-fanout-comments.js");
109
+ const result = await postFanoutCommentsToPR({}, "o", "r", 1, [completedRun]);
110
+ expect(result.fallbackCount).toBe(0);
111
+ });
112
+ it("returns fallbackCount matching runs with rawOutput", async () => {
113
+ addPRComment.mockResolvedValue(undefined);
114
+ const { postFanoutCommentsToPR } = await import("../executor/review/post-fanout-comments.js");
115
+ const result = await postFanoutCommentsToPR({}, "o", "r", 1, [
116
+ completedRun,
117
+ rawOutputRun,
118
+ failedRun,
119
+ ]);
120
+ expect(result.fallbackCount).toBe(1);
121
+ });
83
122
  });
84
123
  //# sourceMappingURL=post-fanout-comments.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"post-fanout-comments.test.js","sourceRoot":"","sources":["../../src/__tests__/post-fanout-comments.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-fanout-comments.test.js","sourceRoot":"","sources":["../../src/__tests__/post-fanout-comments.test.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,39 @@ describe("checkRequirements", () => {
96
96
  expect(result.evaluationFailed).toBe(true);
97
97
  expect(result.evaluationError).toContain("no parseable structured output");
98
98
  });
99
+ it("passes maxTurns: 15 to query by default (BEC-159)", async () => {
100
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
101
+ query.mockReturnValue((async function* () {
102
+ yield {
103
+ type: "assistant",
104
+ content: [{ type: "text", text: '```json\n{"satisfied": true, "gaps": [], "suggestions": []}\n```' }],
105
+ };
106
+ })());
107
+ delete process.env.RALPH_MAX_TURNS;
108
+ await checkRequirements(issue, makeHandoff(), "/tmp");
109
+ expect(query).toHaveBeenCalledWith(expect.objectContaining({
110
+ options: expect.objectContaining({ maxTurns: 15 }),
111
+ }));
112
+ });
113
+ it("respects RALPH_MAX_TURNS env var (BEC-159)", async () => {
114
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
115
+ query.mockReturnValue((async function* () {
116
+ yield {
117
+ type: "assistant",
118
+ content: [{ type: "text", text: '```json\n{"satisfied": true, "gaps": [], "suggestions": []}\n```' }],
119
+ };
120
+ })());
121
+ process.env.RALPH_MAX_TURNS = "20";
122
+ try {
123
+ await checkRequirements(issue, makeHandoff(), "/tmp");
124
+ expect(query).toHaveBeenCalledWith(expect.objectContaining({
125
+ options: expect.objectContaining({ maxTurns: 20 }),
126
+ }));
127
+ }
128
+ finally {
129
+ delete process.env.RALPH_MAX_TURNS;
130
+ }
131
+ });
99
132
  it("does NOT mark evaluationFailed when agent legitimately returns satisfied: false with gaps", async () => {
100
133
  // Negative-control: a genuine "agent ran successfully and found gaps"
101
134
  // case must not get flagged as eval failure.
@@ -1 +1 @@
1
- {"version":3,"file":"ralph.test.js","sourceRoot":"","sources":["../../src/__tests__/ralph.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph.test.js","sourceRoot":"","sources":["../../src/__tests__/ralph.test.ts"],"names":[],"mappings":"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"}
@@ -163,6 +163,118 @@ describe("recoverStuckInProgressIssues", () => {
163
163
  stateId: "state-todo-1",
164
164
  });
165
165
  });
166
+ it("BEC-165: stuck-In-Progress with completed last run + pr_url moves to In Review (not Backlog)", async () => {
167
+ // Defense-in-depth: even when the runner forgot to move Linear → In Review
168
+ // after PR creation (the original BEC-165 bug at the source), recover-stuck
169
+ // should NOT move the issue back to Backlog and re-trigger the doom loop.
170
+ // It should detect the open PR and move to In Review instead.
171
+ const issue = {
172
+ id: "issue-uuid-completed-with-pr",
173
+ identifier: "BEC-153",
174
+ title: "Stuck issue with completed PR",
175
+ team: Promise.resolve({ id: "team-1" }),
176
+ state: Promise.resolve({ name: "In Progress" }),
177
+ };
178
+ const linearClient = makeLinearClient([issue]);
179
+ const db = makeDb([], [
180
+ {
181
+ issueId: "BEC-153",
182
+ status: "completed",
183
+ startedAt: new Date("2026-05-07T15:13:00Z"),
184
+ prUrl: "https://github.com/JonB32/urateam/pull/172",
185
+ },
186
+ ]);
187
+ const stateMap = new Map([
188
+ ["team-1:Backlog", "state-backlog-1"],
189
+ ["team-1:In Review", "state-in-review-1"],
190
+ ]);
191
+ const result = await recoverStuckInProgressIssues({
192
+ linearClient,
193
+ db: db,
194
+ teamIds: ["team-1"],
195
+ targetState: "Backlog", // caller wanted Backlog…
196
+ maxPerTick: 5,
197
+ stateMap,
198
+ });
199
+ expect(result).toHaveLength(1);
200
+ expect(result[0].lastRunStatus).toBe("completed");
201
+ // …but the open-PR override redirected to In Review.
202
+ expect(result[0].targetState).toBe("In Review");
203
+ expect(linearClient.updateIssue).toHaveBeenCalledWith("issue-uuid-completed-with-pr", {
204
+ stateId: "state-in-review-1",
205
+ });
206
+ });
207
+ it("BEC-165: completed last run WITHOUT pr_url falls through to caller's targetState (genuine no-progress recovery)", async () => {
208
+ // Distinguish from the override path — a completed run with no PR is a
209
+ // legitimate "no work shipped" recovery; should still go to Backlog.
210
+ const issue = {
211
+ id: "issue-uuid-completed-no-pr",
212
+ identifier: "BEC-99",
213
+ title: "Stuck no-op completed run",
214
+ team: Promise.resolve({ id: "team-1" }),
215
+ state: Promise.resolve({ name: "In Progress" }),
216
+ };
217
+ const linearClient = makeLinearClient([issue]);
218
+ const db = makeDb([], [
219
+ {
220
+ issueId: "BEC-99",
221
+ status: "completed",
222
+ startedAt: new Date("2026-04-02"),
223
+ prUrl: null,
224
+ },
225
+ ]);
226
+ const stateMap = new Map([
227
+ ["team-1:Backlog", "state-backlog-1"],
228
+ ["team-1:In Review", "state-in-review-1"],
229
+ ]);
230
+ const result = await recoverStuckInProgressIssues({
231
+ linearClient,
232
+ db: db,
233
+ teamIds: ["team-1"],
234
+ targetState: "Backlog",
235
+ maxPerTick: 5,
236
+ stateMap,
237
+ });
238
+ expect(result[0].targetState).toBe("Backlog");
239
+ expect(linearClient.updateIssue).toHaveBeenCalledWith("issue-uuid-completed-no-pr", {
240
+ stateId: "state-backlog-1",
241
+ });
242
+ });
243
+ it("BEC-165: open-PR override falls back to caller's targetState when In Review state-id is missing", async () => {
244
+ // Defense in depth shouldn't crash if the workspace has no In Review state
245
+ // (some Linear setups customize the column names). Fall back to original
246
+ // behavior so the issue still moves out of stuck In Progress.
247
+ const issue = {
248
+ id: "issue-uuid-no-in-review",
249
+ identifier: "BEC-100",
250
+ title: "Workspace lacks In Review",
251
+ team: Promise.resolve({ id: "team-1" }),
252
+ state: Promise.resolve({ name: "In Progress" }),
253
+ };
254
+ const linearClient = makeLinearClient([issue]);
255
+ const db = makeDb([], [
256
+ {
257
+ issueId: "BEC-100",
258
+ status: "completed",
259
+ startedAt: new Date("2026-04-02"),
260
+ prUrl: "https://github.com/x/y/pull/1",
261
+ },
262
+ ]);
263
+ // Note: stateMap intentionally omits "In Review"
264
+ const stateMap = new Map([["team-1:Backlog", "state-backlog-1"]]);
265
+ const result = await recoverStuckInProgressIssues({
266
+ linearClient,
267
+ db: db,
268
+ teamIds: ["team-1"],
269
+ targetState: "Backlog",
270
+ maxPerTick: 5,
271
+ stateMap,
272
+ });
273
+ expect(result[0].targetState).toBe("Backlog");
274
+ expect(linearClient.updateIssue).toHaveBeenCalledWith("issue-uuid-no-in-review", {
275
+ stateId: "state-backlog-1",
276
+ });
277
+ });
166
278
  it("recovers orphaned issue with no DB record", async () => {
167
279
  const issue = {
168
280
  id: "issue-orphan",
@@ -1 +1 @@
1
- {"version":3,"file":"recover-stuck.test.js","sourceRoot":"","sources":["../../src/__tests__/recover-stuck.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recover-stuck.test.js","sourceRoot":"","sources":["../../src/__tests__/recover-stuck.test.ts"],"names":[],"mappings":"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"}