← Commit history

2.21.1 (doc only, module unchanged at 2.20.1): keep the sha check even when versions agree, or the sweep passes for the wrong reason; test a fix by reproducing the failure

John Lauer ·bbbdaad8ef ·1mo ago ·parent eeaed20
2 files changed +22−3
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-ui-design",-  "version": "2.21.0",+  "version": "2.21.1",   "type": "skill",   "description": "The Adom UI Design System plus a bundle of focused UI skills (tooltips, floating-windows, toasts, responsive-ui, app-shell, ai-driven-apps, clickable-paths, dark-default, input-feedback, settings-layout). One install drops the whole set of skill files onto your container, plus shared icon assets (the settings cog) so every Adom app draws the same glyph.",   "dependencies": {},
skills/newbie-panel/SKILL.md+21−2
@@ -697,8 +697,27 @@ version are you on", it is: > **does my asset's sha match the asset in the current package?**  A sha comparison also survives a stale files-endpoint, which a version string does not. kicad's-form, converged three ways and byte-identical: the package source under-`~/.claude/skills/adom-ui-design/assets/module/`, its own working copy, and the INSTALLED tree.+form, converged FOUR ways and byte-identical: the upstream asset via `repo show`, the package+source under `~/.claude/skills/adom-ui-design/assets/module/`, its own working copy, and the+INSTALLED tree — plus the page repo **read back after pushing**, since that is the layer known+to serve stale content and a push receipt is not a read.++**And keep the sha check even when the version strings agree.** kicad's point, and it is the+one that generalises past this trap: it was only VISIBLE because the package number moved while+the asset stood still. **When both move together, a version match is luck rather than+correctness, and the sweep passes for the wrong reason.** A check that can pass for the wrong+reason has not been shown to work; it has been shown not to have complained yet.++### ⛔ TEST A FIX BY REPRODUCING THE FAILURE, NOT BY READING THE DIFF++kicad verified the `rows: []` fix by **hiding the panel and making the same naive+`.rows.map(...)` call that had broken it**, rather than checking that `rows: []` appears in the+source. Confirming the line is present proves the edit landed; it proves nothing about the+failure mode. The naive caller now returns `threw: false` with `rows` present, an array, length+0 — the exact call shape that produced `Cannot read properties of undefined` one version+earlier.++**Its own misread was what motivated the fix, so its own misread was the test.**  ### A PURE LAYOUT NUMBER DOES NOT NEED A SLOT ON HIS MACHINE