Repository navigation
fix: isolate community catalog metadata during builds - #1618
Conversation
6f6955b to
3a3c22f
Compare
ilysenko
left a comment
There was a problem hiding this comment.
Thanks for the quick follow-up — all three points from #1616 are addressed functionally: invalid display metadata is skipped with a warning, disabled local metadata no longer reaches the ASAR or the update-builder, and SHA-256 revisions are accepted.
One blocker before this can merge:
The checked-in catalog.json couples every feature PR to this optional feature. The synchronization test in community-features-in-gui-settings/test.js runs in CI through linux-features/*/test.js, so any PR that adds a feature or changes a public title, description, requires, conflicts or catalogSubfeatures now fails CI until it regenerates a file in this feature's directory. I verified this by merging this branch with current main and the open #1577: the published public catalog matches repository declarations fails. feature.json changed 31 times on main in the last 60 days, so this would hit most feature work, conflict between concurrent PRs, and contradicts the rule that feature changes stay inside their own directory.
Please drop the committed dataset and generator. A smaller design covers both original issues: keep build-time discovery of public manifests (skipping invalid entries with a warning, as you do now), never include disabled local/ entries, and have the package hook write a public-only snapshot (repository entries plus enabled local ones) into the minimal update-builder so disabled public descriptions survive rebuilds. The legacy-snapshot cleanup and the packaged-catalog guard can stay.
Before requesting re-review, please run the complete updated base-to-head diff through your own code-review model, fix every blocker it reports, rerun the review, and repeat until it reports no remaining blockers.
Follow up on the review feedback for ilysenko#1616. Publish public repository metadata in a generated, feature-owned catalog.json with a synchronization check. Keep disabled public features visible, include local metadata only for enabled features, and remove the legacy whole-build snapshot from native package staging so disabled private entries cannot leak. Skip and report invalid optional display metadata without weakening feature configuration or patch-integrity validation. Accept SHA-256 Git commit hashes and normalize their Nix dirty-revision form. Cover public-data synchronization, local metadata isolation, legacy snapshot cleanup, warning enforcement, provenance and minimal-builder rebuilds.
Discover public feature metadata during builds instead of requiring every feature change to regenerate a checked-in catalog. Remove the dataset, standalone generator and repository synchronization test. Write the built catalog only into native package staging. Keep disabled public descriptions for minimal-builder rebuilds, recompute local metadata and selection state, and retain the disabled-local packaging guard and legacy-snapshot cleanup. Load snapshots from the selected feature tree so they survive the updater workspace copy, which omits top-level .codex-linux metadata. Preserve catalog provenance when those source-info files are absent. Validation: 256 targeted tests passed (5 skipped); 82 integration tests passed with current main and PR ilysenko#1577; signed stable 26.1021.22027 amd64 feature-only build; deb/pacman payload inspection and updater-copy rebuild round trips. Two max-effort reviews of the complete base-to-working-tree diff completed; the updater-copy finding was fixed and the final review reported no findings.
3a3c22f to
0c0ad19
Compare
ilysenko
left a comment
There was a problem hiding this comment.
Thanks — the blocker is resolved on 0c0ad19. The committed catalog and its sync check are gone, so other feature PRs no longer need to regenerate anything here (verified by merging with #1577: the adjacent tests pass). Build-time discovery skips invalid display metadata, disabled local entries stay out of the ASAR and the update-builder, and the packaged snapshot survives updater rebuilds. CI is green.
Summary
Follow-up to #1616. The optional catalog must tolerate unrelated display metadata errors and keep disabled local feature metadata out of distributed artifacts.
.codex-linux/metadata.Validation
6f2b12f9and feat: add experimental browser UI as an opt-in Linux feature #1577 (69b00dea) in an isolated integration worktree: 82 passed, 0 failed. The added, disabledweb-uifeature appeared automatically, with no catalog regeneration.chatgpt 26.1021.22027on amd64 after verifying signed repository metadata and the cached package hash.gpt-6.1-solatmodel_reasoning_effort=max. Fixed the first review's updater-copy finding and reran the relevant tests and review; the final review reported no remaining findings. The committed diff matches the validated diff exactly.Checklist