Meta: #4156 review findings R1–R10 (colour pipeline) — status and links
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
Source: FastLED/FastLED