codeharness 0.25.7 → 0.25.8

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.
@@ -3207,7 +3207,7 @@ function generateDockerfileTemplate(projectDir, stackOrDetections) {
3207
3207
  }
3208
3208
 
3209
3209
  // src/modules/infra/init-project.ts
3210
- var HARNESS_VERSION = true ? "0.25.7" : "0.0.0-dev";
3210
+ var HARNESS_VERSION = true ? "0.25.8" : "0.0.0-dev";
3211
3211
  function failResult(opts, error) {
3212
3212
  return {
3213
3213
  status: "fail",
@@ -16,7 +16,7 @@ import {
16
16
  stopCollectorOnly,
17
17
  stopSharedStack,
18
18
  stopStack
19
- } from "./chunk-MODOFVMH.js";
19
+ } from "./chunk-EG237KYD.js";
20
20
  export {
21
21
  checkRemoteEndpoint,
22
22
  cleanupOrphanedContainers,
package/dist/index.js CHANGED
@@ -51,7 +51,7 @@ import {
51
51
  validateDockerfile,
52
52
  warn,
53
53
  writeState
54
- } from "./chunk-MODOFVMH.js";
54
+ } from "./chunk-EG237KYD.js";
55
55
 
56
56
  // src/index.ts
57
57
  import { Command } from "commander";
@@ -2122,6 +2122,14 @@ function startRenderer(options) {
2122
2122
  if (cleaned) return;
2123
2123
  switch (event.type) {
2124
2124
  case "tool-start":
2125
+ if (state.activeTool) {
2126
+ const entry = {
2127
+ name: state.activeTool.name,
2128
+ args: state.activeToolArgs
2129
+ };
2130
+ const updated = [...state.completedTools, entry];
2131
+ state.completedTools = updated.length > MAX_COMPLETED_TOOLS ? updated.slice(updated.length - MAX_COMPLETED_TOOLS) : updated;
2132
+ }
2125
2133
  state.activeTool = { name: event.name };
2126
2134
  state.activeToolArgs = "";
2127
2135
  state.lastThought = null;
@@ -2133,6 +2141,10 @@ function startRenderer(options) {
2133
2141
  // Skip rerender — args only shown on completion
2134
2142
  case "tool-complete":
2135
2143
  if (state.activeTool) {
2144
+ const LONG_RUNNING_TOOLS = ["Agent", "Skill"];
2145
+ if (LONG_RUNNING_TOOLS.includes(state.activeTool.name)) {
2146
+ break;
2147
+ }
2136
2148
  const entry = {
2137
2149
  name: state.activeTool.name,
2138
2150
  args: state.activeToolArgs
@@ -7575,7 +7587,7 @@ function registerTeardownCommand(program) {
7575
7587
  } else if (otlpMode === "remote-routed") {
7576
7588
  if (!options.keepDocker) {
7577
7589
  try {
7578
- const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-YLD7DF2U.js");
7590
+ const { stopCollectorOnly: stopCollectorOnly2 } = await import("./docker-AURCTUS5.js");
7579
7591
  stopCollectorOnly2();
7580
7592
  result.docker.stopped = true;
7581
7593
  if (!isJson) {
@@ -7607,7 +7619,7 @@ function registerTeardownCommand(program) {
7607
7619
  info("Shared stack: kept running (other projects may use it)");
7608
7620
  }
7609
7621
  } else if (isLegacyStack) {
7610
- const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-YLD7DF2U.js");
7622
+ const { isStackRunning: isStackRunning2, stopStack } = await import("./docker-AURCTUS5.js");
7611
7623
  let stackRunning = false;
7612
7624
  try {
7613
7625
  stackRunning = isStackRunning2(composeFile);
@@ -9506,7 +9518,7 @@ function registerAuditCommand(program) {
9506
9518
  }
9507
9519
 
9508
9520
  // src/index.ts
9509
- var VERSION = true ? "0.25.7" : "0.0.0-dev";
9521
+ var VERSION = true ? "0.25.8" : "0.0.0-dev";
9510
9522
  function createProgram() {
9511
9523
  const program = new Command();
9512
9524
  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.25.7",
3
+ "version": "0.25.8",
4
4
  "type": "module",
5
5
  "description": "CLI for codeharness — makes autonomous coding agents produce software that actually works",
6
6
  "bin": {
package/ralph/ralph.sh CHANGED
@@ -1124,13 +1124,20 @@ main() {
1124
1124
  # ── Check circuit breaker ──
1125
1125
 
1126
1126
  if should_halt_execution; then
1127
- local cb_no_progress=0
1128
- if [[ -f "$CB_STATE_FILE" ]]; then
1129
- cb_no_progress=$(jq -r '.consecutive_no_progress // 0' "$CB_STATE_FILE" 2>/dev/null || echo "0")
1127
+ # Auto-reset: if there are actionable stories (sprint not complete),
1128
+ # the breaker was tripped by a previous session's no-ops. Reset and retry.
1129
+ if ! all_tasks_complete; then
1130
+ log_status "INFO" "Circuit breaker open but actionable stories exist — auto-resetting"
1131
+ reset_circuit_breaker "Auto-reset: actionable stories detected"
1132
+ else
1133
+ local cb_no_progress=0
1134
+ if [[ -f "$CB_STATE_FILE" ]]; then
1135
+ cb_no_progress=$(jq -r '.consecutive_no_progress // 0' "$CB_STATE_FILE" 2>/dev/null || echo "0")
1136
+ fi
1137
+ log_status "WARN" "Circuit breaker: no progress in ${cb_no_progress} iterations"
1138
+ update_status "$loop_count" "$(cat "$CALL_COUNT_FILE" 2>/dev/null || echo "0")" "circuit_breaker" "halted" "stagnation_detected"
1139
+ break
1130
1140
  fi
1131
- log_status "WARN" "Circuit breaker: no progress in ${cb_no_progress} iterations"
1132
- update_status "$loop_count" "$(cat "$CALL_COUNT_FILE" 2>/dev/null || echo "0")" "circuit_breaker" "halted" "stagnation_detected"
1133
- break
1134
1141
  fi
1135
1142
 
1136
1143
  # ── Check rate limit ──