Skip to content

FROZEN: research/extraction branch конечного цветового ядра - #226

Closed
lemone112 wants to merge 27 commits into
mainfrom
agent/scientific-color-core
Closed

FROZEN: research/extraction branch конечного цветового ядра#226
lemone112 wants to merge 27 commits into
mainfrom
agent/scientific-color-core

Conversation

@lemone112

@lemone112 lemone112 commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Статус

Заморожен. Не предназначен для merge.

Этот mega-PR служит только:

  • audit trail;
  • хранилищем контрпримеров;
  • research prototype;
  • источником для повторного извлечения независимых вертикальных срезов.

Green CI не делает 75-файловый diff обозримым, научно доказанным или архитектурно допустимым.

Единственный допустимый перенос

Новый production-код из этой ветки переносится только отдельным PR от актуального main:

контрпример / RED-тест
→ минимальная повторная реализация
→ полный CI
→ гетерогенное ревью
→ squash merge

Слепой cherry-pick крупных коммитов запрещён.

Доказанный кандидат на извлечение

Конечная NeutralCurve

  • путь проходит через фактический sRGB encode → clamp → round → decode quantizer;
  • для каждого следующего channel byte ищется первое representable f64 t;
  • независимый RED-контрпример #090900 восстановлен;
  • inverse half-byte wall не считается production quantizer.

Cross-runtime доказательство остаётся #223. Срез повторно реализуется отдельным PR.

Research prototype ColorQuality

Ветка содержит неканонический прототип:

  • ранний appearance context;
  • audit без weighted scalar;
  • frozen warm-dark interaction вместо человеческого Clean/Dirty;
  • тесты против verdict по знаку формулы.

Он не является production API. Полная модель, issue graph и gates сформированы после исследования в:

Правила ветки

  • не добавлять product features;
  • не мержить;
  • не переводить ready;
  • не использовать как base новой production-ветки;
  • после извлечения доказанных частей закрыть как superseded.

Актуальная очередь намеренно не копируется сюда: единственный SSOT — #228.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3710860b-06c4-4d1c-8575-7d78f87aba3b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/scientific-color-core

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

Нужен полный review текущего merge-кандидата после синхронизации с main. Особый фокус: branch-sensitive powf/interval claims, finite sRGB8 path, публичные panic-paths, local-cell quantization vs заявленная глобальность, API migrations и вакуумные тесты.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

@lemone112 Принято. Проведу полный повторный review текущего merge-кандидата с отдельной проверкой указанных численных, конечных sRGB8, panic-safety, API-миграционных и тестовых аспектов.

✅ Action performed

Full 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
lemone112 marked this pull request as draft July 10, 2026 00:29

@lemone112 lemone112 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Гетерогенное ревью, срез «конечная нейтральная кривая»:

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 через общий production quantise_srgb по полному порядку положительных f64;
  • документация ограничивает claim текущим runtime и прямо оставляет cross-runtime сертификацию в #223;
  • временный pinned-rustfmt probe применяет только механический формат и будет удалён.

PR оставлен draft. Merge запрещён до зелёных гейтов и закрытия остальных blockers (#223, #218, #41/публичные panic-paths, overclaim «сертифицировано»).

@lemone112 lemone112 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 остаётся заблокирован.

Copy link
Copy Markdown
Collaborator Author

Решение по дальнейшей судьбе PR

После screen-native research (#230#232) этот mega-PR нельзя использовать как ветку для дальнейшего наращивания production-модели.

Причины:

Канонический план

  1. Заморозить FROZEN: research/extraction branch конечного цветового ядра #226 как исследовательскую/extraction ветку; не добавлять новые продуктовые возможности.
  2. Новую реализацию SCIENCE/DDD: разделить medium, stimulus relation и scene interpretation #230 начать от актуального main отдельным PR.
  3. ARCH/SCIENCE: разделить facts, visibility, research, observers и contracts #231 реализовать следующим вертикальным PR поверх слитого SCIENCE/DDD: разделить medium, stimulus relation и scene interpretation #230.
  4. Из FROZEN: research/extraction branch конечного цветового ядра #226 переносить только фрагменты, повторно прошедшие RED → implementation → reference/property tests в новом срезе; не cherry-pick целых исторических коммитов без ревью.
  5. Остальные независимые улучшения FROZEN: research/extraction branch конечного цветового ядра #226 извлечь отдельными Issues/PR по зависимостям.
  6. После извлечения доказанных частей закрыть FROZEN: research/extraction branch конечного цветового ядра #226 как superseded, не merge.

#226 остаётся полезным audit trail и источником контрпримеров, но не должен стать обходом требований AGENTS.md к одному связному срезу и отсутствию средних/высоких дефектов.

@lemone112 lemone112 changed the title WIP: конечное sRGB8-ядро — научное ревью и screen-native migration FROZEN: research/extraction branch конечного цветового ядра Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

Архивная функция PR выполнена: контрпримеры, research-прототипы и направления извлечения зафиксированы в issue-графе (#218, #223, #228, #230#256), а production-срезы идут отдельными ветками от актуального main (например, #269). Открытый статус больше не несёт рабочей семантики и загрязняет очередь. Закрываю без merge как superseded; история, diff и branch остаются доступными только как audit trail. Любой дальнейший перенос — исключительно повторной реализацией через RED-тест и отдельный PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant