Nico
4305057185
test: move test runner from Bun to Vitest ( #727 )
...
* chore: migrate to vitest
* test: speed up some suites by sharing sessions and mocking expensive non-tested actions
* test: refactor some tests to verify behavior instead of implementation details
* chore: fix linting issues
2026-04-01 20:05:54 +02:00
Nicolas Meienberger
e265f7d478
test: fix flaky test depending on mutex timing
2026-04-01 09:27:13 +02:00
Nicolas Meienberger
63e12868b1
fix: react hydration issues by using the same locale during ssr and hydration
2026-03-31 22:39:16 +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
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
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
cdc15ef488
fix(use-mobile): use sync external storage to wait before initial render ( #610 )
2026-03-03 21:27:22 +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
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
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
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
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
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
Nicolas Meienberger
458799297d
refactor: make sse events isolated per org
2026-01-24 22:45:56 +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
1074d022b3
chore: add a pre-commit hook to format files ( #336 )
...
chore: add a pre-commit hook to format files
2026-01-10 11:57:24 +01:00
Nico
b216219209
refactor: move from biome to oxlint/oxformat ( #311 )
...
* chore: install and configure oxlint
* chore: fix liniting issues
* chore: install and configure oxfmt
* ci: add oxlint action instead of biome
* chore: pr feedbacks
* Revert "chore: pr feedbacks"
This reverts commit 525dcd8d9f .
2026-01-05 21:04:37 +01:00
Nico
d7bcf4c9e2
feat: display updates and release notes ( #290 )
...
* feat: display notification when new release is available
* refactor: standalone re-usable cache util
* refactor: clear cache on server startup
* refactor: add timeout to gh release fetch
* fix: run with app version env variable
2026-01-04 10:19:23 +01:00
Nico
b23317354c
refactor: allow to run without the SYS_ADMIN cap for simple setups ( #138 )
...
* refactor: allow to run without the SYS_ADMIN cap for simple setups
* fix: pr feedback
2025-12-14 20:30:33 +01:00
Nico
361311285a
refactor: remove docker volum plugin functionnality ( #137 )
2025-12-14 11:07:32 +01:00
Nico
e7f0a2828d
feat: mirror repositories ( #95 )
...
* feat: mirror repositories
feat: mirror backup repositories
* chore: pr feedbacks
2025-12-03 20:52:47 +01:00
Nicolas Meienberger
c179a16d15
refactor: small code style
2025-11-14 20:59:13 +01:00
Nicolas Meienberger
00916a1fd2
refactor(browsers): create hook for common operations
2025-11-14 20:56:06 +01:00
Nico
95a0d44b45
refactor: unify backend and frontend servers ( #3 )
...
* refactor: unify backend and frontend servers
* refactor: correct paths for openapi & drizzle
* refactor: move api-client to client
* fix: drizzle paths
* chore: fix linting issues
* fix: form reset issue
2025-11-13 20:11:46 +01:00