Nico
aa7da321ba
refactor: dedpulicate volume schemas across packages ( #864 )
2026-05-09 15:36:25 +02:00
Nico
2ada5acd5a
refactor(agent): harden local agent volume lifecycle ( #863 )
...
* refactor(agent): harden local agent volume lifecycle
* chore(test): remove un-used variable
* refactor(agent): create dedicated jobs for recurring tasks
* chore: pr feedbacks
* test: add missing fake agent controller
2026-05-09 12:13:04 +02:00
Nico
2062beac68
refactor(server): route volume operations through agents ( #862 )
...
* refactor(server): route volume operations through agents
* chore: pr feedbacks
2026-05-07 20:51:25 +02:00
Nico
df4b668560
feat(agent): add volume operation RPC ( #861 )
2026-05-07 18:11:57 +02:00
Nico
700fa1cd4a
feat: route backups through volume agents ( #860 )
2026-05-06 22:13:51 +02:00
Nico
e65a135676
feat(agents): create agent registry and service ( #849 )
...
* feat(agents): create agent registry and service
* fix: mark agent offline only if the session was removed properly
* refactor: centralize agent backup lifecycle state
* refactor: simplify session management
* refactor: move effect / async boundary in one place
* chore: regen migration
* refactor: improve error handling
* chore: pr feedback
2026-05-05 19:34:10 +02:00
Nicolas Meienberger
cd69eea27f
fix: avoid unnecessary webhook allowlist checks on notification edits
2026-05-05 10:24:20 +02:00
Nicolas Meienberger
b1ae85e2c1
fix(notifications): preserve existing destinations with target allowlist
2026-05-05 10:24:20 +02:00
Nico
147f266929
fix(notifications): enforce allowlist for custom Shoutrrr targets ( #853 )
...
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
Release Workflow / request-docs-version-update (push) Has been cancelled
* fix(notifications): enforce allowlist for custom Shoutrrr targets
* fix(notifications): enforce allowlist for email notification targets
2026-05-04 17:47:44 +02:00
Nicolas Meienberger
8772d4796e
feat(backups): configure backup webhook timeout
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
Release Workflow / request-docs-version-update (push) Has been cancelled
2026-05-04 07:52:21 +02:00
Nicolas Meienberger
7be7c9edae
test(e2e): fix waiting on transitive state
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / request-docs-version-update (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-05-03 20:51:43 +02:00
Nico
f83b765d04
fix(notifications): persist delivery health status ( #850 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
Release Workflow / request-docs-version-update (push) Has been cancelled
* fix(notifications): persist delivery health status
* fix: pr feedback double update
2026-05-02 11:51:16 +02:00
Nicolas Meienberger
d19d827496
fix(backups): default ignore-inode for fuse volumes
2026-05-02 08:54:14 +02:00
Nicolas Meienberger
94d7fdc9a8
fix(notifications): validate notification webhook origins
2026-05-01 18:22:53 +02:00
Nico
220e2d2801
feat: make webhook calls trusted only ( #848 )
...
* feat: make webhook calls trusted only
* fix: pr feedbacks
2026-04-30 22:14:22 +02:00
Nico
1cf96c5292
refactor(agents): split local agent bootstrap from controller startup ( #847 )
2026-04-30 21:39:55 +02:00
Nico
11e9fbcc44
feat: pre/post backup webhooks ( #835 )
...
* feat: pre/post backup webhooks
* fix(hooks): run post when cancelled
* refactor(webhooks): headers as array
* refactor: pr feedback
* refactor: simplify hooks ceremonies
* chore: pr feedbacks
* chore: re-gen migration
2026-04-29 23:48:58 +02:00
Nico
a5d47eac5a
fix(system): ensure version check is not cached by browser ( #833 )
...
#798
2026-04-25 09:41:29 +02:00
Nico
e506047415
test: add property-based tests with fast-check ( #832 )
2026-04-25 09:35:28 +02:00
Nicolas Meienberger
7b3b7583c0
chore: improve sanitize function to catch escaped characters
2026-04-25 09:30:16 +02:00
Nico
f078e006c1
fix(notifications): encode SMTP credentials in Shoutrrr URLs ( #831 )
...
Closes #829
2026-04-25 09:24:05 +02:00
Nicolas Meienberger
c64862f604
refactor: extract shared test fixtures and secret helpers
2026-04-22 22:33:18 +02:00
Nico
6ae5a33acd
chore: remove dead files ( #827 )
2026-04-22 22:13:24 +02:00
Nico
e2c9ef0518
chore: fixed unused types ( #824 )
2026-04-22 22:04:46 +02:00
Nico
a0c34ee48d
chore: cleanup un-used exports ( #823 )
2026-04-22 21:14:37 +02:00
Nicolas Meienberger
c22af17fa6
fix(volumes): avoid ENOENT during test connection cleanup
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-04-20 23:06:26 +02:00
Nicolas Meienberger
f967450eea
fix(volumes): unmount existing mounts before remounting
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-04-20 22:34:58 +02:00
Nicolas Meienberger
694f1c212f
fix(volumes): isolate test-connection mounts in temp directories
2026-04-20 22:28:42 +02:00
Nico
63b08a4b71
feat(backups): ensure volume readiness before backup ( #815 )
...
* feat(backups): ensure volume readiness before backup
Backup preflight checks were relying on a db cached status. Now a real
volume healthcheck is performed before backing up. Closes #811 #695
* chore: fix ci
2026-04-20 21:18:29 +02:00
Eric Hess
d2f65716fe
feat(mirrors): add selective snapshot sync to mirror repositories ( #755 )
...
* feat(mirrors): add selective snapshot sync to mirror repositories
Allow users to sync missing snapshots from the source repository to a
mirror. A new sync button per mirror opens a dialog showing which
snapshots are missing, with checkboxes to select which ones to copy.
- Add GET /:shortId/mirrors/:mirrorShortId/status endpoint to compare
snapshots between source and mirror repositories
- Add POST /:shortId/mirrors/:mirrorShortId/sync endpoint accepting
selected snapshotIds in the request body
- Extend restic copy command to accept multiple snapshotIds
- Add sync preview dialog with snapshot selection to the frontend
* refactor: stylistic changes
---------
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2026-04-16 21:28:48 +02:00
Nicolas Meienberger
95006a7471
chore(core package): re-organize files
2026-04-16 19:07:11 +02:00
Nico
33601dde24
feat(agent): add standalone agent runtime ( #776 )
...
* feat(agent): add standalone agent runtime
* fix(agent): add Bun and DOM types to agent tsconfig
* refactor: wrap backup error in a tagged effect error
* feat(controller): add agent manager and session handling
* feat(backups): execute backups through the agent
* fix(agent): harden disconnect and send-failure handling
* fix: rebase conflicts
* test: simplify mocks
* refactor: split agent runtime state
* fix(backup): keep old path when agent is disabled
* fix: pr feedbacks
2026-04-13 23:29:10 +02:00
Nicolas Meienberger
76ac78c40c
chore: fix ts issues in test files
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-04-12 11:39:06 +02:00
Nicolas Meienberger
832425025f
refactor(backup): move retry delay minutes conversion at the contract level
2026-04-12 11:28:39 +02:00
Nicolas Meienberger
ed046f284d
fix(backup): reset failure count on cancel
2026-04-12 10:39:14 +02:00
DerPenz
8765c5e705
feature(backup): do not trigger retry on manual backup
2026-04-12 09:49:35 +02:00
DerPenz
11bb95db92
fix(backup): retry wont be scheduled if it is after the next scheduled backup
2026-04-12 09:49:35 +02:00
DerPenz
5d8c2925d8
fix(backup): resetting failureRetryCount if backup is not retried
2026-04-12 09:49:35 +02:00
DerPenz
61396625f1
fix(backup): added limits in zod schema
2026-04-12 09:49:35 +02:00
DerPenz
b2728cb09a
fix(backup): removed useless null checks
2026-04-12 09:49:35 +02:00
DerPenz
0476dcebb8
fix(backup): updating new settings correctly in the db
2026-04-12 09:49:35 +02:00
DerPenz
79b7733e1e
fix(backup): updated types gen
2026-04-12 09:49:35 +02:00
DerPenz
7e9b1fafa3
feat(backup): added retry policy into job settings
2026-04-12 09:49:35 +02:00
DerPenz
feb69ef7a7
feat(backup): retry backup on failure
2026-04-12 09:49:35 +02:00
Nico
4520335ebc
fix(rclone): pass explicitly the RCLONE_CONF env var ( #779 )
2026-04-12 09:25:57 +02:00
Nico
28ba8657f9
feat(runtime): start and ship the local agent ( #767 )
...
* feat(runtime): start and ship the local agent
* refactor: gate local agent behind feature flag
* chore: skip agent manager if flag is false
* fix: hot reload agents
* test: fix config tests
2026-04-10 00:00:30 +02:00
Nico
595a29056d
fix(slack): channel is not supported in combination with webhooks ( #770 )
...
#766
2026-04-09 22:24:24 +02:00
Nico
4872029b87
fix(smb-backend): add explicit utf8 charset encoding ( #768 )
2026-04-09 21:39:19 +02:00
Nico
5bcc3acc56
feat(controller): add agent manager and session handling ( #763 )
2026-04-09 20:00:54 +02:00
Nico
c371676ad0
feat(agent): add standalone agent runtime ( #761 )
...
* feat(agent): add standalone agent runtime
* fix(backups): bridge local executor to Effect restic API
* fix(agent): add Bun and DOM types to agent tsconfig
* refactor: wrap backup error in a tagged effect error
* fix: pr feedbacks
2026-04-08 20:47:15 +02:00