Skip to content

fix(gates): mark the element-shape test's deliberate raw slot fill (GC_STORE_AUDIT) - #7519

Merged
proggeramlug merged 2 commits into
mainfrom
fix/gc-store-site-element-shape-test
Aug 6, 2026
Merged

fix(gates): mark the element-shape test's deliberate raw slot fill (GC_STORE_AUDIT)#7519
proggeramlug merged 2 commits into
mainfrom
fix/gc-store-site-element-shape-test

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

scripts/gc_store_site_inventory.py has been red on main since #7496 merged. Its new element_shape_tests.rs fills a fresh array's slots with std::ptr::write — deliberately, to imitate how an inline array literal's codegen fills an allocation — and that raw store carried no GC_STORE_AUDIT marker.

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. Annotated GC_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 main rather than waiting for CI, after a day of admin-bypass merges. Gate is green again locally; cargo fmt --check clean.

Summary by CodeRabbit

  • Documentation

    • Updated the documented application version to 0.5.1294.
    • Added a changelog entry describing restored garbage-collection inventory validation.
  • Chores

    • Bumped the workspace release version to 0.5.1294.
    • Improved internal test documentation around array initialization and memory-safety validation.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The project version changes from 0.5.1293 to 0.5.1294. The element shape test documents a GC_STORE_AUDIT(INIT) exception for direct initialization of a nursery-fresh array.

Changes

Version and GC audit updates

Layer / File(s) Summary
GC store-site audit documentation
crates/perry-runtime/src/array/element_shape_tests.rs, changelog.d/7519-gc-store-site-marker.md
The test documents the intentional direct initialization and its recovery through ensure_element_shape. The changelog records the audit correction.
Project version metadata
Cargo.toml, CLAUDE.md
The workspace and documented project versions change from 0.5.1293 to 0.5.1294.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Possibly related PRs

Suggested labels: bug

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the fix but omits the required template sections, checklist, related issue, and structured test plan. Reformat the description using the repository template and complete Summary, Changes, Related issue, Test plan, and Checklist sections.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: marking the deliberate raw slot fill with GC_STORE_AUDIT.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/gc-store-site-element-shape-test

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug
proggeramlug merged commit bf2f4fc into main Aug 6, 2026
25 of 46 checks passed
@proggeramlug
proggeramlug deleted the fix/gc-store-site-element-shape-test branch August 6, 2026 11:11

@coderabbitai coderabbitai 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.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 33acba4 and 0d69498.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • CLAUDE.md
  • Cargo.toml
  • changelog.d/7519-gc-store-site-marker.md
  • crates/perry-runtime/src/array/element_shape_tests.rs

Comment thread Cargo.toml

[workspace.package]
version = "0.5.1293"
version = "0.5.1294"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ 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
done

Repository: 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' || true

Repository: 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
fi

Repository: 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

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.

1 participant