Repository navigation
✨ tracker: waiting-on chip shows human or bot icon instead of text qualifier - #15228
Conversation
…ifier The chip at the right of a tracker row drew a hollow ring plus "(human · no clanker)" for a human owner and a bare green dot for a clanker-backed contributor. It now reuses the chevrons' glyphs: the person icon (nothing else) for a human, the clanker robot head with the online/offline/unknown state dot beside it for a contributor's hive. The tooltip leads with "Waiting on @x (human)" / "Waiting on @x's hive (clanker · offline 26h)" and the chip's aria-label is that tooltip. Fixes #15227 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Changelog: this PR changes code but carries no changelog entry If it is user-visible — a feature, a fix an operator would notice, a This is a reminder, not a gate; it never blocks a merge. |
Open PR overlap checkBase branch: Conflicts are checked with every PR merged onto the current tip of
|
|
@clubanderson is auto-promoted for contributor-lane merging on this PR: the last 5 merged PRs by this author in this hive's repositories have no revert or sentinel-alert evidence. CI, reviewer verdict, diff fences, soak, holds and branch protection still apply. |
Signed-off-by: Andrew Anderson <andy@clubanderson.com>
There was a problem hiding this comment.
Read the indicator change against the tree at bb99da6. The code looks correct to me; one doc it describes is left on the old design.
Correctness — checked, fine. stageTrackerPresenceDotHtml now calls stageTrackerIcon(p.kind, …); stageTrackerPresenceOf normalises kind to exactly clanker | human and STAGE_TRACKER_ICONS has both keys (index.html:14819-14820), so the glyph can't silently come back empty. The aria word now branches on kind while the tooltip still branches on state first — that would disagree if a human ever carried online/offline, but stage_tracker_presence.go:107-123 only ever sets those states together with Kind=clanker, so a human is always unknown and the two agree. Reduced-motion still kills the breathe (.ham-presence-online .ham-presence-dot { animation: none }).
Docs-currency — one gap. src/docs/dashboard-sections.md:689 ("Presence indicator on the waiting-on pill") still describes the previous design in detail: filled dot / filled square / hollow ring as the whole indicator, the tooltips @Danathar's clanker: online, … and @zoe: no clanker registered — …, the aria @hanthor: clanker offline — …, and the pill text waiting on @zoe (human · no clanker). All five of those strings change in this PR (stageTrackerPresenceTip, stageTrackerPresenceAria, stageTrackerPresenceChipText), and the PR touches no file under src/docs/. Suggest updating that paragraph in the same PR so the operator reference doesn't contradict the screen.
Note the fragment is now under the repo-root changelog.d/ at this head; the earlier head's src/changelog.d/ placement was what check-changelog-fragment.sh:48-51 rejected.
— hive: agent=reviewer-2 backend=copilot model=claude-fable-5.1
There was a problem hiding this comment.
Looks correct to me. Checked the two things this leans on in the v5 tree:
stageTrackerIcon(p.kind, …)can only ever be asked forhumanorclanker:stageTrackerPresenceOfnormaliseskindto exactly those two (index.html:14625), and both are keys inSTAGE_TRACKER_ICONS(index.html:14819-14820), so the indicator never renders an empty glyph slot.- The
(human)title path can't collide with a live state: the backend starts every presence asunknown/humanand only flips to online/offline when it also flipsKindtoclanker(stage_tracker_presence.go:107-122), which is why dropping thep.state === 'unknown'guard from theword/head branches is safe.
Passing '' as the label makes the inner <svg> aria-hidden, and the outer ham-presence span keeps role="img" + the full aria-label, so the a11y surface is unchanged. No tests outside stage_tracker_presence.test.js / stage_tracker_presence_test.go assert the old (human · no clanker) text or the Waiting on — doubled label. The changed-… fragment name matches changelog.d/README.md; the guard is still pending on this head (the earlier red runs were on prior pushes).
— hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88
|
stage 095-pre-merge-soak → 060-reviewed: required-check-pending:Sign-off survives the squash |
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
Fixes #15227
Before
waiting on ○ @clubanderson (human · no clanker)— hollow ring + text qualifierwaiting on ● @thatguywob— bare green dotAfter
waiting on 👤 @clubanderson— the same person glyph the stage chevrons use for the "Needs author" actor (STAGE_TRACKER_ICONS.human), no ring, no dot, no parenthetical. Title:Waiting on @clubanderson (human) — waiting for a human reply.waiting on 🤖● @thatguywob— the clanker robot head (STAGE_TRACKER_ICONS.clanker) with the existing online / offline / unknown state dot beside it (the dot does encode live presence, so it stays; online still breathes, stilled under reduced motion). Title:Waiting on @thatguywob's hive (clanker · online, last seen 2 min ago) — hive is waiting for them/… (clanker · offline 26h) — hive will adopt at 15:10 (in 38m).Changes
index.html:stageTrackerPresenceDotHtmlrenders<span class="ham-presence ham-presence-{state} ham-presence-{kind}">wrappingstageTrackerIcon(kind, 'ham-ico ham-presence-ico')plus, for clankers only,<i class="ham-presence-dot">. State classes now set--ham-presence-color; the dot consumes it.stageTrackerPresenceChipTextdrops the qualifier;stageTrackerPresenceTipleads with "Waiting on …"; the waiting chip's aria-label is the tip (no more "Waiting on — Waiting on …" doubling).adopt?trigger and the Needs-human popover's presence line, so those pick up the glyph too.stage_tracker_presence_test.go+stage_tracker_presence.test.jsupdated for the glyph / dot split and the new wording; the presence preamble now liftsSTAGE_TRACKER_ICONSandstageTrackerIcon.changelog.d/changed-waiting-on-chip-icons.md.Verified:
go build ./... && go test ./pkg/dashboard/...,node --test pkg/dashboard/stage_tracker_presence.test.js.