fix(gates): mark the element-shape test's deliberate raw slot fill (GC_STORE_AUDIT) - #7519
Conversation
📝 WalkthroughWalkthroughThe project version changes from 0.5.1293 to 0.5.1294. The element shape test documents a ChangesVersion and GC audit updates
Estimated code review effort: 1 (Trivial) | ~3 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Cargo.toml`:
- Line 318: Unless this is an explicit maintainer-led release, remove the
unpublushed 0.5.1294 version edits from Cargo.toml lines 318-318 and CLAUDE.md
lines 11-11, restoring the prior version consistently in both files. If
retaining the bump, document the active release authority and reproducible
process in the repository policy.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1ff4ebf8-208a-44d5-8794-1e9b3109e784
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (4)
CLAUDE.mdCargo.tomlchangelog.d/7519-gc-store-site-marker.mdcrates/perry-runtime/src/array/element_shape_tests.rs
|
|
||
| [workspace.package] | ||
| version = "0.5.1293" | ||
| version = "0.5.1294" |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
version="$(
awk '
/^\[workspace\.package\]$/ { in_workspace=1; next }
/^\[/ { in_workspace=0 }
in_workspace && $1 == "version" {
gsub(/"/, "", $3)
print $3
exit
}
' Cargo.toml
)"
documented="$(sed -n 's/^\*\*Current Version:\*\* //p' CLAUDE.md)"
test "$version" = "$documented"
test -z "$(git ls-remote origin "refs/tags/v$version")"Repository: PerryTS/perry
Length of output: 151
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
echo "## Cargo.toml workspace package section"
sed -n '300,325p' Cargo.toml
echo
echo "## CLAUDE.md version line"
sed -n '8,14p' CLAUDE.md
echo
echo "## Releases / CONTRIBUTING / release policy candidates"
git ls-files | rg '(^|/)(CONTRIBUTING|CHANGELOG|RELEASE|readme|Readme|README|CLAUDE)\.(md|txt|rst)$' | sed -n '1,120p'
echo
echo "## Search release metadata ownership terms"
rg -n "release metadata|release metadata|maintainer|maintainers|contributor|contributors|Current Version|version bump|Cargo.toml|CLAUDE\\.md|release policy|release policy" -S --glob '!target' --glob '!node_modules' | sed -n '1,220p'Repository: PerryTS/perry
Length of output: 4144
🏁 Script executed:
#!/bin/bash
set +e
echo "## CONTRIBUTING.md"
wc -l CONTRIBUTING.md
sed -n '1,260p' CONTRIBUTING.md
echo
echo "## CHANGELOG.md header/relevant entries"
wc -l CHANGELOG.md
sed -n '1,160p' CHANGELOG.md
echo
echo "## release README candidates"
for f in CHANGELOG.md CONTRIBUTING.md README.md packages/hono-perry-server/README.md packages/perry-threads/README.md tests/release/README.md tests/release packages/hono-perry-server/README.md packages/perry-threads/README.md docs/history; do
if [ -e "$f" ]; then
echo "--- $f ---"
rg -n "release|version|maintainer|contributor|CLAUDE|Cargo.toml|Current Version|changelog|CHANGELOG" "$f" -S | sed -n '1,80p' || true
fi
doneRepository: PerryTS/perry
Length of output: 50371
🏁 Script executed:
#!/bin/bash
set +u
echo "## Release and policy documents"
git ls-files | rg '(^|/)(CHANGELOG|CONTRIBUTING|README|CLAUDE|RELEASE|Releases?)\.(md|txt|rst|mdown|markdown)$' | sort
rg -n "maintain|contributor|release|version bump|v[0-9]|Current Version|CLAUDE|Cargo.toml|changelog|CHANGELOG|release metadata|perry" CHANGELOG.md CONTRIBUTING.md README.md CLAUDE.md CHANGELOG.md -S | sed -n '1,260p'
echo
echo "## GitHub workflows mentioning release"
rg -n "release|changelog|v[0-9]|version" .github workflows 2>/dev/null -S | sed -n '1,200p' || trueRepository: PerryTS/perry
Length of output: 50369
🏁 Script executed:
#!/bin/bash
set +u
echo "## Release and policy documents"
git ls-files | rg '(^|/)(CHANGELOG|CONTRIBUTING|README|CLAUDE|RELEASE|Releases?)\.(md|txt|rst|mdown|markdown)$' | sort
echo
echo "## Search release/version policy terms in top-level docs"
rg -n "maintain|contributor|release|version bump|v[0-9]|Current Version|CLAUDE|Cargo.toml|changelog|CHANGELOG|release metadata|perry" CHANGELOG.md CONTRIBUTING.md README.md CLAUDE.md -S | sed -n '1,260p'
echo
echo "## GitHub workflows mentioning release"
if [ -d .github ]; then
rg -n "release|changelog|v[0-9]|version" .github -S | sed -n '1,200p' || true
fiRepository: PerryTS/perry
Length of output: 50369
Clarify release-metadata ownership or avoid precommitting a patch.
The repository policy says maintainers own [workspace.package] version and **Current Version:** bumps, but this PR includes both Cargo.toml#L318 and CLAUDE.md#L11 for 0.5.1294 while v0.5.1294 is not published. If this is not an explicit maintainer-led version-bump PR, remove the precommit version edits or add the active owning authority so contributors can reproduce the release process.
📍 Affects 2 files
Cargo.toml#L318-L318(this comment)CLAUDE.md#L11-L11
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Cargo.toml` at line 318, Unless this is an explicit maintainer-led release,
remove the unpublushed 0.5.1294 version edits from Cargo.toml lines 318-318 and
CLAUDE.md lines 11-11, restoring the prior version consistently in both files.
If retaining the bump, document the active release authority and reproducible
process in the repository policy.
Source: Learnings
scripts/gc_store_site_inventory.pyhas been red onmainsince #7496 merged. Its newelement_shape_tests.rsfills a fresh array's slots withstd::ptr::write— deliberately, to imitate how an inline array literal's codegen fills an allocation — and that raw store carried noGC_STORE_AUDITmarker.The store must stay raw: routing it through a barriered helper would run the exact funnel the test exists to prove is absent, which is what makes
ensure_element_shape's self-heal meaningful. So the fix is the marker. AnnotatedGC_STORE_AUDIT(INIT)with the reasoning inline — the array is nursery-fresh and never escapes the test.Found by running the static gate battery directly over
mainrather than waiting for CI, after a day of admin-bypass merges. Gate is green again locally;cargo fmt --checkclean.Summary by CodeRabbit
Documentation
Chores