feat(dashboard): tag logged entries, hide fabricated raw detail in all three render paths

- Add "Logged" tag to manual entries in recent-activity feed
- Add "Logged" tag to manual entries in card commit history
- Hide raw technical detail block for manual entries (no diff exists)
- Replace short_sha code block with "Logged" tag in unassigned linking tray
- Fix screen-reader label to say "this logged entry" instead of "manual"
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Dave 2026-09-19 13:08:41 +02:00
parent dba1fd1763
commit 73f0f6e655
3 changed files with 30 additions and 7 deletions

View file

@ -49,15 +49,25 @@ export function CommitHistory({ commits }: { commits: CommitRecord[] }) {
className="mt-[7px] h-1.5 w-1.5 shrink-0 rounded-full bg-border-strong"
/>
<div className="min-w-0 flex-1">
<p className="text-sm text-text-secondary">
{/* Fall back to the raw subject — never render nothing. */}
{commit.summary || commit.subject}
</p>
<div className="flex items-baseline gap-2">
<p className="text-sm text-text-secondary">
{/* Fall back to the raw subject — never render nothing. */}
{commit.summary || commit.subject}
</p>
{commit.source === "manual" && (
<span className="shrink-0 text-[10px] font-medium uppercase tracking-wide text-priority-medium">
Logged
</span>
)}
</div>
<p className="mt-0.5 text-[11px] text-text-muted">
{relativeTime(commit.authored_at)}
</p>
{showRaw && (
{/* No real diff or hash sits behind a logged entry — showing one
anyway, even honestly labelled, would be the fabrication this
feature deliberately avoids. */}
{showRaw && commit.source !== "manual" && (
<p className="mt-1.5 rounded bg-surface px-2 py-1.5 font-mono text-[11px] text-text-muted">
{commit.url ? (
<a

View file

@ -25,6 +25,11 @@ export function RecentActivity({ commits }: { commits: CommitRecord[] }) {
<p className="min-w-0 flex-1 text-sm text-text-secondary">
{commit.summary || commit.subject}
</p>
{commit.source === "manual" && (
<span className="shrink-0 text-[10px] font-medium uppercase tracking-wide text-priority-medium">
Logged
</span>
)}
<span className="shrink-0 text-[11px] text-text-muted">
{relativeTime(commit.authored_at)}
</span>

View file

@ -72,7 +72,13 @@ export function UnassignedList({
{commit.subject || commit.short_sha}
</p>
<p className="mt-0.5 flex items-center gap-2 text-xs text-text-muted">
<code>{commit.short_sha}</code>
{commit.source === "manual" ? (
<span className="text-[10px] font-medium uppercase tracking-wide text-priority-medium">
Logged
</span>
) : (
<code>{commit.short_sha}</code>
)}
<span>{relativeTime(commit.authored_at)}</span>
{commit.type && commit.type !== "other" && (
<Pill tone="neutral">{commit.type}</Pill>
@ -82,7 +88,9 @@ export function UnassignedList({
</div>
<label className="shrink-0">
<span className="sr-only">Attach {commit.short_sha} to a card</span>
<span className="sr-only">
Attach {commit.source === "manual" ? "this logged entry" : commit.short_sha} to a card
</span>
<select
defaultValue=""
disabled={pending}