Rebuild transactional generation and typed CLI - #36
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: de59ede947
ℹ️ 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".
de59ede to
502d3af
Compare
|
Codex Review: Didn't find any major issues. 🎉 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". |
Treat permission-denied System/Library subtrees as unavailable discovery sources while preserving strict failures for known target contents. Follow directory symlinks for eligibility and enumeration without changing their logical target identities.
Treat SwiftPM-reported bin directories as the source of truth for helper identity, and isolate simulator cross-builds in a triple-scoped scratch path. Resolve the helper plan before interactive resume decisions while deferring compilation until generation is confirmed.
Centralize the stable SwiftPM simulator scratch convention so CLI and installer builds cannot drift.
Derive resume compatibility from the loaded CLI, selected SwiftPM inputs, pinned clean dependency checkouts, toolchain metadata, and helper artifacts. Materialize verified helpers into content-addressed paths so later builds cannot silently change the executable used by a resumed run.
Prepare target discovery from one validated shared-cache inventory, reuse that cohort for resume decisions, and revalidate it before durable or publication mutation. Pin every raw dump to the prepared UUID and include the inventory schema, UUID, and canonical path digest in plan fingerprint v2.
Centralize portable ownership validation in ArtifactPublisher so target, opaque, draft, legacy, and persisted-marker paths share one invariant. Preflight the complete removal and copy mutation plan before changing a draft, while preserving exact opaque claims.
Model destination checks from the recorded ownership and actual draft inventory after all planned removals. This keeps file-directory transitions and same-owner portable renames independent of host volume lookup behavior while preserving zero-mutation preflight.
Keep actual directory entries byte-exact inside the prospective namespace. Canonical equivalence is now limited to matching the first observed directory with a prefix proven by recorded artifact ownership.
502d3af to
346128d
Compare
|
Codex Review: Didn't find any major issues. Swish! 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
Make generation resumable and crash-safe through one durable state owner, immutable publication, and a typed command workflow.
Changes
GenerationStore, generation leases, durable publication intent, immutable generations, atomic pointer switching, and deterministic recovery.currentpointer from one canonical output base so artifact and lock ownership cannot diverge.Testing
swift test(310 tests in 32 suites).PrivateHeaderKitCoreandPrivateHeaderKitCoreTests.git diff --check.