feat(reader): Gitea client + config + board orchestrator
closes board-viewer-gitea-reader - src/gitea.ts: HTTP client (getFile, getLatestCommitIso, rawUrl); DI'd fetch - src/reader.ts: readBoard(client, repos) → TaskRecord[] - src/config.ts: TOML config loader with board_viewer_repos whitelist - 25 tests total (9 parser incl. 3 real-repo fixtures, 7 gitea, 5 reader, 4 config) - emoji contract ⚪🔴🟡🔵🟢 (open/in_progress/paused/blocked/done) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -9,19 +9,18 @@ _Updated: 2026-05-22_
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [board-viewer-gitea-reader] — Gitea API reader → normalized task structure
|
||||
**Status:** ready
|
||||
**Where I stopped:** разблокирована (pointers done); реализация не начата. Это первая импл-таска, остальные impl-таски зависят от её типов.
|
||||
**Next action:** TDD по контракту в `board-viewer-gitea-reader.md`.
|
||||
## 🟢 [board-viewer-gitea-reader] — Gitea API reader → normalized task structure
|
||||
**Status:** done
|
||||
**Where I stopped:** TaskRecord контракт реализован (parser+gitea+reader+config); 25 тестов; typecheck clean. Тесты используют 3 реальных STATUS.md fixture'а.
|
||||
**Next action:** разблокировать html-render — потребляет `readBoard(client, repos) → TaskRecord[]`.
|
||||
**Branch:** master
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [board-viewer-html-render] — render 5-col kanban from normalized structure
|
||||
**Status:** ready
|
||||
**Where I stopped:** ждёт `board-viewer-gitea-reader` (использует его типы).
|
||||
**Next action:** после ready-стейта reader'а — TDD по контракту в `board-viewer-html-render.md`.
|
||||
**Blocker:** board-viewer-gitea-reader
|
||||
**Where I stopped:** reader готов, импортируется `TaskRecord` из `src/reader.ts`. Импл не начата.
|
||||
**Next action:** TDD по контракту в `board-viewer-html-render.md`.
|
||||
**Branch:** master
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user