Update-available icon, What's new in the library strip, version in settings - #177
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
| static ReleaseNotesEntry? _parseEntry(Map<String, dynamic> item) { | ||
| final version = item['version']?.toString().trim(); | ||
| if (version == null || version.isEmpty) return null; | ||
|
|
||
| final shortVersion = | ||
| _toInt(item['shortVersion']) ?? int.tryParse(version.split('+').last); | ||
| if (shortVersion == null) return null; | ||
|
|
There was a problem hiding this comment.
Malformed versions reach the release dialog
A manifest entry only needs a non-empty version string and an integer build number to be accepted. A value such as not-a-semver-release with shortVersion: 999 is shown as an available release, and the release header overflows because arbitrary version text shares a non-wrapping row with the badge and date. Validate the updater version format before constructing an entry, and constrain or ellipsize the version label in the dialog.
Comments Outside DiffThese findings sit on lines the diff does not cover, so they could not be posted inline. Each one leaves this list once its file changes.
|
… in settings rail Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
Verified the
Updater, Discord, tooltip and network-failure paths were not retested in this run. |
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Summary
Three spots for update/version/patch-note info, none of them loud.
UpdateAvailableIcon,lib/widgets/strip_status_icons.dart): drawn byAppWindowStripitself just before the caption buttons, so it shows on the library and editor screens without either placing it. Exists only while an update is waiting. Direct Windows installs open the existingDesktopUpdateDialog; Store/web reopenUpdateChecker.showUpdateDialog, the same dialog the automatic check shows, so dismissing the popup too fast is no longer the last chance.WhatsNewIcon): inbox icon in the library strip, right before search. OpensReleaseNotesDialog, fed by the stable updater manifest (app-archive.json) viaReleaseNotes.parse— multiple builds of one semantic version collapse to the highest build, installed/newer builds get anInstalled/Availablebadge.PatchNotesListis shared with the update dialog.Icarus 4.6.2 (102)at the foot of the settings navigation rail (_VersionFooter,settings_tab.dart); click copies it for bug reports. No About icon in any strip.Plumbing: the direct Windows updater controller moved out of
FolderNavigatorintodesktopUpdateControllerProviderso both the automatic dialog listener and the strip icon watch one controller. DESIGN.md window-chrome rules updated to match.strategy_view_skeleton_testnow wraps inProviderScopesince the strip has a Riverpod consumer.update_checker_test/windows_desktop_update_controller_testfail on main already.Link to Devin session: https://app.devin.ai/sessions/375a43fa29284c4ba7dcf33de224fe1b
Open in Devin Desktop: https://app.devin.ai/desktop/session/375a43fa29284c4ba7dcf33de224fe1b?variant=devin
Requested by: @SunkenInTime