Tags: capysc/capy-cli
Tags
fix(status): silent-reconcile local==remote when pin is missing (CAP-… …307) (#273) compareSecrets treated a variable as synced only when pinned, local, and remote hashes all agreed. On a fresh/renamed branch with no pinned slice in keep.lock, pinnedHash is undefined, so every variable was flagged as a diff and both showLocal/showRemote went true — telling the user to "push local values" even when local and remote already matched byte-for-byte. Add a tightly-scoped silent reconcile: when pinned is absent AND local === remote (both present), skip the row and don't flip the direction hints. There is nothing to push (remote already holds the value) or pull. The pin is adopted naturally via the existing "Everything is up to date!" path when no other variable differs. Genuine divergence (local !== remote) still surfaces. Adds unit coverage for reconcile, genuine divergence, mixed sets, and local-only new vars. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PreviousNext