This card is derived from the in-flight #21434. It carries that family's TEXT-face half. #21434 keeps the JSON-face half, which PR #21495 delivers.
Filing gate: ① a defect with a named position. reach: was measured at a public door by the #21434 dev at 88ae5769c6 (os-dev report 5963586209, out-of-scope finding 1). Filed by the domain:cli seat, session_016GiHYRmLSNWTfbX9gVQkpz. Reader who acts: the domain:cli seat dispatches it as a derived sub-issue, with the parent's domain and priority.
Blocked-by: #21434
What happens (measured)
os package install ./does-not-exist.json prints ✗ Cannot read artifact: ENOENT …, then ✗ EEXIT: 1, and exits 1. The exit status is right; the second error line is the defect.
Why (read from source)
This is #21434's shape, on commands with no JSON face. A this.exit(…) inside the try throws oclif's exit signal, and the catch reports the signal as an error:
packages/cli/src/commands/package/install.ts: 6 exit sites inside the try, whose catch is at ~:248;
packages/cli/src/commands/package/publish.ts: 15 sites, under the catches at ~:667 and ~:796;
packages/cli/src/commands/plugin/sign.ts: 1 site, catch at ~:101.
Direction (#21434's ruled idiom, 5957176280)
Why blocked: this extends the pin file that PR #21495 adds. It starts once that PR lands, which closes #21434.
Dedupe
MCP search_issues, repo-scoped, open and closed: 「package install publish plugin sign prints extra EEXIT error line catch re-reports oclif exit signal」 gave 2 hits, #21285 and #21310. Both are closed and both concern oclif plugins/help text. None covers this.
Dedupe words: EEXIT: 1 extra error line; package install catch re-reports exit signal; plugin sign EEXIT; text-face exit signal.
Generated by Claude Code
This card is derived from the in-flight #21434. It carries that family's TEXT-face half. #21434 keeps the JSON-face half, which PR #21495 delivers.
Filing gate: ① a defect with a named position.
reach:was measured at a public door by the #21434 dev at88ae5769c6(os-dev report5963586209, out-of-scope finding 1). Filed by thedomain:cliseat,session_016GiHYRmLSNWTfbX9gVQkpz. Reader who acts: thedomain:cliseat dispatches it as a derived sub-issue, with the parent's domain and priority.Blocked-by: #21434
What happens (measured)
os package install ./does-not-exist.jsonprints✗ Cannot read artifact: ENOENT …, then✗ EEXIT: 1, and exits 1. The exit status is right; the second error line is the defect.Why (read from source)
This is #21434's shape, on commands with no JSON face. A
this.exit(…)inside thetrythrows oclif's exit signal, and thecatchreports the signal as an error:packages/cli/src/commands/package/install.ts: 6 exit sites inside thetry, whosecatchis at ~:248;packages/cli/src/commands/package/publish.ts: 15 sites, under the catches at ~:667 and ~:796;packages/cli/src/commands/plugin/sign.ts: 1 site, catch at ~:101.Direction (#21434's ruled idiom,
5957176280)catchrethrows onisExitSignal(packages/cli/src/utils/format.ts). ⛔ No second helper.packages/cli/test/json-exit-signal.pin.test.ts) from JSON-capable commands to every command. Its analyzer is shape-based, so a later command of any face enters by existing.Why blocked: this extends the pin file that PR #21495 adds. It starts once that PR lands, which closes #21434.
Dedupe
MCP
search_issues, repo-scoped, open and closed: 「package install publish plugin sign prints extra EEXIT error line catch re-reports oclif exit signal」 gave 2 hits, #21285 and #21310. Both are closed and both concern oclif plugins/help text. None covers this.Dedupe words: EEXIT: 1 extra error line; package install catch re-reports exit signal; plugin sign EEXIT; text-face exit signal.
Generated by Claude Code