-
72d1fab930
feat: federate friends/social system across connected instances
Jannis Braun
2026-03-04 17:28:28 +01:00
-
c7c3331dbf
fix: persist homeUserId for federated users to ensure consistent avatar colors
Jannis Braun
2026-03-04 13:45:25 +01:00
-
9432f81ba3
fix: resolve federated avatar color to home instance identity
Jannis Braun
2026-03-04 04:27:35 +01:00
-
2d6cdd0a3c
fix: relocate typing indicator into the input bubble
Jannis Braun
2026-03-04 04:27:26 +01:00
-
f7809cf457
fix: federation reaction identity + remote server reload race condition
Jannis Braun
2026-03-04 03:53:07 +01:00
-
dca9c4dc83
feat: stateless federated identity resolver + federation UX improvements
Jannis Braun
2026-03-04 03:37:49 +01:00
-
64fd8edfc9
feat: federation batch 1+2 — bug fixes and password enforcement
Jannis Braun
2026-03-04 01:51:38 +01:00
-
3f15a8e282
docs: add federation roadmap with batched execution plan
Jannis Braun
2026-03-04 01:27:21 +01:00
-
b44c2a7651
feat: multi-target deploy script supporting Pi and Beta VM
Jannis Braun
2026-03-04 00:36:45 +01:00
-
9ae9a0f3dc
fix: prevent install.sh crash when .env exists without expected keys
Jannis Braun
2026-03-03 23:32:28 +01:00
-
fd175023c1
fix: use correct working directory for pnpm module resolution in install.sh
Jannis Braun
2026-03-03 19:57:32 +01:00
-
617999500b
feat: all-in-one production deployment with install script
Jannis Braun
2026-03-03 19:51:51 +01:00
-
e37f9ea24c
feat: route LiveKit token requests to correct instance for cross-instance voice
Jannis Braun
2026-03-03 00:37:20 +01:00
-
758c6a7b5b
feat: normalize remote asset URLs and route UI actions by instance origin
Jannis Braun
2026-03-03 00:28:24 +01:00
-
72e07c1cc1
fix: persistent random Snowflake worker ID + clean reaction API
Jannis Braun
2026-03-03 00:03:29 +01:00
-
5194dbef25
feat: multi-WebSocket connection manager for instance federation
Jannis Braun
2026-03-02 23:53:30 +01:00
-
ef7aa3ff5a
feat: add instance store and Connected Instances settings UI
Jannis Braun
2026-03-02 23:31:28 +01:00
-
c72fcdda70
refactor: extract API client into parameterized BackspaceApiClient class
Jannis Braun
2026-03-02 23:21:32 +01:00
-
22440b5a24
feat: implement Phase 1 server-side federation groundwork
Jannis Braun
2026-03-02 23:15:43 +01:00
-
37dc73231d
refactor: convert color system to RGB channels for native Tailwind opacity
Jannis Braun
2026-03-02 17:46:21 +01:00
-
0e235fdf1c
fix: DM reactions + eradicate broken CSS variable opacity modifiers
Jannis Braun
2026-03-02 17:36:33 +01:00
-
2c98704198
fix: chat scroll-to-bottom on channel open and bottom spacing
Jannis Braun
2026-03-02 17:17:30 +01:00
-
907728ab24
fix: replace broken border-hard/50 opacity with subtle white borders
Jannis Braun
2026-03-02 17:07:33 +01:00
-
7608afccc4
fix: panel separator borders and reaction spacing to match prototype
Jannis Braun
2026-03-02 16:51:17 +01:00
-
b8ce05ad6c
fix: precise chat layout alignment to match Aether Drift prototype
Jannis Braun
2026-03-02 16:17:42 +01:00
-
9491edb3c9
fix: reaction pill frosted glass + compact sizing to match prototype
Jannis Braun
2026-03-02 15:55:42 +01:00
-
cdee450cf5
fix: channel sidebar and reaction bubbles to match Aether Drift prototype
Jannis Braun
2026-03-02 14:45:47 +01:00
-
31562c2b29
fix: avatar and server icon font size/weight to match prototype
Jannis Braun
2026-03-02 14:08:34 +01:00
-
88b29200d5
fix: avatar status dot size to match prototype cutout dimensions
Jannis Braun
2026-03-02 03:35:57 +01:00
-
dcd4ef0011
feat: Aether Drift UI polish — popout redesign, sidebar cleanup, status dot fix
Jannis Braun
2026-03-02 03:21:12 +01:00
-
ddeb72101e
feat: dynamic PiP collision avoidance, reaction pill redesign, channel dedup fix
Jannis Braun
2026-03-02 02:09:52 +01:00
-
f79575ffa7
fix: consistent avatar gradient colors across all 17 call sites
Jannis Braun
2026-03-02 01:16:58 +01:00
-
95fc6f0693
feat: Phase 7 Aether Drift — typography, spacing & detail alignment
Jannis Braun
2026-03-02 01:05:42 +01:00
-
7f7656ed24
feat: Phase 5+6 Aether Drift — legacy token removal, colorful avatars & Backspace branding
Jannis Braun
2026-03-02 00:56:34 +01:00
-
d0e696e03c
feat: Phase 4 Aether Drift — auth, modals & UI component token migration
Jannis Braun
2026-03-02 00:01:24 +01:00
-
7172091159
feat: Phase 3 Aether Drift — voice & video component token migration
Jannis Braun
2026-03-01 23:36:10 +01:00
-
662eb8abc5
feat: Phase 2 Aether Drift — chat component token migration + scroll fix
Jannis Braun
2026-03-01 23:23:46 +01:00
-
79252fe54a
feat: Phase 1 Aether Drift — mobile-first grid layout and token migration
Jannis Braun
2026-03-01 22:46:27 +01:00
-
e219229b63
feat: add Backspace design prototype and rebrand from Opencord
Jannis Braun
2026-03-01 21:26:57 +01:00
-
aeb38a714a
rename project from Opencord to Backspace in deployment config
Jannis Braun
2026-03-01 01:22:03 +01:00
-
773a03b1aa
feat: instance-level streaming limits with admin settings panel
Jannis Braun
2026-02-26 03:33:29 +01:00
-
2184ded2c1
fix: use autoSubscribe:false to prevent LiveKit renegotiation storm on screen share
Jannis Braun
2026-02-26 03:02:27 +01:00
-
61e0bf6fe8
fix: lower screen share default bitrates for VP9 codec efficiency
Jannis Braun
2026-02-26 02:43:17 +01:00
-
4bb69851d3
fix: use LiveKit track.attach() for adaptive stream and switch screen share to VP9 single-layer
Jannis Braun
2026-02-26 02:33:18 +01:00
-
33e9198de6
perf: enable adaptiveStream and camera simulcast for SFU bandwidth optimization
Jannis Braun
2026-02-26 01:09:05 +01:00
-
2186235d65
feat: manual bitrate override slider for screen share settings
Jannis Braun
2026-02-26 00:28:20 +01:00
-
3ceab3d73e
fix: hydrate replyTo on optimistic messages so reply preview renders instantly
Jannis Braun
2026-02-26 00:17:00 +01:00
-
c9f9787b99
feat: rich markdown renderer with @mention badges and autocomplete
Jannis Braun
2026-02-25 23:49:41 +01:00
-
0a157de162
refactor: purge legacy server_members.role column, single source of truth via member_roles
Jannis Braun
2026-02-25 22:46:50 +01:00
-
76b8a43be2
fix: enforce channel-level RBAC across WS broadcasts, REST endpoints, and frontend reactivity
Jannis Braun
2026-02-24 06:10:11 +01:00
-
8030c89c6c
feat: bitwise RBAC engine with channel-level permission overrides
Jannis Braun
2026-02-24 05:08:59 +01:00
-
024833c470
fix: security hardening and Safari stability
Jannis Braun
2026-02-24 04:34:36 +01:00
-
36e27121da
fix: harden data integrity, connection stability, and memory management
Jannis Braun
2026-02-24 03:52:22 +01:00
-
2342396fce
fix: disable browser DSP on screen share audio and harden ICE stats resolution
Jannis Braun
2026-02-24 02:31:24 +01:00
-
f808a204e7
refactor: dynamic screen share engine with independent resolution/fps/mode axes
Jannis Braun
2026-02-24 02:16:15 +01:00
-
9b0d319ab2
refactor: per-track WebRTC diagnostic engine replacing flat stats model
Jannis Braun
2026-02-24 00:36:31 +01:00
-
b6adf310fc
fix: wire DM file attachments through the full send/fetch/broadcast chain
Jannis Braun
2026-02-24 00:08:45 +01:00
-
900eb67869
feat: add group DM support (3-10 members)
Jannis Braun
2026-02-23 22:39:06 +01:00
-
653e59bfb2
refactor: unify backend voice signaling with VoiceRoom abstraction
Jannis Braun
2026-02-23 22:15:41 +01:00
-
628d417723
fix: restore VoiceControls and chat split-view in DM calls
Jannis Braun
2026-02-23 21:49:06 +01:00
-
e9ec61db43
fix: revert removeAllListeners() from destroyRoom() to stop SDK teardown errors
Jannis Braun
2026-02-23 21:30:07 +01:00
-
61e607204f
fix: prevent ghost Room memory leak by stripping listeners before disconnect
Jannis Braun
2026-02-23 21:13:35 +01:00
-
bc51fc6f7e
refactor: unify DM calls with server voice architecture
Jannis Braun
2026-02-23 20:52:58 +01:00
-
5e34b39b78
fix: broadcast camera & screen share status via WebSocket for sidebar visibility
Jannis Braun
2026-02-23 20:07:42 +01:00
-
77c5bda1fd
fix: WebSocket heartbeat to prevent idle drops + debounce reconnect sound
Jannis Braun
2026-02-23 19:45:32 +01:00
-
edcdf8b207
fix: defer AEC toggle until after screen picker resolves to prevent mic dropout
Jannis Braun
2026-02-23 19:27:49 +01:00
-
fe97212c64
fix: screen share gaming stutter by switching to maintain-framerate + contentHint motion
Jannis Braun
2026-02-23 03:46:06 +01:00
-
7e7de41718
fix: centralize screen share pipeline to fix 270p resolution ramp-up failure
Jannis Braun
2026-02-23 03:25:52 +01:00
-
82eee04946
fix: client-side speaking detection replacing LiveKit's conservative server VAD
Jannis Braun
2026-02-23 02:53:40 +01:00
-
9091f08ced
fix: reliable speaking indicator via direct store writes + polling safety net
Jannis Braun
2026-02-23 02:36:39 +01:00
-
176f4db27e
chore: remove 62 tsc emit artifacts from src/, add noEmit to tsconfig
Jannis Braun
2026-02-23 00:54:51 +01:00
-
5747267a6b
refactor: remove browser NS toggle, default RNNoise on, rework voice settings
Jannis Braun
2026-02-23 00:49:42 +01:00
-
dc57856506
fix: RNNoise mono-left-only audio via explicit ChannelMerger stereo upmix
Jannis Braun
2026-02-23 00:37:50 +01:00
-
ccf2001047
feat: RNNoise WASM AudioWorklet for ML-based noise suppression (Phase 3)
Jannis Braun
2026-02-23 00:28:29 +01:00
-
dbebd38576
refactor: replace unpublishTrack mute with setMicrophoneEnabled (Phase 1 RNNoise prep)
Jannis Braun
2026-02-22 23:17:16 +01:00
-
5fe43bc0c8
fix: DM close visibility flag, wire Remove Friend button, harden deploy script
Jannis Braun
2026-02-22 22:29:40 +01:00
-
6b8fd44a3a
feat: real-time sync, notification & social system overhaul
Jannis Braun
2026-02-22 22:15:11 +01:00
-
708bdf5468
fix: auto-disable AEC during screen share to prevent Chrome voice ducking
Jannis Braun
2026-02-20 15:22:20 +01:00
-
25f72aef3b
fix: address sender-side voice ducking with voice processing controls
Jannis Braun
2026-02-20 15:00:08 +01:00
-
5c38f076d3
fix: eliminate voice ducking caused by rogue LiveKit audio elements
Jannis Braun
2026-02-20 07:03:41 +01:00
-
6f777f97ce
fix: local stream video visibility and audio double-playback
Jannis Braun
2026-02-20 04:47:50 +01:00
-
44018aa588
fix: remove stream auto-focus and persist audio across navigation
Jannis Braun
2026-02-20 04:27:18 +01:00
-
1aa40cca15
feat: implement Discord-like stream widget system with separate tiles
Jannis Braun
2026-02-20 03:59:28 +01:00
-
a8656e6a3b
feat: add screen share audio support
Jannis Braun
2026-02-20 03:16:34 +01:00
-
a8be2dd5da
fix: suppress redundant reconnect sounds and broadcasts during active voice
Jannis Braun
2026-02-20 03:07:53 +01:00
-
9fed8214c7
feat: replace placeholder sounds with actual MP3 recordings and refine audio logic
Jannis Braun
2026-02-20 02:39:32 +01:00
-
9a79ddf7eb
feat: implement global audio effects and presence grace period
Jannis Braun
2026-02-19 23:46:46 +01:00
-
6784dbcbaa
Fix screen share ghosting and improve grid view interactions
Jannis Braun
2026-02-19 23:25:36 +01:00
-
140c7c38ab
Milestone: First fully usable version with robust audio and screen sharing
Jannis Braun
2026-02-19 23:09:03 +01:00
-
3a441d5abd
Fix room switching and audio consistency issues
Jannis Braun
2026-02-19 22:57:16 +01:00
-
95217f0343
Overhaul audio architecture for robust cross-browser reliability
Jannis Braun
2026-02-19 22:13:48 +01:00
-
8afd960a43
Fix Chrome audio reliability and prevent double audio
Jannis Braun
2026-02-19 20:49:59 +01:00
-
5ba64d2aea
Fix double audio, Chrome reload silence, and restore input gain functionality
Jannis Braun
2026-02-19 19:43:41 +01:00
-
6deed231ab
Ensure voice mute/deafen status persists across disconnects and re-joins
Jannis Braun
2026-02-19 18:02:00 +01:00
-
5fae725675
Fix missing isDeafened declaration in useLiveKit hook
Jannis Braun
2026-02-19 17:43:26 +01:00
-
a18e087e24
Fix voice status persistence and global visibility across channels
Jannis Braun
2026-02-19 17:37:30 +01:00
-
c7608e0655
Update voice control components and sidebar logic
Jannis Braun
2026-02-19 17:11:16 +01:00
-
0da4a530d6
feat: voice status visibility + sidebar persistence fixes
Jannis Braun
2026-02-19 07:58:50 +01:00
-
503e483b82
feat: Unified floating bottom panel — voice controls + user area in one card
Jannis Braun
2026-02-19 07:10:31 +01:00
-
1f813395e2
feat: Discord Dark theme overhaul — darker palette, floating controls, UI polish
Jannis Braun
2026-02-19 06:49:50 +01:00