Compare snapshots on configuration, leave session copies out, spell JSON values as the listing does - #39
Merged
Conversation
…ll JSON values as the listing does Snapshot comparison: - --exit-code and "differs" answer about configuration only. An entry that differs only in running state is still reported and no longer ends with 5. The text report asks a separate question before saying "No differences.", so a state-only change is never hidden. A new integration test runs exit code 5 on a real snapshot and two copies edited in one field each - nothing in the suite ran it before. - Per-user session copies (role Instance, read from the type bits, never from the name) are left out on both sides and counted: one line in the text, "instancesLeftOut" in --json. The template is still compared. - Snapshot schema 5: the metadata records the Windows version with the monthly update (UBR from the registry, the only place Microsoft documents it) and the language the service manager names things in (the system's preferred UI language - the manager was measured not to follow the calling thread's language). Version 4 files are still read, with both fields "not known". - New caveats: a different update, a different account, a different names language (display names and descriptions are then left out of every entry), and "notKnown" for metadata one side does not carry. - A null in an entry's "notRead" list is refused with a sentence naming the entry, instead of a null dereference and exit code 1. - snapshot create given a folder refuses at once, before the signature pass. Machine-readable output: - Breaking in 0.x: every enumerated value in the JSON of a plan (action, operation, reason, outcome, skippedBecause, warning kind) and of a comparison (group) is spelled the way its enumeration spells it, like the listing and the snapshot. Table of old and new values in CHANGELOG.md. MachineDocumentValueGuards puts every member of every enumeration through both writers. README, the usage text and the site say what exit code 5 now means. 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.
Package E of the stability report: snapshot comparison and the spelling of values in machine-readable output.
What changes for somebody using the tool
snapshot diff --exit-codeand"differs"answer about configuration only. An entry added or removed, or one set up differently, ends with 5. An entry that only stopped or started by itself is still reported, under "Changed" and marked as running state, and no longer fails a nightly check."instancesLeftOut": {"earlier": n, "later": n}in--json. Matched by the role the type bits give an entry, never by its name. The template is still compared.operatingSystemVersion(Windows down to the monthly update, e.g.10.0.26200.9550) andnamesLanguage(the language the service manager names things in). Version 4 files are still read and compared, with a line saying what they do not record. A version 5 file is refused by 0.3.0.notKnownin--jsonfor metadata one side does not carry.notReadlist gets a sentence naming the entry and exit code 2 instead of a null dereference and exit code 1.snapshot creategiven a folder refuses at once instead of verifying every signature and then failing with "Access to the path is denied".action,operation,reason,outcome,skippedBecause, warningkind) and of a comparison (group) is spelled the way the listing and the snapshot spell theirs -"Succeeded"beside"Running". Table of old and new values inCHANGELOG.md.How it was checked
snapshot create <folder>refuses in 239 ms with exit code 2 (1545 ms and "Access denied" before), a fresh snapshot compared with the live machine reports nothing and 23 session copies left out on each side, a hand-damagednotReadgets the sentence and exit code 2, a file rewritten as schema 4 compares with exit code 0 and thenotKnownline,bws restart AxInstSV --dry-run --jsonwritesRestart,Start/RequestedandRestartOnlyStarts.Not checked
🤖 Generated with Claude Code