You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 828baa1
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: AGENTS.md
+33Lines changed: 33 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -158,6 +158,16 @@ Not inferred. Do not re-research these.
158
158
endpoint returns 200, and a tarball installed from the registry into a temp
159
159
prefix runs `euthyna --lang en`. **The ClawHub step in the same run skipped** —
160
160
see `### ClawHub registry` below.
161
+
- 🧪 `euthyna@0.7.0` published 2026-10-10 by the same workflow: the tag points at
162
+
`26db136` and run `37998801395` took `preflight` and `publish` green and cut the
163
+
GitHub release (`publishedAt 2026-10-09T22:22:13Z`). Checked from outside, not from
164
+
the run colour: `npm view euthyna dist-tags` → `latest: 0.7.0`; the attestations
165
+
endpoint returns 200 for `euthyna@0.7.0`; registry metadata gives shasum
166
+
`553872addc83db7101f9c366919ed9e93ab1e85e` and 784,814 unpacked bytes; a
167
+
temp-prefix install runs `euthyna --lang en` with exit 0, its `src/cli.js` carries the
168
+
`manifest-not-head` declaration from PR #28, and the tarball holds **both**
169
+
`.agents/skills/euthyna` and `.agents/skills/euthyna-en`. Its ClawHub job did not
170
+
publish — see `### ClawHub registry` below.
161
171
162
172
### ClawHub registry
163
173
@@ -194,6 +204,28 @@ The 0.6.0 listing was restored from this machine with the locally logged-in
194
204
workflow's flag set so the registry entry matches what CI would have produced
195
205
(`--source-commit` = the tag's commit).
196
206
207
+
🧪 **The 0.7.0 push never landed, and the reason was the registry, not the repository.
208
+
Measured 2026-10-10.** Run `37998801395` failed its `clawhub` job at `Log in` with
209
+
`{"code":"InternalServerError","message":"Your request couldn't be completed. Try again
210
+
later."}`. Re-running just that job got past login and died in `Publish` with the same 500;
211
+
its fail-closed pre-read printed `euthyna currently lists 0.6.0; candidate 0.7.0 compares:
212
+
newer` (and the same for `euthyna-en`), so nothing was pushed blind. Pushing from this
213
+
machine with the locally logged-in CLI — v0.23.3, the workflow's own pin, the identical flag
214
+
set, `--source-commit 26db136` — timed out twice, once direct and once through
215
+
`HTTPS_PROXY=http://127.0.0.1:7897`, with `too many system operations`. Reads kept working
216
+
through all of it, which is how the state was checked rather than assumed: both slugs still
217
+
report `pass | clean | 0.6.0`, so **`latest` was never moved and no partial submission
218
+
registered**. A retry is scheduled; if it succeeds the listing must be re-read until it
219
+
settles, since one read right after a push is a known false negative here.
220
+
221
+
One thing this did settle: `gh secret list` cannot tell a set secret from an empty one (the
222
+
2026-09-23 entry is the precedent), but the step log masks a received value as
223
+
`CLAWHUB_TOKEN: ***`, and preflight records `present`/`absent`. That is the evidence the
224
+
secret is populated — which the earlier `absent`-in-the-job failure could not show either way.
225
+
226
+
npm running ahead of ClawHub is the exact condition PR #23 added this job to detect, so the
227
+
lag is visible as a red job plus these notes rather than silent.
228
+
197
229
### Skill contract
198
230
199
231
Measured against `@deepseek-ai/dsh-skill-filesystem` on this machine — first read at
@@ -556,6 +588,7 @@ is faithful — that is a reading job, and a mechanical stand-in would only manu
556
588
| **A control byte in a git argv does not survive the Windows command-line round trip** | Measured while writing the issue #2 regressions: a BEL reached git as `?`, and an ESC-bearing argument got different semantics entirely (exit 0, no error). A hostile-argv test against real git therefore cannot assert the escape form cross-platform — assert the portable property (no raw control byte in the output) against git, and the exact escape form against the pure message builder (`gitFailureMessage`) |
| **A user-level installed skill silently lags the published version** | 🧪 Measured 2026-10-09: `~/.agents/skills/euthyna/`was still pre-0.6.0 (1 `--source` mention where the shipped tree has 5, no `coverprofile`, missing the rule-5 wording from PR #21), while npm and ClawHub both read 0.6.0. Inside this repository it is invisible — the project root (rank 200) wins — but **outside it the old discipline is what actually runs**. Check with `git diff --no-index --stat ~/.agents/skills/euthyna .agents/skills/euthyna` (empty output = in sync) rather than assuming a release propagated. Use `git`, not `diff`: in PowerShell `diff` is the `Compare-Object` alias and refuses `-rq`. |
591
+
| **A workflow that only runs on release day can be broken for days and show nothing but ~0-second red runs** | 🧪 Measured 2026-10-10: `publish.yml`did not parse from `b795569` (PR #23) until the 0.7.0 rehearsal. The cause was `${{ runner.temp }}` in a **job-level `env:`**, where only the `secrets` and `vars` contexts are legal — one illegal reference invalidates the whole file. Every push produced a 0-second failure that no PR check reported, and the reason surfaced only as `HTTP 422 … Unrecognized named-value: 'runner'` from `gh workflow run`. So run the non-publishing rehearsal (`gh workflow run publish.yml --ref <branch> -f publish=false`, or on `main` before the tag) as a standing first step of any release: it costs a minute and is the only exercise that path gets between releases |
559
592
| **Deleting `TEMP` from the env handed to a child does not remove it in the child** | 🧪 Measured while writing the issue #7 regressions: after the parent deleted `TEMP`/`TMP`/`TMPDIR` from the env object passed to `execFileSync`, the child still reported `'TEMP' in process.env === true` and `os.tmpdir()` equal to the real user temp (`TMP`/`TMPDIR` did stay absent). Setting them to `''` **does** propagate, and `os.tmpdir()` skips an empty value and falls back to an absolute default — so a test that needs "no temp variable" must set them empty rather than delete them, or assert the property on a pure helper instead (see `bench/results-dir.js` and its unit test in `test/bench.test.js`) |
0 commit comments