Skip to content

config: drop the inherited ./meta fs permission, refresh the stale .gas-snapshot - #3

Merged
thedavidmeister merged 1 commit into
mainfrom
2026-07-25-config-accuracy-post-split
Jul 25, 2026
Merged

config: drop the inherited ./meta fs permission, refresh the stale .gas-snapshot#3
thedavidmeister merged 1 commit into
mainfrom
2026-07-25-config-accuracy-post-split

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

Companion to #2, kept separate because that PR is prose only (README.md + CLAUDE.md) and this one touches build config, a checked-in artifact and a workflow comment — different blast radius, different thing to check when reviewing.

Same sweep, same cause: the genesis split (rainlanguage/rain.factory#46) copied rain.factory's config wholesale, and some of it describes a repo this is not.

foundry.tomlfs_permissions on ./meta

# Build metadata used for testing rain meta aware contracts in this folder rather
# than expose ffi to forge.
fs_permissions = [
  { access = "read", path = "./meta" },

There is no ./meta directory, no rain-metadata dependency and no meta-aware contract in this repo — the comment describes a capability that does not exist here. The only filesystem access anything needs is script/BuildPointers.sol reading foundry.toml and writing src/, which the two remaining entries already grant. Verified after removal: forge script ./script/BuildPointers.sol && forge fmt still regenerates src/generated/0_1_5/ and src/lib/LibCloneFactoryDeploy.sol byte-identical (clean git status), and forge test is unchanged.

.gas-snapshot — described a test suite that no longer exists

Every fuzz entry named CloneFactoryCloneTest:testCloneBytecode / testCloneInitializeData / testCloneInitializeEvent / testCloneInitializeFailureFails / testCloneUninitializableFails / testZeroImplementationCodeSizeError. That contract and those tests are rain.factory's pre-0.1.5 clone() suite, deleted when clone() was dropped for deterministic-only ICloneableFactoryV3; this repo's suite is CloneFactoryCloneDeterministicTest. LibCloneFactoryDeployTaggedConstantsTest was missing entirely. Regenerated with forge snapshot over the offline suites (the LibCloneFactoryDeployProdTest fork tests are excluded — they were never in the file, and their gas is fork RPC noise).

Note the file is a convention (25 org repos carry one) but nothing in rainix CI reads it — see the ruling question in my report about whether it earns its keep.

package-release.yaml comment — DEPLOY_TAG

Same false claim #2 fixes in the README: this repo generates no DEPLOY_TAG constant. Its release artifact is the frozen src/generated/<tag>/ snapshot. Comment only, no workflow behaviour change.

Checked here, deliberately not touched

REUSE.toml, .soldeerignore and .coderabbitai.yaml all still list audit/** paths that #1 removed — left as-is, because those files already list .gitmodules / foundry.lock / /meta that have never existed here either: they are defensive ignore/annotate lists, not claims about repo contents, and reuse lint is green (28/28 files). The rest of foundry.toml verified accurate: package name rain-factory-deploy matches soldeer-package in the release workflow, [dependencies] rain-factory = "0.1.5" is the latest published version (0.1.6 in rain.factory's foundry.toml is its unpublished next-version slot), and the five [rpc_endpoints]/[etherscan] networks match LibRainDeploy.supportedNetworks().

Verification

nix develop github:rainlanguage/rainix/53e96a7d0a97d7c7c75c3b2412521324776fdac6#sol-shell -c bash -c 'forge soldeer install && forge build && forge test' — build clean, 15/20 pass; the 5 failures are the LibCloneFactoryDeployProdTest fork tests with no local *_RPC_URL env. forge fmt --check passes, reuse lint passes, pins regenerate byte-identical.

Known CI red, not caused by this PR: rainix-sol/test fails on testProdDeployArbitrum with vm.createSelectFork ... lb.drpc.live ... error code -32001: You've reached the usage limit for your current plan. The org secret RPC_URL_ARBITRUM_FORK points at an exhausted drpc endpoint; it needs a human RPC swap and is red on other org repos today. 19/20 pass. static and legal are green.

Nothing here is rain-meta aware and there is no ./meta directory: the only
filesystem access this repo needs is BuildPointers reading foundry.toml and
writing src/.

.gas-snapshot still described rain.factory's pre-0.1.5 clone() suite —
CloneFactoryCloneTest and its six tests do not exist in this repo, and the
tagged-constants suite was missing. Regenerated over the offline suites.

The package-release comment pointed at a generated DEPLOY_TAG; this repo
generates none, its release artifact is the src/generated/<tag>/ snapshot.
@thedavidmeister thedavidmeister self-assigned this Jul 25, 2026
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@thedavidmeister, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 24 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 63a96409-287a-4493-8873-3af826d6f863

📥 Commits

Reviewing files that changed from the base of the PR and between 2045df6 and ac45d5b.

📒 Files selected for processing (3)
  • .gas-snapshot
  • .github/workflows/package-release.yaml
  • foundry.toml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-07-25-config-accuracy-post-split

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.

@thedavidmeister

Copy link
Copy Markdown
Contributor Author

Reviewed ac45d5b: approve

Config-accuracy half of the post-split sweep (docs half merged as #2):

  • foundry.toml fs_permissions granted read on ./meta with a comment about rain-meta-aware contracts — no such directory, dependency or contract exists in this repo; it came across in the genesis split. Removed, and BuildPointers verified to still regenerate src/generated/0_1_5/ + LibCloneFactoryDeploy.sol BYTE-IDENTICAL afterwards, which is the check that matters for a permissions change.
  • .gas-snapshot described CloneFactoryCloneTest and six tests that do not exist here — rain.factory's pre-0.1.5 clone() suite, deleted when clone() was dropped — and omitted LibCloneFactoryDeployTaggedConstantsTest. Regenerated over the offline suites.
  • package-release.yaml carried the same DEPLOY_TAG falsehood corrected in docs: correct the build commands, CI description and release model #2 (comment only, no behaviour change).

Correctly split from #2: that one is pure prose, this changes build config plus a checked-in artifact — different blast radius, different review surface.

Red check verified and NOT caused by this diff: rainix-sol/test fails on exactly one test, testProdDeployArbitrum, with 'lb.drpc.live … error code -32001: You've reached the usage limit for your current plan' — 19/20 pass. That is the exhausted drpc quota on RPC_URL_ARBITRUM_FORK blocking several repos today; it needs a human RPC swap, and was not rerun or chased. static + legal green; no unresolved threads.

@thedavidmeister
thedavidmeister merged commit 6173d3e into main Jul 25, 2026
3 of 4 checks passed
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