feat(viewer): bundle md + slug + conditional owner pill [v0.2.0]

Closes 3 of 6 UX-round1 fixes in one TDD cycle (49→56 tests).

drawer-bundle-md: TaskRecord.md_content fetched in build-time;
drawer reads recordsBySlug instead of fetch — 0 runtime hits to
git.kzntsv.site/raw (private repos 401'd browser fetches without token).
Fallback dl-block when md=null.

ux-show-slug: <code class="card-slug"> rendered under card-title in
both render.ts and board.js renderCard (re-render path).

ux-owner-conditional: distinctOwner(records) pre-scan. Single owner →
pill omitted on cards, header gets <span class="owner-summary">
Owner: X</span>. Multi-owner → pill restored, no header summary.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
vitya
2026-05-22 18:51:12 +03:00
parent 768167e376
commit fdca0b375a
8 changed files with 253 additions and 54 deletions

View File

@@ -287,3 +287,44 @@ aside.drawer[hidden] {
color: var(--muted);
font-size: 0.7rem;
}
.card-slug {
display: block;
font: 0.7rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
color: var(--muted);
margin-bottom: 0.35rem;
word-break: break-all;
opacity: 0.85;
}
.owner-summary {
font-size: 0.8rem;
color: var(--muted);
border: 1px solid var(--border);
padding: 0.1rem 0.55rem;
border-radius: 999px;
font-variant-numeric: tabular-nums;
}
.drawer-empty {
color: var(--muted);
font-style: italic;
}
.status-block {
display: grid;
grid-template-columns: max-content 1fr;
gap: 0.3rem 0.8rem;
font-size: 0.85rem;
margin: 0;
}
.status-block dt {
color: var(--muted);
font-weight: 500;
}
.status-block dd {
margin: 0;
word-break: break-word;
}