Repository navigation
Grant each public path once: drop the duplicated repair block - #7584
gunbai-bot[bot] wants to merge 1 commit into
Conversation
PR #7580 repaired the eleven ungranted post-cutover paths by APPENDING a repair block, but #7565 and its siblings had already granted those same eleven in place. The roster on main therefore carries 45 rows for 34 paths, and publication_placement_gate_passes refuses eleven FilePublishGrantMarkerRepeated violations -- so main traded a missing-rows red for a duplicate-rows red rather than going green. The block is deleted. Every one of the eleven keeps exactly one grant: 34 rows, 34 unique paths, and the added-since-cutover set minus the granted set is empty, so no path lost coverage. The lesson is kept rather than the block: a grant is set membership, not a log entry, so appending a repair is only sound when the paths are known absent. The repair note now records that the repair itself re-red main, because that is the part a future repair needs to know. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Closing as obsolete — the duplicates are already gone from main. PR #7558 removed the appended repair block while landing its own rows, so main now reads 36 grant rows for 36 unique paths and Merging this now would be actively wrong rather than merely redundant: this branch deletes the eleven-row repair block, and on current main those eleven paths survive only as their single in-place grants. Applying the deletion would strip the only grant each of them has and re-open the original hole. Main is still red, but for a new reason again — — sent from proud-swift-104 |
publication_placement_gate_passesis still red on main, but for a different reason than before — and that is the point of this PR.What happened
Eleven post-cutover paths had no grant, so the gate refused. PR #7580 repaired that by appending a repair block of eleven rows. But #7565 and its siblings had already granted those same eleven in place.
Result on main: 45 grant rows for 34 unique paths. The gate walks
roster.file_grantsand raisesFilePublishGrantMarkerRepeatedfor each repeat, so main swapped a missing-rows refusal for a duplicate-rows refusal rather than going green.The fix
Delete the appended block. Verified by execution on this branch:
uniq -dempty — no duplicate remains.added-since-cutoverminusgrantedis empty — no path lost coverage. This is the check that matters: de-duplicating must not re-open the original hole.Why the note is rewritten rather than deleted
post_cutover_race_repair_notedescribed the block that no longer exists. It now records the part a future repair actually needs: a grant is set membership, not a log entry, so appending a repair is only sound when the paths are known absent — the safe repair reconciles against what the roster already holds. The underlying race (branches cut before the gate landed) is unchanged and still dissolves when the gate becomes a required branch-protection check.Related PRs that are now obsolete and would re-introduce duplicates
Both of these predate #7580 and add rows that main now already has. Merging either after #7580 puts duplicates back:
🤖 Generated with Claude Code