Skip to content

updater ovehaul #89

@ZFordDev

Description

@ZFordDev

Summary

SnapDocks updater worked well for v2 but needs a ovehaul to be more robust, more options and store compliance.

Requirements

PHASE 1 — Detection & Architecture Foundation

These steps make the updater aware of its environment.

1. Detect installation source
  • Detect Windows Store install
  • Detect Snap Store install
  • Detect direct install
  • Store this in a simple installSource variable
2. Define update modes
  • Direct mode → full updater
  • Store mode → redirect to store page
  • Snap mode → redirect to snap-store
3. Add update settings storage
  • Add updateChannel to settings
  • Add lastInstalledVersion to settings
  • Add lastInstallerPath (for rollback)

PHASE 2 — UI Overhaul (Tools → Update)

This moves the updater out of the footer and into a proper settings panel.

4. Remove old update button
  • Remove bottom‑right yellow button
  • Remove auto‑check UI from launch
5. Add Tools → Update menu
  • Add Update entry under Tools
  • Clicking it opens a side panel or nested dropdown
6. Build Update Panel UI

For direct installs:

  • Pre‑release toggle
  • Latest version entry
  • Rollback entry
  • Optional: “Check for updates now”
  • Optional: “View release notes”

For store installs:

  • “Open in Microsoft Store”

For snap installs:

  • “Open in Snap Store”

PHASE 3 — Channel Support

This is where the updater becomes configurable.

7. Add pre‑release channel toggle
  • Store toggle in settings
  • Update UI reflects current state
8. Switch feed URL based on channel
  • stable → latest.yml
  • prerelease → prerelease.yml
9. Update version comparison logic
  • Handle prerelease tags
  • Handle “newer than latest”
  • Handle channel mismatches

PHASE 4 — Version Selection & Rollback

This is the advanced part.

10. Store last installed version
  • Save version after successful update
11. Store last installer path
  • Save downloaded installer file path
12. Add rollback option
  • Show “Last Installed Version”
  • Clicking it runs the stored installer
13. Add version selection UI (optional future)
  • Show available versions
  • Allow selecting older versions
  • Only for direct installs

PHASE 5 — Behavior Changes

This modernizes the updater experience.

14. Remove auto‑check on launch
  • No more forced update prompt
  • No more intrusive yellow button
15. Add subtle update indicator
  • Tools → Update shows a small badge
  • No UI takeover
16. Add manual “Check for updates” button
  • Inside the Update panel
  • Not on the main UI

PHASE 6 — Cleanup & Stability

Final polish.

17. Remove unused IPC channels
  • Remove old update events
  • Remove old update button logic
18. Add error handling for store mode
  • Prevent direct update attempts
  • Show “Updates managed by Microsoft Store”
19. Add logging for update events
  • Log channel
  • Log version
  • Log errors
20. Test all install modes
  • Direct install
  • Windows Store
  • Snap Store
  • Pre‑release
  • Rollback

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions