Marmot-TS
    Preparing search index...

    Interface ChangedLeafClassificationInput

    The classification input classifyChangedLeaf needs: the commit's full proposal list (bare or sender-attributed — normalized internally) and its committer's MLS leaf index, when known.

    interface ChangedLeafClassificationInput {
        committerLeafIndex: number | undefined;
        proposals: readonly ProposalWithSender[];
        proposalsComplete?: boolean;
    }
    Index
    committerLeafIndex: number | undefined
    proposals: readonly ProposalWithSender[]
    proposalsComplete?: boolean

    Whether proposals is this commit's COMPLETE proposal list. Defaults to true; every seam that replays or builds a commit has the full list.

    Set to false only by callers that hold a partial list — currently just validateLegalityWithoutProposals (src/engine/fork-recovery.ts), which can recover the committer index off the wire but not the proposals. The distinction is load-bearing (CR-01): "matches no proposal" only justifies the terminal unattributable verdict when the proposals were actually in hand. With an incomplete list, a legitimately added member's leaf matches nothing merely because its Add is missing, so it must stay undecidable rather than terminally reject an otherwise legal commit.