Зеркало поддерживается средствами Gitea и в клоне как remote не существует;
строка вводила агентов в заблуждение.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Два документа от 23–24 марта 2026 (DirectML, whisper.cpp + Vulkan на Radeon 780M,
XDNA NPU и бенчмарк качества на Ryzen) перенесены в docs/research и docs/benchmarks
с пометкой «архив». Выводы не реализованы: ADR-003 выбрал OpenVINO GenAI, авто-выбор
устройства закреплён за ONNX CPU. Ветка после переноса удаляется.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- неявный compute_type при fallback переразрешается по умолчанию CPU
(float16 CUDA не переносится на CTranslate2 CPU);
- prepare() помечает module готовым только после проверки пословного
контракта;
- движок сообщает сам adapter (атрибут engine) вместо параллельной таблицы;
- сбой runtime_info() не роняет запуск;
- каскад конфига оставляет model/compute_type пустыми для module,
CLI не дублирует CLI > TOML;
- удалены недостижимые из CLI сообщения о mid-stream fallback;
- в --verbose потоки помечены как запрошенные, adapters сообщают
применённые; OpenVINO прямо говорит, что --threads не применяется;
- тесты: умолчания по устройствам, TOML compute_type, не-strict сценарий
обычной ошибки; CONTRIBUTING.md и AGENTS.md без устаревших имён.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ADR-002 и ADR-003 отражают Transcriber как единственного владельца
загрузки и fallback; README получил раздел «Диагностика исполнения»
и уточнение --threads для ONNX; AGENTS.md — новые тестовые паттерны.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CLI строит один ExecutionRequest, создаёт Transcriber после prescan
и получает результат с ExecutionInfo: разрешение auto, device-aware
умолчания, проверка пословного контракта, строка устройства для шапки
и fallback ушли за seam. --verbose печатает движок, потоки и runtime_info().
Удалены load_model, _transcribe_file, TranscribeFileResult,
apply_device_defaults и тесты переноса полей; сценарные тесты CLI идут
через CliRunner с fake adapter на get_backend.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
--threads больше не игнорируется ONNX adapter'ом: cpu_threads > 0 задаёт
intra_op_num_threads через SessionOptions обеим сессиям, 0 оставляет
настройки onnxruntime. Фактический бюджет виден в runtime_info().
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Transcriber принимает ExecutionRequest, разрешает auto и device-aware
умолчания, загружает модель один раз на запуск и держит fallback внутри.
Caller получает TranscribeResult и ExecutionInfo вместо model/backend/path.
Публичный transcribe() идёт через тот же module. Adapters отдают
runtime_info() для диагностики; legacy load_model/_transcribe_file пока
остаются для CLI.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closes#2. Независимое ревью Opus: APPROVED; 524 теста прошли, 2 пропущены. Реальный Windows GPU-прогон без Toolkit остаётся невыполненным и зафиксирован в документации.
- Зачем:
- коллеги ставят инструмент из внутреннего репозитория с другим URL.
- Что:
- добавлен вариант установки и обновления из склонированного репозитория.
- шаг с --install-menu вынесен в список установки, шаги перенумерованы.
- добавлена подсказка открыть новую консоль после установки uv.
- Проверка:
- git diff --check.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vByFj9s7qBHB7QRCf6mri
- Зачем:
- агенту нужны локальные правила изложения и экономии токенов в этом репозитории.
- Что:
- добавлены разделы про стиль изложения и удержание выбранного подхода.
- добавлены указания для Fable 5/5.1: точечные правки и пакетные запросы.
- Проверка:
- git diff --check.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vByFj9s7qBHB7QRCf6mri
- Зачем:
- формальный stop W0 не отвечал на практический вопрос о скорости и качестве кандидата.
- Что:
- добавлены результаты одной диагностической пары на трех фрагментах.
- сопоставлены скорость, число кластеров, purity, слова без говорящего и память.
- границы вывода отделены от формального расписания эксперимента.
- Проверка:
- сравнительные агрегаты сверены с закрытыми результатами обеих моделей.
- git diff --check.
- Зачем:
- задача #46 должна завершиться воспроизводимым решением по каноническому Ryzen-эксперименту.
- Что:
- записан stop из-за несовпадения числа кластеров свежего W0.
- сохранены безопасные агрегаты W0 и вторичный провал проверки swap.
- отмечено, что Sortformer не запускался и данных об ускорении нет.
- Проверка:
- uv run pytest -q.
- независимая сверка отчета с закрытым результатом и проверка литературного русского.
- Зачем:
- канонический Ryzen-прогон не должен повторно запрашивать уже данное решение владельца до порога 30%.
- Что:
- восстановлен короткий контракт approval и удалена лишняя схема owner-package.
- разрешена парная nullable-опора для диагностик без ослабления обязательных gates.
- NUL в путях отклоняется обезличенной ошибкой до загрузки моделей.
- Проверка:
- uv run pytest -q: 457 passed, 2 skipped.
- обязательный набор эксперимента: 110 passed; целевой Ruff пройден.
- независимые code и task/taste review закрыты.
Зачем:
- хранить локальные handoff и launcher в постоянном каталоге без риска случайного коммита
- не терять временно закрепленный стенд диаризации между компьютерами
Что:
- весь корневой .scratch добавлен в ignore
- существующие диагностические скрипты оставлены отслеживаемыми
- описание локальных и переносимых артефактов приведено к новой политике
Проверка:
- git check-ignore -v --no-index .scratch/new-local-artifact
- git ls-files .scratch
- git diff --check
- Зачем:
- uv tool install сохранял Python 3.11 старого окружения и отклонял пакет с требованием Python 3.13.
- Что:
- в команды установки и обновления добавлен явный выбор Python 3.13.
- актуализировано описание выбора Python в спецификации.
- Проверка:
- git diff --check.
Зачем:
- не допустить загрузку W0 и Sortformer без отдельного принятия трёх референсов владельцем
- связать manifest с точными байтами listening package и owner-authored record
Что:
- добавлены строгие схемы трёх reference rows и четырёх решений Step 3
- все внешние файлы проверяются через held fd без symlink и TOCTOU
- добавлены negative tests для подмен, неточных JSON-типов и небезопасных путей
Проверка:
- uv run pytest -q (532 passed, 2 skipped)
- uv run ruff check src/local_transcriber/streaming_sortformer_experiment.py tests/test_streaming_sortformer_experiment.py
- git diff --check
- Зачем:
- результат локальной разведки нужен для решения о целесообразности Ryzen-прогона.
- Что:
- опубликованы безопасные агрегаты скорости, памяти и качества.
- зафиксированы отклонения от приемочной спецификации и открытый статус #46.
- добавлены хеши закрытых результатов, моделей, runtime и runner-скрипта.
- Проверка:
- privacy_scan для публичного Markdown прошел.
- git diff --cached --check прошел.
- Зачем:
- для эксперимента из задачи #46 нужен изолированный и воспроизводимый стенд.
- Что:
- добавлены строгая схема, предварительные проверки и конечный автомат;
- зафиксированы расписание A/B, пороги, измерения, C ABI и правила приватности;
- экспериментальный модуль исключён из production wheel.
- Проверка:
- целевые тесты: 105 passed;
- полный набор: 438 passed, 2 skipped;
- Ruff: All checks passed.
Refs: #46
- Зачем:
- старые результаты решено сохранить до завершения и приемки задачи #46.
- Что:
- архивы задач #41/#42 закреплены как временные и доступные только для чтения;
- стенду #46 запрещено читать архивы или использовать их как основу A/B;
- удаление перенесено на момент после приемки нового отчета.
- Проверка:
- выполнены git diff --check и проверка формулировки в задаче #46.
- Зачем:
- локальные оптимизации каскада не достигли 30%-го порога ускорения;
- старые закрытые хранилища и капсулы не должны стать будущей зависимостью.
- Что:
- собран единый реестр результатов задач #41 и #42;
- опубликовано разложение Ryzen baseline и выбрана архитектурная гипотеза;
- подготовлены самодостаточная спецификация и ready-for-agent задача #46.
- Проверка:
- пройдены self-review и две независимые линии ревью;
- проверены 44 строки реестра, 42 арифметических инварианта и ссылки;
- выполнены ai-text-lint, privacy scan и post-lint guard.
Refs: #45
Зачем:
- Сохранить полный ход проверки гипотез и исключить ненужный повтор старой матрицы.
Что:
- Добавлен ledger этапов W/M/Q/E/C с рецептами, числами и причинами отсева.
- Зафиксированы правила переиспользования результатов и границы повторных прогонов.
- Связана следующая end-to-end карта в задаче #45.
Проверка:
- uv run --no-sync pytest -q (389 passed, 2 skipped).
- Codex taste-review и ai-text-lint: APPROVED.
Зачем:
- Проверить переносимость Intel-handoff на Ryzen и закрыть выбор CPU-профиля.
Что:
- Усилена проверка связи Ryzen-manifest с капсулой и переносимости рецептов.
- Добавлены регрессионные тесты и публичный отчет с исходом new map.
Проверка:
- uv run --no-sync pytest -q (389 passed, 2 skipped).
- uv run --no-sync ruff check src/local_transcriber/benchmark_experiment.py tests/test_benchmark_experiment.py.
Зачем:
- капсула должна содержать каждый вход, названный в manifest
- Intel handoff нужно проверять на Ryzen без сравнения чужого SKU
Что:
- входы manifest связаны с индексом и SHA-256 файлов капсулы
- validate-only финального handoff пропускает только проверку машины
- версии Python, пакетов и экспериментальной сборки по-прежнему обязательны
Проверка:
- uv run pytest -q tests/test_benchmark_experiment.py
- uv run ruff check для изменённых файлов
Зачем:
- часть Intel-стендов не публикует ACPI platform_profile
- balanced-режим на таком стенде доступен через power-profiles-daemon
Что:
- добавлен fallback на powerprofilesctl get
- поведение закреплено тестом
Проверка:
- uv run pytest -q tests/test_benchmark_experiment.py
- uv run ruff check для изменённых файлов
- Зачем:
- нужно оценить локальные ASR-кандидаты для русских встреч с английскими IT-терминами.
- Что:
- собраны первичные данные по GigaAM, Nemotron, Qwen3-ASR, Canary и Cohere.
- разделены известные факты, рабочие гипотезы, рекомендация и неизвестные.
- сопоставлены языки, таймкоды, режимы работы, поставка и лицензии.
- Проверка:
- выполнено горячее ревью документа и git diff --cached --check.
- Зачем:
- один агент не может последовательно работать на двух ноутбуках.
- Что:
- этапы 0-4 закреплены за Intel, этапы 5-6 - за зависимой Ryzen-задачей.
- добавлен проверяемый handoff через отчет, commit и приватную ZIP-капсулу.
- устранен штатный возврат с Ryzen на Intel и ограничен финальный бюджет.
- Проверка:
- `.venv/bin/pytest -q tests/test_diarization_calibration.py tests/test_speaker_diarizer.py tests/test_diarization.py` (61 passed).