Commit Graph

122 Commits

Author SHA1 Message Date
Nico
3a2704b03c feat(mirror): show sync progress (#1078) 2026-07-30 09:22:11 +08:00
Nicolas Meienberger
ec123fe424 fix(mirror): cancel multiple syncs instead of the visible frontend one 2026-07-27 06:25:38 +02:00
Nicolas Meienberger
53dc210c06 refactor(mirrors): return last sync task in response instead of deriving state 2026-07-27 06:25:38 +02:00
Nicolas Meienberger
1b814f769e refactor(mirror-sync): use background task system 2026-07-27 06:25:38 +02:00
Nico
c13808a0a8 fix(ui): cron expression overflowing (#1051) 2026-07-11 10:26:45 +02:00
Nicolas Meienberger
d9a8ed762e refactor: split active tasks vs tracked in their own hook 2026-07-10 14:39:12 +02:00
Nico
4157514e32 refactor(tag-snapshots): move tag snapshots as background tracked task (#1047)
* refactor(tag-snapshots): move tag snapshots as background tracked task

* chore: remove flaky tests
2026-07-08 15:47:49 +02:00
Nico
a10be39159 refactor: delete snaps task sub (#1044)
* refactor(delete-snaps): use tasks subscriptions system

* refactor: subscribe to many tasks

* chore: pr feedback
2026-07-08 14:58:30 +02:00
Nico
1e2359acd9 refactor(delete-snapshot): background task (#1042)
* refactor(delete-snapshot): background task

* chore: pr feedbacks
2026-07-07 16:08:30 +02:00
Nico
d9cb8e941c fix(backup): don't display empty snap list while fetching (#1037)
Related issue #985
2026-07-06 11:27:07 +02:00
Nico
46c21c8529 feat(webhooks): allow insecure tls for self-signed certs (#1034) 2026-07-06 10:26:21 +02:00
Nico
1f38d9241b fix(backups): allow clearing retention policy fields (#992)
Related issue: #988
2026-06-16 19:35:41 +02:00
Nico
fd48ff9ce9 fix(backups): reduce low-cpu backup UI contention (#963)
* fix(backups): reduce low-cpu backup UI contention

* chore: remove un-used import

* refactor: start polling for backup updates on start event

* fix: skip ionice automatically if it fails to schedule
2026-06-10 19:36:56 +02:00
Nico
2318b6bdd0 fix: limit concurrent ls to 2 in flight calls (#948)
* fix: limit concurrent ls to 2 in flight calls

* refactor: get shared lock after semaphore take
2026-06-05 18:07:59 +02:00
Nico
3b9f2086ee fix(backups): preserve retry settings when toggling schedules (#896) 2026-05-19 20:08:05 +02:00
Nicolas Meienberger
e981211a2d fix(notifications): validate webhook headers and show delivery health 2026-05-05 10:24:20 +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
Nicolas Meienberger
c64862f604 refactor: extract shared test fixtures and secret helpers 2026-04-22 22:33:18 +02:00
Nico
e2c9ef0518 chore: fixed unused types (#824) 2026-04-22 22:04:46 +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
832425025f refactor(backup): move retry delay minutes conversion at the contract level 2026-04-12 11:28:39 +02:00
Nicolas Meienberger
cb22e34215 refactor(backup): default to 2 retries & 15 minutes delay 2026-04-12 10:16:26 +02:00
DerPenz
0476dcebb8 fix(backup): updating new settings correctly in the db 2026-04-12 09:49:35 +02:00
DerPenz
b1cd1a4220 fix(backup): added placeholder in settings 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
Nico
73ae5c41b5 style: fix misalignment in mirrors ui (#778) 2026-04-11 08:57:46 +02:00
Nicolas Meienberger
f11e3b7f82 fix(schedule): disable if saving with manual-only mode 2026-04-04 23:23:26 +02:00
Nico
9e7f1bf138 fix: windows path style in snapshot (#742) 2026-04-04 17:21:13 +02:00
Nico
e77723164b refactor: improve buttons and space with dropdowns (#738) 2026-04-02 21:44:32 +02:00
Nico
d6e80b71d7 refactor: dedicated edit page for backups (#736) 2026-04-02 21:36:31 +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
63e12868b1 fix: react hydration issues by using the same locale during ssr and hydration 2026-03-31 22:39:16 +02:00
Nicolas Meienberger
ca38f7ca69 fix(select): render a div durng ssr to avoid hydration issues 2026-03-31 22:05:46 +02:00
Nico
611640b32b fix: split display path and query base path (#714)
* fix: split display path and query base path

#709

* test(frontend): shared render utils

* fix(file-tree): add missing path segments

* chore: bump Bun version

* fix: select kind for synthetic folders
2026-03-29 12:30:35 +02:00
Nico
866a3c63e8 feat: manual backup option (#713)
Closes #710
2026-03-26 19:35:18 +01:00
Nicolas Meienberger
4c928cbc33 refactor(client): configure time formatting with timezone from server 2026-03-24 07:52:54 +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
Nicolas Meienberger
a671b17b4f refactor(schedule form): helper for multiline parsing 2026-03-15 12:09:18 +01:00
Nicolas Meienberger
2923bf9f27 feat: add toggle to switch snapshot order 2026-03-12 18:02:02 +01:00
Nicolas Meienberger
b156d6154e fix: rebase issues 2026-03-11 19:05:50 +01:00
Nicolas Meienberger
d59677e322 chore: color improvements in light mode 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
bcrooker
8e24c6a8d8 feat(backups): show estimated time remaining on backup progress 2026-03-05 20:06:00 -05:00
Nicolas Meienberger
c2ed9e3693 refactor: correctly delete orphan sessions after idp deletion 2026-03-05 21:02:56 +01:00
Nicolas Meienberger
157be2d6ab feat: custom flags allowlist 2026-03-04 19:42:08 +01:00
Nicolas Meienberger
7881f818ae test: *.xyz include pattern 2026-03-04 18:48:47 +01:00
Nicolas Meienberger
70352e9f91 refactor: render cached data directly if available during ssr 2026-03-04 18:48:47 +01:00