Commit Graph

  • 22b01c35f5 feat(server): DISABLE_RATE_LIMITS env replaces NODE_ENV-based bypass Jannis Braun 2026-05-04 00:17:10 +02:00
  • f4c9ed880f test(federation-identity): #9 unreachable / #10 no_active_peer Jannis Braun 2026-05-04 00:14:09 +02:00
  • b5df3d5075 test(federation-identity): #7 #8 — owned-spaces 409 + transfer-and-retry Jannis Braun 2026-05-04 00:13:14 +02:00
  • 22daaafb63 test(federation-identity): #2 #4 #6 — all-remotes fan-out variants Jannis Braun 2026-05-04 00:06:44 +02:00
  • 3c0e024213 test(harness): document why peerInstances inserts two rows per direction Jannis Braun 2026-05-03 23:57:18 +02:00
  • d55e85d2c5 feat(federation): PUBLIC_ORIGIN env override for getOurOrigin Jannis Braun 2026-05-03 23:57:06 +02:00
  • c5e3d36689 test(federation-identity): #3 soft / #5 full — DB cascade verification + setup fixture Jannis Braun 2026-05-03 23:46:20 +02:00
  • 957cfd9094 test(federation-identity): #1 leave mode — registry cleaned, remote untouched, no S2S call Jannis Braun 2026-05-03 23:38:02 +02:00
  • b62ffdf03b test(federation-identity): #11 invalid mode / #12 empty origins Jannis Braun 2026-05-03 23:35:15 +02:00
  • 2df346cf03 test(federation-identity): scaffold + harness boot smoke Jannis Braun 2026-05-03 23:34:57 +02:00
  • a2fadf7e93 test(harness): wsListener helper for capturing real WS events Jannis Braun 2026-05-03 23:30:39 +02:00
  • e06b5fec3c test(harness): testUsers helpers — registerLocal + createFederatedUser via production endpoints Jannis Braun 2026-05-03 23:26:47 +02:00
  • 5fe6e7f225 test(harness): hmacSign + seedSpaceWithStubOwner helpers Jannis Braun 2026-05-03 23:21:53 +02:00
  • e95d3ef065 test(harness): read-only DB inspector helpers Jannis Braun 2026-05-03 23:20:59 +02:00
  • db70064a5a test(harness): seedPeer helpers — peer pair + unreachable peer Jannis Braun 2026-05-03 23:20:30 +02:00
  • cd6c51f893 test(harness): N-remote child-process harness + log-tail helpers Jannis Braun 2026-05-03 23:11:11 +02:00
  • c25aecc81b chore: add test scripts for federation identity deletion suite Jannis Braun 2026-05-03 23:07:37 +02:00
  • f661d112fa chore: gitignore tests/.tmp/ and tests/reports/ scratch dirs Jannis Braun 2026-05-03 23:07:22 +02:00
  • 35072dc11f docs: correct soft-mode purge claim — orphaned DMs always purge regardless of mode Jannis Braun 2026-05-03 23:03:09 +02:00
  • 03165a3b7d feat(server): test-only seed-peer route gated by NODE_ENV+ENABLE_TEST_ROUTES Jannis Braun 2026-05-03 22:54:43 +02:00
  • 3dbf4dab5e feat(server): DISABLE_FEDERATION_WORKERS env gate for test isolation Jannis Braun 2026-05-03 22:46:17 +02:00
  • 2b0f93ec62 polish(desktop): rename userData folder to Backspace with first-launch migration Jannis Braun 2026-05-03 14:36:34 +02:00
  • 309484dca9 fix(testing): smoke-recovery.sh — correct userData path, http.server scenarios, missing helper Jannis Braun 2026-05-03 14:02:05 +02:00
  • 833dedd4a1 fix(desktop): boot-timer race — handle rendererReady ping arriving before arm Jannis Braun 2026-05-03 13:51:04 +02:00
  • 7e30db3773 feat(testing): smoke-test script + VITE_FORCE_BOOT_STALL gate Jannis Braun 2026-05-03 13:21:54 +02:00
  • fff39f8d76 polish(desktop): non-destructive Change Instance + recovery enter/exit logs Jannis Braun 2026-05-03 13:16:55 +02:00
  • cff9a8e2cf polish(desktop): final cross-cutting fixes Jannis Braun 2026-05-03 12:19:51 +02:00
  • 6356e2e526 docs(desktop): document Recovery Mode and updated Auto-Update integration Jannis Braun 2026-05-03 12:13:15 +02:00
  • d21459129c polish(desktop): recovery.html — await version alongside state in init Jannis Braun 2026-05-03 12:09:06 +02:00
  • d2a225a4b9 feat(desktop): add recovery.html UI page Jannis Braun 2026-05-03 12:05:40 +02:00
  • 6929c460aa feat(web): ping rendererReady from App.tsx and ErrorBoundary Jannis Braun 2026-05-03 12:01:28 +02:00
  • ece81a2b71 feat(desktop): add recovery bridge methods to preload + types Jannis Braun 2026-05-03 11:57:51 +02:00
  • d8266e62da feat(desktop): wire auto-updater events into recovery store Jannis Braun 2026-05-03 11:52:21 +02:00
  • 56677da8ad refactor(desktop): pass trayActions to buildAppMenuTemplate, remove appMenuActions duplication Jannis Braun 2026-05-03 11:49:42 +02:00
  • bb25a3ba5e feat(desktop): wire recovery store into main process Jannis Braun 2026-05-03 04:30:58 +02:00
  • 1c4bde3029 feat(desktop): attach Electron webContents handlers for recovery detection Jannis Braun 2026-05-03 04:25:03 +02:00
  • 0c489701fc feat(desktop): add enterRecoveryMode and recovery action funnel Jannis Braun 2026-05-03 04:20:22 +02:00
  • 323b9017d7 feat(desktop): add boot-completion timer with packaged-only and URL-protocol guards Jannis Braun 2026-05-03 04:16:22 +02:00
  • a9122d1fdf feat(desktop): add macOS app menu template builder Jannis Braun 2026-05-03 04:12:28 +02:00
  • 172f53e3a5 feat(desktop): add tray menu template builder with state-driven labels Jannis Braun 2026-05-03 04:10:11 +02:00
  • b5273b596a feat(desktop): add extractErrorCode helper for updater errors Jannis Braun 2026-05-03 04:07:46 +02:00
  • d3b3abacff harden(desktop): RecoveryStateStore listener safety + frozen state Jannis Braun 2026-05-03 04:06:43 +02:00
  • 15dfa0a68c feat(desktop): add RecoveryStateStore with subscriber lifecycle Jannis Braun 2026-05-03 04:03:07 +02:00
  • dcbae46e0e refactor(desktop): extract instance-URL helpers to instanceUrl.ts Jannis Braun 2026-05-03 03:58:00 +02:00
  • 3dc3043faf Merge branch 'feature/audio-device-ux': polish audio device UX Jannis Braun 2026-05-03 02:31:27 +02:00
  • 19d42445b0 polish(web): clear device lists on permission revoke; document probe-constraint omission Jannis Braun 2026-05-03 02:09:13 +02:00
  • 4044e910c3 docs(voice): add Audio Device Selection section parallel to Camera Device Selection Jannis Braun 2026-05-03 02:01:09 +02:00
  • 6905071459 refactor(web): UserAreaPanel uses useAudioDevices — kills unconditional getUserMedia probe; reuses shared DropdownItem Jannis Braun 2026-05-03 01:56:24 +02:00
  • ff8dcc28ea feat(web): wire AudioInput/Output sections into Voice & Video settings; fix EC tooltip Jannis Braun 2026-05-03 01:52:20 +02:00
  • 5b8af14e12 feat(web): AudioOutputSection — output picker, volume, test tone, lifecycle-aware sinkId check Jannis Braun 2026-05-03 01:47:49 +02:00
  • 8e67f1d553 fix(web): mic meter reacts to AudioContext lifecycle; extract picker primitives Jannis Braun 2026-05-03 01:43:01 +02:00
  • 3aea8210bd feat(web): AudioInputSection — full input picker with level meter and resolved-default hint Jannis Braun 2026-05-03 01:37:37 +02:00
  • 8907bb305d fix(web): mic-loss recovery uses 'could not be restored' for unclassified errors Jannis Braun 2026-05-03 01:35:07 +02:00
  • 63bf9e684c fix(web): mic-loss detection observes upstream stream, not published clone Jannis Braun 2026-05-03 01:20:13 +02:00
  • 9a26513009 feat(web): mic-track-loss recovery — probe, attempt re-acquire, toast Jannis Braun 2026-05-03 01:09:04 +02:00
  • 674d011d3c fix(web): debounce devicechange handler and gate listener on baseline seeding Jannis Braun 2026-05-03 01:05:37 +02:00
  • d992b2bb41 feat(web): seamless audio hot-plug — re-acquire live stream + toast new devices Jannis Braun 2026-05-03 01:01:03 +02:00
  • 2726cc5c5a feat(web): expose AudioManager helpers for device introspection + test tone Jannis Braun 2026-05-03 00:57:26 +02:00
  • a1ebb23264 feat(web): add useAudioDevices hook for permission-aware audio enumeration Jannis Braun 2026-05-03 00:51:20 +02:00
  • c0e71b1ded fix(federation): hydrate downloads replicated avatars locally + backfill stale URL rows Jannis Braun 2026-05-02 22:45:27 +02:00
  • c0fd7e3a75 feat(web): home tile uses primary purple when active/hovered, grey when idle Jannis Braun 2026-05-02 22:12:18 +02:00
  • 12a71a12d4 fix(web): close writable on download pause/abort so partial bytes flush (resume continues from offset) Jannis Braun 2026-05-02 21:13:09 +02:00
  • f33ebe2aa7 chore(web): drop unused React import; static-import idbHandles consistently Jannis Braun 2026-05-02 20:54:50 +02:00
  • bc32eccc2d fix(server): CORS allows tus headers (federated uploads no longer blocked at preflight) Jannis Braun 2026-05-02 20:42:02 +02:00
  • 3a050f475b fix(web): tus uploads use per-origin token (federation auth) Jannis Braun 2026-05-02 20:37:17 +02:00
  • 33cfc66ac4 fix(web): boot rehydrate normalizes transfers; paused has its own visual Jannis Braun 2026-05-02 19:10:29 +02:00
  • 61be9d013f fix(web): hide Retry when blob unavailable; failed-state surfaces actionable error Jannis Braun 2026-05-02 18:58:05 +02:00
  • 2f0940c30b feat(admin): manual cleanup of stale tus upload sessions + visibility Jannis Braun 2026-05-02 18:44:19 +02:00
  • 4e5a440176 fix(web): server-side DELETE for failed/discarded uploads (no janitor wait) Jannis Braun 2026-05-02 18:22:45 +02:00
  • dd91f5f349 fix(web): retry-after-abort starts fresh tus session; preserve File past abort Jannis Braun 2026-05-02 18:18:07 +02:00
  • 61dea725a3 fix(web): polish failed-upload row — pill-shaped, content-width, proper button affordance Jannis Braun 2026-05-02 18:11:31 +02:00
  • a58b7459fb fix(web): in-session pause/resume preserves File ref; aborted transfers flip bubble to failed Jannis Braun 2026-05-02 18:03:12 +02:00
  • 403c6e9075 fix(web): orchestrator dispatches eager-upload bubbles via pendingMessageStore subscribe Jannis Braun 2026-05-02 17:52:05 +02:00
  • b8da1c1778 docs(design): tray as .glass popover; radial-progress ring primitive Jannis Braun 2026-05-02 17:16:26 +02:00
  • 38a3d4fba8 docs(api,federation): tus upload endpoints; federation worker boundary note Jannis Braun 2026-05-02 17:16:00 +02:00
  • fb7add4f83 docs(uploads): tus protocol, three-store architecture, download pipeline, capability matrix Jannis Braun 2026-05-02 17:15:38 +02:00
  • 348800bfca feat(web): channel-header transfer indicator + global tray panel Jannis Braun 2026-05-02 17:11:41 +02:00
  • 0be69808e4 feat(web): right-click Save Video / Save Audio via transferStore Jannis Braun 2026-05-02 17:07:39 +02:00
  • aaa15cef88 feat(web): file-card download routes through transferStore Jannis Braun 2026-05-02 17:06:26 +02:00
  • d3f45dbda4 feat(web): saveImage routes through transferStore Jannis Braun 2026-05-02 17:05:51 +02:00
  • 2be243336b feat: all profile uploads through transferStore; delete legacy POST /api/uploads Jannis Braun 2026-05-02 16:46:29 +02:00
  • 727c51f659 feat(web): RegisterPage avatar uses transferStore + waitForTransfer helper Jannis Braun 2026-05-02 16:40:50 +02:00
  • 48d199515a feat(web): chatStore dedups WS echo against pendingMessageStore (FIFO) Jannis Braun 2026-05-02 16:37:22 +02:00
  • e534644e57 feat(web): Message renders pending-bubble overlay + retry/discard chrome Jannis Braun 2026-05-02 16:31:53 +02:00
  • 7b6586110d feat(web): MessageList interleaves pending bubbles by createdAtLocal Jannis Braun 2026-05-02 16:22:33 +02:00
  • b97326ef18 feat(web): MessageInput uses composerStore + transferStore (eager upload, FS handles) Jannis Braun 2026-05-02 16:09:24 +02:00
  • 65d8a19c87 feat(web): AttachmentProgress overlay component Jannis Braun 2026-05-02 16:02:47 +02:00
  • 5128a625b8 feat(web): pending-message orchestrator (TTL discard, deferred send, online retry) Jannis Braun 2026-05-02 15:53:23 +02:00
  • b01ad4edb8 feat(web): pendingMessageStore with FIFO dedup matcher and TTL discard Jannis Braun 2026-05-02 15:45:06 +02:00
  • c986f734ee feat(web): composerStore (per-channel draft + staged transfer ids) Jannis Braun 2026-05-02 15:37:08 +02:00
  • 2864d84a0f feat(web): transferStore.startDownload + pause/resume/abort with FS-handle path Jannis Braun 2026-04-30 02:16:38 +02:00
  • bde00e2d9f feat(web): transferStore upload + resume via tus-js-client Jannis Braun 2026-04-30 02:11:43 +02:00
  • bdfe7b453a feat(web): transferStore skeleton with versioned persistence Jannis Braun 2026-04-30 02:06:17 +02:00
  • 054f063f1f feat(web): IDB persistence + capability detection for FileSystemFileHandle Jannis Braun 2026-04-30 02:03:01 +02:00
  • 097976538d deps(web): add tus-js-client, idb, fake-indexeddb Jannis Braun 2026-04-30 02:00:43 +02:00
  • 2e6dabd7ff feat(server): janitor sweeps for tus expired uploads and stragglers Jannis Braun 2026-04-30 01:56:39 +02:00
  • 974fbf759e feat(server): tus upload endpoint at /api/files with auth, ownership, size, finalize hooks Jannis Braun 2026-04-30 01:24:45 +02:00
  • 21022eaa73 feat(server): tus hook helpers (metadata parse, extension extract, ownership check) Jannis Braun 2026-04-30 01:13:45 +02:00
  • 9902130916 feat(server): config keys for tus upload directory and expiration Jannis Braun 2026-04-30 01:11:34 +02:00
  • 4477554f8a deps(server): add @tus/server and @tus/file-store Jannis Braun 2026-04-30 01:08:26 +02:00