Repository navigation
Correct the V2 protocol profile against the contract source - #12
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 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 |
JoelVR17
approved these changes
Sep 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes found by auditing
skills/protocol/v2.mdandconstitution.mdagainst the contract source onsingle-release-develop-v2(bfa7df4) andmulti-release-develop-v2(1141b88). Documentation only; no contract code changes.Corrections
The mutability lock is the cumulative funded amount, not the token balance. The profile said properties and roles can change "while the contract balance is zero". The contracts gate on
FundedAmount, which everyfundcall increases and nothing ever decreases. So the first fund freezes properties, roles and milestone edits permanently — releasing does not unfreeze them — while tokens sent directly to the contract withoutfunddo not trigger the lock at all. V1 checked the live balance, so this is a real behavioural difference between versions, and the profile now says so. Appending milestones also stays allowed after funding; only edits and property updates are blocked.Manage milestones cannot remove. The profile said "add, edit or remove". There is no removal path: milestones can be appended, and edited (description in single-release; description and amount in multi-release).
Withdraw is a full sweep in V2. Distributions must sum to the entire remaining balance (
DistributionsMustEqualEscrowBalance). V1 allowed partial withdrawals; the profile previously said the balance checks "match V1".Dispute authority was under-documented.
releaseSignersandplatformcan raise disputes — the contract authorizes approvers, service providers, release signers, the platform and the (milestone) receiver, and rejects dispute resolvers. The role table listed the authority only for approvers, service providers and the receiver.One addition: a single-release escrow deployed without milestones cannot release (
NoMilestoneDefined) until milestones are added — relevant now that V2 allows milestone-less deploys.The constitution's compressed V2 section carries the same corrections.
The rest of the audit passed: the role model and its composition constraints, threshold approvals, the state model, resolver dispute-blocking, terminal withdraw states, the reentrancy guard, and the approve-and-release dual-role requirement all match the contract source as documented.