@kody-ade/kody-engine 0.4.168 → 0.4.169

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.
package/dist/bin/kody.js CHANGED
@@ -1061,7 +1061,7 @@ var init_loadPriorArt = __esm({
1061
1061
  // package.json
1062
1062
  var package_default = {
1063
1063
  name: "@kody-ade/kody-engine",
1064
- version: "0.4.168",
1064
+ version: "0.4.169",
1065
1065
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
1066
1066
  license: "MIT",
1067
1067
  type: "module",
@@ -9087,6 +9087,35 @@ function humanizeSlug(slug) {
9087
9087
  return slug.split(/[-_]+/).filter((s) => s.length > 0).map((s) => s[0].toUpperCase() + s.slice(1)).join(" ");
9088
9088
  }
9089
9089
 
9090
+ // src/scripts/loadLinkedFinding.ts
9091
+ init_issue();
9092
+ var QA_FINDING_LABEL = /^(severity:p\d|goal:qa|kody:qa-finding)/i;
9093
+ var FINDING_BODY_MAX_BYTES = 4e3;
9094
+ function resolveFindingNumber(pr) {
9095
+ const fromBranch = /^(\d+)-/.exec(pr.headRefName)?.[1];
9096
+ if (fromBranch) return Number(fromBranch);
9097
+ const m = /(?:fix(?:e[sd])?|close[sd]?|resolve[sd]?)\s+#(\d+)/i.exec(pr.body);
9098
+ return m ? Number(m[1]) : null;
9099
+ }
9100
+ var loadLinkedFinding = async (ctx) => {
9101
+ ctx.data.linkedFinding = "";
9102
+ const pr = ctx.data.pr;
9103
+ if (!pr) return;
9104
+ const findingNumber = resolveFindingNumber(pr);
9105
+ if (!findingNumber) return;
9106
+ let issue;
9107
+ try {
9108
+ issue = getIssue(findingNumber, ctx.cwd);
9109
+ } catch {
9110
+ return;
9111
+ }
9112
+ const labels = issue.labels ?? [];
9113
+ if (!labels.some((l) => QA_FINDING_LABEL.test(l))) return;
9114
+ ctx.data.linkedFinding = `Issue #${issue.number}: ${issue.title}
9115
+
9116
+ ${truncate2(issue.body, FINDING_BODY_MAX_BYTES)}`;
9117
+ };
9118
+
9090
9119
  // src/scripts/index.ts
9091
9120
  init_loadMemoryContext();
9092
9121
  init_loadPriorArt();
@@ -13068,6 +13097,7 @@ var preflightScripts = {
13068
13097
  loadWorkerAdhoc,
13069
13098
  loadConventions,
13070
13099
  loadCoverageRules,
13100
+ loadLinkedFinding,
13071
13101
  loadMemoryContext,
13072
13102
  loadPriorArt,
13073
13103
  loadQaContext,
@@ -69,6 +69,7 @@
69
69
  "preflight": [
70
70
  { "script": "setLifecycleLabel", "with": { "label": "kody:reviewing-ui", "color": "d93f0b", "description": "kody: UI-reviewing a PR" } },
71
71
  { "script": "reviewFlow" },
72
+ { "script": "loadLinkedFinding" },
72
73
  { "script": "loadTaskState" },
73
74
  { "script": "loadConventions" },
74
75
  { "script": "discoverQaContext" },
@@ -36,6 +36,19 @@ If `browser_navigate` errors out (timeout, DNS, connection refused, navigation a
36
36
 
37
37
  {{qaAuthBlock}}
38
38
 
39
+ {{#linkedFinding}}
40
+ # Originally reported bug this PR must resolve
41
+
42
+ This PR is a fix for the QA finding below. **Judge your verdict against whether this finding's reported symptom is actually gone in the running app — NOT merely whether the diff is internally correct.** Reproduce the finding's Steps on the preview and compare its Expected vs Actual:
43
+
44
+ - If the reported **Actual** behavior still reproduces in the browser, the verdict is **FAIL** (or CONCERNS if you genuinely could not reach it) — *even if the code change looks correct and the remaining cause is a separate env/config issue*. "Done" means the user no longer sees the bug, not that the author's narrow change landed.
45
+ - Only verdict **PASS** if you confirmed in the browser that the reported symptom is gone.
46
+
47
+ ```
48
+ {{linkedFinding}}
49
+ ```
50
+
51
+ {{/linkedFinding}}
39
52
  # Diff
40
53
 
41
54
  ```diff
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.168",
3
+ "version": "0.4.169",
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",