codeharness 0.31.4 → 0.31.5

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.
@@ -2895,7 +2895,7 @@ function generateDockerfileTemplate(projectDir, stackOrDetections) {
2895
2895
  }
2896
2896
 
2897
2897
  // src/modules/infra/init-project.ts
2898
- var HARNESS_VERSION = true ? "0.31.4" : "0.0.0-dev";
2898
+ var HARNESS_VERSION = true ? "0.31.5" : "0.0.0-dev";
2899
2899
  function failResult(opts, error) {
2900
2900
  return {
2901
2901
  status: "fail",
@@ -16,7 +16,7 @@ import {
16
16
  stopCollectorOnly,
17
17
  stopSharedStack,
18
18
  stopStack
19
- } from "./chunk-WI2XM5WP.js";
19
+ } from "./chunk-3SUFGHUW.js";
20
20
  export {
21
21
  checkRemoteEndpoint,
22
22
  cleanupOrphanedContainers,
package/dist/index.js CHANGED
@@ -40,7 +40,7 @@ import {
40
40
  validateDockerfile,
41
41
  warn,
42
42
  writeState
43
- } from "./chunk-WI2XM5WP.js";
43
+ } from "./chunk-3SUFGHUW.js";
44
44
 
45
45
  // src/index.ts
46
46
  import { Command } from "commander";
@@ -5202,38 +5202,21 @@ function WorkflowGraph({ flow, currentTask, taskStates, taskMeta }) {
5202
5202
  /* @__PURE__ */ jsx2(TaskNode, { name: tn, status, spinnerFrame, driver }, `lt-${j}`)
5203
5203
  );
5204
5204
  }
5205
- const loopDone = loopBlock.loop.every((t) => (taskStates[`loop:${t}`] ?? taskStates[t]) === "done");
5206
- if (loopDone) {
5207
- let afterLoop = false;
5208
- for (const step of flow) {
5209
- if (afterLoop && typeof step === "string") {
5210
- elements2.push(/* @__PURE__ */ jsx2(Text2, { children: " \u2192 " }, `post-a-${step}`));
5211
- elements2.push(
5212
- /* @__PURE__ */ jsx2(TaskNode, { name: step, status: taskStates[step], spinnerFrame, driver: meta[step]?.driver }, `post-${step}`)
5213
- );
5214
- }
5215
- if (isLoopBlock2(step)) afterLoop = true;
5216
- }
5217
- }
5218
5205
  return /* @__PURE__ */ jsx2(Box2, { flexDirection: "column", children: /* @__PURE__ */ jsxs2(Text2, { children: [
5219
5206
  " ",
5220
5207
  elements2
5221
5208
  ] }) });
5222
5209
  }
5223
5210
  const elements = [];
5224
- let passedCurrent = false;
5225
5211
  for (const step of flow) {
5226
5212
  if (isLoopBlock2(step)) break;
5227
- if (typeof step === "string") {
5228
- if (elements.length > 0) {
5229
- elements.push(/* @__PURE__ */ jsx2(Text2, { children: " \u2192 " }, `a-${step}`));
5230
- }
5231
- elements.push(
5232
- /* @__PURE__ */ jsx2(TaskNode, { name: step, status: taskStates[step], spinnerFrame, driver: meta[step]?.driver }, `t-${step}`)
5233
- );
5234
- if (step === currentTask) passedCurrent = true;
5235
- if (passedCurrent && step !== currentTask) break;
5213
+ if (typeof step !== "string") continue;
5214
+ if (elements.length > 0) {
5215
+ elements.push(/* @__PURE__ */ jsx2(Text2, { children: " \u2192 " }, `a-${step}`));
5236
5216
  }
5217
+ elements.push(
5218
+ /* @__PURE__ */ jsx2(TaskNode, { name: step, status: taskStates[step], spinnerFrame, driver: meta[step]?.driver }, `t-${step}`)
5219
+ );
5237
5220
  }
5238
5221
  return /* @__PURE__ */ jsx2(Box2, { flexDirection: "column", children: /* @__PURE__ */ jsxs2(Text2, { children: [
5239
5222
  " ",
@@ -5678,8 +5661,9 @@ function startRenderer(options) {
5678
5661
  const onQuit = options?.onQuit;
5679
5662
  const inkInstance = inkRender(/* @__PURE__ */ jsx9(App, { state, onCycleLane: () => cycleLane(), onQuit: onQuit ? () => onQuit() : void 0 }), {
5680
5663
  exitOnCtrlC: false,
5681
- patchConsole: !options?._forceTTY,
5682
- maxFps: 15
5664
+ patchConsole: false,
5665
+ // Disable console patching to prevent flicker
5666
+ maxFps: 10
5683
5667
  });
5684
5668
  function rerender() {
5685
5669
  if (!cleaned) {
@@ -5689,7 +5673,7 @@ function startRenderer(options) {
5689
5673
  }
5690
5674
  const heartbeat = setInterval(() => {
5691
5675
  if (!cleaned) rerender();
5692
- }, 200);
5676
+ }, 500);
5693
5677
  function onSigint() {
5694
5678
  cleanupFull();
5695
5679
  }
@@ -6307,6 +6291,7 @@ function registerRunCommand(program) {
6307
6291
  else if (status === "failed") storyEntries.push({ key, status: "failed" });
6308
6292
  }
6309
6293
  renderer.updateStories(storyEntries);
6294
+ renderer.updateWorkflowState(parsedWorkflow.flow, null, { ...taskStates }, { ...taskMeta });
6310
6295
  const onEvent = (event) => {
6311
6296
  if (event.type === "stream-event" && event.streamEvent) {
6312
6297
  renderer.update(event.streamEvent, event.driverName);
@@ -11264,7 +11249,7 @@ function registerTeardownCommand(program) {
11264
11249
  } else if (otlpMode === "remote-routed") {
11265
11250
  if (!options.keepDocker) {
11266
11251
  try {
11267
- const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-KXQ6RJW6.js");
11252
+ const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-LGTPM2VD.js");
11268
11253
  stopCollectorOnly2();
11269
11254
  result.docker.stopped = true;
11270
11255
  if (!isJson) {
@@ -11296,7 +11281,7 @@ function registerTeardownCommand(program) {
11296
11281
  info("Shared stack: kept running (other projects may use it)");
11297
11282
  }
11298
11283
  } else if (isLegacyStack) {
11299
- const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-KXQ6RJW6.js");
11284
+ const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-LGTPM2VD.js");
11300
11285
  let stackRunning = false;
11301
11286
  try {
11302
11287
  stackRunning = isStackRunning2(composeFile);
@@ -14283,7 +14268,7 @@ function registerDriversCommand(program) {
14283
14268
  }
14284
14269
 
14285
14270
  // src/index.ts
14286
- var VERSION = true ? "0.31.4" : "0.0.0-dev";
14271
+ var VERSION = true ? "0.31.5" : "0.0.0-dev";
14287
14272
  function createProgram() {
14288
14273
  const program = new Command();
14289
14274
  program.name("codeharness").description("Makes autonomous coding agents produce software that actually works").version(VERSION).option("--json", "Output in machine-readable JSON format");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeharness",
3
- "version": "0.31.4",
3
+ "version": "0.31.5",
4
4
  "type": "module",
5
5
  "description": "CLI for codeharness — makes autonomous coding agents produce software that actually works",
6
6
  "bin": {