Skip to content

evals: the three 5.8.0 documents - #692

Merged
Masterplanner25 merged 2 commits into
mainfrom
evals-5.8.0
Aug 30, 2026
Merged

Masterplanner25 merged 2 commits into
mainfrom
evals-5.8.0

Conversation

@Masterplanner25

Copy link
Copy Markdown
Owner

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 spurious nodus-retry is required error. That spread is the signature of stack/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.

The silent case is the severe one:

STEP RAN
failed: []
steps: {}

print("got \(v)") never ran, no error was raised, and the run reported no failures. The control — same file, let v = 7i instead of the module call — prints got 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.until is 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 inside fn 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

  1. One of my own new probes could not fail. cli() takes argv including the program name, so cli(["workflow", "--help"]) consumed "workflow" as argv[0] and asserted against the general usage — it would have passed against a CLI with no such verb.
  2. 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 this: the pattern was written out twice, and the self-check validated a copy.

Stage 6

  • All 6 published companions still admit 5.8.0; all 11 match what they published.
  • nodus-run-action was stale — its README pin is what new users copy. Republished as v1.0.9, floating v1 moved and verified against the remote (rev-parse on an annotated tag returns the tag object, not the commit). Flag cleared with fingerprint and published updated in the same commit.
  • nodus-vscode in step — 5.8.0 adds no keywords.
  • All 13 sibling checkouts clean.

Note on the last commit

The eval-record claim in ECOSYSTEM_READINESS_ASSESSMENT.md declares points_at, so it only becomes checkable once docs/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

Masterplanner25 and others added 2 commits August 30, 2026 13:08
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>
@Masterplanner25
Masterplanner25 merged commit e0c2218 into main Aug 30, 2026
4 checks passed
@Masterplanner25
Masterplanner25 deleted the evals-5.8.0 branch August 30, 2026 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant