Repository navigation
evals: the three 5.8.0 documents - #692
Merged
Merged
Conversation
Gate 10 (creator validation), Stage 5 (post-publish) and Stage 6 (downstream sweep) for 5.8.0. Stage 5 found a significant defect and it is filed as #691: a workflow step body that calls a function in an imported module stops executing at that call, and the run is reported as successful. Four different symptoms come out of one construct depending on the shape of the module -- silent truncation, stack underflow, "Cannot call non-function: nil", and a spurious nodus-retry dependency error -- which is the signature of stack or dispatch corruption rather than a logic error. The sharpest evidence: a module defining only no_loop works, a module defining only in_loop works, and a module defining both fails when no_loop is called. Reported (open), not fixed here: #691. It is not a regression. Both repros behave identically on the published 5.7.1 and 5.8.0 wheels, tested in clean venvs from outside the repo. 5.8.0 is where it starts to matter, because retry.until is a module function whose documented home is a step body. Nothing caught it because every test and all eleven new probes run their code inside fn main(), as does the guide example -- so the full suite, nine gate phases and 83 probes were green on a feature that does not work in the position its own documentation points at. The generalisation: a construct documented for use inside a step body has to be tested inside a step body. Two paths, and a test on one says nothing about the other. Gate 10 also found two things in the probe work itself. One of my own new probes could not fail -- cli() takes argv including the program name, so ["workflow", "--help"] consumed "workflow" as argv[0] and read the general usage. And the 5.4.0 stale-prose pattern fired on a true sentence, a "no longer executes the file" row in CLAUDE.md's table; its self-check could not have caught that, because the pattern was written out twice and the self-check validated a copy. Stage 6: all six published companions still admit 5.8.0 and all eleven match what they published. nodus-run-action was stale -- its README pin is what new users copy -- so it is republished as v1.0.9 with the floating v1 tag moved and verified against the remote, and its flag is cleared here with fingerprint and published updated in the same commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013uyCMZqPCwvXnjkgc1mSFJ
The claim declares points_at, so it only becomes checkable once docs/evals/v5.8.0/ exists -- which is why it passed before the eval documents landed and failed immediately after. That is the check working as designed: the version string and the file it names are verified together, so editing one without the other cannot pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gate 10 (creator validation), Stage 5 (post-publish) and Stage 6 (downstream sweep) for 5.8.0, plus the consumer republish Stage 6 turned up.
Stage 5 found a real defect — filed as #691
A workflow step body that calls a function in an imported module stops executing at that call, and the run is reported as successful.
Four different symptoms from one construct, depending on the shape of the imported module — silent truncation,
Stack underflow,Cannot call non-function: nil, and a spuriousnodus-retry is requirederror. That spread is the signature of stack/dispatch corruption rather than a logic error.The sharpest evidence: a module defining only
no_loopworks, a module defining onlyin_loopworks, and a module defining both fails whenno_loopis called.The silent case is the severe one:
print("got \(v)")never ran, no error was raised, and the run reported no failures. The control — same file,let v = 7iinstead of the module call — printsgot 7.Not a regression
Identical on the published 5.7.1 and 5.8.0 wheels, tested in clean venvs from outside the repo. 5.8.0 is where it starts to matter, because
retry.untilis a module function whose documented home is a step body.Why nothing caught it
tests/test_retry_until.py, all eleven new Gate 10b probes, and the guide example all run their code insidefn main(). The full suite, nine gate phases and 83 probes were green on a feature that does not work in the position its own documentation points at.The generalisation worth keeping: a construct documented for use inside a step body has to be tested inside a step body. The step-body path and the top-level path are two paths, and a test on one says nothing about the other — the recurring shape, again.
Gate 10 found two things in the probe work itself
cli()takes argv including the program name, socli(["workflow", "--help"])consumed"workflow"asargv[0]and asserted against the general usage — it would have passed against a CLI with no such verb.no longer executes the filerow in CLAUDE.md's table. Its self-check could not have caught this: the pattern was written out twice, and the self-check validated a copy.Stage 6
nodus-run-actionwas stale — its README pin is what new users copy. Republished as v1.0.9, floatingv1moved and verified against the remote (rev-parseon an annotated tag returns the tag object, not the commit). Flag cleared withfingerprintandpublishedupdated in the same commit.nodus-vscodein step — 5.8.0 adds no keywords.Note on the last commit
The eval-record claim in
ECOSYSTEM_READINESS_ASSESSMENT.mddeclarespoints_at, so it only becomes checkable oncedocs/evals/v5.8.0/exists — it passed before the eval documents landed and failed immediately after. That is the check working as designed: the version string and the file it names are verified together.🤖 Generated with Claude Code
https://claude.ai/code/session_013uyCMZqPCwvXnjkgc1mSFJ