Commit Graph

  • 3cb80d110d feat(server): aggregate Path-1 call fan-out failures and surface to originator Jannis Braun 2026-04-23 23:12:55 +02:00
  • 13241345de feat(server): surface dm_call_end relay failure to originator (TDD) Jannis Braun 2026-04-23 23:11:20 +02:00
  • 5170d316ba feat(server): surface dm_call_reject relay failure to rejector (TDD) Jannis Braun 2026-04-23 23:10:18 +02:00
  • 07c5b0e7de feat(server): surface dm_call_accept relay failure to acceptor (TDD) Jannis Braun 2026-04-23 23:09:18 +02:00
  • 06e1ed92e7 refactor(server): add buildFailureFromResult + CallFanoutFailure types Jannis Braun 2026-04-23 23:07:07 +02:00
  • 5e9b353124 feat(shared): add DmCallPhase to dm_call_undeliverable event Jannis Braun 2026-04-23 23:06:16 +02:00
  • fe01b94876 Merge branch 'fix/dev-db-rename-drift' Jannis Braun 2026-04-23 03:20:08 +02:00
  • 06c538b013 fix(server): rebuild empty drifted tables to heal pre-rename column drift Jannis Braun 2026-04-23 03:19:56 +02:00
  • 02a8b27d2b Merge branch 'fix/joinspace-tests-and-dev-db-drift' Jannis Braun 2026-04-23 03:00:49 +02:00
  • e703e29f8a fix(server): heal 0000-baseline schema drift after baselining existing installs Jannis Braun 2026-04-23 03:00:30 +02:00
  • 086158511c test(join-space): update stale assertions to match current UI and API Jannis Braun 2026-04-23 02:52:00 +02:00
  • 7220f4cbcd Merge branch 'fix/cross-store-resolver-tdz' Jannis Braun 2026-04-23 02:46:37 +02:00
  • 4d2e50b55b fix(web): extract cross-store resolvers into neutral utility to break TDZ Jannis Braun 2026-04-23 02:46:19 +02:00
  • 15d2a3f163 Merge branch 'fix/pre-existing-test-failures' Jannis Braun 2026-04-23 02:29:20 +02:00
  • ae5bdaa338 test(friends): drop stale origin arg from addDmChannel assertion Jannis Braun 2026-04-23 02:28:57 +02:00
  • 9fbe07571e test(web): polyfill localStorage/sessionStorage in jsdom env Jannis Braun 2026-04-23 02:23:05 +02:00
  • ff39ab077d Merge branch 'feat/dm-origin-failover' Jannis Braun 2026-04-23 02:04:21 +02:00
  • de0b6c2a42 docs(federation): document DM origin failover mechanism Jannis Braun 2026-04-23 01:31:22 +02:00
  • b1844e126f feat(federation): dmAlternatives fallback in dm_message_created Jannis Braun 2026-04-23 01:29:28 +02:00
  • cd1f5c2b64 feat(federation): trigger DM failover on user-initiated disconnect Jannis Braun 2026-04-23 01:25:42 +02:00
  • 1a23871367 feat(federation): trigger DM failover on setInstanceStatus transition Jannis Braun 2026-04-23 01:22:06 +02:00
  • d393a870c2 feat(federation): dmOriginFailover utility (rekey + failover) Jannis Braun 2026-04-23 01:13:48 +02:00
  • 678790b88b feat(federation): resolveDmChannelId for alternate-origin DM ids Jannis Braun 2026-04-23 01:06:46 +02:00
  • d66932362a feat(chat): rekeyChannelState moves channel state from oldId to newId Jannis Braun 2026-04-23 01:04:42 +02:00
  • e7430f1a54 feat(federation): prune dmAlternatives on removeInstanceSpaces Jannis Braun 2026-04-23 01:02:05 +02:00
  • 088fd40834 feat(federation): record DM origin alternatives in spaceStore Jannis Braun 2026-04-23 00:58:37 +02:00
  • f1827872aa Merge branch 'fix/outbox-duplicate-terminal' Jannis Braun 2026-04-23 00:12:13 +02:00
  • 6ff983b46c fix(federation): treat duplicate rejection as terminal in outbox worker Jannis Braun 2026-04-23 00:10:34 +02:00
  • 3252868152 Merge branch 'fix/sync-poison-pill-skip' Jannis Braun 2026-04-22 01:46:49 +02:00
  • 15e42a7cc1 fix(federation): per-event fault isolation in syncPeerMutationLog (#25) Jannis Braun 2026-04-22 01:45:14 +02:00
  • 091988c718 Merge branch 'feat/peer-activation-recovery' Jannis Braun 2026-04-22 01:35:32 +02:00
  • 911c7e3479 fix(federation): ensurePeered must not auto-heal needs_attention peers Jannis Braun 2026-04-22 01:27:07 +02:00
  • d5d56db254 docs(federation): document peer-activation recovery Jannis Braun 2026-04-22 00:57:57 +02:00
  • 3fe7500ff0 feat(federation): /sync serializers for 5 new event types Jannis Braun 2026-04-22 00:53:46 +02:00
  • a23e02339e feat(federation): capture dm_close/reopen/read_state/profile/file_rejected in mutation log Jannis Braun 2026-04-22 00:48:49 +02:00
  • 250596c0f6 feat(federation): wire onPeerActivated into 8 transition sites Jannis Braun 2026-04-22 00:39:58 +02:00
  • 57d7ca66d3 fix(federation): explicit per-status handling in queueOutboxEvent Jannis Braun 2026-04-22 00:34:43 +02:00
  • ae035eba9b fix(federation): remove dead processRelayEvents import Jannis Braun 2026-04-22 00:30:54 +02:00
  • 02a1ed73f4 refactor(federation): replace runInitialSyncForNewPeers with startupBootstrapSync Jannis Braun 2026-04-22 00:28:18 +02:00
  • cca2245cdf feat(federation): implement onPeerActivated with dedup Jannis Braun 2026-04-22 00:24:57 +02:00
  • 39c43032e8 fix(federation): address Task 3 review — pagination test + polish Jannis Braun 2026-04-22 00:21:34 +02:00
  • 5c1b42938e feat(federation): implement syncPeerMutationLog Jannis Braun 2026-04-22 00:15:48 +02:00
  • fd37e0c604 feat(federation): implement resetOutboxBackoff Jannis Braun 2026-04-22 00:10:27 +02:00
  • 14a96efa58 feat(federation): scaffold peer-activation recovery module Jannis Braun 2026-04-22 00:06:17 +02:00
  • 24c1d5f83d Merge branch 'fix/peer-initiate-202' Jannis Braun 2026-04-21 22:44:44 +02:00
  • 531104fecc fix(federation): handle 202 in admin /peer/initiate handshake Jannis Braun 2026-04-21 22:41:44 +02:00
  • 43f0c40685 Merge branch 'feat/federation-cleanup-sweep' Jannis Braun 2026-04-21 22:36:02 +02:00
  • 95c9666213 build(server): drop stale project reference to @backspace/shared Jannis Braun 2026-04-21 22:27:51 +02:00
  • 4b398cf45a types(web): unify FederationPeer with shared type Jannis Braun 2026-04-21 22:21:47 +02:00
  • 010aa7f7ca fix(schema): normalize federation_peers.consecutive_failures to NOT NULL Jannis Braun 2026-04-21 22:21:06 +02:00
  • 0d74d1d112 perf(federation-worker): tighten health-check cadence to 15 min Jannis Braun 2026-04-21 22:16:09 +02:00
  • 9400189a8d Merge branch 'feat/outbox-auth-failure-recovery' Jannis Braun 2026-04-21 22:04:31 +02:00
  • e236d0730e docs(systems): document needs_attention state and Reset peering action Jannis Braun 2026-04-21 21:11:17 +02:00
  • 64d231d782 audit(federation): verify no parallel hmac-wipe-on-401 paths Jannis Braun 2026-04-21 21:07:24 +02:00
  • 5a1e354ae1 feat(federation-ui): add needs_attention pill and Reset peering action Jannis Braun 2026-04-21 21:02:49 +02:00
  • 8a084b0652 feat(api): add federation.resetPeer client method Jannis Braun 2026-04-21 20:58:59 +02:00
  • 0c2864a3d2 feat(federation): add POST /api/federation/peers/:id/reset Jannis Braun 2026-04-21 20:56:26 +02:00
  • 54f32657e5 test(federation): add route-level tests for POST /peers/:id/reset Jannis Braun 2026-04-21 20:52:14 +02:00
  • ceaa08b4bd fix(federation): extend /peer/accept safeguard to cover needs_attention Jannis Braun 2026-04-21 20:49:19 +02:00
  • 48dbe32a69 fix(federation-worker): reset consecutive_auth_failures on successful delivery Jannis Braun 2026-04-21 20:46:52 +02:00
  • 012e489bc7 fix(federation-worker): auth failures must not increment consecutive_failures Jannis Braun 2026-04-21 20:45:33 +02:00
  • e5afd376d2 fix(federation-worker): replace 401/403 wipe-and-rehandshake with bounded retry Jannis Braun 2026-04-21 20:39:37 +02:00
  • 695ea0849d refactor(federation-worker): extract buildContextMapForPeer helper Jannis Braun 2026-04-21 20:35:51 +02:00
  • 617d71ab4b feat(federation): add evaluateAuthFailure decision function Jannis Braun 2026-04-21 20:32:38 +02:00
  • 1df25737b6 types: align FederationPeer union with actual server statuses Jannis Braun 2026-04-21 20:29:14 +02:00
  • 0d3343ab6d feat(schema): add consecutive_auth_failures column on federation_peers Jannis Braun 2026-04-21 18:40:39 +02:00
  • 85668d4da8 Merge branch 'feat/call-relay-auto-peering' Jannis Braun 2026-04-21 16:27:50 +02:00
  • 9cdc5921d9 docs: clarify that livekit_unavailable is emitted from sendFederatedCallStart, not sendCallRelay Jannis Braun 2026-04-21 14:08:31 +02:00
  • 740dae298d docs: document call-relay auto-peering and dm_call_undeliverable surface Jannis Braun 2026-04-21 14:05:59 +02:00
  • 6a7d1fb38c feat(web): handle dm_call_undeliverable — toast + tear down outgoing call on terminal Jannis Braun 2026-04-21 14:02:08 +02:00
  • 44a44163af polish(server): consolidate federation_peers queries, narrow targetedPeers map, use return values from Promise.all to drop non-null assertion Jannis Braun 2026-04-21 14:00:29 +02:00
  • f83c2af357 feat(server): aggregate call-start failures into dm_call_undeliverable Jannis Braun 2026-04-21 13:53:34 +02:00
  • 53483d6981 polish(server): align sendCallRelay timeout message with codebase convention; use .then on sendTypingRelay fire-and-forget Jannis Braun 2026-04-21 13:49:20 +02:00
  • 21f220739c feat(server): sendCallRelay auto-peers on demand, typing passes peeringTimeoutMs:0 Jannis Braun 2026-04-21 13:45:29 +02:00
  • 4ddb09edf1 fix(server): racePeering normalizes handshake rejections and only warns on timeout win Jannis Braun 2026-04-21 13:41:44 +02:00
  • b22a7bd0c6 feat(server): add racePeering helper with tests Jannis Braun 2026-04-21 13:37:30 +02:00
  • 1be544bbd5 feat(shared): add dm_call_undeliverable event type Jannis Braun 2026-04-21 13:33:52 +02:00
  • 852e3657f9 fix: dedup federation membership events by (sourceInstance, messageId) Jannis Braun 2026-04-21 01:06:43 +02:00
  • aeebf79feb fix: federated friend request routed to wrong user with same name Jannis Braun 2026-04-21 00:36:15 +02:00
  • 3d8709d20a feat: real-time Federation panel updates via WS events Jannis Braun 2026-04-20 18:28:10 +02:00
  • 6afad97bd1 fix: revert outgoing peering blocks — autoAcceptPeering only gates incoming Jannis Braun 2026-04-20 18:08:05 +02:00
  • 165fda44a3 fix: accept incoming handshake for awaiting_approval peers to break approval ping-pong Jannis Braun 2026-04-20 18:01:47 +02:00
  • 072858cbbb fix: multiple federation peering bugs Jannis Braun 2026-04-20 17:54:00 +02:00
  • b40c57f227 fix: call resolvePendingPeers before early return in processOutboxTick Jannis Braun 2026-04-20 17:41:34 +02:00
  • 34fe9115b9 fix: compute target origins for 1-on-1 DMs so pending peers are created Jannis Braun 2026-04-20 17:15:22 +02:00
  • 0aec716d4c fix: gate all client DM events on active S2S peer status Jannis Braun 2026-04-20 17:05:57 +02:00
  • 83b682d501 fix: block auto-peering initiation when autoAcceptPeering is disabled Jannis Braun 2026-04-20 16:51:44 +02:00
  • 8be30dc95f fix: check 202 before response.ok so queued approval isn't treated as accepted Jannis Braun 2026-04-20 16:41:56 +02:00
  • e4e0d0d1f1 fix: handle 403 (inactive peer) alongside 401 for stale peer re-handshake Jannis Braun 2026-04-20 16:32:24 +02:00
  • ce33ccf69e fix: reset stale peer to pending on 401 so ensurePeered re-handshakes Jannis Braun 2026-04-20 16:21:53 +02:00
  • ea8f786c2b docs: document pending peering approval queue, new endpoints, and awaiting_approval status Jannis Braun 2026-04-20 15:16:07 +02:00
  • b0d3ee93b0 fix: restore approvalCount state variable in FederationPanel Jannis Braun 2026-04-20 15:11:47 +02:00
  • 9e3c411e80 feat: badge count on Federation tab for pending approval requests Jannis Braun 2026-04-20 15:10:56 +02:00
  • 975ef93cc0 feat: pending approval requests section in Federation panel Jannis Braun 2026-04-20 15:10:07 +02:00
  • 39028ae56f feat: two-variant DM unreachable indicator for rejected vs awaiting_approval Jannis Braun 2026-04-20 15:06:48 +02:00
  • c3fe1bc9d4 feat: track awaitingApprovalPeerOrigins and show login toast for pending approvals Jannis Braun 2026-04-20 15:06:00 +02:00
  • 12bb11e9de feat: add approval request API methods to client Jannis Braun 2026-04-20 15:05:03 +02:00
  • 33c45e3184 feat: add awaitingApprovalPeerOrigins and pendingApprovalCount to ready payload Jannis Braun 2026-04-20 15:03:29 +02:00
  • 5f50ffc5f2 feat: janitor expiry for peer approval requests with signed denial Jannis Braun 2026-04-20 15:01:31 +02:00
  • 1920324469 feat: add admin approval-request endpoints (list, approve, deny) Jannis Braun 2026-04-20 14:59:52 +02:00