Commit Graph
22 Commits
Author SHA1 Message Date
Zef Hemel 0627e7cb49 Fixes #1931 and #1923 (hopefully)
The service worker's proxy fallback only matched the wrapped "Offline"
error from HttpSpacePrimitives, but raw fetch() throws browser-native
errors like
"Failed to fetch" (Chrome), "NetworkError..." (Firefox), or "Load
failed"
(Safari). This caused a hard 503 instead of falling through to serve
local
data. Additionally, the `fullSyncConfirmed` flag reset on every service
worker
restart, forcing unnecessary proxying even when synced data existed in
IndexedDB.

In this commit:
- Use `isNetworkError()` in proxy_router.ts to catch all browser network
  errors
  and fall through to local serving instead of returning 503
* Recover `fullSyncConfirmed` from persisted sync snapshot on SW
  restart, so
  previously synced spaces serve locally immediately
* Adds e2e tests trying to emulate this behavior and prevent regressions
2026-04-14 08:01:43 +02:00
Zef Hemel 6623daa0a2 More sync engine tests + fixes 2026-03-20 16:10:33 +01:00
Zef Hemel 822997fd5e Client available upgrade notification
If the server is updated, but the client doesn't match the server
version, a notification will appear instructing the user to reload.
2026-03-10 12:05:33 +01:00
Zef Hemel 799e27a9b4 Enable biome based formatter and reformat 2026-03-10 09:38:59 +01:00
Zef Hemel bbcd9ac6aa Introduce new noFloatingPromises lint rule and fix violiations 2026-03-08 15:49:45 +01:00
Zef Hemel 6fff01ed3a (Hopefully) further improves sync snapshot handling
Service workers are a bit of a wild west: they can be killed at any time for any reason. This meant that a service worker (and with that a sync cycle) could be killed mid-sync, where files are already synced, but the _snapshot_ has not yet been persisted to the database. These changes persist the snapshot after ever single file sync operation (before: fully sync cycle), removing or at least lowering the chance of this happening. This can be a bit slower, but it's probably worth it.
2026-02-03 09:54:33 +01:00
Zef Hemel 479d8051ff Make file writes synchronous
When writing a file to the service worker, it will no _immediately_
trigger a single file sync and only return when it completes.
2026-01-29 15:14:53 +01:00
Zef Hemel b0cd9e9f02 Rename plugAwareConflictResolver to stdLibAwareConflictResolver 2026-01-29 15:04:30 +01:00
Zef Hemel a5a169df1b More verbose sync error 2026-01-08 10:08:49 +01:00
Zef Hemel 6d81aeb4c2 Fixes #1687 2025-11-17 15:50:12 +01:00
Zef Hemel 732c6a5589 Loading of plugs is no longer restricted to _plug
Builtin plugs are generated under Library/Std/Plugs path now.
2025-11-07 10:43:25 +01:00
Zef Hemel bb602dd9e8 Moved some more code around
Mostly just shuffling files to different folders, but also: renamed
PagePicker to AnythingPicker
2025-09-29 11:03:06 +02:00
Zef Hemel 2ea626d7f5 Removed attempt at cleverness to serve getFileMeta from a cache for non-synced files
This leads to a situation where getFileMeta succeeds (e.g. used for checking for file existence) whereas readFile would fail. This may lead to unexpected behavior in some plugs (specifically excalidraw).
2025-09-26 13:38:15 +02:00
Zef Hemel 5984aedda1 Fix lint 2025-09-26 13:25:10 +02:00
Zef Hemel bb62127517 Online/offline handling tweaks 2025-09-26 13:03:46 +02:00
Zef Hemel 8a39b93657 Fixes auth being broken on Safari
alwaysProxy paths in service worker are now prefixes.
2025-09-26 08:03:24 +02:00
Zef Hemel dcafb5c5ff Lint 2025-09-24 12:58:33 +02:00
Zef Hemel ee3896ee75 Further code restructuring and fix detection of space path change 2025-09-24 12:57:56 +02:00
Zef Hemel f4336bf09f Code restructuring: eliminated the top-level lib/ directory 2025-09-23 17:00:34 +02:00
Zef Hemel fdd8899b33 Fix SB_URL_PREFIX handling, added SB_LOG_PUSH to ask clients to push
client logs to the server
2025-09-19 16:10:14 +02:00
Zef Hemel 1541d13834 Fix backend not setting mtime anymore (resulting in reloads and
potential conflicts)
2025-09-19 14:30:31 +02:00
Zef HemelandGitHub a524c64884 Go backend (#1555)
* Replaces old Deno server with a Go implementation
* Restructured the code base accordingly
2025-09-19 13:23:20 +02:00