Report leftovers: golden snapshot file, one dependents question per name, honest refusal of a heavy selection - #31
Merged
Conversation
The snapshot format had tests for key order, the dropped measurement and the trailing newline, and none for the file as a whole. A renamed field, a null that stops being written or a character that starts coming out escaped would pass all of them. A trial NativeAOT build showed the cost: it wrote an empty object for every entry with exit code 0, while its text output stayed identical. SnapshotGoldenTests renders the specimen catalogue with fixed metadata and compares it with tests/Bws.Core.Tests/Golden/snapshot-schema-4.json, reads the kept copy back and writes it again unchanged, and ties the file name to the schema version. The kept copy is embedded and marked -text in .gitattributes so a checkout cannot rewrite its line endings. With that in place, the leaf copy at the end of SnapshotJson.Sorted goes: both branches already detach a child before recursing. Same bytes, about 0.8 MB less allocated per render of a 797 entry snapshot, no change in time. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A bulk plan asked the manager the same question many times over: the ordering asks about every selected name, each plan asks again about its own target, and the cascades of neighbouring entries overlap. Over the whole listing of 800 entries asked to stop that was 1430 questions, each opening the manager and then the service. DependentsAskedOnce keeps one answer per name for the length of one BulkPlanBuilder.Build and is handed to both the ordering and the plan builder. A refusal is kept as a refusal, names are compared as written, and nothing outlives the build. Measured with the plan probe, interleaved: 800 questions instead of 1430, and the preview of the whole listing built in 103-171 ms instead of 184-276 ms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A plan over a selection that included an entry the machine does not work without asked for the first entry's name to be typed, while the confirmation refused every plan about more than one entry. The name could be typed and the button stayed off - a dead end that looked like a door. The footer now separates the heavy ask from the way it is answered. One entry still asks for its name. A selection is refused with a sentence under the danger line saying to deselect those entries or deal with each on its own, and the grey button says the same. No single name agrees to a selection. The confirmation section moves out of PlanFooter.xaml into PlanConfirmation, a view of its own with its own state, which the component catalogue shows in both states. The changelog also records the faster bulk plan preview. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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 last items left from the performance report, plus one fault on the plan sheet.
What changes
SnapshotGoldenTestsrenders the specimen catalogue with fixed metadata and compares it withtests/Bws.Core.Tests/Golden/snapshot-schema-4.json, reads the kept copy back and writes it again unchanged, and ties the file name to the schema version..gitattributesmarks the folder-textso a checkout cannot rewrite its line endings. With that in place, the redundant leaf copy at the end ofSnapshotJson.Sortedgoes: same bytes, about 0.8 MB less allocated per render of a 797 entry snapshot, no change in time.DependentsAskedOncekeeps one answer per name for the length of oneBulkPlanBuilder.Build. Over 800 entries asked to stop: 800 questions instead of 1430, and the preview built in 103-171 ms instead of 184-276 ms.PlanConfirmation.xaml, a view of its own, shown in both states in the component catalogue.Checked
Not run: the full test suite, the full gate, the full mutation registry, the integration performance budget.
🤖 Generated with Claude Code