Grouping issue, filed as part of a catalog pass over the 2026-08-28 to 2026-08-31 resync and MTP conversion campaign. This issue records the shared cause and adopts the affected issues as sub-issues. It proposes no fix.
The shared cause
registry/repos.json records each repository's configLayout, driftNotes and declared state. It is hand-maintained here, and the events that make an entry wrong happen in the other repository. RESYNC.md section 3 puts the reconcile inside the resync's own pass, but a resync is usually scoped to the target repository, and the maintainer reasonably asks that nothing be written back to the hub during it. So the reconcile is deferred, and nothing re-checks the entry afterwards.
The result is a registry describing repositories as they were before the campaign that just changed them, with driftNotes in particular reading as outstanding work when the work is done.
#1115. The Utilities entry declares configLayout.rulesetsDir: "repo-config" for a directory the resync deleted, and a driftNote saying the repository has no get-version-task and relies on validate-task. After ptr727/Utilities#451 the repository does not carry validate-task.yml at all, it calls the hub-hosted validator by pin, and the hub task reaches get-version-task.yml through build-release-task.yml. Both fields describe a state the repository no longer has.
#1082. The PhotoCleaner entry carries a driftNote saying the repository is private for now, with a stated consequence about broken shields. The repository is public. spec/audit.py already reads it as public, since its own has_discussions finding derives the expected value from visibility.
Children
| Issue |
Stale claim |
| #1115 |
Utilities configLayout and driftNotes describe the pre-resync repository |
| #1082 |
PhotoCleaner driftNote asserts a private repository that is public |
What a fix at this level would have to address
Two edits close the children. The grouping question is whether any registry field that a live query can answer should be hand-maintained at all, and, for the fields that must be, whether the reconcile can happen somewhere other than inside a resync that is deliberately scoped away from this repository.
Grouping issue, filed as part of a catalog pass over the 2026-08-28 to 2026-08-31 resync and MTP conversion campaign. This issue records the shared cause and adopts the affected issues as sub-issues. It proposes no fix.
The shared cause
registry/repos.jsonrecords each repository'sconfigLayout,driftNotesand declared state. It is hand-maintained here, and the events that make an entry wrong happen in the other repository.RESYNC.mdsection 3 puts the reconcile inside the resync's own pass, but a resync is usually scoped to the target repository, and the maintainer reasonably asks that nothing be written back to the hub during it. So the reconcile is deferred, and nothing re-checks the entry afterwards.The result is a registry describing repositories as they were before the campaign that just changed them, with
driftNotesin particular reading as outstanding work when the work is done.#1115. The
Utilitiesentry declaresconfigLayout.rulesetsDir: "repo-config"for a directory the resync deleted, and adriftNotesaying the repository has noget-version-taskand relies onvalidate-task. After ptr727/Utilities#451 the repository does not carryvalidate-task.ymlat all, it calls the hub-hosted validator by pin, and the hub task reachesget-version-task.ymlthroughbuild-release-task.yml. Both fields describe a state the repository no longer has.#1082. The
PhotoCleanerentry carries adriftNotesaying the repository is private for now, with a stated consequence about broken shields. The repository is public.spec/audit.pyalready reads it as public, since its ownhas_discussionsfinding derives the expected value from visibility.Children
UtilitiesconfigLayoutanddriftNotesdescribe the pre-resync repositoryPhotoCleanerdriftNoteasserts a private repository that is publicWhat a fix at this level would have to address
Two edits close the children. The grouping question is whether any registry field that a live query can answer should be hand-maintained at all, and, for the fields that must be, whether the reconcile can happen somewhere other than inside a resync that is deliberately scoped away from this repository.