Nicolas Meienberger
4a1b479cf2
fix: restart agent after an unexpected exit
2026-04-07 19:08:26 +02:00
Nicolas Meienberger
7ea7fe783c
refactor: context as effectful callbacks
2026-04-07 19:01:01 +02:00
Nicolas Meienberger
7d61e7d465
fix: app lifecycle shutdown
2026-04-07 19:01:01 +02:00
Nicolas Meienberger
e459606436
fix: handle socket message send failures
2026-04-07 19:01:01 +02:00
Nicolas Meienberger
5684efed27
feat(agent): add local agent backup execution pipeline
2026-04-07 18:59:08 +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
Nico
d74f516336
feat: file-based provisionning of volumes and repos ( #656 )
...
* feat: file-based provisionning of volumes and repos
docs: provisioning example
chore: ui improvements
* chore: ci issues
2026-03-12 18:31:42 +01:00
Nicolas Meienberger
b132ad6df5
fix: add additional chmod after file write
...
Closes #478 The mode option of fs.writeFile does not reliably apply
permissions on all filesystems. On Synology NAS Docker volumes (btrfs),
the file ends up with 0755 permissions instead of 0600, causing SSH to
refuse the key.
2026-03-12 18:01:45 +01:00
Nico
332e5bffda
refactor: extract restic in core package ( #651 )
...
* refactor: extract restic in core package
* chore: add turbo task runner
* refactor: split server utils
* chore: simplify withDeps signature and fix non-null assertion
2026-03-11 21:56:07 +01:00
Nicolas Meienberger
d07be16fc6
fix(rclone): use correct timeout in seconds
2026-03-11 19:19:06 +01:00
Nicolas Meienberger
b156d6154e
fix: rebase issues
2026-03-11 19:05:50 +01:00
Nico
e8eae7dce6
fix: dump snapshot ( #646 )
...
Closes #602
2026-03-11 18:53:58 +01:00
Nico
55dbcf0eb3
refactor: move from arktype to zod ( #637 )
...
chore: gen api-client
2026-03-11 18:53:58 +01:00
Nico
b35a20f43d
feat: light theme ( #638 )
2026-03-11 18:53:15 +01:00
Nico
1b948ed41e
fix: single item file restore ( #634 )
...
fix: single item file restore
test(e2e): restore single file at custom location
Closes #633
2026-03-11 18:53:15 +01:00
Nicolas Meienberger
d640ad88b2
refactor: harden cron validation and fail early in case of wrong pattern
2026-03-11 18:53:15 +01:00
Vutsal
3fa793bef6
Refactor scheduler to use CronExpressionParser
2026-03-11 18:53:15 +01:00
Nico
3e50e37e02
chore: bump drizzle to beta-16 ( #622 )
...
chore: bump drizzle to beta-16
test: increase test coverage
2026-03-05 22:23:45 +01:00
Nicolas Meienberger
c2ed9e3693
refactor: correctly delete orphan sessions after idp deletion
2026-03-05 21:02:56 +01:00
Nico
c1e8036323
fix: sso cross org link with valid invite ( #621 )
2026-03-05 20:21:24 +01:00
Nico
6769f5fa6c
fix: run repo stats in background ( #620 )
...
Closes #614
2026-03-05 20:18:34 +01:00
Nicolas Meienberger
6f560ecae9
chore: api client gen
2026-03-04 22:00:04 +01:00