@kody-ade/kody-engine 0.2.37 → 0.2.39

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/kody2.js +25 -11
  2. package/package.json +1 -1
package/dist/bin/kody2.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@kody-ade/kody-engine",
6
- version: "0.2.37",
6
+ version: "0.2.39",
7
7
  description: "kody2 \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
8
8
  license: "MIT",
9
9
  type: "module",
@@ -3668,17 +3668,39 @@ function summarizeFeedbackActions(block) {
3668
3668
  }
3669
3669
  return summary;
3670
3670
  }
3671
+ var ACTIONABLE_HEADING = /^#{1,6}\s+(Concerns|Suggestions|Bugs)\b/i;
3672
+ var ANY_HEADING = /^#{1,6}\s+/;
3673
+ function actionableSections(reviewBody) {
3674
+ const lines = reviewBody.split("\n");
3675
+ const kept = [];
3676
+ let inside = false;
3677
+ for (const raw of lines) {
3678
+ if (ACTIONABLE_HEADING.test(raw)) {
3679
+ inside = true;
3680
+ kept.push(raw);
3681
+ continue;
3682
+ }
3683
+ if (inside && ANY_HEADING.test(raw)) {
3684
+ inside = false;
3685
+ continue;
3686
+ }
3687
+ if (inside) kept.push(raw);
3688
+ }
3689
+ return kept.join("\n");
3690
+ }
3671
3691
  function extractReviewFileRefs(reviewBody) {
3672
3692
  if (!reviewBody) return [];
3693
+ const scoped = actionableSections(reviewBody);
3694
+ if (!scoped.trim()) return [];
3673
3695
  const found = /* @__PURE__ */ new Set();
3674
3696
  const backtick = /`([^`\s]+\.[a-zA-Z]{1,5})(?::\d+(?:-\d+)?)?`/g;
3675
3697
  let m;
3676
- while ((m = backtick.exec(reviewBody)) !== null) {
3698
+ while ((m = backtick.exec(scoped)) !== null) {
3677
3699
  const raw = m[1];
3678
3700
  if (isPlausibleSourcePath(raw)) found.add(raw);
3679
3701
  }
3680
3702
  const bare = /(?<![A-Za-z0-9/_.-])((?:[A-Za-z0-9_./-]+\/)+[A-Za-z0-9_.-]+\.[a-zA-Z]{1,5})(?::\d+(?:-\d+)?)?/g;
3681
- while ((m = bare.exec(reviewBody)) !== null) {
3703
+ while ((m = bare.exec(scoped)) !== null) {
3682
3704
  const raw = m[1];
3683
3705
  if (isPlausibleSourcePath(raw)) found.add(raw);
3684
3706
  }
@@ -3720,14 +3742,6 @@ var verifyFixAlignment = async (ctx, profile) => {
3720
3742
  if (summary.totalItems === 0) {
3721
3743
  return failOnce(ctx, "FIX_FAILED", "fix produced no FEEDBACK_ACTIONS items", summary);
3722
3744
  }
3723
- if (summary.fixedItems > 0 && !committed) {
3724
- return failOnce(
3725
- ctx,
3726
- "FIX_FAILED",
3727
- `fix claimed ${summary.fixedItems} fixed item(s) but produced no commit`,
3728
- summary
3729
- );
3730
- }
3731
3745
  const reviewBody = ctx.data.feedback ?? "";
3732
3746
  const refs = extractReviewFileRefs(reviewBody);
3733
3747
  const changedFiles = (ctx.data.changedFiles ?? []).map((f) => f.trim()).filter(Boolean);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.2.37",
3
+ "version": "0.2.39",
4
4
  "description": "kody2 — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",