feat(render): renderBoard + formatAge + partition (17 tests)

Pure renderer logic for the 5-col kanban view.
- formatAge: m/h/d/w/mo/y with calendar-month arithmetic
- partitionByStatus: canonical 5-col order
- renderBoard: 5 columns, cards with data-slug/data-raw-url/data-archived,
  HTML-escaped fields, JSON embed escaped via \uXXXX (XSS-safe)
- archived flag: done > 14d hidden by default (toggle visible)
- align task acceptance emoji set to 🔴🟡🔵🟢

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
vitya
2026-05-22 14:43:29 +03:00
parent d093693795
commit 5bbbd0b533
3 changed files with 320 additions and 1 deletions

View File

@@ -15,7 +15,7 @@
## Acceptance criteria
- **5 колонок** по статусам: ⚪ open / 🟡 in-progress / 🟣 paused / 🔴 blocked / 🟢 done. Названия колонок — emoji + слово.
- **5 колонок** по статусам: ⚪ open / 🔴 in-progress / 🟡 paused / 🔵 blocked / 🟢 done. Названия колонок — emoji + слово.
- **Карточка:**
- title (truncate на 80 chars в default-view),
- project badge (e.g. `books`, `board-viewer`),