Remove opaque source links from output roots - #78
Conversation
|
You have reached your Codex usage limits for security reviews. Please try again later. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: df41c406a4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 083cc5a2ec
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Purpose
Generated headers already use human-readable platform and release directories, but the output root still exposed an opaque source-storage ID as a symlink into internal recovery state. Remove that user-visible alias and make the hidden
.privateheaderkit/<source-id>/currentpointer the sole immutable-generation owner.Changes
generated-headers/<Platform>/<release>output directly from the authenticated hidden current generation.legacy-<uuid>symlink residue left inlegacy-backupsby an interrupted older atomic swap, then move it through post-validated hidden quarantine. Unmanaged names, destinations, and raced replacements remain preserved and fail fast.LegacyBackupRequirement: a portable SHA-256 checksum plus the single generation allowed to archive the original directory. Descendant markers inherit the requirement, so copied outputs and later generations keep detecting missing or changed backups without reusing archival authority.currentbut before swapping the legacy directory. Recovery detaches only the authenticated uncommitted current pointer, then uses the existing abort/discard path; the unattributed directory remains untouched for an explicit fresh migration.prepared -> pointerPublished -> committed/aborteddatabase states while removing alias-specific recovery actions;pointerPublishednow refers only to the hidden current-pointer switch.Review focus
prepared/current/directory/previous=nilcompatibility state unwinds filesystem-first and leaves all unattributed directory bytes untouched across every crash boundary.Testing
swift test— 588 tests in 43 suites passed.PrivateHeaderKitCoreandPrivateHeaderKitCoreTests.PrivateHeaderKitCore,PrivateHeaderKitCoreTests, andprivateheaderkit-sim-helper.git diff --checkpassed.codex-reviewagainst pinnedmaincompleted with 0 findings.