Files
board-viewer/.tasks/done/2026-05-22-00198-board-viewer-card-meta-fix.md

48 lines
3.0 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.
# board-viewer-card-meta-fix
## Goal
Card meta сейчас содержит **title + project + age**. Acceptance criteria `board-viewer-html-render.md` строка 19-24 явно перечисляет 5 полей:
- title (труб 80 chars) ✅
- project badge ✅
- **owner (если есть) — pill** ❌ (поле `project_owner` есть в TaskRecord и JSON, но не выводится)
- age (relative) ✅
- **last-commit-marker — короткий hash или дата** ❌ (есть только relative age от `last_commit_iso`, абсолютной даты/хэша нет)
html-render таска закрылась без этих полей — gap. Не было замечено при self-review (потому и нужен independent reviewer).
## Key files
- `src/render.ts:111-127``renderCard()` (server-side первая рендер-проходка)
- `static/board.js:76-89``renderCard()` (client-side rerender при toggle-grouping)
- `tests/render.test.ts` — добавить assertions для двух новых полей
- `static/board.css` — стиль для `.badge.owner` если нужно отличать визуально
## Acceptance criteria
- Card showing `project_owner` as a pill (CSS class `.badge.owner`), скрыт если поле пустое.
- Card showing last-commit-marker: minimum — ISO date `YYYY-MM-DD` (короткая дата, NOT relative). Hash недоступен из API без extra call → opt for date.
- Возможность размещения: либо как третий meta-span после age, либо как tooltip на age (`title="<iso>"`); решение имплементера.
- 2+ TDD tests:
- card with `project_owner` shows owner pill containing the value
- card with `last_commit_iso` shows date (e.g. `2026-05-22`) — separate from relative age
- Обе ветки (server-side `src/render.ts` + client-side `static/board.js`) синхронны.
## Decisions log
- 2026-05-22: задача из review-чекпойнта; severity=major (acceptance gap, не self-replied).
- Open: owner pill всегда показывать или только при variability (когда есть >1 owner в выборке)? — рекомендация: всегда показывать когда поле не null (нет смысла фильтровать на rendering этапе).
## Completed steps
- [x] RED+GREEN: 4 теста для owner pill + date span (renders/omits)
- [x] `src/render.ts` renderCard: owner pill + date span (short YYYY-MM-DD + tooltip с full ISO)
- [x] `static/board.js` renderCard синхронно
- [x] `static/board.css`: `.badge.owner` (transparent + border) + `.date` (small muted tabular-nums)
- [x] smoke-verified в браузере: top cards показывают `board-viewer` + `OpeItcLoc03` + `2026-05-22` + `25m`
## Notes
TDD obligatory — render логика, не visual. Тестируется через DOM-property assertions (как в `render.test.ts`).