Commit Graph

  • 4b44996aac feat(security): idempotent remediation script to rotate seeded admin123 on existing instances Jannis Braun 2026-06-20 02:15:39 +02:00
  • ae61786335 feat(security): remove hardcoded admin/admin123 seed; first registered user is admin Jannis Braun 2026-06-20 02:07:47 +02:00
  • 3c134fe0e8 feat(sounds): self-made Ogg cues + watch/mute/pop fixes Jannis Braun 2026-06-20 00:52:58 +02:00
  • 4829746efc chore: gitignore .claude/worktrees and scheduled_tasks.lock Jannis Braun 2026-05-15 15:05:41 +02:00
  • bc286c2750 merge: fix(chat): pagination skeleton no layout shift into main Jannis Braun 2026-05-15 12:57:38 +02:00
  • 3f51db7ea1 docs(message-list): document top-of-list reservation slot and 2026-05-15 fix Jannis Braun 2026-05-15 12:34:10 +02:00
  • fb38fee965 fix(chat): lower pagination skeleton delay threshold to 50ms Jannis Braun 2026-05-15 12:30:20 +02:00
  • 8beb093aab fix(chat): eliminate pagination skeleton layout shift via constant-height slot Jannis Braun 2026-05-15 12:25:27 +02:00
  • 886111b21a test(useDelayedLoading): lock in custom threshold parameter behavior Jannis Braun 2026-05-15 12:20:27 +02:00
  • dc6caa0125 merge: wip(mobile): in-progress mobile + voice polish into main Jannis Braun 2026-05-12 13:36:08 +02:00
  • 7351b3d90d fix(dm): surface dm.name on chat header/placeholder; collapse unnamed-group placeholder Jannis Braun 2026-05-10 23:41:11 +02:00
  • 87ecf0f4f3 fix(ui): AvatarStack — center inner Avatar in each tile (off-center clipping) Jannis Braun 2026-05-10 23:18:24 +02:00
  • 3c7bb02901 fix(dm): ownership transfer divergence after back-and-forth — canonicalize ownerHomeInstance + normalize authority checks Jannis Braun 2026-05-10 22:38:03 +02:00
  • b6842c5590 fix(dm): owner-only group DM ops accept federated target identification Jannis Braun 2026-05-10 22:09:14 +02:00
  • 9279ac78e5 fix(ui): AvatarStack — radial overlap layout for 3-10 members (replaces 2x2 grid) Jannis Braun 2026-05-10 21:57:38 +02:00
  • 9f9a7c556b fix(ui): mount GroupDmSettings on desktop too — Open Group Settings button now opens the modal Jannis Braun 2026-05-10 21:50:58 +02:00
  • dbb9b2c34b wip(mobile): in-progress mobile + voice polish Jannis Braun 2026-05-10 21:26:40 +02:00
  • 24240f24f4 fix(janitor): protect dm_channels.icon files from cleanup (owner + receiver) Jannis Braun 2026-05-10 21:18:58 +02:00
  • 0acdbbc4eb docs(design-system): AvatarStack reusable component Jannis Braun 2026-05-10 21:03:05 +02:00
  • 941a365224 docs(mobile-ui): MobileGroupDmInfo + members-button rule for group DMs Jannis Braun 2026-05-10 21:02:32 +02:00
  • a694522931 docs(api): three new group DM endpoints Jannis Braun 2026-05-10 21:01:32 +02:00
  • 62eb2c8be1 docs(federation): group_metadata_update event + bootstrap payload extension Jannis Braun 2026-05-10 21:00:54 +02:00
  • 1d24fe2182 docs(dm-system): group metadata update + owner-routing helper + bootstrap extension Jannis Braun 2026-05-10 20:59:23 +02:00
  • f499176c01 docs(database): dm_channels.name + icon + metadata_updated_at Jannis Braun 2026-05-10 20:57:05 +02:00
  • 94a1d28a4c feat(mobile): MobileDmsScreen uses AvatarStack + dm.name + group globe Jannis Braun 2026-05-10 20:51:09 +02:00
  • 058cf36d5a feat(mobile): MobileChatScreen members button shows for group DMs Jannis Braun 2026-05-10 20:50:05 +02:00
  • c0a61dc0fc feat(mobile): MobileGroupDmInfo pushed screen with inline edit Jannis Braun 2026-05-10 20:49:42 +02:00
  • a6c37e9e49 chore(ui): remove dead Pinned Messages buttons (DM + space chat headers) Jannis Braun 2026-05-10 20:42:42 +02:00
  • 86a668032a feat(ui): DmListItem uses AvatarStack + dm.name + group globe Jannis Braun 2026-05-10 20:40:35 +02:00
  • 1b99f65d07 feat(ui): WelcomeHeader polish — AvatarStack, Owner label, Open Group Settings, Leave hover fix Jannis Braun 2026-05-10 20:40:31 +02:00
  • f583d9186d feat(ui): group DM chat-header polish — avatar stack, globe, cog, name + count click targets Jannis Braun 2026-05-10 20:36:27 +02:00
  • f04477c812 test(ui): GroupDmSettings — mock ImageCropModal to harden cancel + save-with-icon tests Jannis Braun 2026-05-10 20:33:06 +02:00
  • 5e739b170e feat(ui): GroupDmSettings modal with Overview + Members tabs Jannis Braun 2026-05-10 20:26:25 +02:00
  • b34caf5f2d fix(ui): DmMemberRow anchors profile popout to row bounds (matches MemberSidebar) Jannis Braun 2026-05-10 20:18:05 +02:00
  • c21bc8078b feat(ui): right-side DmRosterPanel for group DMs Jannis Braun 2026-05-10 20:10:16 +02:00
  • 68c4133abd feat(ui): shared DmMemberRow component (used by roster panel, settings modal, mobile info) Jannis Braun 2026-05-10 19:59:18 +02:00
  • c0151996c4 feat(client): chat timeline renders name_changed + icon_changed system messages Jannis Braun 2026-05-10 19:47:18 +02:00
  • 91aa06b48b feat(client): sidebar previews for name_changed + icon_changed Jannis Braun 2026-05-10 19:43:31 +02:00
  • d508fecfb0 feat(client): dm_channel_updated WS handler + updateDmMetadata store action Jannis Braun 2026-05-10 19:42:05 +02:00
  • e77fae0402 feat(client): api.dm.updateMetadata + kickMember + transferOwnership Jannis Braun 2026-05-10 19:41:24 +02:00
  • 22c3fd6d50 feat(client): getOwnerInstanceForDm — route owner-only DM ops to current owner instance Jannis Braun 2026-05-10 19:39:13 +02:00
  • 063ed2dd64 refactor(federation): extract normalizeIconForWire helper Jannis Braun 2026-05-10 19:31:06 +02:00
  • 04d7910077 feat(federation): bootstrap carries group name + icon + metadataUpdatedAt Jannis Braun 2026-05-10 19:23:47 +02:00
  • 7c8de29eff test(federation): lock kick authority behavior in member_remove receiver Jannis Braun 2026-05-10 19:14:48 +02:00
  • 78d2ab496d refactor(federation): drop dead export on downloadProfileAsset Jannis Braun 2026-05-10 19:10:56 +02:00
  • 240df49d1d feat(federation): processGroupMetadataUpdateEvent with receiver hardening Jannis Braun 2026-05-10 19:04:00 +02:00
  • 7f8d650cab refactor(server): extract transferGroupDmOwnership helper + wrap in transaction Jannis Braun 2026-05-10 18:56:01 +02:00
  • 35c720429e feat(server): POST /api/dm/:id/transfer — manual ownership transfer Jannis Braun 2026-05-10 18:46:41 +02:00
  • ce11fd12b5 refactor(server): extract evictUserFromDmVoiceRoom helper + drop redundant optional chains Jannis Braun 2026-05-10 18:42:25 +02:00
  • 78035bfc64 feat(server): DELETE /api/dm/:id/members/:targetUserId — owner kick Jannis Braun 2026-05-10 18:35:29 +02:00
  • a06776fd86 feat(server): PATCH /api/dm/:id — group name + icon update Jannis Braun 2026-05-10 18:23:48 +02:00
  • 096f12daf2 fix(federation): queueGroupMetadataRelay tighter http(s) check + caller contract note Jannis Braun 2026-05-10 18:13:12 +02:00
  • 4d97dd1253 feat(federation): queueGroupMetadataRelay helper + outbox-worker reconstruction Jannis Braun 2026-05-10 18:07:32 +02:00
  • 2afe230de0 feat(shared): group_metadata_update event + extended FederationGroupPayload (with safe defaults at producers) Jannis Braun 2026-05-10 18:00:07 +02:00
  • f2542fd849 feat(db): dm_channels.name/icon/metadata_updated_at Jannis Braun 2026-05-10 17:58:00 +02:00
  • e4717ef733 feat(shared): group DM name + icon validation constants Jannis Braun 2026-05-10 17:56:49 +02:00
  • f01c5aba8c feat(ui): reusable AvatarStack with +N badge and single-member group affordance Jannis Braun 2026-05-10 17:49:54 +02:00
  • 724ba31da0 test(server): hermetic env defaults — tests no longer require local .env Jannis Braun 2026-05-10 17:42:22 +02:00
  • 6fb38d391c feat(mobile): chat polish — floating composer + iOS keyboard handling + bottom-sheet drag-close + file-chip overflow Jannis Braun 2026-05-08 10:23:32 +02:00
  • cdb4b5f41f feat(mobile): loading skeleton parity + mascot-flash settle gate Jannis Braun 2026-05-08 10:22:59 +02:00
  • 71b383ce7f fix(mobile): voice join flow — correct screen key + remove desktop PiP from mobile branch Jannis Braun 2026-05-07 23:44:34 +02:00
  • 74ccf20308 feat(mobile): Wave 5 — voice-join camera preview + Electron settings entries + toast positioning Jannis Braun 2026-05-07 23:44:06 +02:00
  • d9c9f18b20 fix(mobile): Spaces tab remembers last-selected space across DM/Friends/Settings detours Jannis Braun 2026-05-07 23:00:01 +02:00
  • f733e39b4a fix(mobile): suppress iOS Safari auto-zoom on every input + contenteditable Jannis Braun 2026-05-07 22:59:41 +02:00
  • fb9fe326c4 feat(mobile): Wave 4 — RegisterPage responsive + TransferIndicator on settings + MessageInput sheets Jannis Braun 2026-05-07 22:58:57 +02:00
  • 8544f83225 refactor: drop unwired ConnectInstanceModal Jannis Braun 2026-05-05 23:24:19 +02:00
  • 438e7fb113 fix(storage): StoragePanel rows wrap on narrow viewports Jannis Braun 2026-05-05 23:24:10 +02:00
  • 899dc8b601 feat(settings/mobile): Voice & Video adaption + chat header username normalization Jannis Braun 2026-05-05 23:24:03 +02:00
  • fc9a07523f fix(mobile): SpaceInviteCard Join lands on Spaces tab; skip auto-channel-redirect Jannis Braun 2026-05-05 23:23:46 +02:00
  • e2d938e6c0 feat(mobile): admin reach + post-mount routing + RegistrationPanel modals → Modal Jannis Braun 2026-05-05 23:23:37 +02:00
  • 69cd2dc537 chore: ignore .playwright-mcp/ session artifacts Jannis Braun 2026-05-05 20:55:10 +02:00
  • 40c27ed90f fix(chat): apply loadMessages dedup to force=true callers as well Jannis Braun 2026-05-05 20:52:05 +02:00
  • a189cbfba3 fix(chat): dedup parallel loadMessages/loadMoreMessages per channel Jannis Braun 2026-05-05 20:47:03 +02:00
  • d793ab8f78 fix(message-list): sticky pagination skeleton on channel switch Jannis Braun 2026-05-05 19:56:26 +02:00
  • 97a8d982d5 Merge feat/s2s-federated-friends-presence-username Jannis Braun 2026-05-05 16:48:19 +02:00
  • 1effb1c53f fix: live presence on freshly-friended remotes + green dot in same session Jannis Braun 2026-05-05 16:44:22 +02:00
  • d2bd7987c1 fix(federation): include presenceUpdate in outbox-to-relay event rebuild Jannis Braun 2026-05-05 16:28:07 +02:00
  • ba0f8637f5 docs(federation): document username on profile_update + new presence_update relay + stub backfill Jannis Braun 2026-05-05 16:19:03 +02:00
  • 1cb151d3a9 feat(federation): peer-lifecycle presence hooks (snapshot on activate, mark-offline on deactivate) Jannis Braun 2026-05-05 16:12:22 +02:00
  • ad1a0f7164 fix(presence): broadcast presence_update to friends + DM members + space members Jannis Braun 2026-05-05 16:06:45 +02:00
  • 53fe7d2b53 feat(federation): process inbound presence_update relay events Jannis Braun 2026-05-05 16:03:18 +02:00
  • 613424e1c7 feat(federation): queue S2S presence_update on auth/disconnect/status/activity changes Jannis Braun 2026-05-05 16:01:28 +02:00
  • bdbc90ebd2 feat(federation): backfill snowflake-named replicated-user stubs Jannis Braun 2026-05-05 15:57:37 +02:00
  • b2faf5afaa feat(federation): add /users/by-home-id reverse lookup for stub backfill Jannis Braun 2026-05-05 15:52:07 +02:00
  • 097eb9a2ef feat(federation): preserve effective displayName across profile_update relay Jannis Braun 2026-05-05 15:48:56 +02:00
  • 1d353c994b fix(federation): create replicated-user stubs with realname@domain when hint provided Jannis Braun 2026-05-05 15:46:26 +02:00
  • 702d539e23 fix(register): read home JWT from localStorage so step-2 avatar uploads Jannis Braun 2026-05-05 12:53:48 +02:00
  • 49e9047005 feat(client-federation): user-view cache for cross-instance DM render Jannis Braun 2026-05-05 01:59:05 +02:00
  • fb96b1457a fix(ui): paint avatar fallback gradient before broken-img onError Jannis Braun 2026-05-05 01:58:29 +02:00
  • 06498836bb fix(federation): gate registry PUT on successful initial GET Jannis Braun 2026-05-05 00:20:51 +02:00
  • c05c04181d fix(chat): keep scroll container mounted during initial-load skeleton Jannis Braun 2026-05-05 00:19:00 +02:00
  • b3cbe9403f build(desktop): add electronbuild.sh — multi-platform installer build Jannis Braun 2026-05-04 00:48:20 +02:00
  • 52b5f8e2b1 chore(brand): refresh app icons + add brand source artwork Jannis Braun 2026-05-04 00:48:11 +02:00
  • c7eb14d38e test(federation-identity): #18 unrelated federated user untouched Jannis Braun 2026-05-04 00:32:48 +02:00
  • dfd3c26922 test(federation-identity): #17 mixed-result fan-out Jannis Braun 2026-05-04 00:32:40 +02:00
  • ec37b241d9 test(federation-identity): #16 member_left WS broadcast on full delete Jannis Braun 2026-05-04 00:29:24 +02:00
  • d917ff5354 test(federation-identity): #15 rate limit 5/15min Jannis Braun 2026-05-04 00:26:35 +02:00
  • 8e3fa1d5aa test(federation-identity): #14 S2S idempotency Jannis Braun 2026-05-04 00:23:51 +02:00
  • 27b6a3f912 test(federation-identity): #13 attribution guard rejects mismatched origin Jannis Braun 2026-05-04 00:23:02 +02:00
  • 21b413f9bd test(harness): use DISABLE_RATE_LIMITS in spawned instances + rate-limit-enabled variant Jannis Braun 2026-05-04 00:18:24 +02:00