What's Changed
- chore(release): bump version to 2.4.1 (f1d6130)
- fix(analytics): no error reports from dev builds or CI (#1472) (52e391d)
- fix(restore): server-side preview reports Borg's warnings and failures, needs no destination (#1466) (a551bdc)
- fix(backup-plans): keep next_run when a plan update leaves the schedule unchanged (#1469) (8fc49c1)
- fix(archives): delete one archive of a Borg 2 series by id on server repositories (#1468) (455974c)
- fix(repositories): export a Borg 1 keyfile with the SSH key of the repository's connection (#1471) (623cbdc)
- fix(borg2): offer the keyfile download for keyfile repositories the server creates (#1467) (6f20c63)
- fix(borg2): keep the store cache off when creating a repository with a stored SSH key (#1465) (3ecd6b5)
- fix(oidc): read the ID token header before fetching the JWKS (#1464) (8a3a545)
- feat(analytics): frontend error reporting and updated public texts (#1461) (8b94ef1)
- docs: use portable paths in security engineering notes (#1470) (3b21a10)
- Merge commit from fork (b9cca22)
- Merge commit from fork (51feb21)
- Merge commit from fork (812bf88)
- feat(analytics): backend error reports (request, startup, migration, job) (#1462) (59fe262)
- fix(hooks): repository script and hook follow-ups to #1385 (#1427, #1428, #1429) (#1456) (fccef5d)
- fix(oidc): fetch JWKS with httpx and log callback failures (#1455) (ff808ad)
- fix(main): set the BASE_PATH root path in BasePathMiddleware, not FastAPI(root_path=...) (#1444) (#1460) (c670da8)
- fix(agent): leave the cancel report of streamed artifact jobs to their worker (#1459) (12fb444)
- fix(agents): send a session agent its owed cancels on hello and heartbeat (#1458) (7691e0e)
- fix(auth): load the profile after a passkey autofill sign-in (#1457) (c26506d)
- fix(agents): agent repository routes behave as their server paths (#1441) (1f9e85d)
- chore(deps-dev): bump happy-dom from 21.0.3 to 21.0.4 in /frontend (#1453) (f3310ad)
- fix(hooks): run the post-backup hooks on every way out after the pre-backup hooks (#1385) (#1445) (6f494e3)
- chore(deps): bump the backend-minor-patch group across 1 directory with 2 updates (#1440) (7415838)
- chore(deps): bump the frontend-minor-patch group (#1439) (698ac4d)
- feat(agents): restore preview, key export and a wipe's deletes on the agent (#1446) (da91323)
- fix(plans): the startup sweep cancels the work an interrupted run queued (#1450) (#1451) (60d5ea7)
- chore(runtime-base): adopt rclone 1.75.2 (#1449) (162a4aa)
- fix(ci): send a User-Agent from the rclone adoption script (#1448) (c9c1ca8)
- fix(deps): bump the dompurify override to 3.4.17 (#1442) (bb9fc41)
- ci(release): publish frontend source maps as a release asset, ship none in the image (#1452) (e9247a2)
- fix(agents): no server-side Borg for an agent repository (#1421) (df9ad9b)
- fix(agents): an offline agent no longer holds the backup slot (#1331) (#1420) (3ad4596)
- fix(agent): pin certifi 2026.10.19 and let Dependabot update the agent's constraints (#1435) (#1436) (6d83b6d)
- fix(cloud-storage): show the failure toast when a remote test fails (#1437) (c078493)
Docker Images
Published to Docker Hub:
docker pull ainullcode/borg-ui:2.4.1
docker pull ainullcode/borg-ui:latest
Install without Docker
Debian or Ubuntu host (bare metal, VM, or LXC):
curl -fsSLO https://github.com/karanhudia/borg-ui/releases/download/v2.4.1/install.sh
curl -fsSL https://github.com/karanhudia/borg-ui/releases/download/v2.4.1/install.sh.sha256 | sha256sum -c - \
&& sudo bash install.sh --version 2.4.1
Full Changelog: v2.4.0...v2.4.1