FROZEN: research/extraction branch конечного цветового ядра - #226
FROZEN: research/extraction branch конечного цветового ядра#226lemone112 wants to merge 27 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review Нужен полный review текущего merge-кандидата после синхронизации с main. Особый фокус: branch-sensitive |
|
✅ Action performedFull review finished. You're currently rate limited under our Fair Usage Limits Policy. Your recent PR review activity is in the 95th percentile or higher among CodeRabbit users, so adaptive limits apply. Your next review will be available in 34 minutes. |
lemone112
left a comment
There was a problem hiding this comment.
Гетерогенное ревью, срез «конечная нейтральная кривая»:
BLOCKER найден и исправляется. Реализация перечисляла переходы через аналитическую inverse half-byte wall, но фактическая эмиссия использует forward srgb_gamma → clamp → round. Из-за f64/libm round-trip эти границы не эквивалентны: конкретный путь #090A00 → #000100 содержит реальное состояние #090900, которое half-wall перечисление теряло. Последний коммит ветки удалял независимый RED-тест вместо исправления алгоритма.
Сделано:
- RED-тест
neutral_quantization_exactness.rsвозвращён; NeutralCurveпереведена на поиск первого представимогоtчерез общий productionquantise_srgbпо полному порядку положительных f64;- документация ограничивает claim текущим runtime и прямо оставляет cross-runtime сертификацию в #223;
- временный pinned-rustfmt probe применяет только механический формат и будет удалён.
PR оставлен draft. Merge запрещён до зелёных гейтов и закрытия остальных blockers (#223, #218, #41/публичные panic-paths, overclaim «сертифицировано»).
lemone112
left a comment
There was a problem hiding this comment.
API-review blocker: NeutralCurve::at и AccentCurve::try_at принимают публичный f64, но новый код использует assert!(t.is_finite()); AccentCurve::at дополнительно скрывает IsoHkError через .expect. Это расширяет публичные panic-paths и нарушает корневой контракт AGENTS.md. Исправление должно быть единым с #41: структурированный Result на внешнем вводе, без произвольного NaN-fallback. До миграции merge остаётся заблокирован.
Решение по дальнейшей судьбе PRПосле screen-native research (#230–#232) этот mega-PR нельзя использовать как ветку для дальнейшего наращивания production-модели. Причины:
Канонический план
#226 остаётся полезным audit trail и источником контрпримеров, но не должен стать обходом требований |
|
Архивная функция PR выполнена: контрпримеры, research-прототипы и направления извлечения зафиксированы в issue-графе (#218, #223, #228, #230–#256), а production-срезы идут отдельными ветками от актуального |
Статус
Заморожен. Не предназначен для merge.
Этот mega-PR служит только:
Green CI не делает 75-файловый diff обозримым, научно доказанным или архитектурно допустимым.
Единственный допустимый перенос
Новый production-код из этой ветки переносится только отдельным PR от актуального
main:Слепой cherry-pick крупных коммитов запрещён.
Доказанный кандидат на извлечение
Конечная NeutralCurve
encode → clamp → round → decodequantizer;f64 t;#090900восстановлен;Cross-runtime доказательство остаётся #223. Срез повторно реализуется отдельным PR.
Research prototype ColorQuality
Ветка содержит неканонический прототип:
Clean/Dirty;Он не является production API. Полная модель, issue graph и gates сформированы после исследования в:
Правила ветки
Актуальная очередь намеренно не копируется сюда: единственный SSOT — #228.