Commit Graph

  • 42355ee889 feat(federation): direction-branched approve and deny for outbound queue Jannis Braun 2026-04-26 22:01:14 +02:00
  • 7cc360eb11 feat(federation): fanout outbound subscribers on peer activation (any path) Jannis Braun 2026-04-26 21:46:32 +02:00
  • 4d4dc383d7 feat(federation): pass explicit intent at every ensurePeered call site Jannis Braun 2026-04-26 21:37:19 +02:00
  • ef80e3b416 test(federation): outbound gate behavior across autoAccept settings and intents Jannis Braun 2026-04-26 21:28:06 +02:00
  • 6ee8663e9e fix(federation): narrow trust-guard query to inbound rows only Jannis Braun 2026-04-26 21:23:55 +02:00
  • 50bc510e8d feat(federation): outbound gate in ensurePeered with required intent argument Jannis Braun 2026-04-26 21:18:43 +02:00
  • 94c291c472 refactor(shared): rename TriggerReason → PeeringTriggerReason, pin subscribers semantics Jannis Braun 2026-04-26 21:14:51 +02:00
  • 55af76f8b4 feat(shared): types for outbound peering gate (intent, subscriptions, notifications) Jannis Braun 2026-04-26 21:10:32 +02:00
  • 57462e69df docs(schema): comment CHECK invariant on peer_approval_requests Jannis Braun 2026-04-26 21:07:08 +02:00
  • b687bfe721 feat(federation): schema for outbound peering gate (direction column, subscribers, notifications) Jannis Braun 2026-04-26 21:02:27 +02:00
  • c65ff245bd Merge branch 'feat/peer-approval-token' Jannis Braun 2026-04-26 12:12:43 +02:00
  • 94294c64b9 docs(systems): document approval token mechanism Jannis Braun 2026-04-26 11:53:54 +02:00
  • fa7a5f831d feat(federation): /approve forwards token + /approve & /peer/initiate capture on 202 + 200 clear Jannis Braun 2026-04-26 11:52:04 +02:00
  • 058eb992e4 feat(federation): verify approval token before awaiting_approval → active Jannis Braun 2026-04-26 11:48:33 +02:00
  • 9e078c44ba feat(federation): performHandshake captures + clears approval token Jannis Braun 2026-04-26 11:45:16 +02:00
  • 2d8ecd0131 feat(federation): add approval_token columns to peer schema Jannis Braun 2026-04-26 11:44:06 +02:00
  • 4533e36e51 Merge branch 'fix/peer-handshake-trust-bypass' Jannis Braun 2026-04-26 00:16:10 +02:00
  • 11c5a2bf06 fix(federation): refuse outbound handshake when inbound approval pending Jannis Braun 2026-04-26 00:12:42 +02:00
  • d5c9cd297e Merge branch 'feat/s2s-friend-add' Jannis Braun 2026-04-26 00:01:26 +02:00
  • e15661e1bc docs(systems): S2S friend-add — social/client-federation/federation/api Jannis Braun 2026-04-25 23:33:13 +02:00
  • fe969a7d96 fix(web): friend-add error toasts surface raw codes — read err.message, not err.body Jannis Braun 2026-04-25 23:17:19 +02:00
  • 4a939b743f refactor(web): UserProfileModal — toast on server errors, drop ConnectInstanceModal triggers Jannis Braun 2026-04-25 22:35:52 +02:00
  • 7309f44de5 refactor(web): FriendsPage — toast on server errors, drop ConnectInstanceModal triggers Jannis Braun 2026-04-25 22:33:26 +02:00
  • 9d3f75b33c feat(web): WS handlers for friend_request_sent + friend_request_relay_failed Jannis Braun 2026-04-25 22:29:45 +02:00
  • b28bf6646d refactor(socialStore): collapse sendFriendRequest; delete federation error classes Jannis Braun 2026-04-25 22:26:58 +02:00
  • 0677c21ab9 test(federation): buildFriendContextId determinism (cross-instance invariant) Jannis Braun 2026-04-25 22:24:04 +02:00
  • bd70950de7 test(federation): receiver accepts home-queued friend_request_create Jannis Braun 2026-04-25 22:23:04 +02:00
  • d88d369a82 fix(social): friend_request_sent local broadcast must carry target profile Jannis Braun 2026-04-25 22:18:47 +02:00
  • 1ad1fd1b0c feat(social): broadcast friend_request_sent on local request creation Jannis Braun 2026-04-25 22:15:57 +02:00
  • bf13e2a223 feat(social): federated branch — authority + self-friend + idempotency Jannis Braun 2026-04-25 22:12:08 +02:00
  • 72f4b170f6 test(social): federated branch peer-status + lookup-failure mappings Jannis Braun 2026-04-25 22:09:42 +02:00
  • 0574a10ff3 feat(social): federated branch for POST /api/social/requests (happy path) Jannis Braun 2026-04-25 22:04:36 +02:00
  • 08872f1e08 feat(federation): rollbackFriendRequestCreate + side-effect registration Jannis Braun 2026-04-25 21:51:04 +02:00
  • 9e3417485c feat(federation-worker): treat receiver-ack 4xx reasons as terminal + invoke rollback Jannis Braun 2026-04-25 21:46:28 +02:00
  • be3eb5284e feat(federation): permanent-failure callback registry Jannis Braun 2026-04-25 21:42:57 +02:00
  • 03737c0955 feat(federation): resolveOriginFromHostname helper Jannis Braun 2026-04-25 21:41:25 +02:00
  • fbe2fb370b feat(federation): lookupRemoteUser outbound HMAC helper Jannis Braun 2026-04-25 21:37:41 +02:00
  • 03cef0e6b3 feat(federation): POST /api/federation/users/lookup endpoint Jannis Braun 2026-04-25 21:32:49 +02:00
  • 069a1525ea feat(federation): per-peer rate limiter for user lookup (60/min) Jannis Braun 2026-04-25 21:28:44 +02:00
  • bd9657c5d2 fix(db): commit drizzle meta journal/snapshot for 0001 migration Jannis Braun 2026-04-25 21:22:56 +02:00
  • e4086fecff feat(db): add relay_message_id column to friend_requests Jannis Braun 2026-04-25 21:22:25 +02:00
  • 1a9dc547c4 feat(shared): types for federation user lookup + WS events Jannis Braun 2026-04-25 21:19:40 +02:00
  • 1b98b052a1 chore(federation): T1 review polish — top-of-file import + undefined test case Jannis Braun 2026-04-25 21:18:11 +02:00
  • 1b63ca538e feat(federation): normalizeOriginForCompare helper Jannis Braun 2026-04-25 21:14:58 +02:00
  • 39a542a1ec docs(systems): update social.md for search filter + Direct-Add changes Jannis Braun 2026-04-25 19:35:37 +02:00
  • 92a8a6a727 chore(friends): tighten Direct-Add gate consistency Jannis Braun 2026-04-25 19:34:29 +02:00
  • da98d78489 feat(friends): always-visible Direct-Add row with resolved-form display Jannis Braun 2026-04-25 19:32:03 +02:00
  • 781e293cf7 chore(social-client): drop redundant comment, harden defineProperty Jannis Braun 2026-04-25 19:29:06 +02:00
  • fba1f0b87d fix(social-client): lowercase parsed @domain in sendFriendRequest Jannis Braun 2026-04-25 19:20:07 +02:00
  • b5b48e407e test(social): note the shared-state harness contract Jannis Braun 2026-04-25 19:17:50 +02:00
  • 5f5590a3c9 fix(social): normalize username lookup on POST /api/social/requests Jannis Braun 2026-04-25 19:14:31 +02:00
  • e99e0e7862 fix(social): tighten comment on federated-stub filter Jannis Braun 2026-04-25 19:12:40 +02:00
  • b37d3bfa29 fix(social): apply discover-equivalent filters to /api/social/search Jannis Braun 2026-04-25 18:42:05 +02:00
  • 9aa40c0304 docs: refresh stale embed renderer descriptions after Task 1 Jannis Braun 2026-04-25 13:15:14 +02:00
  • 56830972f4 docs(embeds): document bidirectional dimension reservation contract Jannis Braun 2026-04-25 13:12:10 +02:00
  • d659637930 docs(message-list): note smooth-scroll exclusion; point sentinel comment at subsystem doc Jannis Braun 2026-04-25 13:11:05 +02:00
  • 4b040114ed docs: add docs/systems/message-list.md subsystem spec Jannis Braun 2026-04-25 13:06:44 +02:00
  • d18845acb5 fix(web): close handleScroll race that disabled auto-bottom on cold-cache image load Jannis Braun 2026-04-25 13:02:01 +02:00
  • 84ec8e04b7 fix(web): restore known-dimension reservation in ImageEmbed without letterbox fallback Jannis Braun 2026-04-25 12:53:11 +02:00
  • 7c6065c52b Merge branch 'feat/prelaunch-cleanup-bundle' Jannis Braun 2026-04-25 11:22:58 +02:00
  • f0d6bf2ed9 fix(federation): persist remote instance_name from approval-requests/:id/approve handshake response Jannis Braun 2026-04-25 11:18:12 +02:00
  • 4aced5654b docs(federation): document bidirectional instanceName exchange during peer handshake Jannis Braun 2026-04-25 01:00:26 +02:00
  • a9bf5aeb53 fix(dm): include federatedId in POST /api/dm idempotent existing-DM response Jannis Braun 2026-04-25 00:57:06 +02:00
  • 618056659e fix(federation): persist remote instance_name from /peer/initiate handshake response Jannis Braun 2026-04-25 00:48:42 +02:00
  • 18d6b0acfa fix(federation): persist remote instance_name when ensurePeered/performHandshake succeeds Jannis Braun 2026-04-25 00:45:06 +02:00
  • eba16e16a3 fix(federation): include own instanceName in /peer/accept response body Jannis Braun 2026-04-25 00:37:59 +02:00
  • 7fe9476e57 fix(federation): persist peer instance_name on /peer/accept activation paths Jannis Braun 2026-04-25 00:31:34 +02:00
  • 940a0f7ba9 Merge branch 'feat/migration-squash-phase-2' Jannis Braun 2026-04-24 23:57:41 +02:00
  • 798aa22690 docs(systems): rewrite database.md migration workflow section after migration squash Jannis Braun 2026-04-24 23:38:47 +02:00
  • ab5e7c8839 refactor(server): delete baseline + heal functions now unreachable under single-baseline history Jannis Braun 2026-04-24 23:33:35 +02:00
  • 707d3217f1 refactor(server): squash drizzle migrations 0000-0004 into single baseline Jannis Braun 2026-04-24 23:26:20 +02:00
  • a181b1ad10 Merge branch 'feat/remote-200-no-recipient' Jannis Braun 2026-04-24 22:35:39 +02:00
  • f6de72d556 chore(verify): #18 live Pi↔VM scenarios A-D pass Jannis Braun 2026-04-24 21:41:34 +02:00
  • 2dbd2b9b9f test(server): add undeliverable:[] to processRelayEvents mock (#18) Jannis Braun 2026-04-24 21:24:18 +02:00
  • 34622a4290 docs(systems): #18 review followups — bullet formatting + host_unreachable phase Jannis Braun 2026-04-24 21:22:21 +02:00
  • 6edf02cb33 docs(systems): document three-way ack classification + no_recipient (#18) Jannis Braun 2026-04-24 21:19:34 +02:00
  • b16ece93b8 feat(web): no_recipient toast copy arm (#18) Jannis Braun 2026-04-24 21:15:21 +02:00
  • 26a4925032 feat(server): reclassify undeliverable targeted-peer as no_recipient failure (#18) Jannis Braun 2026-04-24 21:11:11 +02:00
  • 7d2137b6d4 feat(server): sendCallRelay surfaces undeliverable messageIds (#18) Jannis Braun 2026-04-24 21:05:28 +02:00
  • 7533d8ca14 feat(server): Path A connection gate + undeliverable on zero ringee (#18) Jannis Braun 2026-04-24 21:01:19 +02:00
  • 792634c2cf feat(server): Path B zero-match → undeliverable ack (#18) Jannis Braun 2026-04-24 19:34:34 +02:00
  • 0057cb4d42 refactor(server): thread undeliverable collector through processRelayEvents (#18) Jannis Braun 2026-04-24 19:17:27 +02:00
  • 3988c5823a feat(shared): add no_recipient reason + undeliverable response field (#18) Jannis Braun 2026-04-24 19:12:54 +02:00
  • a68eab3edc Merge branch 'feat/remote-participant-host-unreachable' Jannis Braun 2026-04-24 01:09:35 +02:00
  • 5c94bc7669 refactor(server): remove unused admin_reset PeerDeactivationReason Jannis Braun 2026-04-24 01:07:47 +02:00
  • 7c0dd33123 docs(systems): document host_unreachable phase + onPeerDeactivated + sentinel Jannis Braun 2026-04-24 00:54:46 +02:00
  • 5e509cf3df feat(web): host_unreachable phase copy for dm_call_undeliverable (TDD) Jannis Braun 2026-04-24 00:51:30 +02:00
  • 314df6c5a1 feat(server): 30s federated-call sentinel worker (TDD) Jannis Braun 2026-04-24 00:49:04 +02:00
  • 71445c5f27 feat(server): wire onPeerDeactivated at admin revoke/reset sites Jannis Braun 2026-04-24 00:45:02 +02:00
  • 8e6639648e feat(server): wire onPeerDeactivated on performHandshake 403 rejection Jannis Braun 2026-04-24 00:43:32 +02:00
  • 743fdcac97 feat(server): wire onPeerDeactivated at federationWorker peer-deactivation sites Jannis Braun 2026-04-24 00:42:20 +02:00
  • 0a8949fbfb feat(server): onPeerDeactivated utility mirrors onPeerActivated (TDD) Jannis Braun 2026-04-24 00:40:42 +02:00
  • 3b61380a1e feat(server): ConnectionManager.evictFederatedCallsForHost (TDD) Jannis Braun 2026-04-24 00:37:44 +02:00
  • 942619f422 feat(shared): add 'host_unreachable' phase to DmCallPhase Jannis Braun 2026-04-24 00:34:05 +02:00
  • 726341f8f8 Merge branch 'feat/call-state-machine-hardening' Jannis Braun 2026-04-23 23:44:49 +02:00
  • 1e59e7012c fix(server): scope accept-rollback terminal to the acceptor only Jannis Braun 2026-04-23 23:38:31 +02:00
  • 1719e6d580 docs(systems): document federation call state machine hardening Jannis Braun 2026-04-23 23:23:06 +02:00
  • 6a5b02b1a0 feat(web): phase-aware dm_call_undeliverable toast copy (TDD) Jannis Braun 2026-04-23 23:21:40 +02:00
  • f6252b8ce1 feat(server): fan dm_call_end out on host ring timeout Jannis Braun 2026-04-23 23:19:42 +02:00
  • 6cd7728f3e feat(server): fanOutCallEvent returns failures; surface to host-side caller Jannis Braun 2026-04-23 23:14:50 +02:00