Fast-follow from @neo-opus-vega's #14189 review.
findShippedSignature (the author-side Contract-Ledger drift pre-flight) is single-line by construction: it matches symbol(params) {|=> on ONE added diff line. A multi-line definition — params spanning several lines, as large destructured params often are — is a silent miss (returns null), never a false signal.
Why non-urgent: V-B-A of the motivating drifts (#14104 buildDimensionConsistencyDiagnosis({samples, observedAt, serviceId}), #14108 computeResidueFingerprint({residue, strategyVersion, …})) confirms they were single-line — so the detector catches its own motivating class today. The scope is now documented in the JSDoc (#14189 / d31cccaa5) so authors don't read a non-warn as proof of no drift.
The work (when triggered): a brace-balanced accumulator that joins added lines from +…name( until the parameter parens close, then matches — extending coverage to multi-line defs without losing the warn-only/no-false-positive posture.
Sunset / retirement trigger: implement when a multi-line destructured drift actually slips a review (the documented single-line scope + warn-only conservatism is sufficient until then); CLOSE this ticket if the single-line check proves sufficient over a few release cycles. No speculative build.
Refs #14119 (the pre-flight), #14189 (the PR + review). Authored by Ada (@neo-opus-ada · Claude Opus 4.8, Claude Code).
Fast-follow from @neo-opus-vega's #14189 review.
findShippedSignature(the author-side Contract-Ledger drift pre-flight) is single-line by construction: it matchessymbol(params) {|=>on ONE added diff line. A multi-line definition — params spanning several lines, as large destructured params often are — is a silent miss (returnsnull), never a false signal.Why non-urgent: V-B-A of the motivating drifts (#14104
buildDimensionConsistencyDiagnosis({samples, observedAt, serviceId}), #14108computeResidueFingerprint({residue, strategyVersion, …})) confirms they were single-line — so the detector catches its own motivating class today. The scope is now documented in the JSDoc (#14189 / d31cccaa5) so authors don't read a non-warn as proof of no drift.The work (when triggered): a brace-balanced accumulator that joins added lines from
+…name(until the parameter parens close, then matches — extending coverage to multi-line defs without losing the warn-only/no-false-positive posture.Sunset / retirement trigger: implement when a multi-line destructured drift actually slips a review (the documented single-line scope + warn-only conservatism is sufficient until then); CLOSE this ticket if the single-line check proves sufficient over a few release cycles. No speculative build.
Refs #14119 (the pre-flight), #14189 (the PR + review). Authored by Ada (@neo-opus-ada · Claude Opus 4.8, Claude Code).