Skip to content

[finding] check-governed-merges: identical invocations minutes apart flipped objectui between "audited (12 entries)" and "unaudited" — window-boundary proof looks unstable on shallow clones #13836

Description

@huangyiirene

Observed during the 2026-08-31 director-summon governed-merge audit. Two invocations of node scripts/pm/check-governed-merges.mjs --since-ref objectstack=b7f645a8a3b9 --since-ref objectui=38a123cac0fa, same cwd (/home/user/objectstack), roughly 15 minutes apart:

Between the runs nothing local touched /home/user/objectui — the only plausible delta is upstream pushes moving origin/main (busy repo). The clone is shallow; before run 1 it was deepened with git fetch --shallow-since=2026-08-27 origin main, after which the anchor resolved (git cat-file -t 38a123cac0fa = commit).

Hypothesis, NOT verified: the window is re-evaluated against a moved tip and the shallow boundary breaks anchor-to-tip connectivity, so the boundary proof fails closed and the repo is dropped from the audit. Failing closed is the right direction (#4690 — an unproven window must not read as clean), but a nondeterministic audit surface means the per-summon duty can silently lose a whole repo depending on run timing, and the operator only notices if they compare footers across runs.

Worth doing:

  1. root-cause the flip (shallow-boundary connectivity is the first suspect);
  2. make the script print the reason a repo is unaudited (which precondition failed: no checkout / anchor unresolvable / boundary unprovable), so a dropped repo is loud and attributable;
  3. a self-test covering the shallow-clone path.

For the record: the 2026-08-31 audit used run 1's objectui enumeration (produced while the boundary held), with attribution filled via MCP; the flip is reported to the maintainer alongside that list rather than smoothed over.

⛔ Filed unassigned — recording only, for the finding box to grade (the script lives in scripts/pm/**; domain label left to triage).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions