Repository navigation
An install that never recorded a version is not a fresh one (GRYT-1102) - #518
Merged
Merged
Conversation
GRYT-1101 stopped the dialog reading the per-user store before it loaded. One consequence was left: nothing wrote whatsNewSeenVersion while that bug was live, so every install that ran 1.11.0 or 1.11.1 has no value stored. On the first fixed build the dialog would read null, call it a fresh install, record the version and say nothing — so it would only appear on the release after that one. The two cases are separable. A fresh install has joined no servers. One that has been in use has an entry under `servers`, so `seen === null` with servers present is an install that predates the recording rather than a new one. A true fresh install stays quiet, which is the case that rule was written for: announcing the version somebody has just chosen to download reads as a bug. The check runs the branch both ways and executes hasJoinedAnything itself against no entry, an empty object and a joined server. Four mutations, four caught. Co-Authored-By: Claude Opus 5 <[email protected]>
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.
#517 stopped the dialog reading the per-user store before it loaded. One consequence was left, and it would have cost a whole extra release.
Nothing wrote
whatsNewSeenVersionwhile that bug was live. So every install that ran 1.11.0 or 1.11.1 — which is every install — has no value stored. On the first fixed build the dialog reads null, calls that a fresh install, records the version and says nothing. It would only appear on the release after that one.Telling them apart
A fresh install has joined no servers. One that has been in use has an entry under
servers. Soseen === nullwith servers present is an install that predates the recording, not a new one, and it gets shown what changed.A true fresh install still stays quiet — that's the case the rule was written for. Announcing the version somebody has just chosen to download reads as a bug.
I checked the shape on a running client rather than guessing:
serversis an object keyed by host,{"127.0.0.1:5003": {…}}.nicknamewas the obvious alternative marker and is wrong —useSettingswrites a random one during the first load, so it exists on every install including brand new ones.Checks
The check runs the branch both ways, and executes
hasJoinedAnythingitself against no entry, an empty object, and a joined server. Four mutations, four caught — including replacing the guard with!!servers, which passes an empty object and would put the dialog in front of someone who has never joined anything.🤖 Generated with Claude Code