Repository navigation
fix: retain relative assets with explicit runtime adapters - #405
Conversation
Bind original documents and copied assets while validating declared runtime substitutions and preserving historical registrations. Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com> Co-Authored-By: Jinni <342598851+fj-jinni[bot]@users.noreply.github.com>
Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ccae2dc4f2
ℹ️ 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".
|
Claude review (cross-family) at Verdict: changes needed. There is one P1 of my own. The known collision P1 is separate. Everything else holds up against the #394 ruling: the original bytes are retained, the checker re-derives the runtime copy, historical records still pass, and the Review consumer contract is unchanged. P1 (blocking)P1-a. Already known, accepted and being repaired: the target-collision rule at P1-b. Containment compares a realpath'd project root with lexical source paths. This regresses existing external-source registrations wherever an ancestor of the path is a symlink (macOS
What goes wrong:
Measured on macOS with the default
At head, these three fail every time:
The fourth failure, Suggested fix: canonicalize before comparing. Take the realpath of Points from the brief
Non-blocking
🤖 Generated with Claude Code |
…ration Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
|
HQ readback, final head
|
|
HQ SIGN — exact head |
Change
Closes #394.
Retain original config and requirements bytes with hash bindings. Runtime copies apply only declared config/requirements JSON-pointer substitutions, with a json-pointer/1 discriminator keeping strict checks active if a sole mapping is removed. Retain referenced editor images, figure mask and backdrop under contained literal paths, verifying declared hashes. Package regeneration preserves the retained inputs and figure-mask provenance follows the original requirements locator.
Existing absolute adapters and historical frozen-rig/1 records keep their accepted behavior. New relative adaptation checks project containment even when its config root is external. Explicit legacy absolute mappings retain their existing contract. Refused writes preserve project bytes and remove staged destinations.
Verification
Historical writer source is fixed at 28cd35c. Its actual generated synthetic record SHA 1e16d0ef438f6d0bb6ba0f8aa9fe6fac9f46af31f3d4090e385fd845a9e57f7f remains unchanged through new-reader package regeneration and retained publication. Original source hashes and per-file output provenance are retained. The public reconstructed-layout test is separately labelled as a checker control.
Parent review caught historical implicit relocation compatibility and external-config-root containment defects before PR. Sol repaired both and exercised actual old-writer output. An earlier new metadata emission drifted generated examples, so emission was narrowed to records using the new pointer capability and exact example reproduction now passes. Raw RED evidence remains retained.
Main was integrated before the union because documentation regions also changed with #291. No generated templates changed in this PR. No actual pilot write, producer rerun or owner publication was performed. Hosted check/source-linked, single automatic AI review and exact-head Claude cross-family review remain pending.
Single-review P1 repairs and main integration at 86737be
Compatible identical asset targets now reuse retain/copyTree while reserved metadata, differing bytes and file/directory conflicts refuse. Exact config/requirements substitutions and per-reference hashes remain validated. Canonical source containment operands fix macOS /var system aliases after lexical symlink checks. A small legacy relative-row writer/checker mismatch is fixed. Deferred observations are grouped in follow-up/backlog #408.
Integrated current main c191137, including served Review2.9 pins and generated fixtures. Final native default-TMPDIR run20261110T163454Z-3159e5b0e8854c9cb7ce8b6aca65134e passed66registration tests/680assertions and105touched tests/437assertions plus actual old-record replay1/7. Final Nova20261110T163454Z-2d9c50996f8c4cb789afdb5ecd5b65fb passed242tests/2skips/1620assertions, committed remesh check1/214, old-record replay1/7 and typecheck/lint. Both consumed isolated Review2.9/Play1.24 dependencies. All1268source files stayed frozen. Actual old record SHA1e16d0ef remained unchanged on both platforms.
Mac kernel descendant tracking is unavailable. Commands exited and a scoped process observation found no matching Bun/Node processes. Linux subreaper quiescence is true. Fresh example generation was filtered under the explicit no-renderer instruction. Hosted exact-head checks remain acceptance. First native memory-admission refusal and pre-fix61pass/3fail raw evidence retained. No second AI review requested. No pilot registration performed.