Commit Graph
5 Commits
Author SHA1 Message Date
ddadminandClaude Opus 4.6 ac8ea508ce docs: добавлены docstrings и расширен CONTRIBUTING.md
- Зачем:
  - покрытие документацией было неравномерным, отсутствовало архитектурное описание
- Что:
  - добавлены модульные docstrings во все 5 модулей (utils, config, formatter, transcriber, cli)
  - добавлены docstrings для всех публичных функций без документации
  - добавлены inline-комментарии для неочевидной логики (CUDA fallback, strict device, glob, SOCKS proxy)
  - CONTRIBUTING.md: секции «Архитектура», «Ключевые решения», «Тестирование», «Частые задачи»
  - обновлено правило языка комментариев (русский вместо английского)
- Проверка:
  - uv run pytest (97 passed, 1 skipped)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 23:25:17 +03:00
ddadminandClaude Opus 4.6 c1eed7690d feat(formatter): объединение сегментов в абзацы по паузам
- Зачем:
  - мелкая нарезка (235 строк на 16 мин) засоряет контекст при передаче
    транскрипта в ИИ для дальнейшей обработки.
- Что:
  - соседние сегменты объединяются в абзацы: новый абзац при паузе > 2с
    или длительности > 60с.
  - 235 строк -> 58 строк на том же файле (4x компактнее).
- Проверка:
  - uv run pytest tests/test_formatter.py -v (11 passed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:33:52 +03:00
ddadmin 3d14ed7b86 feat(cli): реализован шаг 5 — CLI-связка всех модулей с исправлениями из ревью
- Зачем:
  - шаг 5 плана: нужен рабочий CLI-happy path, связывающий utils / transcriber / formatter.
  - ревью этапов 4–5 выявило два medium-бага в formatter и отсутствие тестов для CLI.
- Что:
  - cli.py: все опции по PRD 3.2 (--model, --language, --output, --device, --compute-type, --verbose),
    rich Status + stderr-консоль, предупреждение на пустую речь, статистика времени.
  - transcriber.py: добавлена ensure_model_available() с проверкой кэша HF и валидацией
    локальной директории; on_status callback для передачи прогресса в CLI; обработка
    ImportError при отсутствии socksio через SOCKS proxy.
  - formatter.py: исправлен overflow в format_timestamp (0.995 → 00:01.00 вместо 00:00.100);
    сегменты теперь пишутся с явным пробелом и strip() независимо от whisper-формата текста.
  - deps: добавлен socksio>=1.0.0 для поддержки SOCKS proxy при загрузке модели.
  - tests: test_cli.py (8 тестов на CLI-контракт), расширены test_formatter.py и test_transcriber.py.
- Проверка:
  - uv run pytest — 42 passed.
  - uv run transcribe --help показывает все опции.
2026-03-17 23:38:32 +03:00
ddadminandClaude Opus 4.6 0d1a734479 feat(formatter): реализовано форматирование транскрипта (шаг 4)
- Зачем:
  - необходим модуль формирования markdown-файла с таймкодами и метаданными.
- Что:
  - реализованы format_timestamp (MM:SS.ss / HH:MM:SS.ss), format_transcript (шапка по PRD 3.3, авто-часы при >1ч, пустая речь), write_transcript (UTF-8).
  - добавлено 6 тестов в test_formatter.py (22 теста зелёные).
- Проверка:
  - uv run pytest tests/test_formatter.py -v (6 passed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 22:35:30 +03:00
ddadmin ade3b23301 feat(scaffold): добавлена начальная структура проекта local-transcriber
- Зачем:
  - необходима базовая структура пакета для последовательной реализации шагов по плану.
- Что:
  - создан pyproject.toml с зависимостями typer, rich и dev-зависимостью pytest.
  - добавлены модули-заглушки cli.py, transcriber.py, formatter.py, utils.py с сигнатурами и raise NotImplementedError.
  - созданы пустые тестовые файлы test_formatter.py, test_transcriber.py, test_utils.py.
  - добавлены .gitignore и uv.lock; отмечены чекбоксы шага 1 в docs/plan.md.
- Проверка:
  - uv run transcribe --help — показывает аргументы.
  - uv run pytest — тесты обнаруживаются без ошибок.
  - python -c "from local_transcriber import cli, transcriber, formatter, utils" — импорт без ошибок.
2026-03-17 21:46:10 +03:00