kodelyth-ecc 2.21.0 → 2.21.1

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 (3) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/VERSION +1 -1
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,85 @@
2
2
 
3
3
  All notable changes to Kodelyth ECC are documented here.
4
4
 
5
+ ## v2.21.1 — the release pipeline itself (September 2026)
6
+
7
+ **No change to the toolkit.** The shipped package is byte-identical to 2.21.0 —
8
+ 797 files, zero differences. Every change below is CI and deploy infrastructure,
9
+ which the package excludes. Upgrading gains you nothing; it is recorded here
10
+ because the changelog is the project's memory.
11
+
12
+ Hence a patch, not a minor: nothing was added to what you install.
13
+
14
+ ### Fixed — releases were not reaching the website
15
+
16
+ The workflow that tells the website a release happened had been removed after it
17
+ was found reporting green while returning HTTP 403. Its last line was:
18
+
19
+ ```bash
20
+ [ "$STATUS" = "204" ] && echo ok || echo failed
21
+ ```
22
+
23
+ which exits 0 either way, so a broken dispatch and a working one produced the
24
+ same green check. It had silently done nothing for an unknown number of
25
+ releases.
26
+
27
+ Restored, with every failure path exiting non-zero. A preflight now separates
28
+ the failure modes, which a bare response cannot: the site repo is private, so
29
+ GitHub answers 404 rather than 403 to a token that cannot see it, making "wrong
30
+ repo path", "no repository access", and "access but no write permission" look
31
+ identical. It also reports the token type and its expiry, warning under 30 days
32
+ and erroring once lapsed — an expired token is what broke this the first time.
33
+
34
+ One correction worth recording: the preflight originally passed on
35
+ `permissions.push` from the repo API. That field is the permission of the *user*
36
+ who owns the token, not the permissions granted *to* the token, so a token
37
+ holding only `Metadata: Read` reported `push=true` and was still refused every
38
+ write. It now logs that as context and never gates on it.
39
+
40
+ ### Fixed — the site redeployed every cron tick for identical content
41
+
42
+ Each content sync rewrites a `syncedAt` timestamp whether or not anything
43
+ changed, so `git status` was never clean, `changed` was permanently true, and
44
+ every scheduled run rebuilt and redeployed the server.
45
+
46
+ Measured over 24 hours: **14 sync commits, 2 with a real change.** The other 12
47
+ each ran a full install, build, rsync, an `rm -rf` and `mv` over the live
48
+ directories, and a container recreate — to ship byte-identical output.
49
+ Timestamp-only churn is now discarded rather than committed.
50
+
51
+ ### Fixed — the cache purge reported success when it failed
52
+
53
+ The Cloudflare purge ended in the same shape as the dispatch bug —
54
+ `grep -q ... && echo OK || { echo failed; exit 0; }` — always exiting 0 with the
55
+ failure buried in a plain echo inside a green job. It now parses the response,
56
+ surfaces Cloudflare's own error codes as annotations, and stays non-fatal on
57
+ purpose: the site is live at origin and only the edge is stale, so failing the
58
+ job would misreport a good deploy.
59
+
60
+ ### Added — deploys cannot collide
61
+
62
+ Push, dispatch and cron could all fire at once, and the swap step `rm -rf`s and
63
+ `mv`s live directories on the server. Runs are now queued on one concurrency
64
+ group rather than cancelled, since cancelling mid-swap is the state being
65
+ avoided. It caught three real collisions on the day it was added.
66
+
67
+ ### Changed — actions on v7
68
+
69
+ `actions/checkout` and `actions/setup-node` moved v4 to v7, clearing GitHub's
70
+ Node 20 deprecation warning on every run. The majors were checked rather than
71
+ crossed blind: `setup-node` v5 auto-enables caching when `package.json` declares
72
+ `packageManager`, which neither repo does. `appleboy/ssh-action` stays on v1,
73
+ already current within that major.
74
+
75
+ ### Measured — the cron is not a 10-minute backstop
76
+
77
+ The schedule is configured `*/10`, but GitHub throttles high-frequency
78
+ schedules. Across the last 14 scheduled runs the average gap was **228 minutes**,
79
+ the longest **345**. Documented in the workflow so nobody plans around ten
80
+ minutes again.
81
+
82
+ **647 tests passing.**
83
+
5
84
  ## v2.21.0 — the hooks were never actually turned on (September 2026)
6
85
 
7
86
  Every hook ECC ships has been inert since the shell installer was written. Not
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.21.0
1
+ 2.21.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kodelyth-ecc",
3
- "version": "2.21.0",
3
+ "version": "2.21.1",
4
4
  "description": "Production-grade AI coding toolkit — 70 agents (incl. devil-mode adversarial crew), 194 skills, 97 commands, parallel multi-agent commands, semantic intent routing, self-learning memory, and a built-in MCP server (16 tools / 6 prompts / 377 resources) that bridges to Claude Desktop, LangGraph, AutoGen, CrewAI, and OpenAI Agents SDK. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, RooCode, Aider, Kimi, and Gemini CLI.",
5
5
  "author": "Kodelyth <github.com/sifxprime>",
6
6
  "license": "MIT",