Audit: file Protofire r3.0 report (sol-v0.1.5, jul-2026) - #49
Conversation
Third-round Protofire audit of rain.factory at tag sol-v0.1.5 (c29d582), dated July 2026. Zero findings at every severity. Named per the version+round convention so the org health scan tag-anchors drift at sol-v0.1.5. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
QA: finding-by-finding triage — Protofire r3.0 (jul-2026)Report parsed in full (
Tally: 0 filed / 0 already-fixed-on-main / 0 resolved-in-report. No dedup needed; the #47 library/deploy split routing question does not arise for any finding. Cross-checks done while triaging:
|
|
Reviewed 91fc7eb: ready — r3.0 filed under the scanner-verified tag-anchored name (sol- prefix required by parse_audited_tag, checked against the scanner's own test), REUSE covered by the existing audit annotation, clean report so zero findings to file, post-merge scan verdict current, tag/package offset anomaly on the record. |
This branch was cut on 2026-07-25 and asserted that src/generated/0_1_5 -- the ICloneableFactoryV3 pin LibCloneFactoryDeploy aliases and that is live on every supported chain -- 'is covered by neither report and has never been audited'. That was true when written and is now false. rainlanguage/rain.factory#49 (merged 2026-07-31) filed Protofire r3.0. Read from the PDF, not from the PR that filed it: - Reviews table, 30/07/26: rain.factory commit c29d5827309d2f10a6e68c76bc2ea385e0a4e701, tag sol-v0.1.5. - Scope: src/concrete/CloneFactory.sol, src/interface/ICloneableFactoryV2.sol, src/interface/ICloneableFactoryV3.sol, src/interface/ICloneableV2.sol, src/lib/LibCloneFactoryDeploy.sol. - Findings: zero at every severity. Coverage of 0_1_5 is an identity, not a rebuild: rain.factory@c29d5827's src/generated/0_1_5/CloneFactory.pointers.sol is byte-identical to this repo's copy (sha256 d3def164d01d2b50ebf7175a4efaaa76bfc020f992a9ed73e67203d3a54ed902), so the audited tree pins the same 0x7053c1D000192f1FeC1fbe20350139F3300dBBaD and the same codehash 0x3ec02e2f... r3.0 does NOT supersede r2.0. Its Reviews table re-lists both earlier passes, but 0_1_3/0_1_4 hold ICloneableFactoryV2 bytecode that the audited c29d5827 source no longer builds, so r2.0 remains the only report covering them. r1.0 keeps covers: [] and its existing supersededBy. The PDF is restored at rain.factory main's original blob bytes (sha256 71fc0b5c...), renamed with the same mandatory inherited. prefix as the other two. REUSE.toml's audit/**/ annotation already covers it; no sidecar needed.
Files the third-round (r3.0, July 2026) Protofire audit report of rain.factory, uploaded by the human on #48.
Closes #48
What the report is
c29d5827309d2f10a6e68c76bc2ea385e0a4e701, tagsol-v0.1.5— verified: the tag exists in this repo and points at exactly that commit.src/concrete/CloneFactory.sol,src/interface/ICloneableFactoryV2.sol,src/interface/ICloneableFactoryV3.sol,src/interface/ICloneableV2.sol,src/lib/LibCloneFactoryDeploy.sol.PDF in this PR:
audit/protofire/rain.factory.sol-v0.1.5-r3.0.jul-2026.pdf(repo pathaudit/protofire/rain.factory.sol-v0.1.5-r3.0.jul-2026.pdfafter merge).Filename choice
The report audits a release tag, so it takes the version+round pattern (like
rain.factory.v0.1.1-r2.0.may-2026.pdf), not the ref pattern (rain.factory.1a92a86.feb-2026.pdf). The tag is used verbatim (sol-v0.1.5, notv0.1.5) because roh-scan'sparse_audited_tagcaptures thesol-prefix and resolves the full tag as a git ref —v0.1.5alone resolves to nothing in this repo.Findings triage
Nothing to triage: the report contains no findings at any severity, so there are no unresolved findings to verify against main, no dedup against existing issues, and no new issues filed. Triage tally: 0 filed / 0 already-fixed-on-main / 0 resolved-in-report. The #47 library/deploy split routing question therefore does not arise for any finding.
Scan visibility (rain-org-health)
Checked against roh-scan source (
plugins/rain-org-health-check/roh-scan/src/{protofire.rs,main.rs}):audit/protofire/for.pdfblobs — this file sits flat in that dir, so it is collected.parse_audited_tag("rain.factory.sol-v0.1.5-r3.0.jul-2026.pdf")→sol-v0.1.5(the(?:sol-)?vX.Y.Zregex; theraindex.sol-v0.1.12.jun-2026.pdfunit test pins this exact shape). Tag-anchored, and the tag resolves.1a92a86, mayv0.1.1, this one), so this becomes the reference audit.sol-v0.1.5...mainis currently one workflow file (.github/workflows/package-release.yaml), zero non-test.sollines; this PR adds only a PDF. Post-merge the scan will report rain.factory external audit =current, anchored at tagsol-v0.1.5.QA
audit/protofire/; no source or test code changes, nothing a test could discriminate.reuse lintrun locally with the PDF present: green (37/37 files licensed;REUSE.toml'saudit/**/annotation covers it identically to the two existing reports, no sidecar needed) — same check CI's rainix-sol-legal runs.sol-v0.1.5→c29d582…), the two existingaudit/protofire/filenames for the naming convention, and roh-scan source (protofire.rsparse_audited_tag+ its unit tests) for scanner-visibility — all independent of this diff.audit/protofire/per convention, REUSE-compliant, scanner-visible. Covered: PDF filed per the version+round convention (tag verbatim); REUSE green; findings triaged 0 filed / 0 already-fixed / 0 resolved-in-report (clean report, zero findings at all severities); scan-visibility confirmed against roh-scan source (tag-anchored atsol-v0.1.5, becomes reference audit, verdictcurrentpost-merge).🤖 Generated with Claude Code