Nicolas Meienberger
9d63f7cb2d
Revert "fix(volumes): decrypt values before testing connection ( #939 )"
...
Release Workflow / integration-tests (push) Has been cancelled
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
This reverts commit 885ea10f2a .
2026-06-03 19:56:55 +02:00
Nicolas Meienberger
4a4e5c0abe
ci: skip nfs container entirely in github ci
2026-06-03 19:26:45 +02:00
Nico
885ea10f2a
fix(volumes): decrypt values before testing connection ( #939 )
...
* fix(volumes): decrypt values before testing connection
* chore: lint issue
2026-06-03 19:05:39 +02:00
Nico
333c11986d
feat: enforce protocol version between agent and controller ( #938 )
...
* feat: enforce protocol version between agent and controller
* chore: add logging for protocol rejected message
2026-06-03 18:29:36 +02:00
Nicolas Meienberger
be3182793d
fix(agent-backups): validate agent ownership
2026-06-03 17:28:43 +02:00
renovate[bot]
755cbe4dae
fix(deps): update bun minor and patch dependencies ( #925 )
...
* fix(deps): update bun minor and patch dependencies
* chore: fix linting issues
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2026-06-03 17:15:53 +02:00
Nicolas Meienberger
111a5843ef
refactor: reject all non uv passkeys
2026-06-03 17:03:00 +02:00
Nicolas Meienberger
ca325a01c5
chore: re-generate openapi client
2026-06-02 21:04:04 +02:00
Nicolas Meienberger
1526e3d441
test: automate NFS integration
2026-06-02 20:36:33 +02:00
Nicolas Meienberger
dfd787c8ae
test(integration): skip volume mounting in CI
2026-06-02 20:26:50 +02:00
Nico
a488bbc754
fix: block login for 2fa users with un-verified passkeys ( #934 )
...
* fix: block login for 2fa users with un-verified passkeys
* refactor(passkey): show proper login error
* refactor: show passkey generic error on all failures
2026-06-02 19:48:40 +02:00
Nicolas Meienberger
ce23bded90
test: automate SMB integration
2026-06-02 19:45:17 +02:00
Nicolas Meienberger
036382d82d
test: automate webdav integration
2026-06-02 17:30:49 +02:00
Nicolas Meienberger
756ecbddcd
test: automate SFTP integration coverage
2026-06-02 17:25:10 +02:00
Nico
648ccae5fc
test(integration): s3 repository with rustfs & rclone ( #933 )
...
* test(integration): s3 repository with rustfs
* ci: run integration tests before release
* chore: fix linting issue
* ci: persist-creds -> false
2026-06-01 21:37:12 +02:00
Nico
d479bfaddc
feat: snapshot restores through rpc ( #930 )
...
* feat: snapshot restores through rpc
* fix(restore): do not wait for lock before returning response
* chore: fix liniting issue
2026-05-31 21:48:32 +02:00
Nico
8fedeef4d1
feat: add restore agent RPC foundation ( #929 )
...
* feat: add restore agent RPC foundation
* chore: temp event handlers
* refactor: export restore progress from dto file
2026-05-31 19:39:20 +02:00
Nico
2d877cee5a
feat: durable tasks ( #927 )
2026-05-30 16:54:49 +02:00
Nico
0a2c6bca0c
refactor(restic): auto try to unlock and remove stale locks ( #926 )
2026-05-30 13:21:22 +02:00
Nico
d4436b0cdc
refactor(restic): all commands return effects ( #924 )
...
* refactor(restic): all commands are effects
* fix(restic): preserve effect failure errors
* chore: pr feedbacks
2026-05-30 10:10:54 +02:00
Nico
7b5c53bb7d
fix(sftp): allow legacy ssh rsa to add support for older servers ( #921 )
...
* refactor(e2e): use more stable assertion
* feat(sftp): add legacy ssh-rsa option
2026-05-27 21:19:23 +02:00
Nicolas Meienberger
4ea9f34154
chore: portless setup
2026-05-27 17:14:34 +02:00
Nico
e4898b97ea
fix(2fa): add missing 2fa column ( #917 )
2026-05-22 20:09:30 +02:00
Nico
98338e80c3
Add passkey authentication support ( #845 )
...
* feat(auth): add passkey authentication support
* fix: implement AI review feedback
* fix: use non-unique index for passkey_credentialID_idx in migration
* refactor(passkeys): use TanStack mutations for passkey CRUD operations
* chore: restore lockfile from main and add @better-auth/passkey
* chore: fix conflicts
* refactor(passkey-login): simplify passkey autofill event
* refactor(settings-passkeys): ux improvements
---------
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2026-05-21 21:18:46 +02:00
Nico
273408cdb8
fix(shutdown): keep the current volume status after shutdown cleanup ( #906 )
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-20 15:04:48 +02:00
renovate[bot]
970a7fa42f
fix(deps): update dependency content-disposition to v2 ( #880 )
...
* fix(deps): update dependency content-disposition to v2
* refactor(content-disposition): use new named export
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2026-05-19 21:55:43 +02:00
renovate[bot]
575e01cab9
chore(deps): update dependency bun to v1.3.14 ( #885 )
...
* chore(deps): update dependency bun to v1.3.14
* chore: update bun base docker image
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2026-05-19 21:28:46 +02:00
Nico
4dcafa0708
feat(auth): allow skipping forced recovery key download ( #900 )
...
* feat(auth): allow skipping forced recovery key download
* refactor: move from session storage to cookie
2026-05-19 20:36:45 +02:00
Nico
c071596151
fix(system): block recovery key download without credential password ( #899 )
2026-05-19 20:28:09 +02:00
Nico
4b66ad73a7
fix(auth): verify reauth passwords against credential account ( #898 )
2026-05-19 20:20:55 +02:00
Nico
3b9f2086ee
fix(backups): preserve retry settings when toggling schedules ( #896 )
2026-05-19 20:08:05 +02:00
Nico
94f6d0529f
refactor(mutext): persist repository locks in database ( #895 )
...
* refactor(mutext): persist repository locks in database
* fix: clean up promoted repository lock on queued abort
* fix: throttle repository lock cleanup during polling
2026-05-19 18:59:40 +02:00
Nicolas Meienberger
b292f94186
refactor(crypto): reject encrypted values from another secret in sealSecret
2026-05-18 22:00:21 +02:00
Nicolas Meienberger
66ebc249ca
fix: force recovery key redownload after possible truncated download
2026-05-18 21:35:53 +02:00
Nicolas Meienberger
0f5a6823ec
refactor(crypto): reject encrypted values from another secret
2026-05-18 21:14:20 +02:00
Nicolas Meienberger
419204d587
fix(download-password): revoke url after 60 secs
2026-05-18 21:13:07 +02:00
Nico
11dacd7c71
refactor(agent): store SFTP volume keys in tmp ( #888 )
...
* refactor(agent): store SFTP volume keys in tmp
* refactor: store temp keys in /run/zerobyte subfolders
* fix(restic): clean temp secrets dir on env setup failure
* fix: one secrets temp dir per env building
2026-05-17 18:19:09 +02:00
Nico
19a0781667
test: backend integration ( #889 )
...
* test: backend integration
* docs: mounted shares acls
* feat: smb expose real ACLs when available
* fix: re-init repo on setup
* chore: add missing @hono/standard-validator package
* chore: add happy-dom dev dep
2026-05-17 15:18:56 +02:00
Nico
3142cb026a
chore: move access logs to debug ( #891 )
2026-05-17 14:26:40 +02:00
Nico
2a1351382f
fix(agent-manager): disable ws server when not needed ( #890 )
2026-05-17 14:04:49 +02:00
Nico
a58fe82d48
refactor: move backup path resolution into agent contract ( #872 )
2026-05-10 21:46:03 +02:00
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
renovate[bot]
5e4742488f
fix(deps): update bun minor and patch dependencies ( #865 )
...
* fix(deps): update bun minor and patch dependencies
* fix: ci
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2026-05-07 17:11:53 +02:00
Nicolas Meienberger
1ca1598c58
fix: change dev panel shortcut to D+E+V
2026-05-07 08:17:44 +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
e981211a2d
fix(notifications): validate webhook headers and show delivery health
2026-05-05 10:24:20 +02:00