Add multi-change comparison timeline (log-scale) - #93
Merged
Conversation
Third and final change building the "change timeline" feature: a global command (openspec-ui.showAllChangesTimeline) and a standalone Timeline-tab mode show several changes as parallel lanes on a shared, log-scaled time axis. The log-scale direction was validated against this repository's own real archived-change timestamps in a throwaway sketch before implementation -- "log from range start" spreads a dense squash-merge cluster into readable detail; the opposite direction compressed it tighter than a plain linear scale would. Two real gaps found and fixed during this change's own verification: neither timeline view had any matching CSS (the positioned-dots axis literally did not render without it -- position/left/absolute rules were missing entirely), and archivedDate (a plain calendar date) was anchored to midnight, which could sort it before that same day's real created/task timestamps -- now anchored to end-of-day instead. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4 tasks
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.
Summary
openspec-ui.showAllChangesTimeline(Command Palette, multi-selectshowQuickPickover active+archived changes) and a "Compare changes" mode in the standalone Timeline tab (date-range picker + multi-select): both show several changes as parallel lanes on a shared, log-scaled time axis.logPosition(timeline-scale.ts): log1p-from-range-start, validated against this repository's own real archived-change timestamps in a throwaway Playwright sketch before implementation — "from start" spreads a dense squash-merge cluster into readable detail; the opposite direction (from range end) compressed the same cluster tighter than a plain linear scale, defeating the point.getChangeTimelinesbatch function and Add single-change timeline view (webui + VS Code extension) #92'sChangeTimelinetype completely unchanged — no data-layer changes.Two real gaps found and fixed during this change's own verification
left: X%inline styles do nothing withoutposition: relative/absolute, so the positioned-dots axis (the actual point of this feature) did not render at all. Added.openspec-timeline-*/.openspec-multi-timeline-*rules toshell-ui.ts.archivedDateanchored to midnight could sort an archived change's archive-point before that same day's real created/task timestamps (archiving is chronologically last, but the date has no time-of-day). Anchored to end-of-day instead, in both the component and the extension'scomputeDefaultRange.Test plan
timeline-scale.test.ts,MultiChangeTimelineView.test.tsx(new)commands.test.tscases: multi-select across active/archived, computed default range, no-selection no-opnpm run typecheck,npm run lint(includinglint:english),npm run testworkspace-widenpm run package --workspace openspec-ui-vscode— VSIX packages without errordist/timeline.jsloading real data for 7 of this repository's own archived changes — correct lane/point counts, zero console errors, and (after the CSS fix) confirmed via computed styles thatposition/left/transformresolve correctly on each pointopenspec change validate --strict add-multi-change-timeline-view🤖 Generated with Claude Code