Files
board-viewer/.tasks/board-viewer-card-meta-fix.md
vitya 9dda6298f0 task(review): independent review done, findings filed
closes board-viewer-review

Subagent code-review against design spec + acceptance criteria found:
- 2 Major: README emoji legend stale (board-viewer-readme-emoji-fix),
  card meta missing owner pill + last-commit-marker (board-viewer-card-meta-fix)
- 6 minor/nitpick bundled as board-viewer-polish

All shipped code: 43/43 tests pass, TDD-immutability clean, secret hygiene OK.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 15:16:36 +03:00

44 lines
2.6 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
- [ ] (фиксируется при выполнении)
## Notes
TDD obligatory — render логика, не visual. Тестируется через DOM-property assertions (как в `render.test.ts`).