codeharness 0.35.3 → 0.35.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.35.3" : "0.0.0-dev";
2898
+ var HARNESS_VERSION = true ? "0.35.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-7EZ26ISH.js";
19
+ } from "./chunk-VMNLIAOU.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-7EZ26ISH.js";
43
+ } from "./chunk-VMNLIAOU.js";
44
44
 
45
45
  // src/index.ts
46
46
  import { Command } from "commander";
@@ -6265,18 +6265,20 @@ function registerRunCommand(program) {
6265
6265
  let storiesDone = counts.done;
6266
6266
  let currentStoryKey = "";
6267
6267
  let currentTaskName = "";
6268
+ let displayEpicId = "";
6269
+ let displayStoryKeyForHeader = "";
6268
6270
  const headerRefresh = setInterval(() => {
6269
6271
  if (interrupted) return;
6270
- const epicId = currentStoryKey ? extractEpicId2(currentStoryKey) : "";
6271
- const epic = epicId ? epicData[epicId] : void 0;
6272
+ const epic = displayEpicId ? epicData[displayEpicId] : void 0;
6272
6273
  renderer.updateSprintState({
6273
- storyKey: currentStoryKey,
6274
+ storyKey: displayStoryKeyForHeader || currentStoryKey,
6274
6275
  phase: currentTaskName,
6275
6276
  done: storiesDone,
6276
6277
  total: counts.total,
6277
6278
  totalCost: totalCostUsd,
6278
6279
  elapsed: formatElapsed(Date.now() - sessionStartMs),
6279
- epicId: epicId || void 0,
6280
+ epicId: displayEpicId || void 0,
6281
+ epicTitle: epic?.name,
6280
6282
  epicStoriesDone: epic?.storiesDone,
6281
6283
  epicStoriesTotal: epic?.storiesTotal
6282
6284
  });
@@ -6286,7 +6288,8 @@ function registerRunCommand(program) {
6286
6288
  if (sprintStateResult.success) {
6287
6289
  for (const [epicKey, epic] of Object.entries(sprintStateResult.data.epics ?? {})) {
6288
6290
  const epicId = epicKey.replace("epic-", "");
6289
- epicData[epicId] = { storiesDone: epic.storiesDone ?? 0, storiesTotal: epic.storiesTotal ?? 0 };
6291
+ const e = epic;
6292
+ epicData[epicId] = { name: e.name, storiesDone: e.storiesDone ?? 0, storiesTotal: e.storiesTotal ?? 0 };
6290
6293
  }
6291
6294
  }
6292
6295
  const storyFlowTasks = /* @__PURE__ */ new Set();
@@ -6339,8 +6342,22 @@ function registerRunCommand(program) {
6339
6342
  currentTaskName = event.taskName;
6340
6343
  const inLoop = inEpicPhase && epicLoopTasks.has(event.taskName) && taskStates[event.taskName] === "done";
6341
6344
  const stateKey = inLoop ? `loop:${event.taskName}` : event.taskName;
6342
- const epicId = event.storyKey.startsWith("__epic_") ? event.storyKey.replace("__epic_", "").replace("__", "") : extractEpicId2(event.storyKey);
6343
- const displayStoryKey = event.storyKey.startsWith("__epic_") ? `Epic ${epicId}` : event.storyKey;
6345
+ let epicId;
6346
+ let displayStoryKey;
6347
+ if (event.storyKey.startsWith("__epic_")) {
6348
+ epicId = event.storyKey.replace("__epic_", "").replace("__", "");
6349
+ const epicName = epicData[epicId]?.name;
6350
+ displayStoryKey = epicName ? `${epicName} \u2014 verification` : `Epic ${epicId} verification`;
6351
+ } else if (event.storyKey === "__run__") {
6352
+ epicId = currentStoryKey ? extractEpicId2(currentStoryKey) : "";
6353
+ const epicName = epicId ? epicData[epicId]?.name : void 0;
6354
+ displayStoryKey = epicName ?? (epicId ? `Epic ${epicId}` : "Run");
6355
+ } else {
6356
+ epicId = extractEpicId2(event.storyKey);
6357
+ displayStoryKey = event.storyKey;
6358
+ }
6359
+ displayEpicId = epicId;
6360
+ displayStoryKeyForHeader = displayStoryKey;
6344
6361
  const epic = epicData[epicId];
6345
6362
  renderer.updateSprintState({
6346
6363
  storyKey: displayStoryKey,
@@ -6350,6 +6367,7 @@ function registerRunCommand(program) {
6350
6367
  totalCost: totalCostUsd,
6351
6368
  elapsed: formatElapsed(Date.now() - sessionStartMs),
6352
6369
  epicId,
6370
+ epicTitle: epic?.name,
6353
6371
  epicStoriesDone: epic?.storiesDone ?? 0,
6354
6372
  epicStoriesTotal: epic?.storiesTotal ?? 0
6355
6373
  });
@@ -11204,7 +11222,7 @@ function registerTeardownCommand(program) {
11204
11222
  } else if (otlpMode === "remote-routed") {
11205
11223
  if (!options.keepDocker) {
11206
11224
  try {
11207
- const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-7Q74W5YH.js");
11225
+ const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-RJSBPNHU.js");
11208
11226
  stopCollectorOnly2();
11209
11227
  result.docker.stopped = true;
11210
11228
  if (!isJson) {
@@ -11236,7 +11254,7 @@ function registerTeardownCommand(program) {
11236
11254
  info("Shared stack: kept running (other projects may use it)");
11237
11255
  }
11238
11256
  } else if (isLegacyStack) {
11239
- const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-7Q74W5YH.js");
11257
+ const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-RJSBPNHU.js");
11240
11258
  let stackRunning = false;
11241
11259
  try {
11242
11260
  stackRunning = isStackRunning2(composeFile);
@@ -14223,7 +14241,7 @@ function registerDriversCommand(program) {
14223
14241
  }
14224
14242
 
14225
14243
  // src/index.ts
14226
- var VERSION = true ? "0.35.3" : "0.0.0-dev";
14244
+ var VERSION = true ? "0.35.5" : "0.0.0-dev";
14227
14245
  function createProgram() {
14228
14246
  const program = new Command();
14229
14247
  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.35.3",
3
+ "version": "0.35.5",
4
4
  "type": "module",
5
5
  "description": "CLI for codeharness — makes autonomous coding agents produce software that actually works",
6
6
  "bin": {