lastlight-workflow-engine 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,11 @@
1
1
  /**
2
- * Minimal expression evaluator for generic loop `until` conditions.
2
+ * Minimal expression evaluator for generic loop `until` conditions and
3
+ * phase-level `skip_if` guards.
3
4
  *
4
5
  * Supported forms:
5
6
  * output.contains('text') — true if the output string contains 'text'
7
+ * a.b.c.contains('text') — same, against any dotted path in the context
8
+ * (`output` is just the degenerate one-segment case)
6
9
  * variable == 'value' — equality check against the context map
7
10
  * variable != 'value' — inequality check against the context map
8
11
  *
@@ -26,3 +29,17 @@ export interface LoopEvalContext {
26
29
  * Returns false (safe default) for any unrecognised expression.
27
30
  */
28
31
  export declare function evalUntilExpression(expr: string, ctx: LoopEvalContext): boolean;
32
+ /**
33
+ * Evaluate a phase's `skip_if` guard against the run's render context.
34
+ *
35
+ * Returns the **first matching expression** (so the caller can name it in the
36
+ * skip reason) or `undefined` when none match. The list is OR-ed: the
37
+ * production consumer is "skip the fix phase when the diagnosis landed in any
38
+ * of the non-fixable classes", where one expression per class reads as the
39
+ * class list it is. AND is expressible by collapsing to a single expression.
40
+ *
41
+ * Safe defaults throughout — an unrecognised expression and an absent variable
42
+ * both evaluate false, so a malformed or not-yet-populated guard **runs** the
43
+ * phase rather than silently swallowing it.
44
+ */
45
+ export declare function evalSkipIf(expressions: readonly string[], ctx: LoopEvalContext): string | undefined;
@@ -1,8 +1,11 @@
1
1
  /**
2
- * Minimal expression evaluator for generic loop `until` conditions.
2
+ * Minimal expression evaluator for generic loop `until` conditions and
3
+ * phase-level `skip_if` guards.
3
4
  *
4
5
  * Supported forms:
5
6
  * output.contains('text') — true if the output string contains 'text'
7
+ * a.b.c.contains('text') — same, against any dotted path in the context
8
+ * (`output` is just the degenerate one-segment case)
6
9
  * variable == 'value' — equality check against the context map
7
10
  * variable != 'value' — inequality check against the context map
8
11
  *
@@ -39,10 +42,19 @@ function coerceBool(v) {
39
42
  */
40
43
  export function evalUntilExpression(expr, ctx) {
41
44
  const trimmed = expr.trim();
42
- // output.contains('text') or output.contains("text")
43
- const containsMatch = trimmed.match(/^output\.contains\(['"](.+)['"]\)$/);
45
+ // <dotted.path>.contains('text') — `output.contains(...)` is the one-segment
46
+ // case (the only form the generic loop uses). A longer path lets a `skip_if`
47
+ // read a *sibling* value the loop never needed, e.g.
48
+ // `phaseOutputs.diagnosis.contains('class=flaky')`.
49
+ const containsMatch = trimmed.match(/^([\w.]+)\.contains\(['"](.+)['"]\)$/);
44
50
  if (containsMatch) {
45
- return String(ctx.output ?? "").includes(containsMatch[1]);
51
+ const [, key, needle] = containsMatch;
52
+ const v = readPath(ctx, key);
53
+ // Strings/numbers only — stringifying an object yields "[object Object]",
54
+ // which is a substring match waiting to surprise someone.
55
+ if (typeof v !== "string" && typeof v !== "number")
56
+ return false;
57
+ return String(v).includes(needle);
46
58
  }
47
59
  // dotted.path == true / == false / != true / != false (bare boolean literal)
48
60
  const boolMatch = trimmed.match(/^([\w.]+)\s*(==|!=)\s*(true|false)$/);
@@ -71,4 +83,20 @@ export function evalUntilExpression(expr, ctx) {
71
83
  // Unrecognised — safe default
72
84
  return false;
73
85
  }
86
+ /**
87
+ * Evaluate a phase's `skip_if` guard against the run's render context.
88
+ *
89
+ * Returns the **first matching expression** (so the caller can name it in the
90
+ * skip reason) or `undefined` when none match. The list is OR-ed: the
91
+ * production consumer is "skip the fix phase when the diagnosis landed in any
92
+ * of the non-fixable classes", where one expression per class reads as the
93
+ * class list it is. AND is expressible by collapsing to a single expression.
94
+ *
95
+ * Safe defaults throughout — an unrecognised expression and an absent variable
96
+ * both evaluate false, so a malformed or not-yet-populated guard **runs** the
97
+ * phase rather than silently swallowing it.
98
+ */
99
+ export function evalSkipIf(expressions, ctx) {
100
+ return expressions.find((expr) => evalUntilExpression(expr, ctx));
101
+ }
74
102
  //# sourceMappingURL=loop-eval.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-eval.js","sourceRoot":"","sources":["../../src/core/loop-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-eval.js","sourceRoot":"","sources":["../../src/core/loop-eval.ts"],"names":[],"mappings":"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"}
@@ -127,11 +127,38 @@ export declare class PhaseExecutor {
127
127
  /** Render a command/script phase's template fields into a {@link CommandSpec}. */
128
128
  private buildCommandSpec;
129
129
  private runCommandPhaseCall;
130
+ /**
131
+ * The phase's kill timeout, with a `{ from: … }` reference resolved against
132
+ * this run's context (so `fix.gateTimeoutSeconds` is the value that bounds
133
+ * the gate, not the literal the YAML shipped with).
134
+ */
135
+ private phaseTimeoutSeconds;
130
136
  /**
131
137
  * Evaluate a `generic_loop.until_bash` condition INSIDE the sandbox (against
132
138
  * the persisted workspace), replacing the old harness-host `execSync`. Exit 0
133
139
  * ⇒ loop complete. The check inherits the phase's egress; no session log is
134
140
  * written (it's an internal loop condition, not a user-facing phase).
141
+ *
142
+ * **It gets its own `executions` row.** This is a real command in the real
143
+ * sandbox — a full CI gate on a big repo, minutes of it (prod run `49c101aa`
144
+ * spent 6m48s here, a third of the whole run). It used to be recorded
145
+ * NOWHERE: no phase, no ledger row, no pipeline node, no timer, and the
146
+ * iteration's own phase-history entry was still withheld pending its verdict,
147
+ * so every reader — dashboard, CLI, admin API — showed a run that looked
148
+ * finished-but-stuck. Recording `started_at` BEFORE the command and the
149
+ * verdict after makes the gap self-describing: an unfinished row is exactly
150
+ * how every other long operation in the engine says "in flight, since N",
151
+ * and the same renderers already know how to draw it.
152
+ *
153
+ * Two deliberate choices in the row:
154
+ * - It bypasses `runPhaseLedger` (and so `shouldRunPhase`). A condition must
155
+ * be re-evaluated every time it is asked; a dedup hit that replayed a
156
+ * stale verdict against a workspace that has since changed is precisely
157
+ * the bug this row exists to expose.
158
+ * - `success` records whether the check RAN, not what it said. A `false`
159
+ * verdict is the loop working as designed (iterate again) and must not
160
+ * paint the phase red or count as a failure; the verdict lands in
161
+ * `stop_reason` as `condition_met` / `condition_not_met`.
135
162
  */
136
163
  private runUntilBash;
137
164
  /**
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
2
2
  import { OPENINFERENCE_CHAIN, OPENINFERENCE_SPAN_KIND } from "./types.js";
3
3
  import { phaseSkillNames } from "./schema.js";
4
4
  import { renderTemplate } from "./templates.js";
5
+ import { resolveTemplatedNumber } from "./templated-number.js";
5
6
  import { evalUntilExpression } from "./loop-eval.js";
6
7
  import { parseReviewerVerdict } from "./verdict.js";
7
8
  import { PhaseRef } from "./phase-ref.js";
@@ -284,6 +285,7 @@ export async function runCommandPhase(workflowName, phaseName, taskId, triggerId
284
285
  }
285
286
  // ── PhaseExecutor ────────────────────────────────────────────────────────────
286
287
  const MAX_PREV_OUTPUT_BYTES = 10 * 1024; // cap accumulated generic-loop output at 10KB
288
+ const MAX_UNTIL_OUTPUT_BYTES = 8 * 1024; // cap the until_bash gate's recorded stdout at 8KB
287
289
  export class PhaseExecutor {
288
290
  run;
289
291
  reporter;
@@ -498,24 +500,104 @@ export class PhaseExecutor {
498
500
  }
499
501
  async runCommandPhaseCall(label, phase, spec, sandboxEnv) {
500
502
  const { definition, config, workflowId, githubAccess, taskId, triggerId } = this.run;
501
- return runCommandPhase(definition.name, label, taskId, triggerId, spec, phaseConfigFor(config, phase, this.ports.assets), this.ledgerDeps, workflowId, githubAccess, phase.timeout_seconds, sandboxEnv);
503
+ return runCommandPhase(definition.name, label, taskId, triggerId, spec, phaseConfigFor(config, phase, this.ports.assets), this.ledgerDeps, workflowId, githubAccess, this.phaseTimeoutSeconds(phase), sandboxEnv);
504
+ }
505
+ /**
506
+ * The phase's kill timeout, with a `{ from: … }` reference resolved against
507
+ * this run's context (so `fix.gateTimeoutSeconds` is the value that bounds
508
+ * the gate, not the literal the YAML shipped with).
509
+ */
510
+ phaseTimeoutSeconds(phase) {
511
+ return resolveTemplatedNumber(phase.timeout_seconds, this.run.ctx, `${phase.name}.timeout_seconds`);
502
512
  }
503
513
  /**
504
514
  * Evaluate a `generic_loop.until_bash` condition INSIDE the sandbox (against
505
515
  * the persisted workspace), replacing the old harness-host `execSync`. Exit 0
506
516
  * ⇒ loop complete. The check inherits the phase's egress; no session log is
507
517
  * written (it's an internal loop condition, not a user-facing phase).
518
+ *
519
+ * **It gets its own `executions` row.** This is a real command in the real
520
+ * sandbox — a full CI gate on a big repo, minutes of it (prod run `49c101aa`
521
+ * spent 6m48s here, a third of the whole run). It used to be recorded
522
+ * NOWHERE: no phase, no ledger row, no pipeline node, no timer, and the
523
+ * iteration's own phase-history entry was still withheld pending its verdict,
524
+ * so every reader — dashboard, CLI, admin API — showed a run that looked
525
+ * finished-but-stuck. Recording `started_at` BEFORE the command and the
526
+ * verdict after makes the gap self-describing: an unfinished row is exactly
527
+ * how every other long operation in the engine says "in flight, since N",
528
+ * and the same renderers already know how to draw it.
529
+ *
530
+ * Two deliberate choices in the row:
531
+ * - It bypasses `runPhaseLedger` (and so `shouldRunPhase`). A condition must
532
+ * be re-evaluated every time it is asked; a dedup hit that replayed a
533
+ * stale verdict against a workspace that has since changed is precisely
534
+ * the bug this row exists to expose.
535
+ * - `success` records whether the check RAN, not what it said. A `false`
536
+ * verdict is the loop working as designed (iterate again) and must not
537
+ * paint the phase red or count as a failure; the verdict lands in
538
+ * `stop_reason` as `condition_met` / `condition_not_met`.
508
539
  */
509
- async runUntilBash(command, phase) {
510
- const { config, githubAccess, taskId, triggerId, definition, workflowId } = this.run;
540
+ async runUntilBash(command, phase, iteration) {
541
+ const { config, githubAccess, taskId, triggerId, definition, workflowId, store: db } = this.run;
542
+ const label = PhaseRef.iterCheck(phase.name, iteration).format();
543
+ const startedAt = Date.now();
544
+ const executionId = db ? randomUUID() : undefined;
545
+ if (db && executionId) {
546
+ try {
547
+ db.executions.recordStart({
548
+ id: executionId,
549
+ triggerType: "webhook",
550
+ triggerId,
551
+ skill: `${definition.name}:${label}`,
552
+ repo: githubAccess?.repo,
553
+ issueNumber: issueNumberFromTrigger(triggerId),
554
+ startedAt: new Date(startedAt).toISOString(),
555
+ workflowRunId: workflowId,
556
+ });
557
+ }
558
+ catch (err) {
559
+ console.warn(`[runner] Failed to record until_bash check row for ${label}:`, err);
560
+ }
561
+ }
562
+ let met = false;
563
+ let output = "";
564
+ let error;
511
565
  try {
512
566
  validateShellCommand(command);
513
- const res = await this.ports.agent.runCommand({ kind: "bash", command }, { ...phaseConfigFor(config, phase, this.ports.assets), telemetry: { workflowName: definition.name, phaseName: `${phase.name}_until`, triggerId, workflowRunId: workflowId } }, { taskId, githubAccess, timeoutSeconds: phase.timeout_seconds ?? 30, writeSession: false });
514
- return res.success;
567
+ const res = await this.ports.agent.runCommand({ kind: "bash", command }, { ...phaseConfigFor(config, phase, this.ports.assets), telemetry: { workflowName: definition.name, phaseName: label, triggerId, workflowRunId: workflowId } }, {
568
+ taskId,
569
+ githubAccess,
570
+ timeoutSeconds: this.phaseTimeoutSeconds(phase) ?? 30,
571
+ writeSession: false,
572
+ });
573
+ met = res.success;
574
+ output = res.output ?? "";
515
575
  }
516
- catch {
517
- return false;
576
+ catch (err) {
577
+ error = err instanceof Error ? err.message : String(err);
518
578
  }
579
+ if (db && executionId) {
580
+ try {
581
+ db.executions.recordFinish(executionId, {
582
+ success: error === undefined,
583
+ error,
584
+ turns: 0,
585
+ durationMs: Date.now() - startedAt,
586
+ stopReason: error !== undefined ? "error_fatal" : met ? "condition_met" : "condition_not_met",
587
+ });
588
+ // The gate's own output is the artifact you want when asking "why did
589
+ // this loop keep going", and `writeSession: false` means no session
590
+ // jsonl carries it — so `output_text` is the only copy that exists.
591
+ // Nothing renders `output_text` today (it backs the scratch
592
+ // `lastOutputExecutionId` indirection); it is queryable on the row, and
593
+ // it is the column any future surface would read.
594
+ db.executions.recordOutputText(executionId, `$ ${command}\n\n${output.length > MAX_UNTIL_OUTPUT_BYTES ? output.slice(-MAX_UNTIL_OUTPUT_BYTES) : output}`);
595
+ }
596
+ catch (err) {
597
+ console.warn(`[runner] Failed to finish until_bash check row for ${label}:`, err);
598
+ }
599
+ }
600
+ return met;
519
601
  }
520
602
  /**
521
603
  * Evaluate the `contains_BLOCKED` rule. Returns "fail" when the workflow
@@ -762,7 +844,10 @@ export class PhaseExecutor {
762
844
  async runGenericLoop(phase, outputs) {
763
845
  const loop = phase.generic_loop;
764
846
  const phaseName = phase.name;
765
- const MAX_ITER = loop.max_iterations;
847
+ // Resolved ONCE, before the first iteration: the bound a loop advertised at
848
+ // `on_start` must be the bound it is actually held to, and re-resolving per
849
+ // iteration would let a `scratch` write move the goalposts mid-loop.
850
+ const MAX_ITER = resolveTemplatedNumber(loop.max_iterations, this.run.ctx, `${phaseName}.generic_loop.max_iterations`);
766
851
  const { store: db, workflowId, scratch, config } = this.run;
767
852
  const results = [];
768
853
  // Reply-gate loops resume mid-flight: read the saved iteration from scratch.
@@ -778,7 +863,22 @@ export class PhaseExecutor {
778
863
  let previousOutput = (scratchSlot.lastOutputExecutionId && db
779
864
  ? db.executions.getExecutionOutput(scratchSlot.lastOutputExecutionId) ?? ""
780
865
  : scratchSlot.lastOutput ?? "");
781
- await this.reporter.step(phaseName, "running");
866
+ // The LAST iteration's raw output — what the phase signs off with, and so
867
+ // what the `on_output.requires_marker` postcondition is checked against
868
+ // below. `previousOutput` can't stand in: it's the accumulated, truncated
869
+ // transcript and it's empty under `fresh_context`.
870
+ let lastIterOutput = "";
871
+ // Set only once an iteration has produced a real turn. Left false on every
872
+ // path that ends the loop WITHOUT one — a deduplicated (already-completed)
873
+ // phase on resume, the `on_soft_failure: complete` advance, and a resume
874
+ // that re-enters already at `max_iterations` — so none of them can trip the
875
+ // postcondition below. `runStandard` exempts the same dedup case by
876
+ // returning before its own marker check.
877
+ let markerApplies = false;
878
+ await this.reporter.step(phaseName, "running", phase.messages?.on_start, {
879
+ iteration: resumeFromIter,
880
+ maxIterations: MAX_ITER,
881
+ });
782
882
  while (!complete && iteration < MAX_ITER) {
783
883
  iteration++;
784
884
  const iterLabel = PhaseRef.iter(phaseName, iteration).format();
@@ -855,10 +955,37 @@ export class PhaseExecutor {
855
955
  return { results, status: "failed", outputVars };
856
956
  }
857
957
  const iterOutput = ir.result.output || "";
958
+ lastIterOutput = iterOutput;
959
+ markerApplies = true;
858
960
  if (!loop.fresh_context) {
859
961
  const combined = previousOutput ? `${previousOutput}\n${iterOutput}` : iterOutput;
860
962
  previousOutput = combined.length > MAX_PREV_OUTPUT_BYTES ? combined.slice(-MAX_PREV_OUTPUT_BYTES) : combined;
861
963
  }
964
+ // ── The iteration's work is DONE here ──────────────────────────────────
965
+ //
966
+ // Everything below (the `until` expression, and especially the
967
+ // `until_bash` sandbox command) is the LOOP asking "are we finished?",
968
+ // not the iteration still working. Persisting the iteration's output and
969
+ // its phase-history entry only after that answer arrived meant the run's
970
+ // own state lied for as long as the check took: prod run `49c101aa` sat
971
+ // for 6m48s advertising `currentPhase: "diagnose"` — a phase that had
972
+ // ended 12 minutes earlier — with `fix_iter_1` absent from
973
+ // `phaseHistory` although it had completed. So record both NOW.
974
+ //
975
+ // The condition-met branch below appends a SECOND entry for the same
976
+ // label. That is deliberate: they are two distinct events (the work
977
+ // finished at T1, the loop was declared complete at T2), and keeping
978
+ // them apart is what makes the gap legible instead of invisible. The
979
+ // reader contract that makes a repeated label safe is: **last entry
980
+ // wins**, everywhere. The dashboard pipeline already folded history into
981
+ // a `Map` keyed by phase, and both resume paths (`resume.ts`,
982
+ // `simple.ts`) fold it into a `Set` of names; `PhaseDetailPanel` was the
983
+ // one reader that took the FIRST match and now takes the last, so the
984
+ // summary it shows and the summary the pipeline shows agree.
985
+ const iterExecutionId = "executionId" in ir ? ir.executionId : undefined;
986
+ if (iterExecutionId && db)
987
+ db.executions.recordOutputText(iterExecutionId, iterOutput);
988
+ this.reporter.persistPhase(iterLabel, `iteration ${iteration} — work complete`);
862
989
  let conditionMet = false;
863
990
  if (loop.until) {
864
991
  conditionMet = evalUntilExpression(loop.until, {
@@ -870,11 +997,8 @@ export class PhaseExecutor {
870
997
  });
871
998
  }
872
999
  if (!conditionMet && loop.until_bash) {
873
- conditionMet = await this.runUntilBash(loop.until_bash, phase);
1000
+ conditionMet = await this.runUntilBash(loop.until_bash, phase, iteration);
874
1001
  }
875
- const iterExecutionId = "executionId" in ir ? ir.executionId : undefined;
876
- if (iterExecutionId && db)
877
- db.executions.recordOutputText(iterExecutionId, iterOutput);
878
1002
  if (conditionMet) {
879
1003
  complete = true;
880
1004
  if (scratchKey && db && workflowId) {
@@ -886,7 +1010,10 @@ export class PhaseExecutor {
886
1010
  scratch[scratchKey] = slot;
887
1011
  }
888
1012
  this.reporter.persistPhase(iterLabel, `iteration ${iteration} — condition met`);
889
- await this.reporter.step(phaseName, "done");
1013
+ await this.reporter.step(phaseName, "done", phase.messages?.on_success, {
1014
+ iteration,
1015
+ maxIterations: MAX_ITER,
1016
+ });
890
1017
  break;
891
1018
  }
892
1019
  // Interactive gate between iterations.
@@ -936,7 +1063,11 @@ export class PhaseExecutor {
936
1063
  }
937
1064
  return { results, status: "succeeded", paused: true };
938
1065
  }
939
- this.reporter.persistPhase(iterLabel);
1066
+ // (No persistPhase here any more — a non-final iteration is recorded the
1067
+ // moment its work finished, above, not after the condition said "again".
1068
+ // The interactive gate above `return`s, so it never reached this line;
1069
+ // a paused round is now recorded too, which is what the notifier's
1070
+ // re-seeded `completed` set wanted all along.)
940
1071
  }
941
1072
  if (!complete) {
942
1073
  await this.reporter.step(phaseName, "failed", phase.messages?.on_failure, {
@@ -947,6 +1078,27 @@ export class PhaseExecutor {
947
1078
  const outputVars = phase.output_var
948
1079
  ? { [phase.output_var]: { completed: complete, iterations: iteration } }
949
1080
  : undefined;
1081
+ // Postcondition marker — the same rule `runStandard` enforces, which a loop
1082
+ // node silently ignored: a phase that declared `on_output.requires_marker`
1083
+ // and then grew a `generic_loop` lost the postcondition without a word,
1084
+ // which is precisely the silent-no-op the marker exists to catch. Checked
1085
+ // against the LAST iteration's output: that turn is the one reporting the
1086
+ // outcome, and an earlier iteration is by definition mid-loop.
1087
+ //
1088
+ // Reaching `max_iterations` without the condition is NOT a failure here (a
1089
+ // fix loop that runs out of iterations reports `outcome=gave-up`, which is
1090
+ // a correct outcome); only the absent sign-off is.
1091
+ const marker = phase.on_output?.requires_marker;
1092
+ if (marker && markerApplies && !lastIterOutput.includes(marker)) {
1093
+ const error = `phase produced no outcome — missing completion marker "${marker}"`;
1094
+ await this.reporter.step(phaseName, "failed", phase.messages?.on_failure, {
1095
+ iteration,
1096
+ maxIterations: MAX_ITER,
1097
+ });
1098
+ this.reporter.failWorkflow(error);
1099
+ results.push({ phase: phaseName, success: false, output: lastIterOutput, error });
1100
+ return { results, status: "failed", outputVars };
1101
+ }
950
1102
  return { results, status: "succeeded", outputVars };
951
1103
  }
952
1104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"phase-executor.js","sourceRoot":"","sources":["../../src/core/phase-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase-executor.js","sourceRoot":"","sources":["../../src/core/phase-executor.ts"],"names":[],"mappings":"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"}