@kody-ade/kody-engine 0.3.66 → 0.3.68

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
@@ -3,7 +3,7 @@
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@kody-ade/kody-engine",
6
- version: "0.3.66",
6
+ version: "0.3.68",
7
7
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
8
8
  license: "MIT",
9
9
  type: "module",
@@ -53,9 +53,13 @@
53
53
  "postflight": [
54
54
  { "script": "startFlow", "with": { "entry": "release-prepare", "target": "issue" } },
55
55
 
56
- { "script": "mergeReleasePr",
56
+ { "script": "waitForCi",
57
+ "with": { "timeoutMinutes": 30, "pollSeconds": 30, "initialWaitSeconds": 15, "maxFixCiAttempts": 0 },
57
58
  "runWhen": { "data.taskState.core.lastOutcome.type": "RELEASE_PREPARE_COMPLETED" } },
58
59
 
60
+ { "script": "mergeReleasePr",
61
+ "runWhen": { "data.action.type": "CI_PASSED" } },
62
+
59
63
  { "script": "dispatch", "with": { "next": "release-publish", "target": "issue" },
60
64
  "runWhen": { "data.taskState.core.lastOutcome.type": "RELEASE_MERGE_COMPLETED" } },
61
65
 
@@ -66,7 +66,10 @@ read_changelog_section() {
66
66
  fi
67
67
  printf '%s' "$raw" | awk -v ver="$ver" '
68
68
  BEGIN { capture = 0 }
69
- # Match: "## [VER] ..." or "## VER ..." (VER as the first word/bracket).
69
+ # Match all observed header shapes:
70
+ # "## [0.25.0] - 2026-04-15" (bracketed, dash separator)
71
+ # "## 0.22.0 (2026-03-25)" (bare, parenthesized date)
72
+ # "## v0.25.5 — 2026-05-05" (v-prefixed, em-dash, kody release-prepare style)
70
73
  /^##[[:space:]]/ {
71
74
  if (capture) { exit }
72
75
  header = $0
@@ -74,6 +77,7 @@ read_changelog_section() {
74
77
  sub(/^\[/, "", header); sub(/\].*/, "", header)
75
78
  sub(/[[:space:]].*/, "", header)
76
79
  sub(/[(].*/, "", header)
80
+ sub(/^v/, "", header)
77
81
  if (header == ver) { capture = 1; next }
78
82
  }
79
83
  capture { print }
@@ -106,11 +106,22 @@ PY
106
106
 
107
107
  generate_changelog() {
108
108
  local new_version="$1"
109
- local last_tag
110
- if last_tag=$(git describe --tags --abbrev=0 --match 'v*' 2>/dev/null); then
111
- range="${last_tag}..HEAD"
112
- git log "$range" --pretty=format:'%s||%h' --no-merges 2>/dev/null || true
109
+ local last_tag count
110
+ # actions/checkout@v4 with fetch-depth: 0 still does NOT fetch tags by
111
+ # default — operators have to opt in via `fetch-tags: true`. When tags
112
+ # are absent, `git describe` returns empty and the else-branch's
113
+ # 100-commit window can over- or under-shoot. Try once to backfill
114
+ # tags before describing, ignoring failures (offline/sandbox runs).
115
+ if ! last_tag=$(git describe --tags --abbrev=0 --match 'v*' 2>/dev/null); then
116
+ git fetch --tags --quiet 2>/dev/null || true
117
+ last_tag=$(git describe --tags --abbrev=0 --match 'v*' 2>/dev/null || true)
118
+ fi
119
+ if [[ -n "$last_tag" ]]; then
120
+ count=$(git rev-list --count "${last_tag}..HEAD" --no-merges 2>/dev/null || echo "?")
121
+ echo " changelog: ${count} commits since ${last_tag}" >&2
122
+ git log "${last_tag}..HEAD" --pretty=format:'%s||%h' --no-merges 2>/dev/null || true
113
123
  else
124
+ echo " changelog: no previous v* tag found — using last 100 commits" >&2
114
125
  git log -n100 HEAD --pretty=format:'%s||%h' --no-merges 2>/dev/null || true
115
126
  fi
116
127
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.3.66",
3
+ "version": "0.3.68",
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",