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:
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
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
installSourcevariable2. Define update modes
3. Add update settings storage
updateChannelto settingslastInstalledVersionto settingslastInstallerPath(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
5. Add Tools → Update menu
6. Build Update Panel UI
For direct installs:
For store installs:
For snap installs:
PHASE 3 — Channel Support
This is where the updater becomes configurable.
7. Add pre‑release channel toggle
8. Switch feed URL based on channel
latest.ymlprerelease.yml9. Update version comparison logic
PHASE 4 — Version Selection & Rollback
This is the advanced part.
10. Store last installed version
11. Store last installer path
12. Add rollback option
13. Add version selection UI (optional future)
PHASE 5 — Behavior Changes
This modernizes the updater experience.
14. Remove auto‑check on launch
15. Add subtle update indicator
16. Add manual “Check for updates” button
PHASE 6 — Cleanup & Stability
Final polish.
17. Remove unused IPC channels
18. Add error handling for store mode
19. Add logging for update events
20. Test all install modes