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
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
Nicolas Meienberger
cb22e34215
refactor(backup): default to 2 retries & 15 minutes delay
2026-04-12 10:16:26 +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
70c7de1efc
feat(config): add support for APP_SECRET as a file ( #769 )
...
* feat(config): add support for APP_SECRET as a file
* fix(tsc): ensure appSecret is set in type system
* fix: pr feedback
2026-04-09 23:13:07 +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
Nicolas Meienberger
049becb900
refactor(mutex): improve multi locks operations to wait for all
...
Wait for all locks to be available instead of locking one side and
waiting
2026-04-07 18:13:02 +02:00
Nico
9e7f1bf138
fix: windows path style in snapshot ( #742 )
2026-04-04 17:21:13 +02:00
Nico
a4e54ac527
fix: serialize mirror copy operations per destination repository ( #747 )
...
* fix: serialize mirror copy operations per destination repository
* refactor(copy-mirror): implement acquireMany to avoid deadlock cycles
2026-04-04 17:12:45 +02:00
Nico
bae43c0d90
fix: sanitize Accept-Language locale parsing ( #746 )
...
* fix: sanitize Accept-Language locale parsing
* refactor(accept-language): prefer the highest quality language
2026-04-04 13:18:04 +02:00
Nico
4305057185
test: move test runner from Bun to Vitest ( #727 )
...
* chore: migrate to vitest
* test: speed up some suites by sharing sessions and mocking expensive non-tested actions
* test: refactor some tests to verify behavior instead of implementation details
* chore: fix linting issues
2026-04-01 20:05:54 +02:00
Nicolas Meienberger
e265f7d478
test: fix flaky test depending on mutex timing
2026-04-01 09:27:13 +02:00
Nicolas Meienberger
915b96c218
refactor: split out root-loader data getter into a dedicated function
2026-03-31 21:19:16 +02:00
Nicolas Meienberger
3acf565ccd
fix: force user to provide known hosts values in sftp volume / repository creation
2026-03-31 20:27:48 +02:00
Nico
f89b8c3b52
feat: custom date time format ( #718 )
2026-03-29 17:24:54 +02:00
Nico
2a219ac042
refactor(backups): consolidate execution into service helpers ( #717 )
2026-03-29 12:57:47 +02:00
Nico
866a3c63e8
feat: manual backup option ( #713 )
...
Closes #710
2026-03-26 19:35:18 +01:00
Nicolas Meienberger
b4668e23c7
test(e2e): attach browser logs and full errors in report
2026-03-24 07:52:54 +01:00
Nico
8acca9ef4a
fix: cli not running ( #703 )
2026-03-23 19:47:44 +01:00
Nico
05dd440dea
fix(restic): separate error summary from diagnostic details ( #694 )
2026-03-21 20:50:23 +01:00
Nico
618f37e250
fix(notifications): fix telegram shoutrrr URL encoding ( #691 )
...
Closes #690
2026-03-21 20:38:45 +01:00
Nicolas Meienberger
aa23967329
fix: encrypt ntfy access token at rest
2026-03-20 20:37:51 +01:00
Nicolas Meienberger
bad5f78991
fix(smb): use long form params username / password instead of user / pass
...
#674
2026-03-20 19:29:40 +01:00
Nico
a039bb478e
fix: separate raw include paths and patterns ( #683 )
...
Separate include patters and included path cleanly to avoid path with special characters to be expanded. Closes https://github.com/nicotsx/zerobyte/discussions/680
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* Added ability to select specific directories and paths for inclusion in backup schedules, separate from pattern-based rules.
* **Bug Fixes & Improvements**
* Automatically migrates existing backup configurations to work with the new path selection system.
* Enhanced backup restoration to properly handle both selected paths and pattern-based inclusions.
* **Chores**
* Updated database schema to support path selections in backup schedules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-20 19:27:54 +01:00
Nico
f6f17cd61c
fix: backup progress use simple polling & cache ( #678 )
...
#593
2026-03-18 20:25:30 +01:00
Nico
429b69ec92
fix: show back warnings logs and surface in UI ( #677 )
...
fix: show back warnings logs and surface in UI
#544
chore: fix dev login issue
2026-03-18 20:21:14 +01:00
Nico
e39220c024
fix: allow quoted urls in env variables ( #676 )
2026-03-17 22:09:22 +01:00
Nicolas Meienberger
2d10da72f6
refactor(volume-backend): assert mounted helper
2026-03-15 12:03:27 +01:00
Nicolas Meienberger
5f7f2005fa
refactor(notifications): extract config secret mapping
2026-03-15 11:51:17 +01:00
Nicolas Meienberger
a2d34a027e
refactor(notifications): use native URL builder
2026-03-15 11:40:03 +01:00
Nicolas Meienberger
b298524663
test: disable rate limiting in testing
2026-03-13 23:05:14 +01:00
Nico
7473c29948
feat: protect restores that would overwrite important internal path ( #663 )
2026-03-13 21:33:37 +01:00
Nico
9632c77177
feat: add a trust proxy env to control whether to trust incoming x-forwarded-for headers ( #662 )
2026-03-13 19:08:08 +01:00
Nicolas Meienberger
66f95dcd8e
fix: reject include patterns that are not in the volume root
2026-03-12 20:17:40 +01:00
Nicolas Meienberger
469f0d6c4e
fix(dump): content-disposition header with special characters
2026-03-12 19:17:32 +01:00