feat(ui): the time helix replaces the twilight gantt — now-centered helical ribbon (PR2)#432
Merged
Merged
Conversation
…elical ribbon (PR2) TimeHelix.svelte: one revolution = 24h local-mean-solar time, axis = the passage of time, 24h Hann window centered on the cursor (the structural fix for the gantt's UTC-day anchoring — NOW is always the unmistakable center). Phase-colored 15-min ribbon segments with depth modulation (dusk limb near/bright), sun/moon/twilight-bound nodules with tap popovers, tape-drag + tap-to-jump + keyboard scrub, local-time labels with a UTC affordance. Contract kept from the gantt so every browser smoke passes untouched: .gantt root, .bar slider (drag-updating aria-valuenow), .stripe segments (+ data-phase), the fixed-float CSS block, the dock de-float overrides. - +page.svelte: 2-line swap in ganttBlock; EphemerisGantt.svelte removed (its loader/slider/chrome idioms live on in TimeHelix) - e2e B1→H1: phase-colored ribbon (≥2 distinct data-phase) + now-centering acceptance ([data-now-marker] in the central third of the bar) - overflow.spec: seed darkmap-tour-v1 before the scrub test (the helix rail is taller than the gantt bar, so the first-visit tour card overlaid the drag origin; clicking Skip races tour mount — aq-dashboard's idiom) - scrub flushes the pending rAF frame on pointerup (headless WebKit starves rAF, silently dropping fast flicks' final position) Verified: just check; mobile-hud matrix smoke; webkit shell+mobile-hud smokes; H1+overflow e2e 3x green under webkit-mobile and chromium-mobile; capture-breakpoints 14 viewports PASS with visual checks at 375x667 / 1440x900 / 844x390. Zero diff under scripts/bazel/.
Jesssullivan
added a commit
that referenced
this pull request
Jun 11, 2026
…elix era (PR3) (#433) The component swap landed in #432; this sweeps the prose that still said 'twilight gantt' / EphemerisGantt where it described the PRESENT: - Sky-lens tour step: 'Open the time helix … now sits at the center; drag the ribbon' (was 'Open the twilight gantt') - Cmd-K 'Toggle Twilight strip' keywords gain 'time helix' (gantt kept as an alias) - /docs route: three Sky-lens/ephemeris mentions now say time helix - docs/ux/command-deck.md: present-tense DOCK prose updated (notes the row keeps its .gantt smoke contract); historical W-logs left as history - 15 stale comments across app.css, viewportGrid, cache/badge, MapToolbar, SkyCompass, ResponsiveDock, horizonAwareEvents, twilight-phases, +page.svelte — each reworded to be true today (e.g. badge.ts notes the cache pill has no consumer while TimeHelix V1 defers it; the TIN-1810 app.css note records the ~200px figure as gantt-era history and why the reserve rule stays) No behavior change; just check green; the .gantt/.bar/.stripe contract and ganttRow/ganttBlock/dock-gantt-row names are untouched by design.
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.
The time helix premieres
Replaces
EphemerisGantt.sveltewithTimeHelix.svelte— the foundational UI element of phasi.space, premiering in darkmap as the twilight bar's successor. PR2 of the cascade (PR1 = #431, the pure math).What it is
orientationprop ships horizontal; the math is orientation-clean for phasi.space's vertical helix.Contract (smokes pass untouched-by-construction)
Root keeps
.gantt(+time-helix); the scrub surface keeps.bar+role=slider+ drag-updatingaria-valuenow; ribbon segments keep.stripe(+data-phase); the fixed-float CSS block and the dock.dock-gantt-rowde-float overrides are preserved. Zero diff underscripts/bazel/.Spec changes
twilight-compact-webkit.spec.ts): keeps presence/box floors; adds ≥2-distinct-data-phaseribbon assert + the now-centering acceptance ([data-now-marker]centerX within the central third of the bar).darkmap-tour-v1pre-load (aq-dashboard's idiom) — the helix rail is taller than the gantt bar, so the first-visit tour card overlaid the drag origin; clicking Skip races the tour mount.Bugs found & fixed during verification
build/when present; verification re-ran against a fresh build.Verification
just check·//:playwright_mobile_hud_matrix_smoke·just webkit-smoke shell+mobile-hud· H1+overflow e2e 3× green under webkit-mobile and chromium-mobile ·capture-breakpoints14 viewports PASS with visual checks at 375×667 (dock), 1440×900 (WIDE float), 844×390 (landscape float).PR3 follows: tour copy, Cmd-K keywords, docs prose, stale comments.