Skip to content

Fix mutable conversion bounds and strengthen core checks - #3675

Open
joshlf wants to merge 1 commit into
mainfrom
joshlf/audit-core-fixes-20260912
Open

joshlf wants to merge 1 commit into
mainfrom
joshlf/audit-core-fixes-20260912

Conversation

@joshlf

@joshlf joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member

FromBytes::mut_from_bytes_with_elems starts from an exclusive borrow but
unnecessarily requires Immutable. This change uses the exclusive-aliasing
justification and removes that bound, matching the prefix and suffix variants.
Regression tests convert and mutate a derived interior-mutable slice DST and
check that affix conversions preserve the remaining bytes.

The core layout and allocation tests are also tightened. The maximum supported
alignment is corrected and its padding boundary is tested; layout tests use
the target's actual alignment; and the AArch64 SIMD test gate matches the
implementations available on that target and toolchain. Other tests now return
the intended KnownLayout values, distinguish alignment errors from size
errors, require successful zeroed allocation, check Unalign::update's return
value, and verify that capacity overflow leaves vector contents unchanged.

The documentation changes correct allocation-failure guarantees, layout and
split descriptions, conversion and derive examples, and bytewise equality and
hashing guidance. They distinguish a reported allocation failure from an
allocator abort and justify the existing Unalign reference transmute using
its repr(C, packed) layout and versioned validity and aliasing rules.

The allocation strategy and bytewise equality semantics are unchanged.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex implement and test the core-library audit fixes below, then push to this PR's existing branch joshlf/audit-core-fixes-20260912. This is an implementation task, not merely a review. Josh authorizes these code/test/docs changes and CI iteration, but not merging, enqueueing, force pushes, repository-settings changes, or weakening checks. Read live head and preserve existing work. Other audit PRs own derives, exported macros, and pointer internals; do not modify their branches or import their unfinished changes.

Read zerocopy/AGENTS.md and applicable development/style/validation/UI/unsafe-code instructions. Use the existing ./cargo.sh wrapper, pinned toolchains, and Rust 1.56 MSRV; no new dependency or version gate. Read the unsafe-rust skill for proof changes. Apply the Williams-style skill from joshlf/skills if accessible. All paths below are relative to zerocopy/.

For every ID, confirm it in source and either implement it with appropriate regression coverage or give concrete contrary evidence. Do not manufacture a change just to check an ID. Fix all test/CI regressions caused by the changes; report unrelated baseline failures precisely. The existing zerocopy-derive/tests/exclusive_conversion.rs is an A15 regression seed; make it pass without adding Immutable or weakening its behavior assertions. Move/format the tests if repository conventions require it.

A01 src/layout.rs: CURRENT_MAX_ALIGN on non-16-bit targets is 1<<28 although the documented maximum is 2^29. Verify the uses/invariants before changing to 1<<29. Add a nonallocating boundary test, and preserve appropriate 16-bit behavior.
A15 src/lib.rs::FromBytes::mut_from_bytes_with_elems: eliminate unnecessary Immutable and select BecauseExclusive for the conversion. Compare the existing non-counted and prefix/suffix paths and preserve all pointer invariants. Test exclusive conversion of Cell-containing derived DSTs and slices, including write-through, exact length, and relevant errors.
A19 src/lib.rs::test_known_layout_derive: _test_kl07 and _test_kl15 discard KL07/KL15 and return unit under impl KnownLayout. Return the constructed values as tail expressions so the helpers check the promised type.
A20 test_new_box_zeroed_array: unwrap before drop; an erroneous Err must not pass. Inspect zero initialization if inexpensive.
A21 test_ref_from_mut_from_bytes_error: alignment tests use a wrong-sized slice and generic is_err, with duplicate assertions. Use an exactly sized guaranteed-misaligned AU64 buffer and match CastError::Alignment; cover prefix/suffix with appropriate geometry. Keep size-error coverage separately.
A22 src/impls.rs: the AArch64 SIMD test gate lacks the implementation's little-endian OR sufficiently-new-big-endian condition. Match the complete implementation gate without removing intended target coverage.
A23 src/layout.rs::test_for_slice: use align_of::() rather than assuming 4 in expected layouts.
A24 src/wrappers.rs::Unalign::update tests: assert a distinct callback return value as well as mutation, including truly misaligned storage and the alignment-one fast path. No production algorithm change.
A26 FromZeros vector growth tests: deterministic capacity/length overflow must return Err and leave original contents/length unchanged. Use existing version/alloc gates; do not exhaust real memory or introduce a probabilistic allocation-failure test.
A30 src/wrappers.rs::Unalign::deref_unchecked: the proof incorrectly says repr(transparent); correct it to the actual repr(C, packed) single-field offset-zero argument, plus caller-supplied alignment and relevant reference/provenance reasoning. Pin/quote authoritative Rust docs per repository rules. Do not change the representation.
A33 MaybeUninit::new_boxed_uninit: proof names alloc_zeroed but implementation passes alloc. Explain the actual allocator and why uninitialized bytes are permitted. Do not add zeroing.
A34 src/split_at.rs::split_at_mut docs: only the bound check happens at construction of Split; overlap restrictions apply when obtaining the two references. Correct the failure-stage explanation; do not change split behavior.
A35 FromZeros::new_box_zeroed_with_elems docs: returns Box, not Box<[Self]>. Explain slice DST/count semantics and replace obsolete new_box_slice_zeroed example names with actual usage.
A36 TryFromBytes symmetry docs: use a Result failure formulation, not == None; preserve its caveat about which byte sequences are accepted.
A37 write_to_prefix failure example must call write_to_prefix, not write_to_suffix.
A38 check successful Results in all three write_to/write_to_prefix/write_to_suffix examples (e.g. unwrap).
A39 mutable prefix/suffix-with-elems docs must distinguish following bytes vs preceding bytes correctly.
A40 correct copied TryFromBytes names on FromBytes code-generation references and check actual anchors; do not change unrelated benchmark outputs.
A41 Unaligned derive analysis currently says enums must be fieldless. Document supported fieldful u8/i8 enums with Unaligned fields; also ensure packed-struct wording agrees with implementation.
A42 ByteEq prose names ByteHash; correct it. IntoBytes analysis names FromBytes in its safety-contract discussion; correct that name and any similarly scoped stale naming.
A43 SplitAt derive example is copied from ByteEq. Replace it with a compiling representative trailing-slice example that actually derives SplitAt and KnownLayout (and demonstrate a split if concise).
A45 src/layout.rs::pad_to_align docs describe removed repr_packed argument and tuple/boolean return. Match current signature, explain stored alignment, and update the safety example.
A46 requires_static_padding docs: distinguish a conservative failure to prove unpadded from a definite proof of padding. Verify actual uses before deciding whether only docs or name clarification is appropriate; avoid unnecessary API renames.
A47 qualify allocation-failure guarantees across core docs/wrappers/util: zerocopy returns Err when the allocator reports failure, but cannot promise that the global allocator never aborts. Preserve direct-on-heap/no-stack-temporary claims and existing allocator strategy. Cite the stable GlobalAlloc contract.
A48 ByteEq/ByteHash docs: distinguish byte equality from field equality (e.g. +0/-0 and NaN), and require hash compatibility with the chosen Eq. Do not change float equality, hash encodings, or runtime semantics as part of this documentation fix.

Run appropriate unit/integration tests, doctests, MSRV/stable checks, nightly Clippy, formatting, and pre-push checks. Keep comments within repository wrapping rules. Commit/push without force. Report actual command results, final head SHA, and per-ID dispositions. Do not claim that your own implementation pass is an independent approving review. No merge/queue/settings action.

Instruction posted by an AI agent acting on Josh Liebow-Feeser's behalf.

@codecov-commenter

codecov-commenter commented Sep 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.94%. Comparing base (c975a84) to head (574e19e).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
zerocopy/src/lib.rs 92.59% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3675      +/-   ##
==========================================
+ Coverage   91.90%   91.94%   +0.03%     
==========================================
  Files          20       20              
  Lines        6175     6205      +30     
==========================================
+ Hits         5675     5705      +30     
  Misses        500      500              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

Testing

  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test --workspace --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test -p zerocopy --doc --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +msrv check --tests --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly clippy --tests --all-features --workspace
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly fmt --all -- --check
  • git diff --check
  • ⚠️ CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test --all-features --workspace — stable rejects the intentionally nightly-only float-nightly feature included by --all-features; validation was rerun with the repository’s stable-compatible feature set.
  • ⚠️ ./githooks/pre-push — repository checks could not complete because the environment lacks yq; action-validator installation was also initiated by the hook.
  • ⚠️ git push origin HEAD:joshlf/audit-core-fixes-20260912 — this checkout has no configured origin remote.

View task →

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex complete publication of the preceding task's commit e6e4fe8aeb185af554dd3756380effd74da3bd09 (task cd_6aa55e3107a48191a51cdb891608ed31) to this existing PR. The branch still contains only seed 24abdbfabb323183acfbf9df0ce95596a9dcc3e1; the reported implementation is not yet on GitHub.

Inspect the checkout and recover the prior tested commit if available. A missing origin is not a permission denial. Read live state, then configure origin to https://github.com/google/zerocopy.git or push to that explicit URL, and attempt the authorized NON-FORCE push to joshlf/audit-core-fixes-20260912. Do not extract credentials, bypass an access denial, or change account/repository settings. If a GitHub connector is exposed, use targeted discovery of create_blob/create_tree/create_commit/update_ref or file writes and invoke the actual supported schemas. Do not infer all writes unavailable from the failed CLI attempt.

If the prior commit is absent in this context, state that explicitly, reconstruct the same scoped changes from the preceding task, and revalidate before publishing. Preserve the seed and leave unrelated anneal lockfile work untouched. Do not modify the other audit branches.

If publishing remains blocked, return the exact tested changes in the final GitHub comment so this parent agent can publish through its WORKING GitHub connector. Include a compact unified diff and a portable gzip/base64 JSON manifest of all changed paths/modes, full final UTF-8 contents, symlink target text, deletions, original/new Git blob SHAs, parent SHA, and commit message. Include the uncompressed manifest's SHA-256 and byte count. Do not include unrelated files, credentials, environment data, or binaries. Respect GitHub's comment-size limit; if the whole export will not fit, include the complete compressed diff plus the first numbered manifest part and its total part count, and keep remaining parts available for a follow-up. Use clearly delimited parts of at most 8,000 base64 characters.

Before declaring the work complete, publication must be verified by remote readback, then independent review and CI must pass on that remote head. Report exact failures and any validation gaps without pretending prepared PR metadata or local commits are published. Do not force-push, merge, enqueue, weaken CI, change settings, or self-approve.

Instruction posted by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

  • The previously reported commit e6e4fe8aeb185af554dd3756380effd74da3bd09 was not present locally or on GitHub. Fetching that object explicitly returned upload-pack: not our ref, and GitHub’s commit API returned HTTP 422.
  • Configured origin as https://github.com/google/zerocopy.git, fetched the live PR branch, and confirmed its remote head remains the seed commit 24abdbfabb323183acfbf9df0ce95596a9dcc3e1.
  • Reconstructed and committed the available core fixes, including:
  • Created local commits:
    • be775c7Fix core API constraints and documentation
    • 5291c00Format exclusive conversion regression test
  • Preserved the unrelated anneal/v1/Cargo.lock worktree modification without staging or committing it.
  • Attempted the authorized non-force push to joshlf/audit-core-fixes-20260912, but HTTPS authentication was unavailable: fatal: could not read Username for 'https://github.com': No such device or address.
  • No GitHub write connector exposing create_blob, create_tree, create_commit, update_ref, or file-write operations was available. The required make_pr metadata operation was nevertheless recorded after the commits.
  • Remote readback confirms publication is still incomplete:
    • Remote: 24abdbfabb323183acfbf9df0ce95596a9dcc3e1
    • Local: 5291c00fb4aa2bf7423b6fab3a21d8f5202dabb8
  • Consequently, independent review and remote-head CI could not run against these local commits. I am not claiming that the prepared PR metadata or local commits were published.

Testing

  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly fmt --all
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test --workspace --features __internal_use_only_features_that_work_on_stable
  • git diff --check
  • git fetch origin joshlf/audit-core-fixes-20260912 --no-tags — remote readback succeeded and confirmed the branch remains at 24abdbfabb323183acfbf9df0ce95596a9dcc3e1.
  • ⚠️ git fetch https://github.com/google/zerocopy.git e6e4fe8aeb185af554dd3756380effd74da3bd09 — the reported prior commit is unavailable from the remote: upload-pack: not our ref.
  • ⚠️ git push origin HEAD:joshlf/audit-core-fixes-20260912 — publication was blocked because this environment has no GitHub HTTPS credentials.
  • ⚠️ Independent review and CI on remote head 5291c00fb4aa2bf7423b6fab3a21d8f5202dabb8 — unavailable because that head could not be published.

View task →

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex produce a COMPLETE COMPRESSED UNIFIED DIFF for all 25 assigned core findings. Do not attempt publishing again; missing authentication in your environment is confirmed, and this parent can publish exact deltas through a separate authorized route. Do not return another source-free summary.

Recover local 5291c00fb4aa2bf7423b6fab3a21d8f5202dabb8 from task cd_6aa56341952c8191b3de2b8ccd9e3d73 if available; otherwise acknowledge the fresh checkout and reconstruct the full original scope from the implementation instructions in this PR. Ensure A01,A15,A19–A24,A26,A30,A33–A43,A45–A48 are all implemented or explicitly adjudicated, not just the subset listed in the last report. Preserve unrelated work and the seed.

After testing and committing, export ONLY THE DELTA with git diff --binary --full-index 24abdbfabb323183acfbf9df0ce95596a9dcc3e1 HEAD. Gzip it with mtime=0, base64 encode, and include the COMPLETE encoded DIFF in a fenced block in the final GitHub comment. Include parent SHA, uncompressed patch SHA-256/byte count, and changed-file list. Do NOT export the full source files: their repeated contents make the manifest too large. Do NOT substitute a local filename, make_pr metadata, or another prose summary for patch bytes. Reserve output capacity for the actual compressed delta. If the delta will not fit, emit at least the complete first numbered part up to 10,000 encoded characters, full checksum, and total part count.

No UB reproducer, unrelated lockfile, credentials, full binary artifacts, force pushes, merges, queue operations, settings changes, or CI weakening. Existing Rust/format/Clippy/MSRV requirements remain. The parent will verify the exported tree, publish, request independent review, and run remote CI.

Instruction posted by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

Delta metadata

  • Parent SHA: 24abdbfabb323183acfbf9df0ce95596a9dcc3e1
  • Committed HEAD: bdc135844ff0ec0971a7b521af20060387d598c9
  • Commit: Fix core API constraints and documentation
  • Uncompressed patch SHA-256: b2ce310c16dab8296543bbec4b15c7411d0a27044d4bc2a5bf8d7d82c0e0a745
  • Uncompressed patch bytes: 25235
  • Encoding: gzip with mtime=0, then base64
  • Encoded bytes: 10140
  • Parts: 1
  • Changed files:
    • zerocopy/src/impls.rs
    • zerocopy/src/layout.rs
    • zerocopy/src/lib.rs
    • zerocopy/src/split_at.rs
    • zerocopy/src/util/mod.rs
    • zerocopy/src/wrappers.rs
    • zerocopy/zerocopy-derive/tests/exclusive_conversion.rs

The delta implements or explicitly addresses A01, A15, A19–A24, A26, A30, A33–A43, and A45–A48. The unrelated anneal/v1/Cargo.lock modification remains uncommitted and is excluded from the delta. zerocopy/src/layout.rsL123-L141 zerocopy/src/lib.rsL5077-L5088 zerocopy/src/wrappers.rsL230-L254

Testing

  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly fmt --all
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test -p zerocopy --doc --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +msrv check --tests --features __internal_use_only_features_that_work_on_stable
  • git diff --check
  • ⚠️ CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test --workspace --features __internal_use_only_features_that_work_on_stable — all unit, integration, and UI tests passed; the first run ended at the newly added SplitAt doctest. That example was corrected, and the complete 310-test zerocopy doctest suite then passed.
  • git diff --binary --full-index 24abdbfabb323183acfbf9df0ce95596a9dcc3e1 HEAD
H4sIAAAAAAAAA+w8a2/bSJLf/Ss6CZClYpnW+0En3slks3fBzmQHSQa3OMMgW2TT5oYiFT5saxL/96tHk2xJlO1kJsAcsEJmKJHd1dX1ruqigygMxdHRRVQIefybylI/Xa2P88w/jparOLezXCza7x9ESaBuxCgIp7NJGAz6vdFsPFL9UA7GczkZ+oO5H8yms344k6PeyLZn82CxCHtSDRejUPmjwXg2VdPh0F/404EKe/3+bCHlZCr6vd5kNDo4Ojrah9PB4eHhXrx++EEcDYbTUXcqDuna7wu4t0wDUai8yMXnA7H9uVJ+kWZuHl0kKnDjNLno7h1UJsawzVGdk4Mj8/eTMz+8sGQcW4XMLlThysy/FC/EY4lfJqPHXZGkhZWkbrUVVz8BVJaB23fHc7fX6XTODw7b4W7ex8++lXZHPmTplmkyWVfbUUkQyQSXiaOiiNV9+1kogDub4pY24eIONxZ5cpaVeREuC8fJP0arrafIR4aI0F1g7SNrl1966a4I41QWw8HNwC2aH6P6x2R00zd/0LAoKWY3s+Yb3T0I9qpLLNdpWbToS/1AK0wAYj+bBJPh1A9n4WI+8gM1G6tgKofj0XwESjTph+GkBwrTm6ieL/sB3poMwuHCl3IULmYwpzfvDcaT3iycKHmHwjSLt2hM8xBVpj+YocbwBW6gPom/5cVPNKpSmuPjY/j/4Hlerk4H8+fHeLUPDKFE/n+USVRztLmthWaVAkVV5l5HQUEi2p88xtGkOatyYfmZLFRH+GmSF+LVr+/evX77wf355b/clz+9+a+3jnibJv8L+/g1j35TMH8pCxB186bjJOra6ovnz8Vg1gHUD78L6HnHNCXv06WylvLGlTGYh454cSrqX4YxAWAKnxEKYEsyJf1LuYjVI6ujh92eEENG43m3PxOHdB3tZ8ntgWh481P0UQmPBzjOSgZukTIOXlcUl1EuMngSAQ5wTYIc7ilBu01Dfs5SwdxAiOVKFCkNS5TMQPHEsoyLaBU3U4r1Sv0lF7TMUiWFSDPhZWqVuSvpf1SB10Czri8j/1JdqUzgWirPO7b4gECWqrgEEx0reaVy8bf3HzQmuSgToFByoYIuYJr4CpFpIBaZjOIouRCw2QCvgBXMzhG+ny5XZaECIQuRlUkRLZVdz2xAfIDNSR8Hg21DEIs0BTwSBOEVWak8EYVEAtg/bh6G4Og0j4ooTWDFBlYYqRjImigf9hYVElfP4RL5wpK5SFcwC24BSYN1IpeR36kQPxEpLJFdR7mxOy+Uca48m0X4IfxQBh9y8FewWJSYrGV6NwC/jvB76d0A3Ef4SkgbaX0DtMsCkAXYEesarsDLI1wpPHAEIEjWq865B9vJSr/QcsxoN7Dyy7SMA7FQsN2r9COuHRYI+pLv+BJ5lSPYM69WIsdRNwW4Me/cFm8MNnq5ikMP9pEBiVcpaUoK+KCoA6oZwr+OwH6RnFss59bbTofUTCUGJFMRDCxzVSBIj+zGW5xXs194aCVMpu9Dh8ESVuCogGWa440ILMGNwk8wM8G6gZepMIZohoiDMFiiwSIBc5OijVWmjvoyAXuOmyi1LLczL1OAsKYT6mwNLFChBKEVSBqVA5rEm66QaI/k9n0UqGWaF/EaJDJfKT8CJQtsNpKzHnqt0XRyn9d6gxhZqxS4XUQQOq3F5XqFJAfVlHFHXAHNAs3OVx2POb1QFxHIDO2ANbsBeH0JmlztFzSxYlKYxnF6DXRJE1hksRbodNEkLoE18BuCF9JUrUcNwEqh0FmCyPpxGbDyMuAOSxbSQIYK2BWgJK6BWLBMmmzJrm3afsuQQdjaKkuD0selZIU/kZ3Eywc6bwneJqwHAag3pRJfrsBoStz2poDQFCRzm7z9D24OfFmSiotSZhJCBpVXlm+hLuVVBCStPJAWTLDSlaaQiJKIjPtjFJFxv68zgXYZwY9xk1XIEbR/duLkJ90oCdOuNukoRm5+KZHh4MuRgcCx28Yv1zz5hSimTH+iMc3UpzICaa+8xK43aHEC2+DKBF2paeVRaT4m6XWCETnSTa+jl2lA6fUa4M2jlxV4dnts2JNcZVcA4ko5YHGQ0CCiAdCiUEJFiLNeVwNuwKWZZnkjBTKR8TonuGgWEVWQrSv2NHIBJsAnt1YjqUNKtGouGJ86xowS0CUFKdG1XOdV6AkRnw71wqSms8sEcDVIC7nQEUen5PRBGCgWhmS228doGL8M5lX+6EtYNszSJQrNTkIJ+AiIh1XmOM9OgPmHjBqOOa9+PDAWptGANCU6fglalRRuHU66C4zdZLa26uAWPzIH1kBS9umRZfi3nSjXhoUh1hRVEHvSQIjBJ2nOvNjQkI1kTWvGXWtspY214jjiPXx9g98c/BaAolFYDdjcbk/ar2KOQLk0xt+etJJBBzyb5ss21Hg/NkQbcVtR5/bgsBI15qcwORTAf7yWG2IZIY58ZW1kB+2UdZx6uOM8L4eDUwsWrCexV9WbqLHerl8Ye0BAANz6oH0L3agtWhqGEHR0hYrV0qWY/5bSlJZ6iEHDalZvu7ixNa6G2hUjU6buHrpUS8dhoU7DmgYmEZj6Gz9dxBpi9ch/ZD1+fQMRAYaa1e4fd4x067bBeVcuaN1KHTaQvmfs3VhvJGQfyEKACbtG3y1JviDMqEXAQ6vKMWgVUlaDKOCw76o5RIu2ggPd1dWG+XA4mg9GwWAg+0F/Npf96VgGi8l4IEfDhT+cDXrDgZrNbHuh+pOpGsLQkRqMZDAdDOeqP5v2JiM1nfTCWTCdTP2Rf1e1gVduKzXwE7Ktsx4XGvgKt9BMo+2sa0aQEaB7cT5k67+Dsf0RQyagLZJzAZIMOiMojRSeOYIoiR6kjhcoNIXETq0wBI4p9gKH/qlEt5IzQA5lYCgEat6bpEgZlk25CXmza4hh8y6tmkOsDos6wlxXHB7oZKaaTIEauFp1E4HvgcCy5JDPK2Am5AAlxcoSkmwKsUxgjlNkaxfCc3IzLkWLFkhfrr92QGNfCE4PxCsMAXVGgdHO4TeAs6PcVVkGUd0uPNrWhUpURvEyKEW5VOzD9ab2UA/kGMjNObDMIgyDFUNjbmCGkuuIG2dusNGmkSQrw8l83J2JQ32tZIUDYAygC4HzsDqTbzHlc0tM+US8zrI0a2L4Jj57p4oyg0gfohmFYyCgRpHRWaMIwZ6WmbLFy517KHWNxDUQEypygAD6EoVbssHCIAjWkIs0K4x4bmf5qErlaTm4ARE8TMnrVRcY+OMkjMKTMo4NaFjPuIjThYwNAIAmhCbLqCi0XiAKELrlBaSGKJ3b4Dbp9+QsSH3wXZh2gEi4ORhdoIJZd70EQLBliGIux4+7zMDpaNrtT4CD+ss3sBA///xo6SmfxY/pDfhNFOdMXlurIuuAH2sJuV9BzotgpPBgyvOz9xDonZ96wpIQ6t1gWQYdRkdQPIe2h8QYZhiU3IKBIADCzoyurgVAFJuARa9LJLRCAw39HgRyud0igJRfh2XiVxkvCE1YxmR2KkEEiDHGjaZJ4W15KK8bZTFgxgrEKSA8j6IkwqQ3+g1hwLglY4xxAYmpj/vkfK5QS5A0CC4bWCgkUkfivOCJcOs1MVDzP9ri74CpupGQXEFk1iSj5YxqphCz3nCk4zLlLDowmk462lroTXLoTwNFEHE2uZHd4mPc3AlmH0Gq2OY32U2a6T1qIBtINrxAbD3cCsjr2YfzqjpaYYEsN6SEdq65W3GxgWXgWaNX07eNtEJmmVzfhVpFSOE9Pytn56cNDZl6LoJ3EZXcIKSBfRI0ADdFgPYGDuRoqS4ku8Rtate7aMvM/5mIfA1WY6mLNWzdaM+YWRNx2ELSY8iI2HIZUowK1HB0lakjrU0QWKXZugswcZjXJjceFT0g/1doz0A9liiaRj57L7QdCu4BWe94AS4wjDb0tn72JmQxouhDMqk5fOOiHJVsig3lJnFnayukNpOTCfk5vv5Z/VwDxgix/uPnkIGz4YAYyNf/MPD/GwPHvSkVkvV1HwM5qG54ucO97dV5KUhTcSXxeFkWRiRumKDHVc1qg9nvlRJnWwH9ZjBvWrFz6wnXQe29Y2yNV8dgAi/yHVbQBKlqdURvie4a8ltINFQYAmvyx+Y5sSuLIrPqRJCrei5X9fAk3izydXYnYmWtfXKnmg2zNL/n3X6PGE5fvpbj+KGAwEH38pvSNQeqJL6jcunzp8Btgb6hK17JvCCV5pvo0rv06PSU511jwtjUKvCR02SU4lD8A2uqXDJ4/gtXDX9WhQxkIYGwhMIpDHuzBPh4nGwUx74NmN7QVg0rT8vMR1b+UmQ6CocFLb5tVohwMHjVhQLnjTEWj7AxHaUqKiyauknqxios0iusmT53u+JHRUao3sWpRcdjROjOdqXym8G/vvFj2OTVDvh6q1x5axbYKpFBOpJj1fjFqf4K+oCVSpdS2qhY83KW/m972U7n1OpgEo6k63S2Wo1ATiywrQRdf7eXcuXmmW99yb+IvJnZqYzXfMTGi67fbLy2z/lApyBiLXI+PuB4BY8OQVTpNJgPYyDgCqMbipCZC14DjUQLBuiMX1axUnu6VEXWXUpcjKWM6L9e01d0WMYZG4ZhXHPBgzjwFWUYRn6EB6A6QWNXVWN4uAWQD+1+B8Bmy5yQyNUqS1dZBNE4lk5iahmrWjC0E/WAvR4tdUZ0cRoovyZ6ind+hicUR2V1AwwH6C2du5xFSQhSFy1ghSDKfZkFmw0AxjEcGh8ABZp9RN+PUHfPbX1CNmHnx9fv7vxYYn6f99uB0eacdgZ9nf/73Wv8qT3gYMTnonz97kwnDfqdTN+B0caQnUFfx/TfvcafmulTLr7rK9wKE7Gtl7y55x+cRgAwsmiPH+DXX+ns7NQ60N2BR+INxv/cCEX9JwskdlMePtcl3sbh1OfA8C8vF/+m3hTISKj9yAZruNny8AxbK55VnQ9c+KJCTOqXaPfA25zhjGKN578BdWnl5+SimjozexnC7xlQcBPc4QPBmUX/O8CxZ9isjgQQcUVxXvcw8KmHSZqzdwjtXeUFzx1xWRSr3Dk+BsxsbJA9ioFAdppdHNe+8hjrDkf61OqyWMbM+Pl0Sozna5u2Nwxuiwso4Cq198OaWa8rWv6dn7ToNJsE+zqLCuUWqfW0BnRm2+dVWPeAkXaZXGdyVR+SbmBonNlpF4049rti0BXDrhh1xbgrJl0xPTemC8/ziECT3mSIBNLX70agh5NJq+PDqbVnwh9DNI13K+n64z6Rjq9/BtKxCfsK0rVP+AbS8b97pI7JNhwNsWZE1/n9ZGPjKjY6Djte3Wtb9SD2Ox19hIaGmKsz1MsWcdUmKZeOYalDPZubI7CBkQowWXoFzgoCVu+tx0ZNfSplLPo2W1q28rV1l2zuj6gLCZcQ1lLJhCvxkk9fryREwxDdc6EV3CF7iI5t+o0aImMVzcwdljPc2mE1+jXkdWuGgkZU0U+9iuF3jFDaFn/H0TWWOUb3FUBRlao5V6HKPDYbwq4hpcQkQJ86N3lBvQl2VgrL+Ib53vUZDjP2hxqnJzzmoHqlI1lboZIFFs4gbmCXAGEUdpl0tA+fjMZTkJdDuM66/UGr4NTwteBUrpYOG7B1KBCQNuBRxF9yIBGvY73+1BW/yAyPCV5/6kDmwfd/qO+dV429+vCcZALSXSzyYRMYyExJR8XUS00HMdjerjsZQJyphtflntwNb8hSRb259WqOoz5550LpUiAeFGtEUSf+W+aXHWyJTYDvBfMLWzszJHkaMle/BiBueT+4phvSI0fvUXOAh4xvzlDo3EVvntodsUNUP8GDvIpeWok41245ehAyuAIhlhd0GPngoQK30TBFZ6LmMXwd2uRyqVDKWXuqKSeMZXX2RC/EABOPqE1NeD27pzd/RF/1Rhki2wc+1sfDSezUIGSxfwVDEzasW729eHR6GcVKvJVv9UwGh/ktTQczlFAf2PZMWkGjANK/tb79UJUyA2kIq1z40cXIz8LJuxPpZaz9LSssSCdaUeccUozmU8PA3zWtJU7UHeso7o4DicSlBZpJXDBvVj1n8IgbNljAtdjuVZttMa8knJrLjbNBXA6XqRQ/woI8NSolF8A8rH3hHMYIq23kWBEde7/oshLsiLop0F6FsnZC3FKt+865WSoxBH7TpBzycbEsqjcS4PYCsKV5C1NVnEposVsUBA5b6FmeaFVEnKE1wtgmy0Qm8g4htno3g5l0G76BKOWBQ/BhKPPQcfCe+bxh+O646hmL2rg3pIZV+DLvDgYPE7Y7R+AaWiDfVHRFX/F+BRR7WdRJXGPJeDZpLoYEKxjIJzj83kZ+IpR9YTuGQbtvRtUPt9lQUcFpqImR6BEfnLXu5zNvuWuUx5vY6vZEzz3bcAbtg7E3FwebywD8OqvsCk0f7Ei9A6Nn1eNqUQOCsa6RaNeQ0f7w1OrNGMafaSZ+Xr/nL58rkhw/q2I2IWzbrm4/O9augIf/guEj9fpWY0EHHVHOus2dRRqArtDpBeNwy88wgF/x/Bca0PYxkvX0TAfF59uhdQ0ixw0CBAZl008wzBDSto3mgBfogi9BdfAMAMfbV5F0o4qC9QQjWNfQcS8Qsg/OW4YgRHg2pJi9ErDv6E9IhWdj9haziS7it76xrLn1j596U6zQGAJyCvFxV3xAlJvhYSJcalH+GLdMwH5EOrGiVyLMqs7nzV5fpLcLWOOyVg/XKbZ7fM1HZv+tgQwQ8kvzhs1f4Qf5qsjHr56xPD3zqKxEXz9g/vIWQ5YvRKtpr0cZ57TXHzyEVv3xV9KqZcI30Ko/3kur5tF+WmHrMBg/zGi0dwYntoiSJizg6A2zu9xhwgwnY+q3mw6nE91v10oaFvZHFnYXnQhqMNoqblpPF2VoF6ysVZOoeUbWAmKr2KvT6XYwDdGw5QnsO7gA7kDYfIcRi4LG8Yu9dcTICwC5X9JbCQ5j0x+ed8XLXycjQEq/bGaZp5MV7jhk11Ixxv1tlPfM3jzTN/f8UAh/mvWrAtI3IrBRf/o2DO6WvfsQuF/sajWshE6/T0jvmTxQAsVrzGnxmHkDHBb5VZKWF5e6kIXRIITTWO3HnIp661R0cVkVurAuAkF0EGRYj0gTtQGOAsyVzDcGVVk9pmkebr56Kew+fei16sPhNj3p3Fvl9wrm/LzTpcPpurHBcV5WBLNccGoPgH6n4P4hK9wl2H8g/nvk/g/Ef1st/lj6t6nNg1Yg6LXbql6NIkc0GQy76Icmw1F30LvzD7AEWbqyrkzXclu9Pcdgq5fmzL8rQk1qbpS4/IcUQNfcK+W7/LoDvqKIf2pkTH9q5NyEZbyNh5/qDS6cq/tCY5VcFJcudo2E+NLZSsPLcSl8ezjffO2uUr00iy7AOcdYwO73eiX+5ZFBrwcRbw+L1oe7M5De9as/L2oAdpEiPtZ21GAEqCXyj6caqDMHK4hdbuRxnJ9f/kvzkpoCiZmdO4A/fdaAeFoh1dm7gwjfCC2+aQc8dWcHFUSqo3/zJhooG5toZOywEbiNt/pMudjsGd58p69tR9vju9ggRG8s4N8N6ZHWsH4MqeViOhnrN1s21OOrMXOpo5zw2whGSbfABwwHJ6J3A2LZ2+0lt3boiKzl7vcX4t7JZm62S5pHFgGyo0Jl2PQUx9aXp7rR50vV8YPvNPU62xZghwb734SrUsWW1+GMR/qduOmgt5DTUc+fzRaDvhwNR6o/CkOpJovBSA4W/9fOte22bQTRXyEaIJFrmeGKXF7UxkAemjcDRaMUKAxDvLtEbEkQJbgt8vHduSy5S5GqneSxTxJEcfY2O7szc+bI3M+jMqxdtyj8Ki6iQBZlLmVcVSL0giKIilwUUtSVSPxKxNk5yiqz+ZHCOPMxVcfFENunj7HIPgcBls8DBBr8B+8NMBc52hzrA3aQp+0Ytl2DfYmOAuFOD2AeMUV0j6UxWNJN9QJkN/sg4hsDbmwHcDR4Ct66V07wppP7hLVnutx849yajCNGxQDVbt/NjEl4haKvSkyKww8Xmg8FMIAOJHaQq0WZ9Ydst7PkIbUL3sz4bwZSxO66i0kUiA8otxUFqkOhqAiObPd2WGH/Nb2FwCWklSqjmgOoFPZzqifFBp+2PVIOM1rONj9kDd4ToVKJiGtgKaHyFBUoHVluC35OKYD2zJY7HpqHt48AijnZcsYj3nLSC2SQ1Z5XFHUd514u4zAO6tyvvSCuEynLIJReEbruIirrPJF+mZV+ra7jAuix4ipWe9NL4qCo/FjEMvbObDmz+ZEtZz6m4gtBtReCDDFBcfvgYg/G78Kd369aEKQ9C4D/vcD3oL8k7TsA7405+sh5TPhpWmngoFBtjPEKGo80tWCwkFWxCIt8IWtle72wLMWiLHM/rKWXRAtlJcuyjlxXKsPt18LzKxnHRRAo21wWWVkvYgGq5ItFkQd+5J9RGrP5EaUxHzPBILCJXOJnxzzz8+pap17hq2F9wWqAj6kWGlMKnQ5QgoJNcat0pa0b4PUwqstX17OLtMOV/QfTBR8WNeCLwH0ADic0ILPXHdPF65V5TQA03PsPv6z+WDpp33m08RSrUxZt00KWbXMAmqJ2yxlwLHhi2pxVaglklg/MMlIVltPtBOUm03BdyPczNK73truZmVsS8yOJ5EmE13bKuDVIQGRMIYEX1FKZqFvV5afKEgcUJZwbQge/BUYN3IN4rA1xzmp8NCYER8N4LGl6bK7lwU/Nqk6bXVH4jgOic6eDdGieq3ZryQN+pxQTVSlH/hoMIhBDA9EM3QrMuB1bM1cNL/brZIokMZiY69arizWoN5GMZQPJOtdU4Z6Rx5LG7C7QK5bRDEIWq/Qn+zjqZ1kZm/32yRYI7yjlAKJNfdOgYc0ZivG5qnYM1VAWLLtXxycklDDy8qfS2NJaEUu2minnV9Ckr4DUvVItXnUqe6UOE6Ck2rfLydYcIpnTr2D0todGELsAAtuPeyCIQ84bppfDgklEmcwHIhse+iOtCl8gOoYsY1NxYtKk6KsJDGAJxGbetCYpE4/F+A7UTHBOpciCgcZBOW1wP+xPivT1j0ichBw3B2AX0LE1SxKaKJxjJJSjW2yrgQstpnCQAAttGxYcb497hwlxnJuPv/1O6MbQnwvfuZRhAp+dNV4yNtWGrF47N1DY8WkDJbG2nf6fK+AbSvAoUGOkuFDgDxcDkibjyFKnFHuTyoM94nrMHpUTs3RWy+XAqTErq7pa/LnTRwOupw417AbwtfQfXS2xcYZl+/sjbw1Ljq4bTvXdn9EsvN1Ya3uTBrAibASoBjblfPxMGOnUVG8GPbDkvbw35v5DNi+gQzk8/E2oLKA5SDkvz+5Do3wTo2MGGYAliyp75l0Mva+KTo3tlrIpOsIZ8QgHU7bPmwPyDZjSZsfNRV+x3hEzwGZPBLrIySLgvT4SORllaeISmvVxp/SpsmMlOph1VHrLxzWFbCBUOhML30o/HF2W8SX74mSu51y+c8RpfoLCQpo0iCUFp3Vs3O6H7b6ousahgIwj9tCPiU4NZbHr/E518WB2ckjhxX0ehGwCGRoBsglCJGpiDn+e+Ae0PTLokewm3BjmgNzcaCsGN4xcXYTIBLaklV1oFW5qyn17GGjxXjMXKDMKyKNDtXGdT2hJSaHxzqouJzfNviE6yT1cFT4DRP+wJbXyEwjIJUEyRhg+1nU+TvtLOoSxhLPdHZrH5h++EHbvTWrYLSaCxd20gt16d1rDphb7zFLrtwdrHcXJ89da/fk09Wur963ohkEi1aSNO4L6yxWZmbc4yW8rXR25JmxaC9Nnu4kvelETYEVeEZaZzEIha6/MFsIvZS7LYuFlmVcFXl4rTzEXrltUUZIVifDjqg7qLCiiLPZE5InSE1KGwveqslzkU8G+l3Vu4GK+7GUkPlU3HulcBj4bQWXkqr92D03RHNZYV7lmCMw6g+RO1XZ5jLXS3DWiVzUJlElgqC5Oy2Vf96PcrHW3c09w+rjkDHS/Y/W1oDmUWVIbo1dtDQ+argYcoPBVCycx5vFGvlk2dpDxQVwhoDyrmRw8AugQOFrwLNTPqBew2d45Ef+GkzlSJyBx1rqqAHPisMPsCx7OT9xJEdqzJ27YyDfLptlBsTQD8eRkJmcmUwDJ4L8oIe/7k2IAAA==

View task →

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex resume this PR and publish the completed core implementation. Recover the full patch from this PR's comment 5646661304 (previously prepared local commit 841a8fda7efc7594a9ec5d66cf17fc7a278e2135, based on ae16e9948f306512affae0d371c8b401eca5f1e8) if needed. Read live remote state before writing; preserve every existing fix and regression test.

The earlier report stopped because no Git remote was configured. That is not a permission denial. Josh explicitly authorizes adding a local remote for https://github.com/google/zerocopy.git, fetching this PR's existing branch joshlf/audit-core-fixes-20260912, and attempting a normal non-force push using credentials already available in your environment. Do not request, expose, or obtain new credentials or bypass any denial. Discover and attempt actual authorized GitHub connector Git-object/file/ref tools when available. Do not invent their schemas. If a real attempted write fails, report its exact error; 'no remote' alone is not sufficient.

Finish applicable MSRV, stable, nightly Clippy, rustdoc, formatting, and pre-push validation using cargo.sh and existing repository guidance. Keep tests and CI requirements intact; no new dependencies, settings changes, merges, queue actions, force pushes, or edits to the other PR branches. Regenerate the README through its existing generator. This is implementation/validation work, not independent approving review.

Report a read-back-verified remote head on success. Otherwise export the complete final patch, base/head, patch SHA-256, per-file Git blob hashes and sizes, and precise validation results so the parent can recover publication.

Instruction posted by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

  • Recovered the complete previously exported core implementation and committed it as 4d04165737118e53864dd888db7400575337a01b (Fix core API constraints and documentation).
  • Corrected the maximum supported alignment to (2^{29}) on non-16-bit targets, retained the 16-bit limit, updated layout documentation, and added boundary coverage. zerocopy/src/layout.rsL123-L141
  • Removed the unnecessary Immutable requirement from explicit-count mutable conversion and used BecauseExclusive, preserving exclusive pointer semantics. zerocopy/src/lib.rsL5071-L5089
  • Preserved and expanded the derived interior-mutable DST regression tests, including exact element counts, write-through behavior, and prefix/suffix handling. zerocopy/zerocopy-derive/tests/exclusive_conversion.rsL18-L56
  • Corrected the AArch64 SIMD test gate to match implementation availability. zerocopy/src/impls.rsL2374-L2389
  • Corrected layout, allocation, splitting, equality/hash, derive, and unsafe-code documentation, including the repr(C, packed) reasoning for Unalign. zerocopy/src/wrappers.rsL230-L254 zerocopy/src/split_at.rsL188-L195 zerocopy/src/util/mod.rsL370-L380
  • Strengthened tests for boxed zero initialization, deterministic vector overflow, alignment error classification, and Unalign::update results and mutation. zerocopy/src/lib.rsL7599-L7608 zerocopy/src/lib.rsL7647-L7651 zerocopy/src/wrappers.rsL924-L956
  • Regenerated zerocopy/README.md with the existing generator; the generated result was unchanged.
  • Preserved the unrelated, pre-existing anneal/v1/Cargo.lock worktree modification without staging or committing it.
  • Recorded the required follow-up PR metadata using the available make_pr tool.
  • Attempted the explicitly authorized non-force publication, but GitHub HTTPS authentication was unavailable. The exact error was:
    fatal: could not read Username for 'https://github.com': No such device or address
  • Remote readback therefore remains:
    • Base/remote head: 24abdbfabb323183acfbf9df0ce95596a9dcc3e1
    • Prepared local head: 4d04165737118e53864dd888db7400575337a01b
  • No GitHub Git-object/file/ref write connector was exposed. No force push, merge, queue action, settings change, credential extraction, or CI weakening was attempted.

Recovery metadata

  • Patch command: git diff --binary --full-index 24abdbfabb323183acfbf9df0ce95596a9dcc3e1 HEAD
  • Uncompressed patch size: 25,235 bytes
  • Uncompressed patch SHA-256: b2ce310c16dab8296543bbec4b15c7411d0a27044d4bc2a5bf8d7d82c0e0a745
  • Encoding below: gzip with mtime=0, then Base64.
  • Changed blobs:
Path Original Git blob New Git blob New size
zerocopy/src/impls.rs 4df786fd2104854e1fa259a63c29cd8781f8a404 89dbbf0ae3b4fec42587e733cbc72ef0118baa67 106,335
zerocopy/src/layout.rs d58786d637cf8fb94cde85ed7a3549448561ff60 806e0ca1d856162f3bcaa4fb894c09025608f6ea 101,437
zerocopy/src/lib.rs 9334924d22a1d189a175adb652a43bc382032e88 be167e34d24e24ad7239e187064e760f8d767c4c 284,280
zerocopy/src/split_at.rs 720ba740c88b21a434e14ffae6b24a2b5b3b7d6f cc3e8c745cdb558ee1604c47cb1c51fe193e18a7 38,024
zerocopy/src/util/mod.rs 50454af00ccff8b0b58684fb3f048f955d4650c6 27dfb953dad3feca1cde88e86b20984ce3818580 36,204
zerocopy/src/wrappers.rs 4425ec26cb25fee106dd12ddb36f50972188ddf7 5b243f103e588c4451fdcadf281953d312cb4373 40,966
zerocopy/zerocopy-derive/tests/exclusive_conversion.rs 970c6da5a615f0da213d5b5dc20aa0e40bfcadb1 ce79ac9138ef4fa4c7a801701d01556130edd2b7 1,869
Complete compressed unified diff
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

Testing

  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test --workspace --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +msrv check --tests --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable check --tests --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly check --tests --all-features
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly clippy --tests --all-features --workspace
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly fmt --all -- --check
  • (cd zerocopy && (cd .. && cargo +1.93.1 -q run --manifest-path tools/Cargo.toml -p generate-readme) > README.md) — generated output matched the committed README.
  • git diff --cached --check
  • git fetch origin joshlf/audit-core-fixes-20260912 --no-tags — readback confirmed remote head 24abdbfabb323183acfbf9df0ce95596a9dcc3e1.
  • ⚠️ ./githooks/pre-push — repository hook could not complete because yq is unavailable; it also installed the missing action-validator.
  • ⚠️ git push origin HEAD:joshlf/audit-core-fixes-20260912 — exact failure: fatal: could not read Username for 'https://github.com': No such device or address.
  • ⚠️ Remote CI and independent review of 4d04165737118e53864dd888db7400575337a01b could not occur because publication failed.

View task →

@joshlf
joshlf marked this pull request as ready for review September 12, 2026 22:36
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please independently review the complete PR at a8c424d5f38d9794ce51277c9bc96fafaf89d88c. Check the exclusive-conversion justification, layout/target portability, whether the strengthened tests assert the intended properties, and the changed API and safety documentation. Earlier worker summaries are implementation reports, not review approval. Do not merge or enqueue.

Posted by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 12, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-13T20:20:27.466363Z 574e19e Manual request
🔒 Security Review Completed 2026-09-13T20:23:27.295482Z 574e19e Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

#[allow(clippy::missing_inline_in_public_items)]
fn only_derive_is_allowed_to_implement_this_trait()
where
Self: Sized,
{

P1 Badge Cite the rule establishing the field's zero offset

The safety argument depends on the packed struct's sole field being at offset zero, but the quoted Reference excerpt only describes how packing changes field alignment; it does not establish the asserted offset, and its URL is not versioned as required by the repository's unsafe-code review policy. Replace this with a versioned Reference citation and quote the repr(C) layout algorithm that places the first field at offset zero.

AGENTS.md reference: zerocopy/AGENTS.md:L19-L23

ℹ️ 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".

Comment thread zerocopy/src/lib.rs Outdated
Comment on lines +3769 to +3770
/// Returns an error if the allocator reports failure by returning null.
/// The global allocator is permitted to abort instead of returning null.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document layout-overflow allocation errors

This error section omits failures caused by invalid metadata or an unrepresentable layout. For example, the existing new_box_zeroed_with_elems_errors test shows that <[u16]>::new_box_zeroed_with_elems(usize::MAX) returns Err(AllocError) before the allocator is called. Document count/layout overflow alongside allocator-null failure so callers are not given an incomplete account of this API's errors.

Useful? React with 👍 / 👎.

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex address the allocation-error documentation review and push a narrow follow-up to this PR's existing branch. Josh authorizes these repository writes. Do not merge, enqueue, force-push, or modify the other audit PRs.

Read the live head first (last verified a8c424d5f38d9794ce51277c9bc96fafaf89d88c), the repository instructions, skills/unsafe-rust/SKILL.md, and the current review thread discussion_r3997885684. Preserve newer work. Document the actual pre-allocation metadata/count/layout-overflow failures for new_box_zeroed_with_elems, new_vec_zeroed, MaybeUninit::new_boxed_uninit, and their internal new_box helper, while retaining the allocator-null and allocator-abort distinctions. Do not claim the fixed-size new_box_zeroed has a user-supplied metadata failure. Check these statements against the implementation and existing deterministic overflow tests.

Also complete the citation in Unalign::deref_unchecked: the current packing quotation alone does not establish first-field offset zero. Cite the versioned repr(C) struct layout algorithm, quote its start-at-zero/field-placement rule, and explain why no leading padding is needed for the sole field. Preserve the existing alignment, provenance, lifetime, and shared-access reasoning. This is a proof correction, not permission to change the representation or pointer operation.

The existing zerocopy-derive/tests/exclusive_conversion.rs already contains ordinary executable tests; do not replace them based on earlier inaccurate descriptions of an inert constant. There is no verified staging commit 824a89ae12bd0198c0c7a9df7f69cf5cf7a074c3; recreate needed changes from the live head rather than trying to use it.

Follow cargo.sh validation, check affected documentation and tests, and publish with Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf. Report the exact published head and checks actually run. Independent review will be requested separately after publication.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

  • Documented pre-allocation metadata/count and layout-overflow errors for new_box_zeroed_with_elems and new_vec_zeroed, while retaining the allocator-null and allocator-abort distinction. zerocopy/src/lib.rsL3767-L3773 zerocopy/src/lib.rsL3836-L3842
  • Preserved the fixed-size new_box_zeroed documentation without incorrectly claiming a user-supplied metadata failure. zerocopy/src/lib.rsL3696-L3699
  • Added the same complete error description to MaybeUninit::new_boxed_uninit and the internal new_box helper. zerocopy/src/wrappers.rsL577-L586 zerocopy/src/util/mod.rsL370-L378
  • Corrected the Unalign::deref_unchecked proof with a versioned Rust Reference citation to the repr(C) layout algorithm, including its start-at-zero and field-placement rules. The proof now explicitly derives that zero requires no alignment padding for the sole field while preserving the existing alignment, provenance, lifetime, and shared-access reasoning. zerocopy/src/wrappers.rsL235-L262
  • Committed the follow-up as 5647a055a6db409c84e844c4f8928265f8af7026, with the required Agent-Authored-By trailer. The unrelated pre-existing anneal/v1/Cargo.lock modification remains uncommitted and untouched.
  • Recorded the required pull-request metadata. Publication to the existing PR branch was attempted as a normal, non-force push but was blocked by unavailable GitHub HTTPS credentials. Consequently, the remote branch remains at a8c424d5f38d9794ce51277c9bc96fafaf89d88c; the exact prepared local head is 5647a055a6db409c84e844c4f8928265f8af7026.

Testing

  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test -p zerocopy new_box_zeroed_with_elems_errors --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +stable test -p zerocopy --doc --features __internal_use_only_features_that_work_on_stable — all 310 doctests completed successfully.
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +msrv check --tests --features __internal_use_only_features_that_work_on_stable
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly clippy --tests --all-features --workspace
  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly fmt --all -- --check
  • git diff --check
  • (cd .. && cargo -q run --manifest-path tools/Cargo.toml -p generate-readme) > <temporary-file>; cmp -s <temporary-file> README.md — generated README matched the committed file.
  • ⚠️ ./githooks/pre-push — could not complete because the environment lacks yq; the hook exited with status 1 after reporting yq: command not found.
  • ⚠️ git push origin HEAD:joshlf/audit-core-fixes-20260912 — publication failed with fatal: could not read Username for 'https://github.com': No such device or address.

View task →

joshlf commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please independently review the complete PR at published head c0317a67a04a0f19fdfe6421bdb3c2c3b0268ce0, including whether discussion_r3997885684 is now addressed. The follow-up documents the metadata/count/layout failures before allocation and supplies a versioned repr(C) first-field-offset argument for Unalign::deref_unchecked. The follow-up changes only documentation and proof comments in three source files; no runner workflow is included in this PR.

The isolated staging job passed the targeted allocation-overflow test, all 310 stable doctests, the stable documentation build, and nightly formatting. Its optional pre-push hook could not run all tooling because yq and action-validator were absent; normal PR CI remains required. Please report the exact reviewed SHA and any findings rather than treating the implementation task or CI success as approval. Do not modify, merge, or enqueue the PR as part of this review.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c0317a67a0

ℹ️ 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".

Comment thread zerocopy/src/wrappers.rs Outdated
Comment on lines +245 to +247
// address and provenance. The caller guarantees that this address is
// aligned for `T`; the returned reference borrows for no longer than
// `self`, which keeps the storage live and shared.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add citations for every transmute premise

At reviewed SHA c0317a67a04a0f19fdfe6421bdb3c2c3b0268ce0, the versioned repr(C) citation addresses the earlier field-offset gap, but the proof also asserts that mem::transmute preserves the reference's address and provenance and produces a valid reference with the required lifetime without quoting any versioned Reference or standard-library documentation for those premises. The repository’s mandatory unsafe-review rules require every premise, including trivial ones, to be supported this way; add versioned quotations covering the transmute/reference-validity requirements before merging.

AGENTS.md reference: zerocopy/AGENTS.md:L21-L23

Useful? React with 👍 / 👎.

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex address the remaining proof-citation finding discussion_r3998066270 against current published head c0317a67a04a0f19fdfe6421bdb3c2c3b0268ce0. Prepare a narrowly scoped replacement for the safety comment of Unalign::deref_unchecked, with versioned Rust Reference or standard-library quotations supporting the actual transmute, pointer/reference representation, validity, aliasing, and lifetime premises. Verify every quotation against the linked version. Keep the current representation, executable code, MSRV, and allocation documentation unchanged. Read the repository review instructions and unsafe-rust skill.

Publish the COMPLETE replacement comment as one fenced rust block in your reply, preserving its eight-space source indentation. Include all comment lines from // SAFETY: through the existing explanatory comment immediately preceding unsafe { mem::transmute(self) }; do not include the unsafe statement, signature, or other functions. We will apply the literal text through the connector and staging runner. A local SHA or patch metadata alone is not usable because your environment has repeatedly lacked GitHub push credentials. Do not attempt an unauthenticated push or modify other PRs. Report any premise that cannot be established instead of inventing a guarantee.

This is an implementation task; independent review will follow publication. Do not approve, merge, enqueue, or alter CI.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

Complete replacement comment

        // SAFETY: `mem::transmute` requires equally sized source and destination
        // types and valid source and result values; it performs a bitwise move
        // from the source to the destination [1]. References to sized types all
        // have the size and alignment of `usize` [2], so `&Unalign<T>` and `&T`
        // have equal sizes.
        //
        // `Unalign<T>` is a single-field `repr(C, packed)` struct. The `repr(C)`
        // layout algorithm starts at offset zero and assigns each field the
        // current offset after alignment padding [3]. Zero is a multiple of
        // every alignment, including the packing-adjusted field alignment, so
        // the sole field requires no leading padding and is at offset zero.
        // Consequently, the reference representation copied by the bitwise
        // move designates that field at the same address. The field contains a
        // valid `T`, and the caller guarantees that its address is aligned for
        // `T`; these establish the documented validity requirements that a
        // reference be aligned, non-null, and point to a valid `T` [4].
        //
        // Both the source and result are shared references; this operation does
        // not mutate their storage. The aliasing rule for `&T` prohibits
        // mutation while the reference is live, except within `UnsafeCell` [5],
        // so the result introduces no stronger aliasing permission than the
        // source shared borrow. The output lifetime is elided to the lifetime
        // of `self`, and a reference's lifetime is the scope for which its
        // borrow is valid [4]. Thus the result cannot outlive the source borrow,
        // which keeps the field's storage live for the result's lifetime.
        //
        // [1] Per https://doc.rust-lang.org/1.93.1/std/mem/fn.transmute.html:
        //
        //   Both types must have the same size. Compilation will fail if this
        //   is not guaranteed. `transmute` is semantically equivalent to a
        //   bitwise move of one type into another. It copies the bits from the
        //   source value into the destination value, then forgets the original.
        //   ... Both the argument and the result must be valid at their given
        //   type.
        //
        // [2] Per https://doc.rust-lang.org/1.93.1/reference/type-layout.html#pointers-and-references-layout:
        //
        //   Pointers and references have the same layout. Mutability of the
        //   pointer or reference does not change the layout.
        //   Pointers to sized types have the same size and alignment as `usize`.
        //
        // [3] Per https://doc.rust-lang.org/1.93.1/reference/type-layout.html#reprc-structs:
        //
        //   Start with a current offset of 0 bytes.
        //   ...
        //   The offset for the field is what the current offset is now.
        //
        // [4] Per https://doc.rust-lang.org/1.93.1/std/primitive.reference.html:
        //
        //   [A] reference is just a pointer that is assumed to be aligned, not
        //   null, and pointing to memory containing a valid value of `T` [...].
        //   ... References have a lifetime attached to them, which represents
        //   the scope for which the borrow is valid.
        //
        // [5] Per https://doc.rust-lang.org/1.93.1/reference/behavior-considered-undefined.html#undefined-alias:
        //
        //   `&T` must point to memory that is not mutated while they are live
        //   (except for data inside an `UnsafeCell<U>`).
        //
        // We use `mem::transmute` instead of `&*self.get_ptr()` because
        // dereferencing pointers is not stable in `const` on our current MSRV
        // (1.56 as of this writing).

Summary

  • Replaced only the safety comment for Unalign::deref_unchecked, covering the actual transmute operation, equal reference sizes, offset-zero field layout, reference validity, shared-reference aliasing, and the output lifetime. The representation, unsafe expression, signature, MSRV explanation, and allocation documentation remain unchanged. zerocopy/src/wrappers.rsL240-L301
  • Verified each quotation against its linked Rust 1.93.1 page before including it. The standard documentation does not separately phrase pointer provenance as an independently quotable transmute guarantee, so the replacement does not invent one; it instead derives the same-address result from the documented bitwise move and reference/layout rules. zerocopy/src/wrappers.rsL251-L255 zerocopy/src/wrappers.rsL266-L297
  • Committed the narrow change as a1e6378f41b53a9defa4a4a0bb5bbf4496482c35 and recorded the required replacement-PR metadata. The unrelated pre-existing anneal/v1/Cargo.lock modification was left untouched and uncommitted.

Testing

  • CARGO_ZEROCOPY_AUTO_INSTALL_TOOLCHAIN=1 ./cargo.sh +nightly fmt --all -- --check
  • git diff --check

View task →

@joshlf
joshlf force-pushed the joshlf/audit-core-fixes-20260912 branch from c0317a6 to 6488625 Compare September 13, 2026 00:42

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex review

Independently review the complete PR at published head 09e13632b06847f4fbd659908bfc80f18b88e3f0, particularly whether discussion_r3998066270 is addressed. The follow-up changes only the safety comment for Unalign::deref_unchecked. It supplies versioned transmute, reference-layout, reference-validity, lifetime, and shared-aliasing premises. The signature, representation, executable code, and CI requirements are unchanged. The earlier allocation-error documentation corrections remain in the PR.

The isolated staging runner verified the quotations and comment-only scope, then passed these checks:

  • ./cargo.sh +msrv test -p zerocopy --lib test_unalign
  • ./cargo.sh +stable test -p zerocopy --doc --features __internal_use_only_features_that_work_on_stable
  • ./cargo.sh +stable doc -p zerocopy --no-deps --features __internal_use_only_features_that_work_on_stable
  • ./cargo.sh +nightly fmt --all -- --check

The published commit uses Josh's established Git author identity and retains the original contribution's disclosure trailer. Fresh PR CI is separate from staging validation. Please report the exact reviewed SHA and any findings; the implementation task and previous-head reviews do not count as independent review of this head. Do not modify, merge, or enqueue the PR.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 09e13632b0

ℹ️ 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".

Comment thread zerocopy/src/wrappers.rs Outdated
// algorithm starts at offset zero [3]. Zero satisfies every alignment,
// including the packing-adjusted field alignment, so no leading padding
// is added and the sole field is at offset zero. The bitwise move of
// this reference therefore designates the same field at the same address;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 Badge Reflow the new safety comment to 80 columns

At reviewed SHA 09e13632b06847f4fbd659908bfc80f18b88e3f0, the new non-URL comment lines 242, 245, 249, 259, and 272 extend to 81–82 columns, so this proof violates the repository's explicit 80-column comment limit even though rustfmt passes. Reflow these sentences; only the citation URL lines qualify for the long-URL exception.

AGENTS.md reference: zerocopy/AGENTS.md:L21-L23

Useful? React with 👍 / 👎.

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

The commit-object verification discrepancy is resolved. A read-only GitHub Actions checkout read the raw Git object for 09e13632b06847f4fbd659908bfc80f18b88e3f0 and recomputed its Git SHA-1. The hash matches that commit, whose tree is f8a6b382144e127e6f68a1278081e938c277eb39. An independent local calculation on the exported raw object produced the same result. The earlier conflicting tree metadata does not describe this verified object.

Evidence: https://github.com/google/zerocopy/actions/runs/34730647414 — artifact audit-verification-34730647414, SHA-256 cfc1aac7a819b70212a1d7704d5cafa040f74d1f23704d52102ba536bb6354c1. The artifact includes the raw object, source snapshot, and complete parent-to-head diff. That diff changes only the Unalign::deref_unchecked safety comment.

The current-head review's comment-width finding, discussion_r3998201709, is being addressed separately. Its candidate reflow preserves the comment's word sequence and every byte outside the comment. It is not yet published to this PR.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex review

Independently review the complete PR at published head d978c27f0f12e585e3c5fb800418e1e1b7e74373, including the comment-width finding in discussion_r3998201709. The follow-up only reflows the Unalign::deref_unchecked safety comment. Its word sequence, quotations, citations, and all bytes outside that comment are unchanged. Non-URL comment lines now fit the 80-column limit.

The isolated staging job passed the required MSRV/stable/nightly compiler checks, strict nightly Clippy, targeted MSRV tests, stable doctests/documentation, formatting, and the repository pre-push hook. I independently recomputed the staged raw Git commit hash and checked its parent-to-head patch before publication. Fresh PR CI is separate and must finish for this exact head.

Read the repository review instructions and report the exact reviewed SHA and any actionable findings. Previous-head reviews are historical evidence only. Do not modify code or history, merge, enqueue, or close the PR.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d978c27f0f

ℹ️ 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".

Comment thread zerocopy/src/lib.rs
///
/// On systems that use a heap implementation that supports allocating from
/// pre-zeroed memory, using `new_box_slice_zeroed` may have performance
/// pre-zeroed memory, using `new_box_zeroed_with_elems` may have performance

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 Badge Reflow the remaining 81-column rustdoc line

At reviewed SHA d978c27f0f12e585e3c5fb800418e1e1b7e74373, this newly added non-URL rustdoc line is 81 columns wide, so the complete PR still violates the repository’s 80-column comment limit despite reflowing the Unalign::deref_unchecked proof. Move performance onto the following line—for example, use /// pre-zeroed memory, using new_box_zeroed_with_elems may have (with the existing backticks) followed by /// performance benefits.

AGENTS.md reference: zerocopy/AGENTS.md:L67-L73

Useful? React with 👍 / 👎.

@joshlf
joshlf force-pushed the joshlf/audit-core-fixes-20260912 branch from d978c27 to 4b1d386 Compare September 13, 2026 08:50
@joshlf joshlf changed the title Fix core API constraints, regression tests, and public documentation Fix mutable conversion bounds and strengthen core checks Sep 13, 2026

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please review the complete PR at 4b1d38662522b799e6a0f1348f66249327a64a79, including the standalone commit message and PR description. The commits were squashed into one without changing the source tree from d978c27f0f12e585e3c5fb800418e1e1b7e74373. Check any outstanding findings against this exact head and report actionable issues. This is a review request, not a request to modify, merge, or enqueue the PR.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

`FromBytes::mut_from_bytes_with_elems` starts from an exclusive borrow,
but unnecessarily requires `Immutable`. Use the exclusive-aliasing
justification and remove that bound, matching the prefix and suffix
variants. Test mutation through a derived interior-mutable slice DST and
verify that affix conversions preserve the remaining bytes.

Correct the maximum supported alignment and test its padding boundary.
Make layout tests use the target's actual alignment, and match the
AArch64 SIMD test gate to the implementations available on that target
and toolchain.

Strengthen tests that previously checked the wrong property or ignored
failure: return the intended KnownLayout values, distinguish alignment
errors from size errors, require successful zeroed allocation, check
Unalign::update's return value, and preserve vector contents on capacity
overflow.

Correct the allocation, layout, split, conversion, and derive
documentation and examples. Distinguish reported allocation failure from
allocator aborts, explain bytewise equality and hashing, and justify the
Unalign reference transmute using its actual repr(C, packed) layout and
versioned reference-validity and aliasing rules.

Agent-authored-by: AI agent acting on Josh Liebow-Feeser's behalf

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex address the remaining actionable review feedback on the current PR head 4b1d386.

Only fix the unresolved P3 rustdoc wrap at new_box_zeroed_with_elems: move “performance” to the next rustdoc line so all non-URL comments are at most 80 columns. Preserve all other source and provenance. The PR is intentionally one commit; amend it only after confirming this exact head, using a guarded force-with-lease if necessary to preserve that explicitly requested single-commit history. Run the relevant formatting/CI checks, push only this PR branch, and report the new head. Do not merge, enqueue, close, or change settings.

Instruction posted by an AI agent acting on Josh Liebow-Feeser's behalf.

@joshlf
joshlf force-pushed the joshlf/audit-core-fixes-20260912 branch from 4b1d386 to 574e19e Compare September 13, 2026 20:13

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex address the remaining rustdoc wrapping finding in discussion_r3998298661 as a source-only amendment to this PR. Start from the live PR head, currently 574e19e6956cf5e3f527ceb220195e94eb035240; do not overwrite intervening work. The author/committer is Josh Liebow-Feeser <joshlf@users.noreply.github.com>, and the single commit's parent is c975a8467ffce74944fc151f05616fd00189b801.

Make only this replacement in zerocopy/src/lib.rs (current complete blob b6beb30f0335d51227e62ad4e0cf88a0270e5986):

-    /// pre-zeroed memory, using `new_box_zeroed_with_elems` may have performance
-    /// benefits.
+    /// pre-zeroed memory, using `new_box_zeroed_with_elems` may have
+    /// performance benefits.

Verify that the words and executable code are unchanged. Preserve the existing standalone commit-message prose and exactly this one trailer, since material agent contributions remain in both the recorded diff and the message:

Agent-authored-by: AI agent acting on Josh Liebow-Feeser's behalf

Read the repository instructions. Run the relevant documentation/format checks through cargo.sh and attempt the pre-push hook; distinguish unavailable tooling from failed code validation. Amend the existing single commit, do not append a commit or rebase onto a new parent. Use only an already-authorized ordinary Git/GitHub source publication route. Refuse stale heads and use an explicit lease for any history replacement. Do not create or change Actions workflows, repository settings, unrelated refs, or other PRs; do not merge, enqueue, or close. If publication is unavailable, return the exact patch, amended commit metadata, and checks actually run without claiming a push. Do not try to work around a permission or tool-safety denial.

This is an implementation task, not independent review approval. Report the exact remote head after publication. A separate independent review will be requested for that head. Externally visible prose posted as Josh must retain one italicized notice using the literal wording “AI agent acting on Josh Liebow-Feeser's behalf”; this is not a placeholder for an agent/model name.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please review the current amended single-commit head 574e19e6956cf5e3f527ceb220195e94eb035240, including the narrowly addressed rustdoc feedback. No merge or other lifecycle action.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex couldn't complete this request. Try again later.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: 574e19e695

ℹ️ 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".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 574e19e695

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex couldn't complete this request. Try again later.

joshlf commented Sep 13, 2026

Copy link
Copy Markdown
Member Author

@codex address the remaining two-line rustdoc reflow from discussion_r3998298661. The prior implementation task ended with “Codex couldn't complete this request”; this is one retry, not a review request.

Live head is still 574e19e6956cf5e3f527ceb220195e94eb035240. In zerocopy/src/lib.rs, move performance from the end of the pre-zeroed memory line to the start of the following benefits. line. Preserve every word and all other source. The current source still has this 81-column line despite the latest no-major-issues review.

Read repository instructions, validate documentation/formatting through cargo.sh, and amend the existing commit without changing its parent. Keep Josh Liebow-Feeser <joshlf@users.noreply.github.com> as author/committer and preserve the standalone message with exactly one trailer: Agent-authored-by: AI agent acting on Josh Liebow-Feeser's behalf. Use a stale-head guard and explicit lease for an ordinary source-only push. Do not add a commit, modify workflows/settings, merge, enqueue, or close anything. Do not bypass a denied operation. If publication is unavailable, return the complete exact patch and actual validation results instead. Report the remotely verified final SHA if published; implementation does not constitute independent review.

Authored by an AI agent acting on Josh Liebow-Feeser's behalf.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex couldn't complete this request. Try again later.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants