Repository navigation
Smooth the roadmap pace slider and keep points whole - #918
Merged
Merged
Conversation
Releasing a band's pace slider saved the pace twice, made every pace on the roadmap re-read the whole backlog for each save, redrew the band twice, and let the thumb snap back to the old pace while that ran. The figure beside the slider also changed width with its digits, so the track resized under the pointer during a drag. - One save per release: IPlanningVelocitySettings.SetOwn writes the pace and the Set choice together, raising Changed once. - The band reads every band's pace from one backlog read (IPlanningPace.ReadPacesInUseAsync) and redraws once, on the pace's own change notice. - The slider holds the released value until the save is read back. - The figure has a fixed width, so the track keeps its length. - Points are whole: the slider steps by one and every pace figure in the band's pace control and the forecast is rounded. - The info mark sits at the right end of the band's name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Setting a band's pace with the roadmap slider stuttered:
94.75→95), which resized the slider track under the pointer.This PR also makes the pace whole points and moves the info mark onto the band name's line, as asked in review.
Changes
IPlanningVelocitySettings.SetOwn(PlanningVelocitySettingsStore.SetOwn) writes the pace and theSetchoice as one change, raisingChangedonce.PlanningPace.SetOwndelegates to it. The pace document still travels as one version per change (local ADR 0018).IPlanningPaceexposesReadPacesInUseAsync.RoadmapBand.Loadreads every band's pace from one read of the finished work instead of one per repository.OnPaceChangedas well asPaces.Changed; both reported the same save.RoadmapTypedPaceonly does its before/after reads when someone listens.RoadmapPaceControlholds the slider at the released value until the saved pace is read back..roadmap-pace__valuehas a fixed width, so the track keeps its length during a drag.PaceSliderRangesteps by 1, with ends on whole points and never below 1. Every pace figure in the pace control (figure, hint, notes) and in the forecast tooltip is rounded to a whole number. The heading's typed "Mine" field is unchanged and still accepts decimals.Reviewer note: the harness links
app.csswith no fingerprint. A browser holding the previous stylesheet shows the info mark on its own line under the name; a hard refresh fixes it.Testing
7 pt/wkinstead of the released value.SetOwn: oneChanged, and refusals choose nothing.PlanningPaceone-change test.PaceSliderRangewhole-point rules.Backlog.WithoutAppHeads.slnf, Release,-p:TreatWarningsAsErrors=true):Related
No issue. It came from an ad-hoc report that the pace slider is not smooth. The shared
InfoHintkeepsaria-expanded="false"while pinned open; that predates this PR and is not changed here.Checklist
aspire stop --apphostfor this worktree)🤖 Generated with Claude Code