@kody-ade/kody-engine 0.4.184 → 0.4.186

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 (2) hide show
  1. package/dist/bin/kody.js +19 -9
  2. package/package.json +1 -1
package/dist/bin/kody.js CHANGED
@@ -1309,7 +1309,7 @@ var init_loadPriorArt = __esm({
1309
1309
  // package.json
1310
1310
  var package_default = {
1311
1311
  name: "@kody-ade/kody-engine",
1312
- version: "0.4.184",
1312
+ version: "0.4.186",
1313
1313
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
1314
1314
  license: "MIT",
1315
1315
  type: "module",
@@ -1656,11 +1656,7 @@ function loadConfig(projectDir = process.cwd()) {
1656
1656
  issueContext: parseIssueContext(raw.issueContext),
1657
1657
  testRequirements: parseTestRequirements(raw.testRequirements),
1658
1658
  defaultExecutable: typeof raw.defaultExecutable === "string" && raw.defaultExecutable.length > 0 ? raw.defaultExecutable : "run",
1659
- // No bare-PR default ships with the engine (there is no `fix` executable),
1660
- // so leave this unset unless a consumer configures a real one. Dispatch
1661
- // treats a missing/unknown default as "unrecognized" rather than routing
1662
- // to a phantom executable that would crash the executor at load time.
1663
- defaultPrExecutable: typeof raw.defaultPrExecutable === "string" && raw.defaultPrExecutable.length > 0 ? raw.defaultPrExecutable : void 0,
1659
+ defaultPrExecutable: typeof raw.defaultPrExecutable === "string" && raw.defaultPrExecutable.length > 0 ? raw.defaultPrExecutable : "fix",
1664
1660
  aliases: mergeAliases(raw.aliases),
1665
1661
  classify: parseClassifyConfig(raw.classify),
1666
1662
  release: parseReleaseConfig(raw.release),
@@ -1723,7 +1719,9 @@ function parseJobsConfig(raw) {
1723
1719
  return Object.keys(out).length > 0 ? out : void 0;
1724
1720
  }
1725
1721
  var BUILTIN_ALIASES = {
1726
- build: "run"
1722
+ build: "run",
1723
+ orchestrate: "bug",
1724
+ orchestrator: "bug"
1727
1725
  };
1728
1726
  function mergeAliases(raw) {
1729
1727
  const out = { ...BUILTIN_ALIASES };
@@ -1974,6 +1972,7 @@ async function runAgent(opts) {
1974
1972
  let ndjsonWriteError;
1975
1973
  let sawMutatingTool = false;
1976
1974
  let sawTerminalSuccess = false;
1975
+ let noWorkSuccess = false;
1977
1976
  try {
1978
1977
  const queryOptions = {
1979
1978
  model: opts.model.model,
@@ -2216,7 +2215,13 @@ async function runAgent(opts) {
2216
2215
  );
2217
2216
  }
2218
2217
  finalText = resultTexts.join("\n\n---\n\n");
2219
- const shouldRetry = outcome === "failed" && attempt < MAX_CONNECTION_RETRIES && !sawMutatingTool && isTransientConnectionError(errorMessage);
2218
+ if (outcome === "completed" && !sawMutatingTool && tokens.output === 0 && finalText === "") {
2219
+ outcome = "failed";
2220
+ outcomeKind = "model_error";
2221
+ noWorkSuccess = true;
2222
+ errorMessage = errorMessage ?? "session reported success but produced no model output (0 output tokens) \u2014 backend likely unreachable";
2223
+ }
2224
+ const shouldRetry = outcome === "failed" && attempt < MAX_CONNECTION_RETRIES && !sawMutatingTool && (isTransientConnectionError(errorMessage) || noWorkSuccess);
2220
2225
  if (!shouldRetry) break;
2221
2226
  const delayMs = CONNECTION_RETRY_BASE_MS * 2 ** attempt;
2222
2227
  process.stderr.write(
@@ -3306,7 +3311,7 @@ function autoDispatch(opts) {
3306
3311
  }
3307
3312
  }
3308
3313
  if (!executable && !firstToken) {
3309
- executable = isPr ? opts?.config?.defaultPrExecutable ?? null : opts?.config?.defaultExecutable ?? null;
3314
+ executable = isPr ? opts?.config?.defaultPrExecutable ?? "fix" : opts?.config?.defaultExecutable ?? null;
3310
3315
  }
3311
3316
  if (isBotAuthor && !consumedFirstToken) {
3312
3317
  process.stderr.write(
@@ -4538,6 +4543,11 @@ var FORBIDDEN_PATH_PREFIXES = [
4538
4543
  ".kody/",
4539
4544
  ".kody-lean/",
4540
4545
  // back-compat: stale runtime dir from kody-lean v0.5.x
4546
+ ".codegraph/",
4547
+ // codegraph repo-map tool's runtime scratch (daemon.pid, sock,
4548
+ // db, its own .gitignore) — machine-local, must never be committed. Without
4549
+ // this, a run that does no real work still commits codegraph's startup litter
4550
+ // and opens an empty PR.
4541
4551
  "node_modules/",
4542
4552
  "dist/",
4543
4553
  "build/"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.184",
3
+ "version": "0.4.186",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",