feat(shell): ambient in-progress indicator (accent chase bar)#111
Merged
Conversation
Addresses 'no indication anything is in progress.' A thin accent line that chases across the top of the window while a transient op runs — built to a design-subagent spec from .design-context.md + the design-* skills. - .busybar element (first child of body) + CSS: fixed 2px (--border-width-thick) accent gradient segment, transform-only chase (60fps), shown via data-busy on <html>. Reduced-motion: explicit override to a STATIC accent fill at 0.55 opacity (the global reduce guard would otherwise freeze the segment off-screen = invisible) — Principle 5. - Ref-counted setBusy(on,label) so overlapping ops compose; sr-only role=status announces once. Wired into useGhAccount (the stuck-sign-in case) and signOut (stays up across the reboot via waitForSidecarBack until the sidecar returns). Scoped to the settings window (where sign-in/out/switch live); dashboard mirror is a follow-up. shell tsc clean.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses the second half of your feedback — "no indication that anything is in progress." A subtle accent line that chases across the top of the window while a transient operation runs (sign-in, gh-reuse, sign-out, sidecar restart). Designed by a fan-out: a design subagent produced the spec from
.design-context.md+ the design-* skills; this implements it.What
.busybar(first child of<body>):position:fixed, 2px (--border-width-thick), an accent-gradient segment that chases viatransformonly (60fps, no layout). Shown bydata-busyon<html>.z-index:10(sticky-header tier),pointer-events:none. Sits below the native macOS titlebar (no in-window drag region to avoid).prefers-reduced-motion: reducethe chase is replaced by a static full-width accent fill at 0.55 opacity. (Without it, the global reduce guard would clamp the animation and freeze the segment at its off-screen keyframe = invisible.)setBusy(on, label)— ref-counted so overlapping ops compose; ansr-only role=statusannounces once.useGhAccount(the stuck-sign-in case — bar runs through the whole import + reboot poll) andsignOut(stays up across the reboot viawaitForSidecarBackuntil the sidecar responds again).Scope
Settings window only (where sign-in/out/switch happen). The dashboard mirror (the spec covers it) is a small follow-up.
Validation
Shell
tscclean. A Playwright+vision verification of the rendered bar (chase + the reduced-motion static variant) is running; I'll confirm. The real-app integration (bar during an actual restart) carries the usual macOS-no-WebDriver caveat.Pairs with #110 (guard timers): together, an in-progress op is now both visible and bounded.