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
fix(cli): print every metadata-summary section's zero state, never drop the row (#10952) (#11173)
`printMetadataStats` skipped any section whose every item was 0. #10504 fixed
that for `UI:` alone via an opt-in `zeroFallback`; `Data:`, `Logic:` and
`Security:` kept dropping, so "declares none of this" read identically to "not
reported on".
Measured against the real CLI (`bin/run-dev.js validate`, NO_COLOR=1): a stack
with one object and nothing else printed only `Data:` + `UI: 0 Apps`, with no
`Logic:` and no `Security:` line; a stack with no objects printed the single
line `UI: 0 Apps`. Both exited 0.
`zeroFallback` is now REQUIRED and typed non-empty (`[string, ...string[]]`),
which is the enforcement: a section added later cannot compile without naming
what it prints at zero. `Security:` names both peers — it has no canonical
single signal the way `UI:` has `Apps`.
Pins are per section so each is individually sensitive.
Claude-Session: https://claude.ai/code/session_019bmVFqoQPq63zhKrxdYG1r
Co-authored-by: Claude <noreply@anthropic.com>
`os validate` no longer drops a summary section that happens to be empty — every section prints its zero state
6
+
7
+
The metadata summary shared by `os validate`, `os info` and `os compile` skipped any section whose every item was `0`. #10504 fixed that for `UI:` only; `Data:`, `Logic:` and `Security:` still vanished. Measured against the real CLI: a stack with one object and nothing else printed `Data:` and `UI: 0 Apps` and no `Logic:` or `Security:` line at all, so "this project declares no automation" was indistinguishable from "this summary does not report on automation". A stack declaring no objects printed the single line `UI: 0 Apps`.
8
+
9
+
All four rows now always print, in the shipped `UI: 0 Apps` shape: `Data: 0 Objects`, `Logic: 0 Flows`, and `Security: 0 Positions 0 Permissions` (both peers — `Security:` has no single canonical signal the way `UI:` has `Apps`).
10
+
11
+
Patch, not minor: no API, flag, exit code or `--json` payload changes — this is the human-readable summary printing rows it previously omitted. Anything scraping the text summary for the absence of a section row will now see it present.
0 commit comments