Commit 1290156
fix(devx): a multi-prerequisite gate's refusal names the closure, not just the first unmet one (#15911)
* fix(devx): a multi-prerequisite gate's refusal names the closure, not just the first unmet one
`import-prerequisite` refused at the first unmet prerequisite, so a gate that
declares several could only ever print a fix naming one of them: a dev who ran
exactly that fix earned a second refusal and a second build round. The printed
remedy was not wrong, it was incomplete.
The refusal now reads the OTHER prerequisites out of the refusing gate's own
source, probes each with the two on-disk facts `classifyImportFailure` already
turns on, and prints one command that clears every unmet one. With nothing else
unmet the text is byte for byte the one that shipped before.
Message change only: when a gate refuses, whether it refuses, the exit code and
the "Nothing was measured" clause are untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016vtdMao3dQS9EfQfpyWixd
* docs(devx): state the measured multi-prerequisite population precisely
The count in the header was the loose one (callers with more than one call
site). The population that can actually print a fix and then refuse again is
the one whose prerequisites have DIFFERENT remedies, and it is smaller: state
both readings and say why the count is not the argument.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016vtdMao3dQS9EfQfpyWixd
---------
Co-authored-by: os-dev <pm@objectstack.ai>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent 401e50a commit 1290156
1 file changed
Lines changed: 354 additions & 3 deletions
0 commit comments