Add startup update notification - #247
Merged
Merged
Conversation
Widthdom
force-pushed
the
feat/update-notification
branch
from
July 29, 2026 10:41
7bde4fe to
1ea1e7d
Compare
Widthdom
force-pushed
the
feat/update-notification
branch
from
July 29, 2026 11:25
1ea1e7d to
9663e03
Compare
Widthdom
marked this pull request as ready for review
July 29, 2026 12:06
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
nildiffrelease on eligible console starts.dotnet tool update --global nildiffprocess when the user explicitly chooses update.USER_GUIDE.md, with concise references from the other documents.Behavior and impact
The update phase runs only when stdin, stdout, and stderr are all unredirected. Redirected, piped, and automated runs remain unchanged. Network, JSON, cache, timeout, and updater failures are best effort and cannot fail the requested CLI operation.
3. Skip until next versionstoresdismissedVersionin the user-localupdate-check.json. The same release remains suppressed across cache refreshes, while a later release prompts again. Existing clients through 1.22.0 cannot receive this startup behavior; it takes effect from the release containing this change.Validation
dotnet format FolderDiffIL4DotNet.sln --no-restore --verify-no-changesdotnet test FolderDiffIL4DotNet.Tests/FolderDiffIL4DotNet.Tests.csproj --configuration Release --no-restore --nologoUpdateNotificationServiceTests: 16 focused tests covering caching, stale refresh, failure backoff, trusted registration pages, all prompt choices, updater outcomes, andProgramRunnerstdout/stderr behavior.Manual prompt verification
Create the user-local
update-check.jsonwith alatestVersiongreater than the built application version,dismissedVersionset tonull, andnextCheckAtUtcset to a future timestamp no more than 20 hours away. Then launchnildiffdirectly from an interactive console with all three standard streams unredirected. This exercises the cached path without contacting NuGet and displays choices 1, 2, and 3.