Nico
4bf1463406
refactor: dedicated edit page for volumes ( #737 )
2026-04-02 21:40:24 +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
e265f7d478
test: fix flaky test depending on mutex timing
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-04-01 09:27:13 +02:00
Nicolas Meienberger
add0f2788f
fix: restoring snapshots that have unrelated root paths
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-31 23:05:19 +02:00
Nicolas Meienberger
63e12868b1
fix: react hydration issues by using the same locale during ssr and hydration
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
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
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
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-31 20:27:48 +02:00
Kevin Stallone
aa7eaa0929
feat(volumes): add webdav, sftp, and rclone filters ( #720 )
...
* feat(volumes): add sftp, webdav, and rclone filters
* chore(volumes): align backend filter order with create-volume form
2026-03-31 20:27:43 +02:00
Nicolas Meienberger
e55ffccd21
feat: infer default time format from navigator.language
2026-03-30 18:44:26 +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
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
b4668e23c7
test(e2e): attach browser logs and full errors in report
2026-03-24 07:52:54 +01:00
Nicolas Meienberger
7ef211ddd5
docs: update readme version
2026-03-24 07:52:54 +01:00
Nicolas Meienberger
4c928cbc33
refactor(client): configure time formatting with timezone from server
2026-03-24 07:52:54 +01:00
Nico
8acca9ef4a
fix: cli not running ( #703 )
2026-03-23 19:47:44 +01:00
Nicolas Meienberger
c93b076bf6
test: simplify file-tree selection & login mocking
2026-03-22 12:06:48 +01:00
Nico
4fec2777ce
test(e2e): fail in unexpected console.error ( #696 )
...
* test(e2e): fail in unexpected console.error
* fix(datetime): graceful fallback during SSR when navigator is undefined
2026-03-22 11:31:48 +01:00
Nico
05dd440dea
fix(restic): separate error summary from diagnostic details ( #694 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
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
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-20 20:37:51 +01:00
Nicolas Meienberger
bad5f78991
fix(smb): use long form params username / password instead of user / pass
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
#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 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
#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
4356ace665
refactor: users table
2026-03-15 12:25:07 +01:00
Nicolas Meienberger
a671b17b4f
refactor(schedule form): helper for multiline parsing
2026-03-15 12:09:18 +01:00
Nicolas Meienberger
2d10da72f6
refactor(volume-backend): assert mounted helper
2026-03-15 12:03:27 +01:00
Nicolas Meienberger
959cb21d83
refactor(datetime): formatting helpers
2026-03-15 11:57:37 +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
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
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
f7f56c6c83
refactor: repo error state
2026-03-12 18:02:05 +01:00
Nicolas Meienberger
2923bf9f27
feat: add toggle to switch snapshot order
2026-03-12 18:02:02 +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
dependabot[bot]
4e29295f68
chore(deps): bump the minor-patch group across 1 directory with 12 updates ( #648 )
...
* chore(deps): bump the minor-patch group across 1 directory with 12 updates
Bumps the minor-patch group with 12 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono ) | `0.10.0` | `0.10.1` |
| [@tanstack/react-hotkeys](https://github.com/TanStack/hotkeys/tree/HEAD/packages/react-hotkeys ) | `0.3.2` | `0.4.1` |
| [@tanstack/react-router](https://github.com/TanStack/router/tree/HEAD/packages/react-router ) | `1.166.2` | `1.166.7` |
| [@tanstack/react-router-ssr-query](https://github.com/TanStack/router/tree/HEAD/packages/react-router-ssr-query ) | `1.166.2` | `1.166.7` |
| [@tanstack/react-start](https://github.com/TanStack/router/tree/HEAD/packages/react-start ) | `1.166.2` | `1.166.7` |
| [hono](https://github.com/honojs/hono ) | `4.12.5` | `4.12.7` |
| [recharts](https://github.com/recharts/recharts ) | `3.7.0` | `3.8.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.5` | `25.4.0` |
| [lefthook](https://github.com/evilmartians/lefthook ) | `2.1.2` | `2.1.3` |
| [lightningcss](https://github.com/parcel-bundler/lightningcss ) | `1.31.1` | `1.32.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt ) | `0.36.0` | `0.37.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint ) | `1.51.0` | `1.52.0` |
Updates `@scalar/hono-api-reference` from 0.10.0 to 0.10.1
- [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-hotkeys` from 0.3.2 to 0.4.1
- [Release notes](https://github.com/TanStack/hotkeys/releases )
- [Changelog](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/CHANGELOG.md )
- [Commits](https://github.com/TanStack/hotkeys/commits/@tanstack/react-hotkeys@0.4.1/packages/react-hotkeys )
Updates `@tanstack/react-router` from 1.166.2 to 1.166.7
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.7/packages/react-router )
Updates `@tanstack/react-router-ssr-query` from 1.166.2 to 1.166.7
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.7/packages/react-router-ssr-query )
Updates `@tanstack/react-start` from 1.166.2 to 1.166.7
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.7/packages/react-start )
Updates `hono` from 4.12.5 to 4.12.7
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.12.5...v4.12.7 )
Updates `recharts` from 3.7.0 to 3.8.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.7.0...v3.8.0 )
Updates `@types/node` from 25.3.5 to 25.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `lefthook` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/evilmartians/lefthook/releases )
- [Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/evilmartians/lefthook/compare/v2.1.2...v2.1.3 )
Updates `lightningcss` from 1.31.1 to 1.32.0
- [Release notes](https://github.com/parcel-bundler/lightningcss/releases )
- [Commits](https://github.com/parcel-bundler/lightningcss/commits/v1.32.0 )
Updates `oxfmt` from 0.36.0 to 0.37.0
- [Release notes](https://github.com/oxc-project/oxc/releases )
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md )
- [Commits](https://github.com/oxc-project/oxc/commits/crates_v0.37.0/npm/oxfmt )
Updates `oxlint` from 1.51.0 to 1.52.0
- [Release notes](https://github.com/oxc-project/oxc/releases )
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md )
- [Commits](https://github.com/oxc-project/oxc/commits/HEAD/npm/oxlint )
---
updated-dependencies:
- dependency-name: "@scalar/hono-api-reference"
dependency-version: 0.10.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-hotkeys"
dependency-version: 0.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router"
dependency-version: 1.166.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router-ssr-query"
dependency-version: 1.166.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-start"
dependency-version: 1.166.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: hono
dependency-version: 4.12.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: recharts
dependency-version: 3.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@types/node"
dependency-version: 25.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: lefthook
dependency-version: 2.1.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: lightningcss
dependency-version: 1.32.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: oxfmt
dependency-version: 0.37.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: oxlint
dependency-version: 1.52.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* 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-03-11 19:19:24 +01:00
Nicolas Meienberger
d07be16fc6
fix(rclone): use correct timeout in seconds
2026-03-11 19:19:06 +01:00
Nicolas Meienberger
f6169ab27e
Merge branch 'bcrooker-features/show-estimated-time2'
2026-03-11 19:06:29 +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
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
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
dependabot[bot]
7fde07f107
chore(deps): bump the minor-patch group across 1 directory with 13 updates ( #629 )
...
* chore(deps): bump the minor-patch group across 1 directory with 13 updates
Bumps the minor-patch group with 13 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@better-auth/sso](https://github.com/better-auth/better-auth/tree/HEAD/packages/sso ) | `1.5.2` | `1.5.4` |
| [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono ) | `0.9.48` | `0.10.0` |
| [@tanstack/react-hotkeys](https://github.com/TanStack/hotkeys/tree/HEAD/packages/react-hotkeys ) | `0.3.1` | `0.3.2` |
| [@tanstack/react-router](https://github.com/TanStack/router/tree/HEAD/packages/react-router ) | `1.163.3` | `1.166.2` |
| [@tanstack/react-router-ssr-query](https://github.com/TanStack/router/tree/HEAD/packages/react-router-ssr-query ) | `1.163.3` | `1.166.2` |
| [@tanstack/react-start](https://github.com/TanStack/router/tree/HEAD/packages/react-start ) | `1.166.1` | `1.166.2` |
| [arktype](https://github.com/arktypeio/arktype/tree/HEAD/ark/type ) | `2.1.29` | `2.2.0` |
| [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth ) | `1.5.2` | `1.5.4` |
| [es-toolkit](https://github.com/toss/es-toolkit ) | `1.45.0` | `1.45.1` |
| [hono](https://github.com/honojs/hono ) | `4.12.4` | `4.12.5` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `0.576.0` | `0.577.0` |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts ) | `0.93.1` | `0.94.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.3` | `25.3.5` |
Updates `@better-auth/sso` from 1.5.2 to 1.5.4
- [Release notes](https://github.com/better-auth/better-auth/releases )
- [Commits](https://github.com/better-auth/better-auth/commits/v1.5.4/packages/sso )
Updates `@scalar/hono-api-reference` from 0.9.48 to 0.10.0
- [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-hotkeys` from 0.3.1 to 0.3.2
- [Release notes](https://github.com/TanStack/hotkeys/releases )
- [Changelog](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/CHANGELOG.md )
- [Commits](https://github.com/TanStack/hotkeys/commits/@tanstack/react-hotkeys@0.3.2/packages/react-hotkeys )
Updates `@tanstack/react-router` from 1.163.3 to 1.166.2
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.2/packages/react-router )
Updates `@tanstack/react-router-ssr-query` from 1.163.3 to 1.166.2
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.2/packages/react-router-ssr-query )
Updates `@tanstack/react-start` from 1.166.1 to 1.166.2
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.2/packages/react-start )
Updates `arktype` from 2.1.29 to 2.2.0
- [Release notes](https://github.com/arktypeio/arktype/releases )
- [Changelog](https://github.com/arktypeio/arktype/blob/main/ark/type/CHANGELOG.md )
- [Commits](https://github.com/arktypeio/arktype/commits/arktype@2.2.0/ark/type )
Updates `better-auth` from 1.5.2 to 1.5.4
- [Release notes](https://github.com/better-auth/better-auth/releases )
- [Commits](https://github.com/better-auth/better-auth/commits/v1.5.4/packages/better-auth )
Updates `es-toolkit` from 1.45.0 to 1.45.1
- [Release notes](https://github.com/toss/es-toolkit/releases )
- [Changelog](https://github.com/toss/es-toolkit/blob/main/CHANGELOG.md )
- [Commits](https://github.com/toss/es-toolkit/compare/v1.45.0...v1.45.1 )
Updates `hono` from 4.12.4 to 4.12.5
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.12.4...v4.12.5 )
Updates `lucide-react` from 0.576.0 to 0.577.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.577.0/packages/lucide-react )
Updates `@hey-api/openapi-ts` from 0.93.1 to 0.94.0
- [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.93.1...@hey-api/openapi-ts@0.94.0 )
Updates `@types/node` from 25.3.3 to 25.3.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@better-auth/sso"
dependency-version: 1.5.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@scalar/hono-api-reference"
dependency-version: 0.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-hotkeys"
dependency-version: 0.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router"
dependency-version: 1.166.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router-ssr-query"
dependency-version: 1.166.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-start"
dependency-version: 1.166.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: arktype
dependency-version: 2.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: better-auth
dependency-version: 1.5.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: es-toolkit
dependency-version: 1.45.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: hono
dependency-version: 4.12.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: lucide-react
dependency-version: 0.577.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.94.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@types/node"
dependency-version: 25.3.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* 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-03-11 18:53:15 +01:00
Nico
19b827c049
fix: dump snapshot ( #646 )
...
Closes #602
2026-03-10 18:01:51 +01:00
Nicolas Meienberger
ab25cc915e
chore: color improvements in light mode
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-09 19:05:51 +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
d660c8e2e4
fix: single item file restore ( #634 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
fix: single item file restore
test(e2e): restore single file at custom location
Closes #633
2026-03-08 13:38:00 +01:00
Nicolas Meienberger
3d2900ab69
refactor: harden cron validation and fail early in case of wrong pattern
2026-03-08 12:47:19 +01:00
Vutsal
4d8a0b28ca
Refactor scheduler to use CronExpressionParser
2026-03-07 21:51:28 -08:00
bcrooker
2adec5a999
fix: add seconds_remaining to restic backup progress schema
2026-03-07 11:22:41 -05:00
dependabot[bot]
2ccaf724bf
chore(deps): bump the minor-patch group across 1 directory with 13 updates ( #629 )
...
* chore(deps): bump the minor-patch group across 1 directory with 13 updates
Bumps the minor-patch group with 13 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@better-auth/sso](https://github.com/better-auth/better-auth/tree/HEAD/packages/sso ) | `1.5.2` | `1.5.4` |
| [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono ) | `0.9.48` | `0.10.0` |
| [@tanstack/react-hotkeys](https://github.com/TanStack/hotkeys/tree/HEAD/packages/react-hotkeys ) | `0.3.1` | `0.3.2` |
| [@tanstack/react-router](https://github.com/TanStack/router/tree/HEAD/packages/react-router ) | `1.163.3` | `1.166.2` |
| [@tanstack/react-router-ssr-query](https://github.com/TanStack/router/tree/HEAD/packages/react-router-ssr-query ) | `1.163.3` | `1.166.2` |
| [@tanstack/react-start](https://github.com/TanStack/router/tree/HEAD/packages/react-start ) | `1.166.1` | `1.166.2` |
| [arktype](https://github.com/arktypeio/arktype/tree/HEAD/ark/type ) | `2.1.29` | `2.2.0` |
| [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth ) | `1.5.2` | `1.5.4` |
| [es-toolkit](https://github.com/toss/es-toolkit ) | `1.45.0` | `1.45.1` |
| [hono](https://github.com/honojs/hono ) | `4.12.4` | `4.12.5` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `0.576.0` | `0.577.0` |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts ) | `0.93.1` | `0.94.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.3` | `25.3.5` |
Updates `@better-auth/sso` from 1.5.2 to 1.5.4
- [Release notes](https://github.com/better-auth/better-auth/releases )
- [Commits](https://github.com/better-auth/better-auth/commits/v1.5.4/packages/sso )
Updates `@scalar/hono-api-reference` from 0.9.48 to 0.10.0
- [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-hotkeys` from 0.3.1 to 0.3.2
- [Release notes](https://github.com/TanStack/hotkeys/releases )
- [Changelog](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/CHANGELOG.md )
- [Commits](https://github.com/TanStack/hotkeys/commits/@tanstack/react-hotkeys@0.3.2/packages/react-hotkeys )
Updates `@tanstack/react-router` from 1.163.3 to 1.166.2
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.2/packages/react-router )
Updates `@tanstack/react-router-ssr-query` from 1.163.3 to 1.166.2
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.2/packages/react-router-ssr-query )
Updates `@tanstack/react-start` from 1.166.1 to 1.166.2
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.2/packages/react-start )
Updates `arktype` from 2.1.29 to 2.2.0
- [Release notes](https://github.com/arktypeio/arktype/releases )
- [Changelog](https://github.com/arktypeio/arktype/blob/main/ark/type/CHANGELOG.md )
- [Commits](https://github.com/arktypeio/arktype/commits/arktype@2.2.0/ark/type )
Updates `better-auth` from 1.5.2 to 1.5.4
- [Release notes](https://github.com/better-auth/better-auth/releases )
- [Commits](https://github.com/better-auth/better-auth/commits/v1.5.4/packages/better-auth )
Updates `es-toolkit` from 1.45.0 to 1.45.1
- [Release notes](https://github.com/toss/es-toolkit/releases )
- [Changelog](https://github.com/toss/es-toolkit/blob/main/CHANGELOG.md )
- [Commits](https://github.com/toss/es-toolkit/compare/v1.45.0...v1.45.1 )
Updates `hono` from 4.12.4 to 4.12.5
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.12.4...v4.12.5 )
Updates `lucide-react` from 0.576.0 to 0.577.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.577.0/packages/lucide-react )
Updates `@hey-api/openapi-ts` from 0.93.1 to 0.94.0
- [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.93.1...@hey-api/openapi-ts@0.94.0 )
Updates `@types/node` from 25.3.3 to 25.3.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@better-auth/sso"
dependency-version: 1.5.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@scalar/hono-api-reference"
dependency-version: 0.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-hotkeys"
dependency-version: 0.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router"
dependency-version: 1.166.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router-ssr-query"
dependency-version: 1.166.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-start"
dependency-version: 1.166.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: arktype
dependency-version: 2.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: better-auth
dependency-version: 1.5.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: es-toolkit
dependency-version: 1.45.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: hono
dependency-version: 4.12.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: lucide-react
dependency-version: 0.577.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.94.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@types/node"
dependency-version: 25.3.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* 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-03-07 06:38:44 +01:00
bcrooker
8e24c6a8d8
feat(backups): show estimated time remaining on backup progress
2026-03-05 20:06:00 -05:00
Nico
d5da6d4562
fix: sse connection ( #623 )
...
### TL;DR
Refactored `useServerEvents` hook to use a shared EventSource connection across all components instead of creating individual connections per hook instance.
### What changed?
- Introduced shared state management for EventSource connections with reference counting
- Added comprehensive test coverage with MockEventSource implementation
- Modified the hook to share a single EventSource connection across multiple consumers
- Implemented proper cleanup when the last subscriber unmounts
- Removed automatic query refetching on backup completion, keeping only cache invalidation
### How to test?
Run the new test suite with `bun test use-server-events.test.tsx` to verify:
- Single EventSource instance is shared across multiple hook consumers
- Event listeners work correctly with the shared connection
- Cache invalidation occurs once per event
- Proper cleanup happens when all subscribers unmount
### Why make this change?
This optimization reduces resource usage by preventing multiple EventSource connections when the hook is used in different components. The shared connection approach is more efficient while maintaining the same functionality, and the added tests ensure reliability of the server events system.
2026-03-05 22:32:44 +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
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
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
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-04 22:00:04 +01:00
Nicolas Meienberger
e8ae8812ff
Merge branch 'bcrooker-main'
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-04 19:42:54 +01:00
Nicolas Meienberger
157be2d6ab
feat: custom flags allowlist
2026-03-04 19:42:08 +01:00
Nico
0c20473e30
refactor(sso): extract sso code into it's own module ( #617 )
2026-03-04 18:48:47 +01:00
Nico
2f253d4999
fix: move active session to an existing org, when deleting ( #612 )
...
### TL;DR
Added session cleanup logic to handle active organization reassignment when user organizations are deleted.
### What changed?
Enhanced the `cleanupUserOrganizations` method in `AuthService` to reassign active organizations for users whose current active organization is being deleted. The method now:
- Identifies users who are members of organizations being deleted
- Finds alternative organizations for each affected user
- Updates their sessions to use a fallback organization or null if no alternatives exist
- Wraps the entire operation in a database transaction for consistency
### How to test?
Run the new test suite:
```bash
bun test app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts
```
The test verifies that when a user's organization is deleted, other members' sessions are properly updated to use their remaining organization memberships as the active organization.
### Why make this change?
Prevents orphaned session references when organizations are deleted. Without this change, users could have sessions pointing to non-existent organizations as their active workspace, leading to potential application errors or inconsistent state.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **Bug Fixes**
* Improved organization deletion handling. When an organization is deleted, user sessions are now automatically reassigned to a valid fallback organization, ensuring session state consistency and preventing invalid organization references.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:48:47 +01:00
Nico
fc11432b87
feat: change email by cli ( #611 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* New CLI command to change user email addresses with impact preview and validation.
* **Accessibility**
* Improved settings form with proper label-input associations and email field type validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:48:47 +01:00
Nico
a24c6d825e
refactor: sso utils ( #608 )
2026-03-04 18:48:47 +01:00
Nico
10303b6596
fix(use-mobile): use sync external storage to wait before initial render ( #610 )
2026-03-04 18:48:47 +01:00
Nico
235706b230
fix(sso): prevent auto-linking with an existing account in a different org ( #607 )
...
* fix(sso): prevent auto-linking with an existing account in a different org
* chore: lint issue
* chore: bump @better-auth/sso
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
4ed554c039
chore: web-haptics
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
5f6409e0a5
test: increase coverage for existing controllers
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
1724429fb0
refactor: ensure server preloading
2026-03-04 18:48:47 +01:00
Nico
c606099104
test: use better-auth built-in test plugin ( #599 )
...
test: use better-auth built-in test plugin
refactor: map auth errors server side
refactor: native trusted providers callback usage
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Enhanced SSO authentication error messaging with specific guidance for different failure scenarios (account linking required, email verification needed, banned accounts, invite-only access).
* **Chores**
* Updated authentication dependencies to version 1.5.0.
* **Tests**
* Extended test coverage for SSO error code handling and authentication scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
e0eb490636
refactor: add error components at page level
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
d07306cb86
chore: improve ssr data loading
2026-03-04 18:48:47 +01:00
Nico
8691cf8c1f
style: improve repo details layout ( #596 )
2026-03-04 18:48:47 +01:00
Nico
c5aacd30e3
feat: separate global admin page ( #595 )
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
7881f818ae
test: *.xyz include pattern
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
58fee9914b
refactor: render repo stats directly in ssr if cache is available
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
Nico
12454ee401
fix: restic glob pattern in include ( #594 )
...
Closes #590
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
* **Tests**
* Enhanced test coverage for backup pattern handling and anchoring
* Added end-to-end scenarios validating include patterns, exclusion patterns, and exclude-if-present functionality
* **Refactor**
* Updated pattern processing logic to improve relative path resolution for backup patterns
* Improved asynchronous handling in backup initialization workflow
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:48:47 +01:00
Nico
29db09bb5b
feat: OIDC ( #564 )
...
* feat: oidc
feat: organization switcher
refactor: org context
feat: invitations
GLM
* feat: link current account
* refactor: own page for sso registration
* feat: per-user account management
* refactor: code style
* refactor: user existing check
* refactor: restrict provider configuration to super admins only
* refactor: cleanup / pr review
* chore: fix lint issues
* chore: pr feedbacks
* test(e2e): automated tests for OIDC
* fix: check url first for sso provider identification
* fix: prevent oidc provider to be named "credential"
2026-03-04 18:48:00 +01:00
Nico
4a601d157d
refactor(sso): extract sso code into it's own module ( #617 )
2026-03-04 18:47:24 +01:00
Nico
7dc017f4b6
fix: move active session to an existing org, when deleting ( #612 )
...
### TL;DR
Added session cleanup logic to handle active organization reassignment when user organizations are deleted.
### What changed?
Enhanced the `cleanupUserOrganizations` method in `AuthService` to reassign active organizations for users whose current active organization is being deleted. The method now:
- Identifies users who are members of organizations being deleted
- Finds alternative organizations for each affected user
- Updates their sessions to use a fallback organization or null if no alternatives exist
- Wraps the entire operation in a database transaction for consistency
### How to test?
Run the new test suite:
```bash
bun test app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts
```
The test verifies that when a user's organization is deleted, other members' sessions are properly updated to use their remaining organization memberships as the active organization.
### Why make this change?
Prevents orphaned session references when organizations are deleted. Without this change, users could have sessions pointing to non-existent organizations as their active workspace, leading to potential application errors or inconsistent state.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **Bug Fixes**
* Improved organization deletion handling. When an organization is deleted, user sessions are now automatically reassigned to a valid fallback organization, ensuring session state consistency and preventing invalid organization references.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:45:01 +01:00
Nico
fb3c5b33c0
feat: change email by cli ( #611 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* New CLI command to change user email addresses with impact preview and validation.
* **Accessibility**
* Improved settings form with proper label-input associations and email field type validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-03 21:46:47 +01:00
Nico
cb405f1790
refactor: sso utils ( #608 )
2026-03-03 21:28:39 +01:00
Nico
cdc15ef488
fix(use-mobile): use sync external storage to wait before initial render ( #610 )
2026-03-03 21:27:22 +01:00
Nico
f511095fde
fix(sso): prevent auto-linking with an existing account in a different org ( #607 )
...
* fix(sso): prevent auto-linking with an existing account in a different org
* chore: lint issue
* chore: bump @better-auth/sso
2026-03-03 20:27:50 +01:00
Nicolas Meienberger
b082afe761
chore: web-haptics
2026-03-03 19:27:43 +01:00
Nicolas Meienberger
1db50e41f9
test: increase coverage for existing controllers
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-02 21:16:48 +01:00
Nicolas Meienberger
5ef2026b61
refactor: ensure server preloading
2026-03-02 21:13:32 +01:00
Nico
2ff6451f37
test: use better-auth built-in test plugin ( #599 )
...
test: use better-auth built-in test plugin
refactor: map auth errors server side
refactor: native trusted providers callback usage
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Enhanced SSO authentication error messaging with specific guidance for different failure scenarios (account linking required, email verification needed, banned accounts, invite-only access).
* **Chores**
* Updated authentication dependencies to version 1.5.0.
* **Tests**
* Extended test coverage for SSO error code handling and authentication scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-01 15:10:50 +01:00
Nicolas Meienberger
e86fcf1b9a
refactor: add error components at page level
2026-02-28 17:05:27 +01:00
Nicolas Meienberger
39469cb08b
chore: improve ssr data loading
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-28 16:47:02 +01:00
Nico
67eca589d8
style: improve repo details layout ( #596 )
2026-02-28 14:16:50 +01:00
Nico
f686c1aa16
feat: separate global admin page ( #595 )
2026-02-28 12:32:43 +01:00
Nicolas Meienberger
84a088a42e
test: *.xyz include pattern
2026-02-28 11:16:04 +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
bba61c2a37
fix: restic glob pattern in include ( #594 )
...
Closes #590
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Tests**
* Enhanced test coverage for backup pattern handling and anchoring
* Added end-to-end scenarios validating include patterns, exclusion patterns, and exclude-if-present functionality
* **Refactor**
* Updated pattern processing logic to improve relative path resolution for backup patterns
* Improved asynchronous handling in backup initialization workflow
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-28 00:02:00 +01:00
Nico
7a3932f969
feat: OIDC ( #564 )
...
* feat: oidc
feat: organization switcher
refactor: org context
feat: invitations
GLM
* feat: link current account
* refactor: own page for sso registration
* feat: per-user account management
* refactor: code style
* refactor: user existing check
* refactor: restrict provider configuration to super admins only
* refactor: cleanup / pr review
* chore: fix lint issues
* chore: pr feedbacks
* test(e2e): automated tests for OIDC
* fix: check url first for sso provider identification
* fix: prevent oidc provider to be named "credential"
2026-02-27 23:13:54 +01:00
bcrooker
ef51d665c8
feat(backups): add custom restic params to backup schedules
...
Allows users to pass arbitrary restic flags via a new advanced section in the create/edit schedule form. Includes DB migration, schema update, DTO, service, and restic command changes.
2026-02-27 14:46:47 -05: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
942bf2b31b
refactor: tests ( #585 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Tests**
* Improved test infrastructure and organization across backup, repository, volume, and utility modules with streamlined mock setup and cleaner test patterns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-26 19:54:25 +01:00
Nico
4a812a884b
refactor(restic): split each command into its own file ( #584 )
...
refactor(restic): split each command into its own file
refactor: add missing await before promise expects
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **Tests**
* Improved async assertion handling across test suites for enhanced test reliability
* Expanded test coverage for backup, restore, and other core operations
* **Refactor**
* Reorganized internal utility structure for improved code maintainability
* **Chores**
* Updated linting configuration and TypeScript dependencies
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-26 19:51:24 +01:00
Nico
3113af8ce8
fix(repo): add a custom key after creation with the configured hostname ( #583 )
...
Closes #456
2026-02-26 19:46:25 +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
b1a0cdb195
chore: gen api-client
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-25 23:19:34 +01:00
Nicolas Meienberger
907bc57c2d
fix(restic-dto): allow missing current_files in schema
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-25 23:07:53 +01:00
Nicolas Meienberger
f3c753ad30
chore: style fixes
2026-02-25 22:15:08 +01:00
dependabot[bot]
5bc0de4d1a
chore(deps): bump the minor-patch group with 6 updates ( #570 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
* chore(deps): bump the minor-patch group with 6 updates
Bumps the minor-patch group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| @scalar/hono-api-reference | `0.9.44` | `0.9.45` |
| @tanstack/react-router | `1.162.8` | `1.162.9` |
| @tanstack/react-router-ssr-query | `1.162.8` | `1.162.9` |
| @tanstack/react-start | `1.162.8` | `1.162.9` |
| @hey-api/openapi-ts | `0.92.4` | `0.93.0` |
| oxlint-tsgolint | `0.14.2` | `0.15.0` |
Updates `@scalar/hono-api-reference` from 0.9.44 to 0.9.45
Updates `@tanstack/react-router` from 1.162.8 to 1.162.9
Updates `@tanstack/react-router-ssr-query` from 1.162.8 to 1.162.9
Updates `@tanstack/react-start` from 1.162.8 to 1.162.9
Updates `@hey-api/openapi-ts` from 0.92.4 to 0.93.0
Updates `oxlint-tsgolint` from 0.14.2 to 0.15.0
---
updated-dependencies:
- dependency-name: "@scalar/hono-api-reference"
dependency-version: 0.9.45
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router"
dependency-version: 1.162.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router-ssr-query"
dependency-version: 1.162.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-start"
dependency-version: 1.162.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.93.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: oxlint-tsgolint
dependency-version: 0.15.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* 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-02-25 19:19:00 +01:00
Nico
c4f3300e9b
fix(backups): correctly resolve paths when folder name matches volume name ( #576 )
...
When a selected subfolder had the exact same name as its parent volume
mount, the `path.relative` check falsely identified the subfolder path
as an absolute path already inside the volume. This caused the entire
volume root to be backed up instead of the intended subfolder.
Closes #250
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved handling of backup patterns when folder names match volume names.
* Enhanced error handling for snapshot deletion operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-25 19:09:32 +01:00
Nico
cc55fee339
refactor: increase rclone mount timeout ( #575 )
...
Closes #488
2026-02-25 19:06:07 +01:00
Nico
dd9083ce7a
fix: wrong cache key for snapshot retention tags ( #574 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Bug Fixes**
* Enhanced error handling in retention category calculations to gracefully handle missing or invalid repositories, ensuring the system returns safe defaults instead of failing
* Optimized repository cache validation and lookup mechanisms for improved performance
* Strengthened repository validation checks to prevent potential calculation failures
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-25 19:02:44 +01:00
Nico
29967d7e4e
fix(discord): do not split each line into individual messages ( #573 )
...
Closes #519
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* Notification destinations can now be tested even when disabled, enabling configuration validation before activation
* **Improvements**
* Discord notification formatting parameters optimized for enhanced message delivery
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-25 18:54:56 +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
cb92d36c95
feat: cache backup progress ( #571 )
...
Closes #412
2026-02-25 18:20:08 +01:00
Nico
00e7118771
fix: report timeout as errors ( #569 )
...
Closes #485
2026-02-25 18:02:47 +01:00
Nico
74b21d93d6
fix: add DisableTLS param if server is http ( #563 )
...
Closes #561
2026-02-23 21:31:53 +01:00
Nico
a0a813ed09
refactor: short id branded type ( #552 )
...
* refactor: short id branded type
* chore: pr feedbacks
2026-02-21 11:16:15 +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
705f5c75cb
chore: remove useless migration normalization
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-17 20:50:23 +01:00
Nicolas Meienberger
289832d58b
e2e: fix flaky tests by adding page readiness chaeck
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-17 20:28:18 +01:00
Nicolas Meienberger
85e2272a5c
fix(ui): missing @container class in backup details
2026-02-17 19:29:10 +01:00
Nicolas Meienberger
c04219cbf7
fix: normalize drizzle migration timestamp
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-17 19:05:52 +01:00
Nico
f059a23ecc
fix: multiple mobile and responsiveness issues ( #537 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
* 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
ebfafa4143
fix(repositories): append short id when using the default path for local repos ( #536 )
2026-02-17 18:28:33 +01:00
Nicolas Meienberger
0bbdbc85ad
Reapply "chore(deps): bump drizzle-orm from 1.0.0-beta.9-e89174b to 1.0.0-beta.15-859cf75 ( #501 )"
...
This reverts commit db163a1bb5 .
2026-02-17 17:52:25 +01:00
Nicolas Meienberger
440916e312
ci: skip e2e temporarily
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-16 23:59:08 +01:00
Nicolas Meienberger
d58329d86e
fix: skip migrating imported repos
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-16 23:50:39 +01:00
Nicolas Meienberger
a70e95fb7e
chore: enable foreign keys constraints in CLI runs
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-16 23:29:36 +01:00
Nicolas Meienberger
7bcf380198
test: fix impossible test scenarios
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-02-16 23:20:33 +01:00
Nicolas Meienberger
11efe87b2e
fix: apply fk db constraint on app creation
2026-02-16 23:09:18 +01:00
Nicolas Meienberger
db163a1bb5
Revert "chore(deps): bump drizzle-orm from 1.0.0-beta.9-e89174b to 1.0.0-beta.15-859cf75 ( #501 )"
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
This reverts commit d53b24bfb4 .
2026-02-16 22:18:10 +01:00