writeDescriptorField routed secret fields to a stdin channel built as `sh -c script _ "$secret"`. That kept the value off the CLI's own argv but still published it in the shell's, which any local process can read from /proc/<pid>/cmdline. There is no safe way to hand a secret to a command line, so the generic writer now rejects secret fields outright and runDescriptorCommand loses its stdin parameter. promptDescriptorSecret is unchanged and remains the only secret-carrying path, because it reads the value inside the script instead of receiving it as an argument. The path was not reachable from the UI, where secret fields already render a prompt-only button, so this removes a latent trap rather than a live leak. primeNotifications skips providers whose refresh is pending, so after resetNotificationMemo (triggered by any threshold or toggle change) such a provider had no status baseline. Its first clean payload then read previousValue === "" and announced a pre-existing incident as new. A statusPrimed marker now distinguishes "primed with no incident" from "never primed", and the first observation is recorded silently. Both rules get static assertions, verified to fail against the old code. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Simone committed on 8/17/2026, 1:16:56 AMparentd735da4
7 files changedLine totals unavailable