From ac46a5a0a4b8adea1b5fda2c75eb890e980e1fb0 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Thu, 13 Aug 2026 11:13:18 +1000 Subject: [PATCH] fix(doctor): an absent optional package is a skipped check, not a pass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two pre-existing issues, both older than the probe rework in #883 and untouched by it. `stash doctor` ended with "All checks passed." when `@cipherstash/stack` was absent. It is an optional peer, so this is the plain `npx stash doctor` path in a project that has not run `stash init` — the row said "not installed (run `stash init`)" and the outro then claimed a pass for a check that never executed. It now ends with `checksIncomplete`, the line the too-old-to-probe arm already used for exactly this distinction, and still exits 0: absence there is recoverable, not a failure. The row stays green for the same reason. The probe labels move to `messages.ts`. Both E2E suites match a row as `