94e21c495e
detectBundleSkew() trusted `git rev-list --count <stamp>..HEAD -- apps/desktop` outright, which claims skew in two states where the install is not torn. Ancestry: `A..HEAD` only measures how far HEAD is ahead of A when A is an ancestor of HEAD. A ZIP-fallback update rewrites the tree onto a synthetic root, so the stamp still resolves but is unreachable; the range degenerates to HEAD's own history and reports a permanent >= 1 while apps/desktop is byte-identical. Ask `merge-base --is-ancestor` first and go quiet unless it answers yes. Scope: the pathspec counted every file under apps/desktop/, so a docs- or e2e-only commit produced a banner promising missing UI features that do not exist. Count only the paths that reach the shipped app. Co-authored-by: jackulau <jackulau@users.noreply.github.com> Co-authored-by: kokhlo <kokhlo@users.noreply.github.com>