-
486448607e
feat(voice-store): add pruneStaleDevices to clear stale persisted device ids
Jannis Braun
2026-04-27 20:08:42 +02:00
-
770a77a473
feat(voice-store): add cameraDeviceId persisted field
Jannis Braun
2026-04-27 20:04:45 +02:00
-
8ba644fa44
fix(message-list): pagination flag and scroll restore leak across channel switches
Jannis Braun
2026-04-27 18:11:31 +02:00
-
b6b830568c
fix(message-list): close smooth-scroll-to-bottom race against late-loading media
Jannis Braun
2026-04-27 17:51:55 +02:00
-
de2ef10129
fix(brand): home tile = Element 1 with #000 bg, drop tile lavender
Jannis Braun
2026-04-27 15:39:54 +02:00
-
343fdd6e3d
fix(sidebar): home tile uses brand lavender, not neutral grey
Jannis Braun
2026-04-27 15:32:48 +02:00
-
695f699ddf
fix(sidebar): give home tile visible hover/active feedback
Jannis Braun
2026-04-27 15:27:27 +02:00
-
7a8d0ce0e2
fix(brand): logo.png is bare mark on transparent, 75% padded
Jannis Braun
2026-04-27 15:20:29 +02:00
-
6b71aecc28
fix(brand): logo.png uses full badge, not bare mark
Jannis Braun
2026-04-27 15:06:22 +02:00
-
37797562d7
docs: fix stale Icon Generation block + close spec drift on tray-icon@2x
Jannis Braun
2026-04-27 14:48:05 +02:00
-
8fae1f42c5
docs(desktop): update tray loader table for new 3-branch logic
Jannis Braun
2026-04-27 14:42:37 +02:00
-
eb8ae2874d
chore: delete obsolete icon master, gen-icns.sh, tray-icon@2x
Jannis Braun
2026-04-27 14:40:43 +02:00
-
bd4a7b073a
fix(desktop): rewrite tray loader with explicit per-platform branches
Jannis Braun
2026-04-27 14:38:42 +02:00
-
ff67a792b9
chore(desktop): drop dead cp/gen-icns.sh from dev and prebuild
Jannis Braun
2026-04-27 14:36:35 +02:00
-
5635fd88f1
build(desktop): point electron-builder at new icon outputs
Jannis Braun
2026-04-27 14:34:43 +02:00
-
56e6c72322
chore(brand): regenerate icon set from new SVGs
Jannis Braun
2026-04-27 14:32:05 +02:00
-
81ad0292a5
fix(brand): close Task 3 spec gaps surfaced by code review
Jannis Braun
2026-04-27 14:29:05 +02:00
-
bdfd38bc90
feat(brand): add SVG-driven icon generator (scripts/gen-icons.mjs)
Jannis Braun
2026-04-27 14:20:34 +02:00
-
17dd12fe48
chore: add gen-icons devDeps (sharp, png-to-ico, png2icons)
Jannis Braun
2026-04-27 14:16:15 +02:00
-
f765cfb982
feat(brand): add canonical SVG sources at assets/brand/
Jannis Braun
2026-04-27 14:13:51 +02:00
-
7c21c616b1
docs(desktop): note Windows startMinimized disk fallback when no entry exists
Jannis Braun
2026-04-27 13:22:57 +02:00
-
e7c65ca308
fix(desktop): preserve startMinimized preference across off/on cycle on Windows
Jannis Braun
2026-04-27 13:22:14 +02:00
-
93a91b8235
docs(desktop): clarify recordedExecPath null guard in startup re-apply pseudo-code
Jannis Braun
2026-04-27 13:03:50 +02:00
-
e7413bb504
docs(desktop): rewrite Auto-Launch section to match new architecture
Jannis Braun
2026-04-27 13:01:35 +02:00
-
113efcf583
fix(web): drop optimistic updates and disable inert Start-minimized toggle
Jannis Braun
2026-04-27 12:57:34 +02:00
-
962b669cac
docs(desktop): clarify cross-platform hidden-launch detection
Jannis Braun
2026-04-27 12:54:42 +02:00
-
b0d0ae7be6
fix(desktop): drop unconditional startup re-apply, narrow to AppImage path-refresh
Jannis Braun
2026-04-27 12:52:18 +02:00
-
0d652a72cd
fix(desktop): base set-auto-launch-settings on OS truth, not stale disk
Jannis Braun
2026-04-27 12:49:00 +02:00
-
cd00da07d8
fix(desktop): make get-auto-launch-settings OS-authoritative on Windows
Jannis Braun
2026-04-27 12:46:10 +02:00
-
622b9a6929
fix(desktop): pass enabled/path/args/name to setLoginItemSettings per platform
Jannis Braun
2026-04-27 12:40:44 +02:00
-
495cad717d
refactor(desktop): tighten autoLaunch helpers per code review
Jannis Braun
2026-04-27 12:38:33 +02:00
-
191ba5f248
feat(desktop): add pure auto-launch helpers with tests
Jannis Braun
2026-04-27 12:33:52 +02:00
-
4574a99f2a
chore(desktop): add vitest for pure-helper tests
Jannis Braun
2026-04-27 12:29:38 +02:00
-
4fa2414933
fix(presence): drop status='online' from registration insert
Jannis Braun
2026-04-27 09:35:34 +02:00
-
f17c46c77f
fix(presence): reset stale users.status on boot; drop REST-login online write
Jannis Braun
2026-04-27 00:35:36 +02:00
-
b698ded47d
fix(federation): harden processFriendRequestCreateEvent receiver-side
Jannis Braun
2026-04-27 00:07:52 +02:00
-
8cad964809
chore(test): cover processFriendRequestCreateEvent branches
Jannis Braun
2026-04-26 23:58:45 +02:00
-
8cae4c0b7c
chore(test): migrate federationPeering.test.ts to in-memory drizzle
Jannis Braun
2026-04-26 23:42:08 +02:00
-
ed5a6aa14c
Merge branch 'feat/outbound-peering-gate'
Jannis Braun
2026-04-26 23:30:44 +02:00
-
-
6ba8b9256b
fix(federation): broadcast peering_subscription_changed on terminal state
Jannis Braun
2026-04-26 23:20:31 +02:00
-
e35b44c05f
docs(systems): outbound peering gate documentation across federation, db, api, ws, admin, client-federation
Jannis Braun
2026-04-26 22:59:27 +02:00
-
4fd67fa7dd
fix(web): map peer_pending_local_admin to user-facing message
Jannis Braun
2026-04-26 22:43:52 +02:00
-
cebbd5c859
feat(web): user-facing pending peering subscriptions and outcome notifications
Jannis Braun
2026-04-26 22:42:53 +02:00
-
eddf2254cc
feat(web): render outbound peering requests with subscriber list in admin panel
Jannis Braun
2026-04-26 22:35:16 +02:00
-
51da827089
feat(web): API client methods for peering subscriptions and notifications
Jannis Braun
2026-04-26 22:32:36 +02:00
-
e82ccbde62
fix(federation): tighten peering-notifications GET response to spec shape
Jannis Braun
2026-04-26 22:27:43 +02:00
-
4064d822cd
fix(janitor): restore inbound /peer/denied expiry notification
Jannis Braun
2026-04-26 22:22:34 +02:00
-
86ac54b913
feat(federation): peering-notifications endpoints + janitor expiry fanout
Jannis Braun
2026-04-26 22:18:44 +02:00
-
45ab0ea2c8
feat(federation): peering-subscriptions GET and DELETE endpoints
Jannis Braun
2026-04-26 22:09:41 +02:00
-
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