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
Antoine Jeanselme
3d5a0a9b75
feat: add repositories & volumes column sorting ( #808 )
...
* Add repository column sorting
* Make status title correctly centered o nsmaller screens
* Add volumes column sorting
* refactor: use tanstack table for filtering and sorting
* feat: make notifications sortable
* chore: pr feedbacks
---------
Co-authored-by: Antoine Jeanselme <67123340+ajeanselme@users.noreply.github.com >
Co-authored-by: Nicolas Meienberger <github@thisprops.com >
2026-05-02 10:21:42 +02:00
Nico
a0c34ee48d
chore: cleanup un-used exports ( #823 )
2026-04-22 21:14:37 +02:00
Nico
9e7f1bf138
fix: windows path style in snapshot ( #742 )
2026-04-04 17:21:13 +02:00
Nico
731ebad1ee
style: redesign volume details page to match repository ( #740 )
2026-04-02 22:55:23 +02:00
Nico
475bfb59ae
style: redesign respository details page ( #739 )
2026-04-02 22:51:57 +02:00
Nico
e77723164b
refactor: improve buttons and space with dropdowns ( #738 )
2026-04-02 21:44:32 +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
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
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
Nicolas Meienberger
4c928cbc33
refactor(client): configure time formatting with timezone from server
2026-03-24 07:52:54 +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
f7f56c6c83
refactor: repo error state
2026-03-12 18:02:05 +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
Nico
df312cd419
refactor: move from arktype to zod ( #637 )
...
chore: gen api-client
2026-03-09 18:27:03 +01:00
Nico
dd8f471d60
feat: light theme ( #638 )
2026-03-09 18:16:50 +01:00
Nico
6769f5fa6c
fix: run repo stats in background ( #620 )
...
Closes #614
2026-03-05 20:18:34 +01:00
Nicolas Meienberger
5ef2026b61
refactor: ensure server preloading
2026-03-02 21:13:32 +01:00
Nico
67eca589d8
style: improve repo details layout ( #596 )
2026-02-28 14:16:50 +01:00
Nicolas Meienberger
73c0511167
refactor: render repo stats directly in ssr if cache is available
2026-02-28 10:17:55 +01:00
Nicolas Meienberger
66076e5841
refactor: render cached data directly if available during ssr
2026-02-28 00:59:05 +01:00
Nico
b2d2f28b40
style: redesign dashboard ( #586 )
...
style: redesign dashboard
style(tables): same height row in all pages
2026-02-26 19:57:39 +01:00
Nico
30f237dc1f
fix(local-repo): automatically generate a subfolder for new local repos ( #582 )
...
Closes #562
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Improved repository setup with context-aware descriptions for new vs. existing repositories
* Enhanced path handling: unique identifiers automatically appended for new repositories, exact paths preserved when importing existing ones
* **Chores**
* Updated documentation and build configuration
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-26 19:43:42 +01:00
Nicolas Meienberger
f3c753ad30
chore: style fixes
2026-02-25 22:15:08 +01:00
Nico
b916df7736
fix: form not correctly updating based on values ( #572 )
...
* fix: form not correctly updating based on values
Closes #549
* chore: pr review
2026-02-25 18:36:12 +01:00
Nico
45fd9f9de1
feat: repository used space ( #551 )
...
* feat: repository used space
refactor: use a smarter cache key logic for easier invalidations
* chore: pr feedbacks
2026-02-21 10:52:55 +01:00
Nico
8681ebc0c0
refactor: always use short id in api calls ( #545 )
2026-02-19 20:08:40 +01:00
Nico
8fcd446926
refactor: snapshot strip out base path ( #542 )
...
* refactor: strip out volume path in snapshot list / restore
chore: lint issue
* test: backups new include patterns
2026-02-18 21:45:19 +01:00
Nico
ca8248b2a0
ui: scroll to error ( #541 )
...
* refactor: scroll to first error when submitting a form
* refactor: split file browsers into dedicated components with base
* chore: pr feedbacks
2026-02-18 20:13:09 +01:00
Nico
f059a23ecc
fix: multiple mobile and responsiveness issues ( #537 )
...
* fix: multiple mobile and responsiveness issues
fix(mobile): scroll reset on snapshot selection
fix(mobile): layout improvements
refactor(volume-details): improve layout
refactor: better card breakpoints layouts in backps list
fix(ui): keep sidebar in the state it was before reloading
refactor(ui): keep the same grid size in all breakpoints
refactor: manual hotkey devpanel to tanstack hotkeys
* chore: pr feedback
2026-02-17 18:44:22 +01:00
Nico
8e5eb68935
refactor: optimistic ui when deleting a snapshot ( #515 )
2026-02-14 13:47:09 +01:00
Nico
1017f1a38b
feat: edit repository form ( #507 )
...
* feat: edit repository form
* refactor: local repo path concat as a code migration
* refactor: server constants
* chore: fix lint issue in test file
* refactor: add auth to getServerConstants
2026-02-14 11:49:33 +01:00
Nico
ec4cf938bc
feat: show progress indicator on mirrors ( #499 )
...
* feat: show progress indicator on mirrors
refactor: remove unnecessary useEffects
* refactor: pr feedbacks
2026-02-12 22:27:30 +01:00
Nico
7ebce1166b
feat: expand snapshot details with additional info ( #505 )
...
* feat: extend snapshot details with more info
Closes #385
* refactor: centralize restic backup schemas
* refactor: pr feedbacks
2026-02-12 18:25:21 +01:00
Nico
825d46c934
refactor: react-router -> tanstack start ( #498 )
...
* refactor: move to tanstack start
* refactor: auth flow & volumes
* refactor: repo & snapshot details
* refactor: backups, create repo, volumes
* refactor: create volume & restore snapshot
* refactor: notifications
* refactor: settings
* refactor: breadcrumbs
* fix: ts issues
* refactor: prod deployment
* fix: import css production
* refactor: nitro build
* refactor: winston -> consola
* fix: memory leak is sse events cleanup
* fix: cli usage
* chore: remove rr routes file
* refactor: pr feedbacks
* refactor: patch api client to have a global client per call
* refactor: pr feedbacks
* fix(dockerfile): add explicit port
* fix(e2e): healthcheck under /api
2026-02-11 21:41:06 +01:00
Nico
b45d36e06a
refactor: make lock errors cleaner and show unlock button ( #493 )
...
* refactor: make lock errors cleaner and show unlock button
* chore: pr feedbacks
2026-02-10 20:18:25 +01:00
Nico
09c1cbbb94
feat: show retention tags in snapshots timeline ( #462 )
...
* feat: show retention tags in snapshots timeline
* refactor: use button for accesibility
2026-02-08 16:14:43 +01:00
Nicolas Meienberger
1e5921fa61
fix(create-repo): directory selection
2026-02-02 20:34:37 +01:00
Nico
17b4027e0b
refactor: split create schedule form ( #453 )
2026-02-02 18:18:14 +01:00
Nico
8ced05c5a9
feat: add refresh snapshot list and snapshot error page ( #434 )
...
Closes #372
2026-01-29 23:20:13 +01:00
Nicolas Meienberger
0e5438897c
fix(repo-mutex): catch errors and remove listener
2026-01-22 22:06:39 +01:00
Nico
2ab37e6b67
refactor: async doctor ( #375 )
...
* feat: background doctor operation
* refactor(repo-details): design layout
* refactor(doctor): support abort signal in all operations
* chore: fix linting issue
* chore: pr feedbacks
* chore: merge conflicts
* refactor: handle aborted signal in all operations
* chore: pr feedbacks
* chore: remove old migration
2026-01-22 21:55:45 +01:00
Nico
da37b08fa0
feat: user management ( #394 )
...
* feat: user management settings
* feat: cleanup user's org when deleting them
* chore: pr feedback
* refactor(create-user): tanstack mutation
2026-01-21 22:25:15 +01:00
Nico
451aed8983
Multi users ( #381 )
...
* feat(db): add support for multiple users and organizations
* feat: backfill entities with new organization id
* refactor: filter all backend queries to surface only organization specific entities
* refactor: each org has its own restic password
* test: ensure organization is created
* chore: pr feedbacks
* refactor: filter by org id in all places
* refactor: download restic password from stored db password
* refactor(navigation): use volume id in urls instead of name
* feat: disable registrations
* refactor(auth): bubble up auth error to hono
* refactor: use async local storage for cleaner context sharing
* refactor: enable user registration vs disabling it
* test: multi-org isolation
* chore: final cleanup
2026-01-20 22:28:22 +01:00
Nicolas Meienberger
f4a222aa15
refactor(up/down limit): allow floating value & default to 1
2026-01-15 18:27:50 +01:00
Nicolas Meienberger
1622e34b0d
refactoring(bw-limit): stylistic refactoring
2026-01-15 18:07:00 +01:00
Nico
9bff375217
refactor: format dates in a human-friendly way ( #334 )
2026-01-15 16:13:14 +01:00
Raj Dave
623b4b7116
Remove 'Upload Limit' and 'Download Limit' text
2026-01-13 23:07:03 +03:00
Raj Dave
a7a4ccef6b
fix a lot of the coderabbit warnings
2026-01-10 14:23:39 +03:00