Skip to content

v1.9.0#10

Merged
sunknudsen merged 56 commits intomainfrom
v1.9.0
Dec 18, 2025
Merged

v1.9.0#10
sunknudsen merged 56 commits intomainfrom
v1.9.0

Conversation

@sunknudsen
Copy link
Member

@sunknudsen sunknudsen commented Nov 19, 2025

This pull request addresses accrued tech debt, implements the following features and updates dependencies.

Updated Electron from version 28 to 38: Refactored codebase to mitigate breaking changes
Updated Mantine from version 5 to 8: Refactored codebase to mitigate breaking changes
Updated Superbacked OS base image from Ubuntu Desktop version 24.04.1 LTS to 24.04.3 LTS: Keep Superbacked OS up-to-date with latest Ubuntu LTS release
Replaced Docker Desktop with Colima: Use lightweight open-source Docker runtime
Replaced bip39 dependency with @scure/bip39: Use independently audited BIP39 implementation
Replaced jsqr and qrcode.react with qr: Use modern QR code library by Paul Miller
Implemented hardened ESLint validation: Improve code quality and catch potential issues
Restructured translations: Improve internationalization architecture
Fixed minor user interface issues: Improve user experience

@sunknudsen
Copy link
Member Author

Fixed another block image issue on Tails OS running on ThinkPad X1 Carbon Gen 10 where device pixel ratio is 1.25 (“Scale” is set to “125%” in “Displays”).

Fractional scale resulted in fractional window size throwing a type error… fixed in v1.9.0-rc.4 release.

@christoffercarlsson
Copy link
Member

Hey @sunknudsen,

I have tested Superbacked OS on my ThinkPad X1 Carbon Gen 13 and can confirm that the backup type hang and the block scaling issues reported from v1.9.0-rc.1 release now have been fixed in v1.9.0-rc.4.

I did however find another issue when trying to restore a distributed backup from a file. Here are the steps to reproduce:

  1. Create a distributed backup (2 of 3 blocks required).
Screenshot from 2025-12-12 02-55-51
  1. Save the files to disk.
Screenshot from 2025-12-12 02-56-14
  1. Open 2 of the 3 blocks in Image Viewer.
Screenshot from 2025-12-12 02-58-07 Screenshot from 2025-12-12 02-59-03
  1. Select source.
Screenshot from 2025-12-12 02-57-08 Screenshot from 2025-12-12 02-59-29
  1. Enter passphrase.
Screenshot from 2025-12-12 02-59-46

When given the correct passphrase the same screen is shown again with the message "Scan next block..." and the clicking sound repeats multiple times. Seems like it's attempting to scan the same block again and again.

Screenshot from 2025-12-12 03-00-19
  1. Switch to show the second backup in Image Viewer.
Screenshot from 2025-12-12 02-58-52
  1. Click the cog in top right corner and select source again.
Screenshot from 2025-12-12 03-00-52 Screenshot from 2025-12-12 02-59-29

Now the following "blank" screen appears.

Screenshot from 2025-12-12 03-01-01
  1. Click the cog and select source one more time. It now presents a different type of screen sharing window.
Screenshot from 2025-12-12 03-01-19
  1. Select "Application Window" to share the same window from Image Viewer again.
Screenshot from 2025-12-12 03-01-51

This time it does work and the correct secret is restored.

Screenshot from 2025-12-12 03-02-05 Screenshot from 2025-12-12 03-02-28

@christoffercarlsson
Copy link
Member

Hey @sunknudsen,

I can also confirm that scanning blocks to restore backups (both standard and distributed) works well in good lighting using the integrated camera on my ThinkPad X1 Carbon Gen 13 👍

@sunknudsen
Copy link
Member Author

Hey @christoffercarlsson, first, thank you so much for such a well documented issue. 🙌

I believe distributed backup recovery via screen sharing issue is something that was reported in the past… on it!

I can also confirm that scanning blocks to restore backups (both standard and distributed) works well in good lighting using the integrated camera on my ThinkPad X1 Carbon Gen 13 👍

Great, thanks for sharing! I don’t recall if I asked but do you have the model with a 1080p or 8K camera?

@christoffercarlsson
Copy link
Member

Great, thanks for sharing! I don’t recall if I asked but do you have the model with a 1080p or 8K camera?

It's the 1080p model. 8K would be nice, though!

@sunknudsen
Copy link
Member Author

Great, thanks for sharing! I don’t recall if I asked but do you have the model with a 1080p or 8K camera?

It's the 1080p model. 8K would be nice, though!

Not sure if Ubuntu includes non-proprietary drivers for 8K camera.

@sunknudsen
Copy link
Member Author

Hey @christoffercarlsson, please see v1.9.0-rc.5. This release candidate should fix the reported recovery issue on Linux.

TL;DR; The desktopCapturer.getSources API has caveats on Linux when using Wayland. First, one cannot select multiple windows even though Ubuntu’s UI allows it. Second, Wayland does not reveal window name to Electron (see electron/electron#47793).

As a result, I refactored Scanner component to automatically update devices and sources when Mantine’s Select component is clicked and automatically select source (window) provided by Wayland/PipeWire. This fixes confusing UX and having to first allow window and then select same window.

That said, I believe there was also a race condition in how start and stop were handled.

@christoffercarlsson
Copy link
Member

Hey @sunknudsen,

I've tested v1.9.0-rc.5, and I was unable to reproduce the recovery issue for distributed backups that was reported earlier. So that seems to be fixed now 👍

I did run into the block scaling issue again though. I am also unable to deterministically reproduce this on my hardware, same as you.

Screenshot from 2025-12-15 15-11-47 Screenshot from 2025-12-15 15-17-45 Screenshot from 2025-12-15 15-16-43 Screenshot from 2025-12-15 15-12-45

@sunknudsen
Copy link
Member Author

sunknudsen commented Dec 17, 2025

Hey @christoffercarlsson!

That issue is stubborn… thanks for your help.

Ended up reverting back to [email protected] vs Electron’s capturePage.

Among other desirable properties, pdfjs-dist supports deterministic scaling no matter the resolution or scale of monitor.

Please see v1.9.0-rc.6 release.

@sunknudsen
Copy link
Member Author

Hey @christoffercarlsson! I fixed another issue… please see v1.9.0-rc.7 release.

@christoffercarlsson
Copy link
Member

Hey @sunknudsen,

I can happily confirm that the block scaling issue have been fixed with v1.9.0-rc.7 release!

I would say that v1.9.0 is ready to be merged 🥳

@sunknudsen
Copy link
Member Author

Hey @christoffercarlsson, I anchored semver to v1.9.0.

Merge is pending final review.

@sunknudsen sunknudsen merged commit a2a34b0 into main Dec 18, 2025
@sunknudsen sunknudsen deleted the v1.9.0 branch December 18, 2025 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants