Nicolas Meienberger
d4f585d5c8
chore: fix lint issues
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
2d2183baaf
refactor: cleanup / pr review
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
5e4f3fca62
refactor: restrict provider configuration to super admins only
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
a30af6026d
refactor: code style
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
de34fd841c
feat: per-user account management
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
0bf0094dbd
refactor: own page for sso registration
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
4619d9d976
feat: link current account
2026-02-24 11:55:05 +01:00
Nicolas Meienberger
a3af29ec4e
feat: oidc
...
feat: organization switcher
refactor: org context
feat: invitations
GLM
2026-02-24 11:55:05 +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
182d39a887
feat: restore snapshot as tar ( #550 )
...
* feat: export snapshot as tar file
chore(mutext): prevent double lock release
* chore: pr feedbacks
* fix: dump single file no tar
* chore: pr feedbacks
2026-02-21 10:19:20 +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
Nicolas Meienberger
85e2272a5c
fix(ui): missing @container class in backup details
2026-02-17 19:29:10 +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
dda7b9939f
refactor: allow more characters in usernames ( #529 )
2026-02-16 21:37:15 +01:00
Nico
99bb296866
fix: cascade delete not correctly applied ( #531 )
2026-02-16 21:36:07 +01:00
Nico
66ed89d39e
fix(file-tree): display load more if root folder has 500+ items ( #526 )
...
Close #518
2026-02-16 19:25:41 +01:00
Nico
8e5eb68935
refactor: optimistic ui when deleting a snapshot ( #515 )
2026-02-14 13:47:09 +01:00
Nico
bad944a232
feat: restore progress ( #281 )
...
* feat: restore progress
* feat: keep restore progress on reload
* refactor: centralize sse event types
* refactor(sse): generic handler factory
2026-02-14 12:35:16 +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
Nicolas
0cf5358f77
ci: fix linting issues
2026-02-13 18:33:34 +01:00
Nicolas
6d33a3a35e
refactor: remove delete option until we have a proper dry-run mode
2026-02-13 18:31:06 +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
cb7988b8ed
refactor(retention badges): use restic forget dry run result instead of manual calc ( #494 )
...
* refactor(retention badges): use restic forget dry run result instead of manual calc
* chore: PR feedbacks
2026-02-10 20:14:35 +01:00
Nico
12d0eda6ef
feat: dev panel ( #489 )
...
* feat: dev panel
* chore: fix typing issue
2026-02-09 22:04:21 +01:00
Nico
124b8f4081
fix: make retention badge clickable for mobile devices ( #486 )
2026-02-09 18:15:34 +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
35773a6969
refactor: upgrade to drizzle v1 ( #450 )
...
* refactor: move migrations to new structure
* refactor: convert all findMany to new structure
* fix(backups-schedule): missing null matching for last backup status
* chore: move root lib to server
2026-02-01 19:14:52 +01:00
Nico
5bb5fcd09c
refactor: paginate large file counts ( #441 )
...
* refactor: add pagination to handle volume folders with extremely large folder counts
* refactor: stream restic ls result
* test: file-tree load more
* refactor: string params
* fix(tsc): string pagination params
* chore: pr feedbacks
2026-01-31 16:05:42 +01:00
Nico
b8ad1ae41a
refactor: show progress card even if no data is streamed ( #440 )
2026-01-31 13:26:10 +01:00
Nicolas Meienberger
d4864099a6
style(create-backup): fix cards overlap
2026-01-31 10:44:51 +01:00
Nico
8ced05c5a9
feat: add refresh snapshot list and snapshot error page ( #434 )
...
Closes #372
2026-01-29 23:20:13 +01:00
Nico
da5ad5c817
feat: add config for SMB guest mode ( #431 )
...
* feat: add config for SMB guest mode
Closes #279
* chore: pr feedbacks
2026-01-29 23:16:31 +01:00
Nico
3786a9283b
fix(backup-card): dot invisible if volume name too long ( #430 )
2026-01-29 21:14:21 +01:00
Nico
bde5302ca4
feat(smtp-notification): add missing from name param to form ( #429 )
...
* feat(smtp-notification): add missing from name param to form
* chore: gen api client
2026-01-29 21:13:51 +01:00
Nico
93aabebd51
refactor: remove slug constraint in volume name ( #428 )
...
* refactor: remove slug constraint in volume name
Closes #413
* chore: remove un-used imports
* fix(notifications): validate name is not empty
* refactor: deny empty names
2026-01-29 20:57:20 +01:00
Nicolas Meienberger
571489a10b
chore: downgrade dependencies
2026-01-27 22:29:20 +01:00
Didin Sino
d449547336
feat: add support for sending notifications to Telegram group topics ( #401 )
2026-01-27 19:43:05 +01:00
dependabot[bot]
ba8b599059
chore(deps): bump the minor-patch group across 1 directory with 17 updates ( #404 )
...
* chore(deps): bump the minor-patch group across 1 directory with 17 updates
Bumps the minor-patch group with 17 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node ) | `7.12.0` | `7.13.0` |
| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve ) | `7.12.0` | `7.13.0` |
| [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono ) | `0.9.34` | `0.9.35` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query ) | `5.90.19` | `5.90.20` |
| [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth ) | `1.4.15` | `1.4.17` |
| [hono](https://github.com/honojs/hono ) | `4.11.4` | `4.11.5` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `0.562.0` | `0.563.0` |
| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router ) | `7.12.0` | `7.13.0` |
| [recharts](https://github.com/recharts/recharts ) | `3.6.0` | `3.7.0` |
| [@happy-dom/global-registrator](https://github.com/capricorn86/happy-dom ) | `20.3.3` | `20.3.7` |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts ) | `0.90.4` | `0.90.9` |
| [@playwright/test](https://github.com/microsoft/playwright ) | `1.57.0` | `1.58.0` |
| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev ) | `7.12.0` | `7.13.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) | `19.2.8` | `19.2.9` |
| [lightningcss](https://github.com/parcel-bundler/lightningcss ) | `1.30.2` | `1.31.1` |
| [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths ) | `6.0.4` | `6.0.5` |
Updates `@react-router/node` from 7.12.0 to 7.13.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/@react-router/node@7.13.0/packages/react-router-node )
Updates `@react-router/serve` from 7.12.0 to 7.13.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/@react-router/serve@7.13.0/packages/react-router-serve )
Updates `@scalar/hono-api-reference` from 0.9.34 to 0.9.35
- [Release notes](https://github.com/scalar/scalar/releases )
- [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md )
- [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono )
Updates `@tanstack/react-query` from 5.90.19 to 5.90.20
- [Release notes](https://github.com/TanStack/query/releases )
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md )
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.90.20/packages/react-query )
Updates `better-auth` from 1.4.15 to 1.4.17
- [Release notes](https://github.com/better-auth/better-auth/releases )
- [Commits](https://github.com/better-auth/better-auth/commits/v1.4.17/packages/better-auth )
Updates `hono` from 4.11.4 to 4.11.5
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.11.4...v4.11.5 )
Updates `lucide-react` from 0.562.0 to 0.563.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.563.0/packages/lucide-react )
Updates `react-router` from 7.12.0 to 7.13.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.13.0/packages/react-router )
Updates `recharts` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/recharts/recharts/releases )
- [Changelog](https://github.com/recharts/recharts/blob/main/CHANGELOG.md )
- [Commits](https://github.com/recharts/recharts/compare/v3.6.0...v3.7.0 )
Updates `@happy-dom/global-registrator` from 20.3.3 to 20.3.7
- [Release notes](https://github.com/capricorn86/happy-dom/releases )
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.3.3...v20.3.7 )
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.9
- [Release notes](https://github.com/hey-api/openapi-ts/releases )
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md )
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.9 )
Updates `@playwright/test` from 1.57.0 to 1.58.0
- [Release notes](https://github.com/microsoft/playwright/releases )
- [Commits](https://github.com/microsoft/playwright/compare/v1.57.0...v1.58.0 )
Updates `@react-router/dev` from 7.12.0 to 7.13.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dev/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/@react-router/dev@7.13.0/packages/react-router-dev )
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `lightningcss` from 1.30.2 to 1.31.1
- [Release notes](https://github.com/parcel-bundler/lightningcss/releases )
- [Commits](https://github.com/parcel-bundler/lightningcss/commits )
Updates `vite-tsconfig-paths` from 6.0.4 to 6.0.5
- [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases )
- [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v6.0.4...v6.0.5 )
---
updated-dependencies:
- dependency-name: "@react-router/node"
dependency-version: 7.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@react-router/serve"
dependency-version: 7.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@scalar/hono-api-reference"
dependency-version: 0.9.35
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-query"
dependency-version: 5.90.20
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: better-auth
dependency-version: 1.4.17
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: hono
dependency-version: 4.11.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: lucide-react
dependency-version: 0.563.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: react-router
dependency-version: 7.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: recharts
dependency-version: 3.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@happy-dom/global-registrator"
dependency-version: 20.3.7
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@playwright/test"
dependency-version: 1.58.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@react-router/dev"
dependency-version: 7.13.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: lightningcss
dependency-version: 1.31.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: vite-tsconfig-paths
dependency-version: 6.0.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
* chore: bump hono version in overrides
* chore: gen api client
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com >
2026-01-25 11:22:29 +01:00
Nico
273aa2b9ac
feat: add a confirm dialog before stopping the backup ( #409 )
2026-01-25 10:20:23 +01:00
Nicolas Meienberger
458799297d
refactor: make sse events isolated per org
2026-01-24 22:45:56 +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