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
Browse filesBrowse the repository at this point in the historyBrowse files
authored
fix(migration): stop the report claiming PASSED when the red step is outside every phase (#1141) (#1142)
#1120 taught the report to reconcile the runner's `steps.<id>.outcome` against
what each phase recorded, so a phase that crashed before writing its verdict can
no longer render as `Result: PASSED`. Only three steps carry an `id`, so only
three steps were reconciled.
The steps BETWEEN them carry none: resolving the nightly version from PyPI,
installing it, starting it, and waiting out the alembic migration. A failure
there stops the job, so phases 2 and 3 never run and their outcomes arrive
empty — `declared_outcomes()` filters those out, the state file still holds a
fully-passing `latest` phase, and the report printed `Result: PASSED` into an
issue titled "Langflow Migration Test Failed". The nightly failing to boot
against a migrated database is exactly what this workflow exists to catch, and
it landed in that gap.
The workflow now also hands over `JOB_STATUS` (`job.status`, already used by the
summary step below it). A job the runner reports as `failure`/`cancelled`, whose
report found no failure and no integrity problem, is itself an integrity
problem: the failure is real and lives outside every phase the report can see.
It is only raised when nothing else attributes the failure — the phase-level
message says it better and duplicating it would be noise.
Reconciling the job status covers the four steps that exist today and any added
later, which per-step `id`s would not.
Also: `## Unaccounted phases` is now `## Unaccounted failures`, since the
section can hold an entry that belongs to no phase; the header states the
runner's verdict next to the report's, the pair that contradicted each other;
and `__pycache__/` is ignored — running the Python tests locally left untracked
noise in every subsequent diff.
Co-authored-by: Rafael <rafael@oriontech.me>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments