#4435·FastLED

Meta: #4156 review findings R1–R10 (colour pipeline) — status and links

Author: zackeesCreated Sep 18, 2026Updated Sep 19, 2026

Tracks the ten findings (R1–R10) of the adversarial design review of the profiled colour pipeline, #4156, under the pipeline tracker #4034. The findings are specified in #4156. This issue collects where each one stands: its standalone issue, if it has one, and the PRs that reference it.

Reading the "landed" column: most of these PRs are measurements, studies, doc narrowings or partial fixes. A PR listed here does not mean its R is resolved. Resolution needs the decision addendum and the owning phase work that #4156 proposes.

Findings

R Sev. Kind (from #4156) Owners Standalone issue Landed PRs referencing it
R1 HIGH Current code defect: unknown-format rejection is false for the legacy video reader (revises C6) P4/P10 #4320 (narrows the forward-compat claim)
R2 HIGH Design contradiction: response compensation and brightness ordered incompatibly (revises C4, stage order) P2/P5/P6/P7/P8 #4319 (ordering constraint as arithmetic)
R3 HIGH Architecture gap: no defined way to determine the shared power scalar before emission (revises C2/C4) P2/P6/P8 #4344 (limiter charges source RGB, not solved drives; up to 4.45x under-estimate) #4284 (charge RGBW for the diode it lights), #4298 (the estimator's other half)
R4 HIGH Electrical/quantization gap: the power ceiling does not say what is bounded (revises C4/C5) P6/P8/P10 #4342 (power model reads pre-dither pixels; dither only adds) #4268 (stop scaling the brightness-unreachable draw), #4391 (pins the dither exposure)
R5 HIGH Cross-phase interface gap: rgb16 media has no typed route into the pipeline (amends A4/B8/C1/C2) P2/P4/P6 #4295 (RED condition; does not fail the way R5 says)
R6 HIGH Validation/precision gap: custom profiles lack a numerical admission contract (amends B2, schema) P1/P2/P4/P5/P9 #4258 (refuse an unbuildable source space), #4260 (reject non-chromaticities)
R7 HIGH Colour-science gap: Bradford-to-device-white and OKLCh lack a shared reference white (amends A1/A3/B7) P1/P5/P7 #4317 (neutral-axis question, measured)
R8 MEDIUM Acceptance gap: fidelity budgets omit the quantization/presentation-time boundary (amends A1/B3/C5) P5/P6/P8/P10 #4347 (dither state advances on attempt, not presentation) #4269 (black floor is source quantization), #4281 (dither cadence vs enable threshold, 4x apart)
R9 MEDIUM Ownership/tier gap: runtime profile pointers vs zero-state TINY (amends C8.4/B11) P2/P9 #4316 (two channels keep their profiles)
R10 MEDIUM Contract drift: landed media policy and frozen tracker disagree (revises C6) P4 #4272 (mandatory vs absent for rgb16_linear)

Related, not an R item: #4331 (setColorProfile() silently discarding gamma and dither mode) was found alongside this review. It was fixed by #4332 and closed.

Open standalone issues

  • #4344 — R3
  • #4342 — R4
  • #4347 — R8

R1, R2, R5, R6, R7, R9 and R10 have no standalone issue. Their open work lives in #4156 and the owning phase issues (#4035–#4044).

Closing this issue

Close when every R is either resolved in the decision addendum with its tests assigned to a phase (per #4156's proposal), or explicitly deferred with a reason. File a standalone issue for any R that turns into concrete implementation work, and add it to the checklist.

Generated with Claude Code