fix(audit): @NonSkippableComposable is not a lambda-memoization exception (4.3.2) - #12
Conversation
…tion (4.3.2) The 4.3.1 sweep removed @NonSkippableComposable from every lambda-memoization exception except one caveat sentence in scoring.md — it read "opt-out path", so the string match skipped it. @NonSkippableComposable opts a *composable* out of skipping but does not disable *lambda memoization*; only @DontMemoize (or SSM-off) does. Now consistent across scoring.md. Both skills -> 4.3.2 (kept in lockstep). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ysskXsKpwEbs1n9CX1ScY
🟢 Codex review (automated cross-review)Blocker Should-fix Nit via pr-review-relay · author: claude |
🔵 Cursor review (automated cross-review)PR #12 Review —
|
🟠 Antigravity review (automated cross-review)Looks good to me! The PR correctly fixes the lambda memoization caveat under Strong Skipping Mode in via pr-review-relay · author: claude |
Cursor should-fix: docs/release-notes-4.3.1.md still paired @NonSkippableComposable with the lambda-memoization exception — the exact error this patch fixes. Corrected to @DontMemoize only, with a "corrected in 4.3.2" note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ysskXsKpwEbs1n9CX1ScY
release-notes-4.3.0.md line 27 still paired @NonSkippableComposable with the lambda-memoization exception (historical false-lead bullet). Corrected to @DontMemoize only, with a note. Completes the suite-wide sweep — no authoritative doc now lists @NonSkippableComposable as a lambda-memoization opt-out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ysskXsKpwEbs1n9CX1ScY
What
One-line correctness patch. The 4.3.1 sweep removed
@NonSkippableComposablefrom the lambda-memoization exceptions everywhere except a single caveat sentence inscoring.md— it read "opt-out path", so the string-match sweep dodged it.Why
@NonSkippableComposableopts a composable out of skipping; it does not disable lambda memoization. Under Strong Skipping the compiler still memoizes lambdas inside a@NonSkippableComposablebody — only@DontMemoize(or SSM-off) leaves a lambda unmemoized. Listing@NonSkippableComposablehere could still bless the exact no-op manual-rememberthe false-lead guard forbids. This was the round-3 blocker; this patch closes the last instance.Change
jetpack-compose-audit/references/scoring.md— the "Strong Skipping caveat" sentence now names only@DontMemoize, with an explicit note on why@NonSkippableComposabledoesn't belong.Validation
bin/ci✅. Grep confirms no remaining@NonSkippableComposablein any lambda-memoization exception (only in legitimate skippability opt-out rules).🤖 Generated with Claude Code
https://claude.ai/code/session_016ysskXsKpwEbs1n9CX1ScY