Files
md-to-html/docs/progress.md
T
2026-04-18 12:59:29 +03:00

47 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Прогресс миграции Python → Go
Источник истины по статусу фаз. Обновляется после каждого завершённого шага.
- Общий план: [plan-go-migration.md](plan-go-migration.md)
- Универсальный промпт для запуска фазы: [execute-phase-prompt.md](execute-phase-prompt.md)
## Статус
| # | Фаза | Статус | Начата | Завершена | Commit/PR | Заметки |
|----|------------------------------------------------------|--------------|------------|------------|-----------|---------|
| 0 | [Архивирование Python](phases/phase-0-archive.md) | ✅ done | 2026-04-18 | 2026-04-18 | 425eae7 | |
| 1 | [Go-скелет](phases/phase-1-skeleton.md) | ✅ done | 2026-04-18 | 2026-04-18 | 6b8d588 | |
| 2 | [Converter (goldmark)](phases/phase-2-converter.md) | ✅ done | 2026-04-18 | 2026-04-18 | 8deba36 | Golden fixtures use relative/email links to keep generated HTML free of external resource URLs. |
| 3 | [HTTP-сервер](phases/phase-3-server.md) | ✅ done | 2026-04-18 | 2026-04-18 | 843d8dc | |
| 4 | [UI на templUI](phases/phase-4-ui.md) | ✅ done | 2026-04-18 | 2026-04-18 | d6aef55 | |
| 5 | [CLI-подкоманда](phases/phase-5-cli.md) | ✅ done | 2026-04-18 | 2026-04-18 | 6aa19fe | |
| 6 | [Docker + CI](phases/phase-6-docker-ci.md) | ✅ done | 2026-04-18 | 2026-04-18 | 4b55661 | Tailwind standalone pinned to `v3.4.17`: `latest` did not emit `web/static/dist/app.css` for the current build pipeline. |
| 7 | [Документация + v0.2.0](phases/phase-7-docs.md) | ⚠️ blocked | 2026-04-18 | — | 66ca056 | Release workflow `24602222305` failed: GHCR rejected `ghcr.io/FSerg/md-to-html:v0.2.0` because repository names must be lowercase. Completing the release now requires either deleting/recreating the remote tag `v0.2.0` or shipping a follow-up patch release. |
Легенда статусов:
-`pending` — не начата
- 🔄 `in_progress` — в работе
-`done` — завершена, acceptance criteria выполнены
- ⚠️ `blocked` — заблокирована, см. заметки
## Инварианты между фазами
- `git status` чист перед началом каждой фазы.
- Каждая фаза завершается отдельным commit в `main` (или PR с мёрджем). Сообщение в формате `phaseN: <краткое описание>`.
- Acceptance criteria фазы проверяются до смены статуса на `done`.
- Любое отклонение от плана документируется в колонке «Заметки» с ссылкой на commit.
## Лог ключевых решений (ADR lite)
| Дата | Решение | Обоснование |
|------------|---------|-------------|
| 2026-04-18 | Goldmark + chroma inline + extension.Footnote + кастомный anchor-extender | См. `plan-go-migration.md` §11 |
| 2026-04-18 | ASCII-транслит id заголовков через `mozillazg/go-unidecode` | Решение пользователя (round-1) |
| 2026-04-18 | One-shot preview/download с UUIDv4 + TTL 1 ч | Решение пользователя (round-1) |
| 2026-04-18 | GitHub-style prefix-anchor (`<a>` как первый child `<h>`), не wrap-anchor | Закрытие F-01 round-3 — избегаем nested `<a>` |
| 2026-04-18 | `extractHeadingText` walker вместо deprecated `BaseNode.Text(src)` | Закрытие F-02 round-3 |
| 2026-04-18 | `<iframe sandbox srcdoc>` без `allow-same-origin` вместо `bluemonday` для inline preview | Меньше зависимостей, полная изоляция |
| 2026-04-18 | `POST /convert` сохраняется (не `/api/convert`), UI-форма на `POST /ui/convert` | Паритет API-контракта |
| 2026-04-18 | `html.WithUnsafe()` выключен; `parser.WithAttribute()` выключен | Безопасность + паритет |
| 2026-04-18 | Tailwind standalone binary в Docker (без Node) | Упрощение multi-stage build |