Hampus
557efe1c7d
fix(api): add custom headers to email fallback SMTP ( #3507 )
2026-10-17 02:38:59 +02:00
Hampus
0b1ddc2695
feat(api): add domain-routed fallback email provider ( #3506 )
2026-10-17 01:45:19 +02:00
Nanakusa and Hampus
c195e2b5de
feat(app): double click message actions ( #1546 )
...
Co-authored-by: Hampus <[email protected] >
2026-10-16 14:55:56 +02:00
Nanakusa
9e15194d6f
fix(desktop): use same connection for sending/recieving notifications ( #3505 )
2026-10-16 14:41:45 +02:00
Hampus
275cc73f7a
fix(app): keep brand colour text readable on every surface ( #3504 )
2026-10-16 03:06:24 +02:00
Hampus
3224f2113a
fix(voice): judge local speaking from the sent audio ( #3503 )
2026-10-15 23:05:02 +02:00
Hampus
b9ea837c75
fix(app): treat a black instance theme colour as unset ( #3502 )
2026-10-15 23:04:40 +02:00
Hampus
41da6b5985
feat(app): align default keybinds with Discord ( #3501 )
2026-10-15 23:04:13 +02:00
Hampus
9000a9f4c7
feat(admin): add warning given report outcome ( #3500 )
2026-10-15 23:03:44 +02:00
Hampus
61a4e3895a
feat(admin): required marks and report prefill on decisions ( #3499 )
2026-10-15 23:03:24 +02:00
Hampus
86c78427d8
feat(admin): copy message link and ids in message tools ( #3498 )
2026-10-15 23:02:57 +02:00
Hampus
8beccdfe54
fix(app): request webp forum card thumbnails for video posts ( #3497 )
2026-10-15 21:22:24 +02:00
Hampus
8f4c966d3a
fix(desktop): keep the KDE tray icon full size ( #3496 )
2026-10-15 16:49:56 +02:00
Hampus
c424656bad
feat(desktop): crisp taskbar badges and a dark badge option ( #3495 )
2026-10-15 16:49:34 +02:00
Hampus
4b8ce8bf63
fix(desktop): trust CAs in the windows intermediate store ( #3494 )
2026-10-15 16:48:55 +02:00
Hampus
4f88872a3c
feat(reports): keep reports until resolved, then by outcome ( #3493 )
2026-10-15 16:40:51 +02:00
Hampus
f5c30fdf8f
feat(enforcement): record decisions and send notices ( #3492 )
2026-10-15 07:12:46 +02:00
Hampus
da1842ecab
fix(app): keep the red taskbar badge on windows ( #3491 )
2026-10-15 04:27:13 +02:00
Hampus
8c38e06a15
fix(voice): release the mic after a region hot-swap ( #3490 )
2026-10-15 04:26:44 +02:00
Hampus
c454add5c8
fix(desktop): match KDE tray icon size to Breeze 22px grid ( #3489 )
2026-10-15 04:11:58 +02:00
Hampus
1f4f3318dc
feat(api): add libredesk webhook adapter ( #3488 )
2026-10-15 03:54:32 +02:00
Hampus
105bd49c9e
feat(desktop): let users install updates on demand ( #3487 )
2026-10-15 03:50:03 +02:00
Hampus
9213a765b1
fix(api): include personal notes in dm search scopes ( #3486 )
2026-10-15 02:43:35 +02:00
Hampus
7c4180c2be
fix(app): show the search bar in personal notes ( #3485 )
2026-10-15 02:36:57 +02:00
Hampus
fe4bb4386e
fix(app): limit /tts playback to the viewed channel ( #3484 )
2026-10-15 00:35:06 +02:00
Hampus
674b4d26d1
feat(desktop): add a setting and flag to disable updates ( #3483 )
2026-10-15 00:33:11 +02:00
Hampus
3a74a6f97a
fix(docs): finish the api_public origins footnote ( #3482 )
2026-10-14 23:58:05 +02:00
Hampus
a7ba56b140
feat(app): add help for messaging paused accounts ( #3481 )
2026-10-14 22:45:26 +02:00
Hampus
a39410623e
fix(admin): reload pages when an auth proxy blocks navigation ( #3480 )
2026-10-14 21:18:48 +02:00
Hampus
a4802c6004
docs(guilds): document template forum channel fields ( #3479 )
2026-10-14 20:49:00 +02:00
Hampus
812919759a
fix(installer): stop upgrades hanging after the uploads copy ( #3478 )
2026-10-14 20:37:03 +02:00
Hampus
b3f373c94c
feat(desktop): tray unread dot and monochrome tray icon ( #3477 )
2026-10-14 20:00:40 +02:00
Hampus
36095ab66f
feat(admin): upload instance branding images ( #3476 )
2026-10-14 19:26:31 +02:00
Hampus
52c19e67cb
fix(app): underline embed links when links are underlined ( #3475 )
2026-10-14 19:21:31 +02:00
Hampus
4e3299a91c
fix(app): make the channel welcome line generic ( #3474 )
2026-10-14 18:54:05 +02:00
Hampus
99be186fa1
fix(guild): import all template channel types, fetch on desktop ( #3473 )
2026-10-14 18:39:09 +02:00
Hampus
00249f9b4d
fix(deploy): drop healthcheck start_interval for older engines ( #3472 )
2026-10-14 17:57:34 +02:00
Hampus
7c16d424ce
fix(app): show download icon for shell updates ( #3471 )
2026-10-14 17:48:41 +02:00
Hampus
5f5e26a8d4
fix(config): default self-hosted instances to production ( #3470 )
2026-10-14 17:14:35 +02:00
Hampus
8c05497c37
fix(auth): stop flagging dev instance signups as staff ( #3469 )
2026-10-14 17:09:14 +02:00
Hampus
d2f19660e5
fix(app): skip zod eval probe blocked by csp ( #3468 )
2026-10-14 16:41:47 +02:00
Hampus
d5ca5d8293
fix(auth): fix approval signups and auto-join invites ( #3467 )
2026-10-14 16:41:33 +02:00
Hampus
e403fb6cce
feat(desktop): add FLUXER_DISABLE_MODULE_UPDATES opt-out ( #3466 )
2026-10-14 16:30:34 +02:00
Hampus
e8dff6a8a1
fix(api): page postgres kv full scans by keyset ( #3465 )
2026-10-14 16:27:27 +02:00
Hampus
2b656a1186
chore(deps): bump rustls in desktop native and fuzz locks ( #3464 )
2026-10-14 16:07:15 +02:00
Hampus
381699623e
fix(app): stop own profile preview trapping mobile web ( #3463 )
2026-10-14 16:04:09 +02:00
Hampus
d7bbe933fa
fix(app): unify guild acronyms and shrink them to fit ( #3462 )
2026-10-14 16:02:18 +02:00
Hampus
069b13c382
chore(deps): bump rustls to 0.23.46 ( #3461 )
2026-10-14 15:59:23 +02:00
Fenane
538b5d69bb
fix(app): convert emoji shortcodes in a single transform pass ( #3459 )
2026-10-14 15:53:22 +02:00
Hampus
3c8fe74660
fix(app): refetch oauth bot destinations after account switch ( #3460 )
2026-10-14 15:39:33 +02:00
Hampus
c0f825ae2a
fix(app): explain software screen share encoding on linux ( #3458 )
2026-10-14 14:47:44 +02:00
Hampus
8d8a29377c
fix(ci): retry the release history read in desktop builds ( #3457 )
2026-10-14 13:47:38 +02:00
ArcticWarmth
abcb5cb814
feat(admin): move pending registrations to their own page ( #1388 )
2026-10-14 13:45:27 +02:00
Hampus
97b2ac91ca
fix(desktop): capture screen share audio from chosen devices ( #3456 )
2026-10-14 02:48:19 +02:00
Hampus
123c4d5bbf
fix(api): link github push commits by their full hash ( #3455 )
2026-10-14 02:28:06 +02:00
Hampus
6e2bf3cbe6
feat(api): purge media through the controller edge api ( #3454 )
2026-10-14 02:12:31 +02:00
Hampus
f509bef1fb
fix(app): keep push-to-talk release delays above 500 ms ( #3453 )
2026-10-14 00:37:40 +02:00
Hampus
959b03b5f4
fix(desktop): shell-compatible module updates, no linux walls ( #3452 )
2026-10-13 22:07:00 +02:00
Hampus
f501d34179
fix(voice): allow self-mute while push-to-talk is on ( #3451 )
2026-10-13 22:02:40 +02:00
Fenane
3657438467
fix(app): show username in UserAreaAccountSwitchMenu ( #3447 )
...
Signed-off-by: dearfenane <[email protected] >
2026-10-13 21:00:19 +02:00
Hampus
2976b1842b
fix(i18n): use емоджі consistently in Ukrainian ( #3450 )
2026-10-13 20:56:40 +02:00
Hampus
8cac3b35c9
fix(desktop): reuse window capture items on Windows 10 ( #3449 )
2026-10-13 17:57:09 +02:00
Hampus
d514501d57
fix(app-proxy): tell the web client its release channel ( #3448 )
2026-10-13 15:15:11 +02:00
Hampus
83bb9d89c8
fix(media-proxy): serve transforms whole, never as ranges ( #3446 )
2026-10-13 05:26:21 +02:00
Hampus
0117605572
fix(api): copy objects without server-side copy on one bucket ( #3445 )
2026-10-13 04:42:53 +02:00
Hampus
72e14c17ba
fix(voice): keep the playback boost while the window is hidden ( #3444 )
2026-10-13 04:36:23 +02:00
Hampus
aa0ebdb97e
fix(desktop): build mac native modules for macOS 13 ( #3443 )
2026-10-13 03:49:39 +02:00
Hampus
3d4b2933e1
fix(setup): show the setup token step in the wizard ( #3442 )
2026-10-13 03:22:42 +02:00
Hampus
922ff5ea64
fix(app): keep forum channels after a warm account switch ( #3441 )
2026-10-13 02:23:24 +02:00
Hampus
fce3200265
fix(app): keep the AbortSignal polyfill in the bundle ( #3440 )
2026-10-13 01:50:06 +02:00
Hampus
3b35db2681
fix(app): load on browsers without AbortSignal.any ( #3439 )
2026-10-13 00:28:09 +02:00
Hampus
c7da0cf33d
style(deploy): format the helm values schema ( #3438 )
2026-10-13 00:23:05 +02:00
Hampus
78272521bb
feat(setup): add a setup token for first-run setup ( #3437 )
2026-10-13 00:17:24 +02:00
Hampus
8e39380ee6
feat(deploy): add a complete fluxer helm chart ( #3436 )
2026-10-13 00:03:55 +02:00
Hampus
fb58447ba1
fix(app): lock out Dark Reader on the app and docs ( #3435 )
2026-10-12 23:58:09 +02:00
Hampus
2ffe8f3387
fix(desktop): fresh manual update check, 90 second polling ( #3434 )
2026-10-12 21:39:10 +02:00
Hampus
4194525933
chore(unfurl): update ammonia to 4.2.3 ( #3433 )
2026-10-12 20:30:16 +02:00
Hampus
44799dafa2
fix(app): follow username-only sign-in in every auth flow ( #3432 )
2026-10-12 20:25:57 +02:00
Hampus
30b32c9a35
fix(app): cap the height of list picker modals ( #3431 )
2026-10-12 20:25:28 +02:00
Hampus
d1b4b82895
fix(app): require a username on username-only instances ( #3430 )
2026-10-12 20:10:05 +02:00
Hampus
9bc43c0c08
docs(operator): document app support for self-hosted instances ( #3429 )
2026-10-12 19:58:56 +02:00
Hampus
13960a0bb3
fix(flatpak): drop the unused secrets service access ( #3428 )
2026-10-12 17:37:56 +02:00
Hampus
64cb159d65
fix(app): make the invite splash cover the whole page ( #3427 )
2026-10-12 17:13:46 +02:00
Hampus
d2173fe879
fix(app): size channel icons in the inbox headers ( #3426 )
2026-10-12 16:51:17 +02:00
omster
49eb8cdd81
feat(app): add keyboard hint in the account switcher ( #3425 )
2026-10-12 16:48:10 +02:00
omster
b4fc1241ae
feat(app): render domain label in account overlay ( #3424 )
2026-10-12 16:48:05 +02:00
Hampus
54f1b37666
fix(app): keep zoomed media viewer images sharp ( #3423 )
2026-10-12 16:19:52 +02:00
Hampus
8bda151596
fix(api): resolve s3 copy source under endpoint path ( #3422 )
2026-10-12 16:02:52 +02:00
Hampus
ab19c0d1ac
fix(desktop): never queue local proxy requests ( #3421 )
2026-10-12 15:39:30 +02:00
Hampus
68cb2a4bbb
fix(api): resolve client ip from peer when untrusted ( #3420 )
2026-10-12 15:34:36 +02:00
Hampus
17746fcdc4
feat(api): add managed guild invite pauses ( #3419 )
2026-10-12 15:14:03 +02:00
Hampus
c890956e4f
feat(api): include date of birth in registration activity ( #3418 )
2026-10-12 15:13:37 +02:00
Aru Moon
8a5d4a8bdb
fix(app): send current client locale on login/registration ( #3412 )
2026-10-12 14:26:11 +02:00
Hampus
0ba15ee46a
fix(api): delete guilds in a background job ( #3417 )
2026-10-12 14:11:06 +02:00
Hampus
85d9ef7386
fix(app): hash emitted license asset names ( #3416 )
2026-10-12 13:58:28 +02:00
Hampus
f8d85f0e5e
test(cache): freeze clock for ttl resolution ( #3415 )
2026-10-12 13:37:56 +02:00
Hampus
7f674474b5
fix(app): include record utils in image builds ( #3414 )
2026-10-12 13:29:06 +02:00
Hampus
c9fdf8fead
chore(repo): prune dead code and duplicate abstractions ( #3413 )
2026-10-12 13:09:42 +02:00
Hampus
c17091768c
feat(app): pick screen share bitrate up to the limit ( #3411 )
2026-10-12 02:17:53 +02:00
Hampus
e0640d68ff
feat(limits): add max_screen_share_bitrate limit ( #3410 )
2026-10-12 02:16:40 +02:00
Hampus
3292dc5f89
test(media-proxy): drop animated jxl fixture case ( #3409 )
2026-10-12 00:17:29 +02:00
Hampus
86e29b61e3
fix(media-proxy): serve large simple jxl, fit full size ( #3408 )
2026-10-12 00:05:14 +02:00
Qsie
f8d3c70a91
chore(svc): replace deprecated fetch_update with try_update ( #3407 )
...
Signed-off-by: Qsie <[email protected] >
2026-10-11 23:30:31 +02:00
Hampus
74c6fad260
fix(billing): stack gifts from paid period end after trial ends ( #3406 )
2026-10-11 20:08:19 +02:00
Hampus
bcb30eea88
fix(voice): one-way audio and stream loss in p2p calls ( #3405 )
2026-10-11 19:27:24 +02:00
Hampus
d59ddc2214
fix(app): wait for the session before redirecting from /app ( #3404 )
2026-10-11 18:47:50 +02:00
Hampus
e87b593f46
fix(media-proxy): fail slow external fetches sooner ( #3403 )
2026-10-11 18:47:11 +02:00
Hampus
5a2d81ebbb
fix(media-proxy): bound animated transforms by output pixels ( #3402 )
2026-10-11 18:46:34 +02:00
Hampus
50c28aa8fa
fix(admin): use instance branding on self-hosted ( #3401 )
2026-10-11 15:57:12 +02:00
Hampus
af7724dbf6
fix(push): drop Fluxer badge on self-hosted instances ( #3400 )
2026-10-11 15:56:53 +02:00
Hampus
be314788b3
fix(app): pixel-align mobile status indicator notch ( #3399 )
2026-10-11 15:56:15 +02:00
Hampus
5b3f69bf27
fix(app): only remember a language the user picked ( #3398 )
2026-10-11 15:55:55 +02:00
Hampus
d7aa6ec2aa
fix(app): use instance branding in self-hosted copy ( #3397 )
2026-10-11 15:55:15 +02:00
Hampus
20e3474393
fix(app-proxy): serve instance branding before boot ( #3396 )
2026-10-11 15:54:40 +02:00
Hampus
3694300d86
fix(api): show premium badge for premium override ( #3395 )
2026-10-11 14:55:43 +02:00
Hampus
54ec74e4f9
fix(app): load quick css from the account scope after sign-in ( #3394 )
2026-10-11 14:49:15 +02:00
Hampus
aa3b058ce6
fix(media-proxy): serve originals and speed up slow transforms ( #3393 )
2026-10-11 14:41:01 +02:00
Hampus
44bc29b101
fix(media-proxy): let video work fit small memory budgets ( #3392 )
2026-10-11 14:14:59 +02:00
Hampus
b07dcc368d
fix(app): read instance theme color without an active runtime ( #3391 )
2026-10-11 13:37:05 +02:00
Hampus
0967bf3136
fix(api): SSO discovery, channel create and deleted bots ( #3390 )
2026-10-11 13:31:18 +02:00
Hampus
edc913096a
fix(selfhost): branding image origins and theme colour ( #3389 )
2026-10-11 13:31:05 +02:00
Hampus
cca8227ca6
fix(email): test saved SMTP config and add TLS modes ( #3388 )
2026-10-11 13:30:00 +02:00
Hampus
45b78a13c2
fix(media): stream large files and honour size settings ( #3387 )
2026-10-11 13:28:24 +02:00
Hampus
6acd7f3d22
fix(admin): save premium limits and model changes ( #3386 )
2026-10-11 13:26:39 +02:00
Hampus
7d2c51a57f
fix(media-proxy): budget native image work by pod memory ( #3385 )
2026-10-11 02:07:19 +02:00
Hampus
575a5adbef
refactor(pkgs): share vitest config and dedupe helpers ( #3384 )
2026-10-10 23:23:34 +02:00
Hampus
5695510980
refactor(app): merge duplicated components and stores ( #3383 )
2026-10-10 23:17:29 +02:00
Hampus
c16d414d93
refactor(api): collapse single-impl interfaces and facades ( #3382 )
2026-10-10 23:04:42 +02:00
Hampus
e7b13fd19f
refactor(gateway): share shard helpers and test fixtures ( #3381 )
2026-10-10 23:04:30 +02:00
Hampus
f22261f218
build(static): fetch spellcheck dictionaries at build ( #3380 )
2026-10-10 22:46:10 +02:00
Hampus
901ed623f6
refactor(i18n): store reviewed-unchanged ids as a flat list ( #3379 )
2026-10-10 22:44:42 +02:00
Hampus
1198b61648
refactor(i18n): load server catalogs from weblate json ( #3378 )
2026-10-10 22:35:45 +02:00
Hampus
d564ca5691
refactor(i18n): drop line numbers from po references ( #3377 )
2026-10-10 22:24:51 +02:00
Hampus
b7e92cbfe0
fix(repo): drop orphaned error code and dead voice clause ( #3376 )
2026-10-10 22:18:12 +02:00
Hampus
1cd62eb661
chore(repo): remove dead code and useless tests ( #3375 )
2026-10-10 21:43:29 +02:00
Hampus
7e177a1c90
fix(flatpak): allow GNOME idle monitor for away detection ( #3374 )
2026-10-10 21:17:58 +02:00
Hampus
78471d8a85
fix(app): apply push inactive timeout before desktop goes idle ( #3373 )
2026-10-10 21:17:37 +02:00
Tarek
6b6ae13919
fix(app): apply instance branding to system DM ( #3355 )
2026-10-10 20:36:02 +02:00
Hampus
7197371123
fix(gateway): resend thread member lists on resume and leave ( #3372 )
2026-10-10 19:17:08 +02:00
Hampus
70fd9e6331
refactor(api): drop ignored location param from thread routes ( #3371 )
2026-10-10 17:57:15 +02:00
Hampus
c14b7d4cb3
fix(members): show mobile badges and fresh profiles in lists ( #3370 )
2026-10-10 17:00:30 +02:00
Hampus
0f0ff5f3df
feat(schema): add swipe right to left action setting ( #3369 )
2026-10-10 16:36:13 +02:00
Hampus
b4c614d21a
fix(threads): show presence in thread member list ( #3368 )
2026-10-10 15:58:59 +02:00
Hampus
bef5e33eec
feat(voice): add opt-in peer-to-peer calls and country rollouts ( #3367 )
2026-10-10 15:45:17 +02:00
Xeon
e5a568acca
fix(flatpak): Add permissions necessary for security key/card SSO ( #3366 )
2026-10-10 14:30:11 +02:00
Hampus
a208b56354
feat(app): let Windows users switch back to Fluxer Sans ( #3365 )
2026-10-10 03:15:30 +02:00
Hampus
71be6c1de4
build(fonts): restore symmetric smoothing for Plex at every size ( #3364 )
2026-10-10 03:15:00 +02:00
Hampus
eae905b1da
fix(app): use the Windows system font for UI text on Windows ( #3363 )
2026-10-10 03:14:25 +02:00
Hampus
10cd4f96a4
fix(ui): let report modal steps scroll when zoomed in ( #3362 )
2026-10-10 01:46:24 +02:00
Hampus
9d74daf8ad
fix(reports): drop the in-app DSA link, link copyright help ( #3361 )
2026-10-10 01:46:19 +02:00
Hampus
6f344def93
test(api): backdate seeded evidence in report deletion tests ( #3360 )
2026-10-10 01:23:10 +02:00
Hampus
72f9f9c396
fix(settings): group account security into clear cards ( #3359 )
2026-10-10 00:59:33 +02:00
Hampus
c8755885d4
fix(privacy): clarify the privacy settings page ( #3358 )
2026-10-10 00:58:55 +02:00
Hampus
12d503d4c5
feat(app): show current DM settings and keep them by default ( #3357 )
2026-10-10 00:58:10 +02:00
Hampus
2f6201bcbd
feat(app): guide privacy review with dots and an inline alert ( #3356 )
2026-10-10 00:57:26 +02:00
Hampus
ec681e6061
fix(desktop): retry an update that never installed ( #3354 )
2026-10-09 15:03:36 +02:00
Hampus
0fc6fad11d
fix(ui): report the shown carousel step so report flows react ( #3353 )
2026-10-09 14:53:08 +02:00
Hampus
eb329f2cd0
fix(app): add missing data-flx attributes ( #3351 )
2026-10-09 14:18:01 +02:00
Hampus
9a20821332
feat(app,api): let group DM owners allow mature content ( #3350 )
2026-10-09 14:12:13 +02:00
Hampus
4749eb7f86
ci(desktop): use a clean profile for each Windows update check ( #3349 )
2026-10-09 08:32:45 +02:00
Hampus
2d83fd2a93
ci(desktop): keep the logs from Windows update checks ( #3348 )
2026-10-09 08:22:21 +02:00
Hampus
d180af6ba2
fix(desktop): clean up release check runs on Windows ( #3347 )
2026-10-09 06:53:50 +02:00
Hampus
4810eb3e24
feat(ci): run the release check on built Windows shells ( #3346 )
2026-10-09 05:40:01 +02:00
Hampus
48a19dedd8
fix(desktop): stop requiring the removed win-toast at startup ( #3345 )
2026-10-09 05:39:56 +02:00
Hampus
cadf7ea532
feat(schema): add double tap action to synced preferences ( #3344 )
2026-10-09 04:09:24 +02:00
Hampus
fc60d05f17
feat(app): load heavy desktop assets on demand, update in place ( #3343 )
2026-10-09 03:53:57 +02:00
Hampus
5072488f1e
feat(desktop): prefer the bundled renderer, own update prompts ( #3341 )
2026-10-09 03:01:15 +02:00
Hampus
7a5b9a0ded
docs(threads): publish threads, forums and media channels ( #3342 )
2026-10-09 02:44:06 +02:00
Hampus
4ce4d4e09a
feat(ci): bundle the renderer in the desktop shell ( #3339 )
2026-10-09 02:31:37 +02:00
Hampus
82abd03a37
feat(reports): delete reports and configure retention ( #3338 )
2026-10-09 01:41:47 +02:00
Hampus
93d1f8af46
refactor: remove dead code ( #3337 )
2026-10-09 01:41:26 +02:00
Hampus
a19002652b
docs: use British English throughout ( #3336 )
2026-10-09 01:40:55 +02:00
Hampus
6534ee4300
feat(admin): require a resolution and fix panel layout and copy ( #3335 )
2026-10-09 01:40:34 +02:00
Hampus
4db13b0375
fix(app,api): kick reasons, blocked counts and locale fallbacks ( #3334 )
2026-10-09 01:40:08 +02:00
Hampus
a5c1362f4a
fix(self-hosting): use instance contacts and live product name ( #3333 )
2026-10-09 01:39:35 +02:00
Hampus
454fefdb92
chore(moderation): remove the built-in NCMEC integration ( #3332 )
2026-10-09 01:39:04 +02:00
Hampus
f390e610b9
fix(tooling): repair test, i18n and docs verification gates ( #3331 )
2026-10-09 01:38:34 +02:00
Hampus
ece622e800
feat(reports): add server-driven report flows ( #3330 )
2026-10-09 01:38:00 +02:00
Hampus
bc17922b02
fix(gateway): wire presence grace, request limits and voice sync ( #3329 )
2026-10-09 01:37:25 +02:00
Hampus
a32d8e4f52
fix(i18n): use the web term for instance in id, tr and vi ( #3328 )
2026-10-09 01:36:57 +02:00
Hampus
12daeb758d
fix(app): retry failed images at once when back online ( #3327 )
2026-10-08 23:39:18 +02:00
Hampus
fff67ed9af
fix(desktop): fetch theme CSS via the local resource proxy ( #3326 )
2026-10-08 23:21:27 +02:00
Hampus
d0b4816a5f
fix(media-proxy): allow the desktop app origin and preflight ( #3325 )
2026-10-08 23:21:10 +02:00
Hampus
0febad324c
fix(repo): match editorconfig to each formatter ( #3324 )
2026-10-08 22:07:46 +02:00
Hampus
dcc3273889
feat(app): ask everyone to review who can message them ( #3323 )
2026-10-08 20:47:44 +02:00
Hampus
e9a4f33a7e
feat(api): track privacy setup and open community DMs by default ( #3322 )
2026-10-08 20:47:22 +02:00
Hampus
ae820ba4ea
chore(i18n): refresh catalog references ( #3320 )
2026-10-08 20:34:03 +02:00
Hampus
94f1239050
fix(premium): reflect limit config flags in plan comparisons ( #3319 )
2026-10-08 20:33:20 +02:00
Hampus
acc1392a53
fix(ui): reopen a popout clicked while it is closing ( #3318 )
2026-10-08 20:33:04 +02:00
Hampus
a6a9789091
fix(ui): stop clicks passing through the user area footer ( #3317 )
2026-10-08 20:32:49 +02:00
Hampus
fdb7410976
fix(threads): light up joined threads in muted communities ( #3316 )
2026-10-08 20:32:33 +02:00
Hampus
b146b8ee33
fix(desktop): trust locally added CAs in Chromium on Linux ( #3315 )
2026-10-08 20:21:04 +02:00
Hampus
4b1afc953f
fix(app): redraw the favicon badge when branding changes ( #3314 )
2026-10-08 20:20:49 +02:00
Hampus
4ecbe9603c
fix(api): store branding images as media references ( #3313 )
2026-10-08 20:20:34 +02:00
Hampus
847d449882
chore(i18n): refresh catalog references ( #3312 )
2026-10-08 20:06:41 +02:00
Hampus
bef20cba85
fix(links): warn on unhandled middle clicks and desktop links ( #3311 )
2026-10-08 20:05:54 +02:00
Jiralite
ebf91ccc76
fix(links): warn on embed link middle clicks ( #3305 )
2026-10-08 20:05:27 +02:00
Hampus
abfaff16c2
fix(guild): fit text icon initials to the icon by measured width ( #3310 )
2026-10-08 20:05:09 +02:00
Hampus
89fa895a0a
fix(forum): keep closed posts visible without a reload ( #3309 )
2026-10-08 20:04:53 +02:00
Hampus
334fef52e1
fix(desktop): keep slow connects racing instead of aborting them ( #3308 )
2026-10-08 20:04:39 +02:00
Hampus
aa42bf13ce
fix(threads): announce threads above the latest five messages ( #3307 )
2026-10-08 20:04:23 +02:00
Hampus
c486c2d3d0
revert(admin): restore user type toggles ( #3306 )
2026-10-08 20:04:01 +02:00
Hampus
0ec1cee99e
test(gateway): keep the recheck timer out of the eunit process ( #3304 )
2026-10-08 18:14:47 +02:00
Hampus
ccbe4857a1
docs(auth): document the desktop handoff deep link and deny ( #3303 )
2026-10-08 18:00:17 +02:00
Hampus
7f8b0afedb
chore(i18n): refresh catalog references ( #3302 )
2026-10-08 17:58:50 +02:00
Jiralite
e94b7d7ad8
fix(threads): add a debug thread button ( #3276 )
2026-10-08 17:57:47 +02:00
Hampus
27baa38fd1
fix(threads): open the thread menu on browser right-click ( #3301 )
2026-10-08 17:45:33 +02:00
Hampus
4af10dd3e3
fix(threads): keep header actions clear of the channel name ( #3300 )
2026-10-08 17:44:48 +02:00
Hampus
269d33cab2
fix(threads): confirm before leaving a private thread ( #3299 )
2026-10-08 17:44:00 +02:00
Hampus
170e12595b
fix(threads): let the thread members popout scroll ( #3298 )
2026-10-08 17:42:56 +02:00
Hampus
b82bbaa2dd
fix(ui): drop the switch label tab stop with no focus ring ( #3297 )
2026-10-08 17:42:11 +02:00
Hampus
b8f3dbddbf
fix(threads): keep Tab and focus inside the thread create pane ( #3296 )
2026-10-08 17:41:14 +02:00
Hampus
663572fd10
fix(forum): keep attachments on forum and media posts ( #3295 )
2026-10-08 17:40:29 +02:00
Hampus
5033cf7203
fix(app): follow theme library changes made in other windows ( #3294 )
2026-10-08 17:39:34 +02:00
Hampus
0fcab2f8f0
fix(app): hold the switched view until its route commits ( #3293 )
2026-10-08 17:38:36 +02:00
Hampus
c3d790f664
fix(app): refocus the editor before text context menu actions ( #3292 )
2026-10-08 17:37:40 +02:00
Hampus
0906a85d6f
fix(app): keep mature content consent across account switches ( #3291 )
2026-10-08 17:36:55 +02:00
Hampus
4da8dec4ac
fix(app): ignore leftover mentions in unseen channels ( #3290 )
2026-10-08 17:35:59 +02:00
Hampus
d6e3254a16
feat(app): show instance branding in switchers and pickers ( #3289 )
2026-10-08 17:34:56 +02:00
Hampus
6dc698ff5e
fix(app): follow instance branding in tab title and favicon ( #3288 )
2026-10-08 17:33:28 +02:00
Hampus
39e48458da
fix(app): keep a global define from breaking bundled modules ( #3287 )
2026-10-08 17:32:40 +02:00
Hampus
c5453f83e8
feat(desktop): sign in with the browser without typing a code ( #3286 )
2026-10-08 17:31:45 +02:00
Hampus
510cc1b916
fix(desktop): show the text context menu on password fields ( #3285 )
2026-10-08 17:30:11 +02:00
Hampus
e7859fefb1
fix(desktop): leave full screen before hiding on macOS close ( #3284 )
2026-10-08 17:28:58 +02:00
Hampus
46a356cc40
fix(media): keep self-host media loading after restarts ( #3283 )
2026-10-08 17:28:18 +02:00
Hampus
bd56174870
fix(desktop): frame streamed request bodies for every method ( #3282 )
2026-10-08 17:26:41 +02:00
Hampus
965bb5f634
fix(desktop): trust the system CA store in main requests ( #3281 )
2026-10-08 17:26:12 +02:00
Hampus
7937d5f802
fix(desktop): update from the splash only after the user clicks ( #3280 )
2026-10-08 17:25:34 +02:00
Hampus
f1373a63c3
feat(ci): publish renderer modules without a shell build ( #3279 )
2026-10-08 17:23:59 +02:00
Hampus
e0d7625c39
feat(api): hand desktop sign-in back with a deep link grant ( #3278 )
2026-10-08 17:23:28 +02:00
Hampus
f8505d19f7
feat(threads): ship threads and the Plutonium page to everyone ( #3277 )
2026-10-08 16:30:39 +02:00
Hampus
1515a8487f
fix(desktop): fall back across resolved addresses on connect ( #3275 )
2026-10-08 05:08:00 +02:00
Hampus
7a4aa42d4b
feat(premium): native Nordic prices and subscribing during grace ( #3274 )
2026-10-08 04:21:54 +02:00
Hampus
0ef1cd14c3
feat(desktop): show download progress and diagnostics on splash ( #3273 )
2026-10-08 03:06:06 +02:00
Hampus
795e190bda
fix(desktop): let the Theme Studio popout resolve its runtime ( #3272 )
2026-10-08 03:05:37 +02:00
Hampus
d00389ab30
fix(desktop): reach split-horizon instances on their LAN IP ( #3271 )
2026-10-08 03:05:15 +02:00
Hampus
3071bc7525
fix(desktop): honour the system proxy in main-process requests ( #3270 )
2026-10-08 03:04:55 +02:00
Hampus
6de6be2358
fix(threads): open the thread menu on thread chip right-click ( #3269 )
2026-10-08 03:04:35 +02:00
Hampus
c51c222c47
fix(voice): stop stale mute echoes from toggling mute ( #3268 )
2026-10-08 03:04:10 +02:00
Hampus
e218ba21de
fix(app): load saved account avatars from their own instance ( #3267 )
2026-10-08 03:03:47 +02:00
Hampus
de358c0def
fix(app): let action toolbar overrides win over its defaults ( #3266 )
2026-10-08 03:03:26 +02:00
Hampus
4b88d64b2d
fix(app): show the official badge and a visible account menu ( #3265 )
2026-10-08 03:03:05 +02:00
Hampus
ee1c861eb2
perf(desktop): cache display media and retain shown images ( #3264 )
2026-10-08 03:02:41 +02:00
Hampus
6a24ac3f4e
fix(desktop): fetch media bytes via the local resource proxy ( #3263 )
2026-10-08 03:02:15 +02:00
Hampus
8b312c610e
fix(app): tag only desktop proxy uploads with a local upload id ( #3262 )
2026-10-08 00:40:51 +02:00
Hampus
2e3e3a1536
fix(desktop): fix manual update wording and retry Velopack ( #3261 )
2026-10-08 00:04:58 +02:00
Hampus
5c63d81ffd
fix(app): show the setup wizard on new instances, not sign-in ( #3260 )
2026-10-07 23:28:04 +02:00
Hampus
c402c52a8a
fix(app): read instance config safely in startup skeletons ( #3259 )
2026-10-07 23:27:59 +02:00
Hampus
317fedeef9
fix(ci): resolve a bare drive WORKDIR to the drive root ( #3258 )
2026-10-07 21:44:18 +02:00
Hampus
002502a7fa
feat(admin): one threads toggle, hide hosted-only rollouts ( #3257 )
2026-10-07 21:32:45 +02:00
Hampus
1997850d55
fix(threads): let administrators grant thread permissions ( #3256 )
2026-10-07 21:32:39 +02:00
Hampus
d346eb0e88
fix(desktop): generate build channel in tests, bump yoke-derive ( #3255 )
2026-10-07 19:57:20 +02:00
Hampus
7c5fa2180a
feat(desktop): bundled renderer, modules and instance accounts ( #3254 )
2026-10-07 16:48:07 +02:00
Hampus
c748c8af4e
feat(channels): redesign the create channel modal ( #3253 )
2026-10-07 15:26:11 +02:00
Hampus
ba59a13149
feat(threads): thread and forum UI on web ( #3252 )
2026-10-07 15:25:43 +02:00
Hampus
3f4160b138
feat(threads): thread and forum API, admin, schemas and docs ( #3251 )
2026-10-07 15:25:12 +02:00
Hampus
5f4295e399
feat(threads): gateway, messages and push thread support ( #3250 )
2026-10-07 15:24:40 +02:00
Hampus
4e730832c7
fix(installer): pull images before the first start ( #3248 )
2026-10-07 02:37:35 +02:00
Hampus
d7c00d4556
fix(schema): keep template topics optional after trimming ( #3247 )
2026-10-07 01:42:37 +02:00
Hampus
154b65afe5
docs(self-hosting): fix LiveKit CSP and backup guidance ( #3246 )
2026-10-07 00:09:39 +02:00
Hampus
fcc2a3f64b
docs(github): keep vulnerability reports out of chats ( #3245 )
2026-10-06 23:25:53 +02:00
Hampus
80456861ac
fix(api): accept long forum topics in imported templates ( #3244 )
2026-10-06 22:46:47 +02:00
Kai Compton and Hampus
0c4f016ba2
feat(config): read secrets from NAME_FILE variables ( #1421 )
...
Co-authored-by: Hampus <[email protected] >
2026-10-06 21:43:08 +02:00
Hampus
cc5545c333
fix(api): sync stripe customer email on change ( #3243 )
2026-10-06 21:38:25 +02:00
Hampus
6e28092cdc
fix(app): keep mention highlight when mentions are suppressed ( #3242 )
2026-10-06 20:58:28 +02:00
Hampus
8b6910d505
chore(github): send bug reports and ideas to feedback.fluxer.com ( #3241 )
2026-10-06 19:14:26 +02:00
Hampus
d87e31efaf
fix(app): drop the reply when its target message is deleted ( #3237 )
2026-10-06 02:14:00 +02:00
Hampus
6618a6baf4
fix(installer): replace a stale installer before upgrading ( #3235 )
2026-10-05 21:50:16 +02:00
Hampus
22b8f5454b
fix(app): skip forwarded messages when editing with arrow up ( #3234 )
2026-10-05 21:34:05 +02:00
Hampus
801bd3f106
fix(app): cycle dms in sidebar order with the keyboard ( #3233 )
2026-10-05 21:17:40 +02:00
Hampus
e26c8c870d
feat(api): archive and schedule automated message deletion ( #3231 )
2026-10-05 21:03:29 +02:00
Hampus
f4e545e090
fix(app): reorder dm list immediately on pin and unpin ( #3230 )
2026-10-05 20:45:50 +02:00
Hampus
2006fc0d8d
feat(push): allow listed hosts to resolve to private addresses ( #3228 )
2026-10-05 20:11:08 +02:00
Hampus
d456048e69
fix(svc): respect FLUXER_POSTGRES_SSL=false with a Postgres URL ( #3227 )
2026-10-05 20:00:50 +02:00
Hampus
fd35b4da24
fix(api): stop counting one refund twice against the allowance ( #3226 )
2026-10-05 17:41:28 +02:00
Hampus
283d179b05
fix(app): strip youtube is= share tracking param ( #3225 )
2026-10-05 17:33:35 +02:00
Hampus
3093e7334b
feat(api): derive stable placeholder names for hidden profiles ( #3224 )
2026-10-05 16:57:25 +02:00
Hampus
02c82f0038
fix(api): limit report auto-resolution on scheduled deletion ( #3221 )
2026-10-05 14:16:08 +02:00
Hampus
e1eecc3b6c
feat(auth): add username sign-in mode and recovery kits ( #3215 )
2026-10-05 14:10:07 +02:00
Hampus
bf3d73a5f7
fix(ci): drop removed preapproval docs and format a test ( #3220 )
2026-10-05 13:36:33 +02:00
Hampus
05257d6439
feat(api): add moderation events and visibility actions ( #3219 )
2026-10-05 13:24:19 +02:00
Hampus
532e828fe6
perf(app): restore preloading channels and guilds on hover ( #3208 )
2026-10-04 19:46:49 +02:00
Hampus
12a407aca8
fix(api): drop localized card checks and require pix for brazil ( #3203 )
2026-10-04 18:03:14 +02:00
Hampus
5ca458dada
fix(mentions): ignore @everyone and @here in one-to-one DMs ( #3199 )
2026-10-04 16:59:04 +02:00
Hampus
0aeff01c2d
feat(api): scope forwarded client ip trust per caller ( #3198 )
2026-10-04 16:36:41 +02:00
Hampus
2ac164d5b8
fix(voice): keep the mic graph on the real audio clock ( #3197 )
2026-10-04 16:18:34 +02:00
Hampus
14d475df9a
fix(app): explain how direct input and desktop shortcuts relate ( #3196 )
2026-10-04 15:12:52 +02:00
Hampus
f3c777b244
fix(gateway,api): reach NATS over IPv4 and survive boot races ( #3189 )
2026-10-04 03:06:12 +02:00
Hampus
1544e58e76
fix(desktop): show unsupported when non-GNOME portal bind fails ( #3188 )
2026-10-04 02:38:06 +02:00
Hampus
5d0c9c7cbe
fix(desktop): stub the build channel in the Linux session test ( #3186 )
2026-10-04 01:14:18 +02:00
Hampus
8f58fcc4c4
feat(desktop): portal-based Linux global shortcuts and PTT ( #3185 )
2026-10-04 01:08:51 +02:00
Hampus
5799ef705d
fix(app): send expired sessions to login on oauth authorize ( #3181 )
2026-10-03 20:39:34 +02:00
omster
0de7dde1ce
feat(app): reveal external link destinations on hover ( #3176 )
2026-10-03 19:44:03 +02:00
Hampus
7b39e5a79d
fix(api): treat typographic quotes as exact phrase search ( #3180 )
2026-10-03 19:43:08 +02:00
Hampus
583c791016
fix(app): keep the updater polling after async native results ( #3179 )
2026-10-03 19:42:41 +02:00
Hampus
bc5dcdfe21
feat(app): show paused-messaging banner across the app ( #3178 )
2026-10-03 19:31:43 +02:00
Hampus
973aaced96
chore(static): drop unused fluxer_static assets ( #3175 )
2026-10-03 18:22:03 +02:00
Hampus
3e9ee908f8
fix(ci): accept the static image's compound license label ( #3174 )
2026-10-03 18:20:58 +02:00
Hampus
e7347b582c
chore(license): relicense artwork and move non-free media out ( #3173 )
2026-10-03 17:53:42 +02:00
Hampus
71b7cffabc
fix(i18n): more natural French paused-messaging notice ( #3172 )
2026-10-03 17:04:40 +02:00
Hampus
da9e9ff0be
chore: tidy request handling across services ( #3168 )
2026-10-03 15:36:33 +02:00
Hampus
c6941d5905
style: run rustfmt on attachment url signature tests ( #3166 )
2026-10-03 15:00:45 +02:00
Hampus
a3cf960660
docs(discovery): document the channel preview route ( #3165 )
2026-10-03 14:48:09 +02:00
Hampus
7eebfca20b
feat(blocklist): add url-domain host patterns ( #3164 )
2026-10-03 14:46:08 +02:00
Hampus
e9167d96ec
feat(admin): add optional expiry to admin IP bans ( #3163 )
2026-10-03 14:41:00 +02:00
Hampus
1664050ef7
fix(app): use sidebar channel icons in forwarded-from source ( #3162 )
2026-10-03 14:25:56 +02:00
Hampus
7fa00c0e89
chore(admin): remove user type toggles ( #3161 )
2026-10-03 14:22:13 +02:00
Hampus
81d69c41f5
feat(discovery): resolve message links into discoverable guilds ( #3159 )
2026-10-03 13:12:30 +02:00
Hampus
4e6b837ccc
fix: tighten edge cases across services ( #3158 )
2026-10-03 13:04:29 +02:00
Hampus
a9f7a23c0d
fix(voice): point the corner volume at the focused stream ( #3157 )
2026-10-03 12:37:24 +02:00
Hampus
07301adc6d
fix(messages): keep mention highlight on hover in blocked groups ( #3156 )
2026-10-03 12:37:20 +02:00
Hampus
c6630008b5
fix(voice): enlarge participant avatars in the voice panel ( #3155 )
2026-10-03 12:19:37 +02:00
Hampus
cdcaba34ce
fix(self-hosting): cap meilisearch indexing threads by default ( #3153 )
2026-10-03 02:15:16 +02:00
Hampus
09b9a57e38
fix(guild): match the verification discovery note to filtering ( #3152 )
2026-10-03 02:14:54 +02:00
Hampus
79d7c85832
fix(app): retry emoji picker images that fail to load ( #3151 )
2026-10-03 02:14:28 +02:00
Hampus
eb0e8366bc
fix(voice): keep saved linux audio apps in the source picker ( #3150 )
2026-10-03 02:14:06 +02:00
Hampus
cf9752db4f
fix(voice): release call modals when fullscreen ends ( #3149 )
2026-10-03 02:13:46 +02:00
Hampus
d6fb3b2c50
fix(apps): stop bot permission labels overlapping ( #3148 )
2026-10-03 02:11:57 +02:00
Hampus
b04fdc68df
fix(storage): fall back when cross-bucket copy is rejected ( #3147 )
2026-10-03 02:11:34 +02:00
Hampus
706c41aad9
fix(auth): check the TOTP setup code before asking for sudo ( #3146 )
2026-10-03 02:11:14 +02:00
Hampus
db9ec0605e
fix(media-proxy): stop rejecting large storage transport chunks ( #3144 )
2026-10-03 02:10:55 +02:00
omster
a95172bf88
fix(app-call): utilise popout window opened by manager ( #2960 )
2026-10-03 01:11:23 +02:00
Hampus
597116a0b4
fix(app): stop blurring reactions and stickers in CW channels ( #3141 )
2026-10-02 23:52:17 +02:00
Hampus
811341bc2f
feat(email): configurable reply-to address ( #3140 )
2026-10-02 23:26:01 +02:00
Hampus
98fa41dcf0
fix(voice): avoid capped software h264 for auto screen shares ( #3139 )
2026-10-02 22:52:03 +02:00
Hampus
b52a0b5d5f
fix: friendlier wording for paused messaging ( #3138 )
2026-10-02 22:50:34 +02:00
Hampus
effeaaa435
fix(app): make web update detection survive flaky networks ( #3135 )
2026-10-02 21:39:52 +02:00
Hampus
27fc634bc9
perf(app): stop preloading channels and guilds on hover ( #3133 )
2026-10-02 19:04:14 +02:00
Hampus
69d93f9fee
fix(premium): serve the Plutonium page at /channels/@premium ( #3132 )
2026-10-02 18:20:01 +02:00
Hampus
00620715da
fix(api): drop leftover node stats logging ( #3131 )
2026-10-02 18:19:07 +02:00
Hampus
1ec8f31253
refactor: simplify account standing and verification levels ( #3130 )
2026-10-02 18:17:41 +02:00
Hampus
1abde06824
feat(admin): accept domain entries in the email blocklist ( #3129 )
2026-10-02 18:00:38 +02:00
Hampus
b54016653b
fix(app): show active incidents on the reconnecting banner ( #3128 )
2026-10-02 17:27:21 +02:00
Hampus
ee74d61f27
fix(channel): track the member list width with its divider ( #3127 )
2026-10-02 17:26:52 +02:00
Hampus
1f18d3262d
fix(composer): keep emoji autocomplete open on tilde names ( #3126 )
2026-10-02 17:26:30 +02:00
Hampus
8ea7707b37
fix(guild): clear guild header menu highlight on pointer leave ( #3125 )
2026-10-02 17:26:09 +02:00
Hampus
7b40df5d6c
fix(messages): keep spoilers on forwarded link embeds ( #3124 )
2026-10-02 17:25:33 +02:00
Hampus
6f98de33f7
fix(ui): portal combobox menus into the fullscreen call host ( #3123 )
2026-10-02 17:25:08 +02:00
Hampus
efe94ed094
fix(voice): stop offering h264 to firefox on linux ( #3122 )
2026-10-02 17:24:45 +02:00
Hampus
603b936536
fix(installer): point Fedora at podman with docker-compose ( #3121 )
2026-10-02 17:24:20 +02:00
Hampus
d87351eefe
fix(privacy): let minors block media in DMs from others ( #3120 )
2026-10-02 17:23:50 +02:00
Hampus
76e6891f5b
fix(api): credit self-hosted gift codes to the issuing admin ( #3119 )
2026-10-02 17:23:26 +02:00
Hampus
5040ae2c10
fix(sso): join provisioned users to the single community ( #3118 )
2026-10-02 17:23:03 +02:00
Hampus
87df92e2c2
fix(gifs): fetch featured category previews concurrently ( #3117 )
2026-10-02 17:22:30 +02:00
Hampus
237aff666d
perf(app-proxy): skip disk reads for absent static prefixes ( #3115 )
2026-10-02 16:09:34 +02:00
Hampus
11645cbf28
fix(ci): keep published source maps when a rebuild differs ( #3113 )
2026-10-02 15:25:05 +02:00
Hampus
e297a6a653
fix(app-proxy): make the SPA shell identical for every visitor ( #3112 )
2026-10-02 15:13:36 +02:00
Hampus
1eed347ffb
fix(premium): follow the light theme on the Plutonium page ( #3111 )
2026-10-02 14:15:24 +02:00
Hampus
4aa7a3e181
fix(voice): allow stereo mics at 64 kbps and in the mic test ( #3110 )
2026-10-02 14:11:19 +02:00
Hampus
69786d3b49
fix(voice): prefer vp8 for automatic screen shares in firefox ( #3109 )
2026-10-02 14:09:55 +02:00
Hampus
2fb5fb1abb
fix(voice): allow av1 and vp9 screen shares in firefox ( #3108 )
2026-10-02 14:08:41 +02:00
Hampus
a9265cbb39
perf(gateway): speed up reconnects and pin guilds to nodes ( #3107 )
2026-10-02 14:02:22 +02:00
Hampus
ee2d11ee0a
fix(voice): prefer vp9 over software h264 for screen shares ( #3106 )
2026-10-02 13:29:29 +02:00
Tarek
632067b552
feat(gateway,admin): Expand stats for metrics ( #3064 )
2026-10-02 12:58:16 +02:00
Hampus
840dc3dfa5
feat(premium): match the Plutonium page to the new site look ( #3104 )
2026-10-02 12:20:44 +02:00
Hampus
4e6f9b539c
fix(voice): make RNNoise the default noise suppression ( #3103 )
2026-10-02 11:31:40 +02:00
Hampus
98cce4815d
feat(users): add temporary new conversation limits ( #3100 )
2026-10-02 01:28:35 +02:00
Hampus
b375abc20a
feat(desktop): live-reload linked css theme files ( #3099 )
2026-10-02 01:02:30 +02:00
Hampus
21cb7ba69c
feat(premium): show App Store and Google Play subs on web ( #3098 )
2026-10-01 22:51:14 +02:00
Hampus
be69333eaf
feat(premium): add the Plutonium page behind an experiment ( #3097 )
2026-10-01 21:45:44 +02:00
Hampus
9a074adb11
fix(app): make disabling built-in shortcuts take effect live ( #3096 )
2026-10-01 20:37:28 +02:00
Hampus
2df82b2b5e
fix(guild): treat very high as high without phone verification ( #3095 )
2026-10-01 20:33:02 +02:00
Hampus
d691047884
feat(desktop): add start minimized option for launch at login ( #3094 )
2026-10-01 19:51:43 +02:00
Hampus
c2e7fde5bc
test(api): isolate crosspost tests that mock constants ( #3091 )
2026-10-01 17:13:49 +02:00
Hampus
7e4d5137f8
feat: add announcement channels, publishing and following ( #3090 )
2026-10-01 16:57:21 +02:00
Hampus
376afd2ad6
fix(voice): keep mic publish state in sync with voice state ( #3088 )
2026-10-01 14:03:04 +02:00
Hampus
e3fcedbec5
fix(voice): stabilize voice input and noise suppression ( #3087 )
2026-10-01 14:02:12 +02:00
Hampus
7c9564bcad
feat(deploy): add helm charts for the fluxer services ( #3082 )
2026-10-01 04:11:30 +02:00
Hampus
cfed6cc4e0
perf(media-proxy): gzip static assets on the fly ( #3079 )
2026-09-30 23:41:16 +02:00
Hampus
c7bd1be3e4
fix(auth): offer every transport for passkeys stored without any ( #3077 )
2026-09-30 23:01:37 +02:00
Hampus
2161d84701
fix(self-hosting): grow seaweedfs one volume at a time ( #3076 )
2026-09-30 22:55:12 +02:00
Hampus
eaeeb3b502
fix(api): report final system DM progress ( #3074 )
2026-09-30 22:11:34 +02:00
Hampus
dc32a7c70e
feat(admin): allow system DMs to all users ( #3073 )
2026-09-30 21:29:05 +02:00
Hampus
ab0b483fbe
perf(gateway): speed up presence and harden guild queries ( #3072 )
2026-09-30 21:12:13 +02:00
Hampus
6e2f90b03c
fix(premium): drop the grace period after a voluntary cancel ( #3071 )
2026-09-30 21:03:25 +02:00
Hampus
5e0806f479
fix(voice): preserve microphone channels during screen sharing ( #3070 )
2026-09-30 20:47:30 +02:00
Hampus
dfdfffe5de
feat(premium): give failed renewals a billing-cycle grace period ( #3066 )
2026-09-30 18:48:01 +02:00
Hampus
f5e32aed31
fix(ci): correct TTL fixtures and unused dependencies ( #3065 )
2026-09-30 17:45:07 +02:00
Hampus
710c1aeaa8
fix(deps): bump yanked yoke-derive to 0.8.4 ( #3063 )
2026-09-30 16:59:59 +02:00
Hampus
af49cd6cc4
refactor(ban): drop ipinfo cgnat blast-radius guard ( #3062 )
2026-09-30 16:54:43 +02:00
omster
ca719e7b5e
feat(admin,api): restrict community creation on self-hosted ( #3055 )
2026-09-30 16:32:45 +02:00
Hampus
ab4069ed0e
fix(app): let hidden sidebar buttons be shown again ( #3061 )
2026-09-30 15:03:44 +02:00
Hampus
12bfaa83ba
fix(sso): route mobile sign-in through the web callback ( #3060 )
2026-09-30 14:48:24 +02:00
Hampus
1076728241
perf(gateway): keep large guilds responsive under floods ( #3058 )
2026-09-30 12:26:21 +02:00
Hampus
360b984adc
fix(ci): repair admin test config and a ttl race in api tests ( #3054 )
2026-09-30 02:39:46 +02:00
Hampus
dcdf7e1d93
fix(api): let new channels inherit the adult-only setting ( #3053 )
2026-09-30 02:31:47 +02:00
Hampus
e8cb167dbf
feat(premium): add App Store and Google Play purchases ( #3052 )
2026-09-30 01:55:19 +02:00
Hampus
0b3418dcbe
fix(app): make unchecked checkbox border visible ( #3050 )
2026-09-30 01:23:43 +02:00
Hampus
ec7649193c
docs(admin): document notify_reporter on report resolve ( #3049 )
2026-09-30 01:01:22 +02:00
Hampus
2b8a743dc5
refactor(self-hosting): forward every setting, drop dead config ( #3047 )
2026-09-30 00:58:43 +02:00
Hampus
39f9beda5a
fix(api): send correct staff emails and allow suppressing them ( #3048 )
2026-09-29 23:55:54 +02:00
Hampus
f0b3c82cfd
fix(app): scroll quick switcher selection after typing ( #3044 )
2026-09-29 20:54:08 +02:00
Hampus
2808edf6d0
fix(push): keep notification images within the web push budget ( #3043 )
2026-09-29 20:35:56 +02:00
Hampus
071263188a
fix(push): run the stale DM read check on presence nodes ( #3042 )
2026-09-29 19:51:36 +02:00
Hampus
f9108f24ce
feat(self-host): add an overlay that turns off bundled seaweedfs ( #3041 )
2026-09-29 19:49:02 +02:00
Hampus
e98b77a54a
fix(api): stop treating users without a birth date as minors ( #3040 )
2026-09-29 18:27:15 +02:00
Hampus
2636e9cc13
fix(voice): lower DeepFilterNet attenuation limit to 30 dB ( #3039 )
2026-09-29 18:16:13 +02:00
Jiralite
944b586f22
fix(UseForwardDestinations): hide system user ( #3038 )
2026-09-29 18:14:19 +02:00
Hampus
4f968bbc47
feat(captcha): make ALTCHA the only captcha ( #3035 )
2026-09-29 17:00:15 +02:00
Hampus
d433a039b5
feat(profile): ship profile timezone to everyone ( #3034 )
2026-09-29 16:28:40 +02:00
Hampus
b30ea361d3
fix(push): stop pushes for read, silent and muted messages ( #3033 )
2026-09-29 15:58:46 +02:00
Hampus
9908518f5b
feat(app): add quick reply and edit keybinds ( #3032 )
2026-09-29 15:50:56 +02:00
Hampus
364084c819
refactor(api): emit moderation events and apply account actions ( #3031 )
2026-09-29 12:24:15 +02:00
Hampus
c488906131
feat(voice): ship noise suppression treatment to everyone ( #3029 )
2026-09-29 03:43:58 +02:00
Hampus
39c72f0fb0
fix(desktop): require readable keyboards for Linux input access ( #3026 )
2026-09-28 22:27:20 +02:00
Hampus
3736d94d73
feat(premium): let self-hosted instances sell premium and gifts ( #3025 )
2026-09-28 21:21:51 +02:00
Hampus
192cec689a
fix(app): keep voice connections of one session across channels ( #3023 )
2026-09-28 19:50:47 +02:00
Hampus
e895c41bf0
fix(app): tighten the composer status row ( #3022 )
2026-09-28 19:50:00 +02:00
Hampus
997d98c65c
fix(app): fade messages behind the composer status row ( #3020 )
2026-09-28 18:47:42 +02:00
Hampus
c9ae5b6ee8
fix(app): smooth the fluxer.com migration and expired re-login ( #3019 )
2026-09-28 18:11:18 +02:00
Hampus
a728be4062
fix(app): respect time format setting in profile local time ( #3018 )
2026-09-28 17:48:55 +02:00
Hampus
fce81367fb
fix(app): stop message text showing through the slowmode hint ( #3017 )
2026-09-28 17:29:15 +02:00
Hampus
5a4edc0b59
fix(api): make read state clear endpoint a no-op ( #3015 )
2026-09-28 16:31:30 +02:00
Hampus
713ae5f7f5
feat(api): restrict dms to friends by default for new users ( #3013 )
2026-09-28 15:02:20 +02:00
Hampus
eaee820216
feat(experiments): target rollouts by guild and premium status ( #3012 )
2026-09-28 14:34:19 +02:00
Hampus
564c5ae164
feat(profile): move profile timezone from staff to an experiment ( #3011 )
2026-09-28 12:57:26 +02:00
Hampus
dd8ed6f205
fix(app): react at once when picking a +: autocomplete emoji ( #3010 )
2026-09-28 12:30:45 +02:00
Hampus
ed8c412415
perf(gateway): make channel moves cheap in large guilds ( #3008 )
2026-09-28 02:07:47 +02:00
Hampus
12417a6942
fix(app): keep the caret after inserted emoji ( #3007 )
2026-09-28 01:56:08 +02:00
Hampus
d05f6c9aaa
fix(gateway): push held users whose sessions end during grace ( #3006 )
2026-09-28 01:47:55 +02:00
Hampus
0ca035c547
fix(messages): accept null version on legacy message rows ( #3004 )
2026-09-28 01:10:52 +02:00
Hampus
dfd46ccc2c
ci(gateway): drop cached gateway build output before compiling ( #3003 )
2026-09-28 01:08:52 +02:00
Hampus
f6df3169ca
fix(app): use +:shortcode: for reactions, no space before emoji ( #3001 )
2026-09-28 00:48:23 +02:00
Hampus
5b280898c5
refactor(push): retire the push service delivery experiment ( #3000 )
2026-09-28 00:45:22 +02:00
Hampus
2a9e25c788
fix(dev): drop the stray -- from the tunnel public URL hint ( #2999 )
2026-09-28 00:43:32 +02:00
Hampus
463c03fb6d
feat(app): make +emoji react on send and target replies ( #2998 )
2026-09-28 00:08:40 +02:00
Hampus
153dad11e1
feat(installer): let upgrades copy the uploads uncompressed ( #2995 )
2026-09-27 23:51:24 +02:00
Hampus
e2d05a44a8
fix(push): stop retrying relay rate limit refusals ( #2993 )
2026-09-27 23:29:27 +02:00
Hampus
30ba55bd4d
fix(gateway): parse push relay hosts as binaries ( #2989 )
2026-09-27 21:22:45 +02:00
Hampus
9def9fbef6
feat(api): accept CIDR ranges in FLUXER_API_IP_BAN_EXEMPT_IPS ( #2988 )
2026-09-27 21:19:35 +02:00
Hampus
fa3fd0027c
fix(i18n): translate the push relay notice strings ( #2987 )
2026-09-27 21:15:33 +02:00
Hampus
7e1b934637
feat(captcha): add ALTCHA proof-of-work captcha experiment ( #2986 )
2026-09-27 21:02:55 +02:00
Hampus
33a118d12a
docs(readme): list the Google Play beta first for Android ( #2985 )
2026-09-27 20:49:39 +02:00
Hampus
01f53a168d
feat(push): gate relay delivery on operator consent ( #2984 )
2026-09-27 20:33:10 +02:00
Hampus
336b8b7dcd
fix(forward): make an @silent comment silence the forward too ( #2983 )
2026-09-27 20:13:14 +02:00
Hampus
48d0034239
fix(app-proxy): trust the Play app signing certificate ( #2982 )
2026-09-27 19:37:40 +02:00
Hampus
677ef8491e
fix(desktop): back off failed app loads and offer a retry ( #2980 )
2026-09-27 16:18:01 +02:00
Hampus
6a6119ed1e
fix(push): preview forwarded message content ( #2979 )
2026-09-27 13:33:22 +02:00
Hampus
931327d1dc
fix(push): stop sending notifications for system messages ( #2978 )
2026-09-27 13:33:18 +02:00
Hampus
858a2d9e2b
fix(oauth): stop granting scopes the user turned off ( #2968 )
2026-09-26 13:48:23 +02:00
Hampus
841fb7af41
feat(auth): migrate passkeys to fluxer.com ( #2964 )
2026-09-25 22:33:50 +02:00
Hampus
08e65d41c0
fix(api): clear the perks-sanitized latch when premium returns ( #2963 )
2026-09-25 20:13:00 +02:00
Hampus
f76c4dc041
fix(api): cancel only the subscription the refund belongs to ( #2962 )
2026-09-25 20:10:54 +02:00
Hampus
f1f8ba2031
fix(app): add copy link to link channel context menus ( #2959 )
2026-09-25 18:16:20 +02:00
Hampus
5ab8d745c0
fix(i18n): correct the fluxer.com migration translations ( #2958 )
2026-09-25 17:46:07 +02:00
Hampus
ff62bc89a4
feat(app): add passkey popup bridge for password managers ( #2957 )
2026-09-25 17:43:19 +02:00
Hampus
838bbdb5ec
fix(app): only start the domain migration when the app opens ( #2956 )
2026-09-25 16:44:58 +02:00
Hampus
1c36a59b2c
feat(app): rework quick switcher ranking and show origin icons ( #2953 )
2026-09-25 13:59:25 +02:00
Hampus
6730a242db
feat(web): prepare the fluxer.com domain migration ( #2952 )
2026-09-25 13:43:34 +02:00
Hampus
e62ae77643
refactor(config): trim the default passkey origin list ( #2951 )
2026-09-25 13:42:02 +02:00
Hampus
f4f39e6a89
feat(app): show where forward destinations come from ( #2950 )
2026-09-25 13:12:17 +02:00
Hampus
00bf74cef5
fix(app): handle swapped overwrites when comparing channels ( #2949 )
2026-09-24 23:38:04 +02:00
Hampus
c1c45d835f
fix(app): only parse markdown in rich embeds ( #2948 )
2026-09-24 22:50:34 +02:00
Hampus
bbfe809bef
fix(app): crop animated images on web with libwebp ( #2947 )
2026-09-24 22:45:53 +02:00
Hampus
e0843ac4f5
fix(app): keep guild folder expansion state local ( #2944 )
2026-09-24 17:52:33 +02:00
Hampus
43741cdad8
fix(gateway): always trim the connect snapshot for guild connects ( #2943 )
2026-09-24 17:09:48 +02:00
Hampus
b8e3807262
Revert "fix(push): deliver direct messages without holding them" ( #2942 )
2026-09-24 17:09:44 +02:00
Hampus
3304f01a84
chore(i18n): recompile uk error catalog ( #2941 )
2026-09-24 17:09:36 +02:00
fluxer-weblate[bot]
2ba463235b
chore(i18n): update translations from Weblate ( #2909 )
2026-09-24 16:25:26 +02:00
fluxer-weblate[bot]
15136fed59
chore(i18n): update translations from Weblate ( #2923 )
2026-09-24 16:25:05 +02:00
Hampus
6013581dd9
fix(push): deliver direct messages without holding them ( #2938 )
2026-09-24 16:21:42 +02:00
Hampus
7a91f128e9
fix(app-proxy): drop link preview metadata on self-hosted ( #2936 )
2026-09-24 16:07:00 +02:00
Hampus
963ffc5550
feat(push): scope read clears to the enrolled cohort ( #2935 )
2026-09-24 15:15:45 +02:00
Hampus
a90991612c
fix(gateway): truncate reads on an expired outbox entry ( #2934 )
2026-09-24 15:04:24 +02:00
Hampus
50ad23b760
fix(api): run the notification extension on every iOS alert ( #2933 )
2026-09-24 15:04:01 +02:00
Hampus
425dab983b
fix(push): restore iOS avatars and stop misrouting relay endpoints ( #2932 )
2026-09-24 15:03:32 +02:00
Hampus
a0825e77c4
feat(voice): ship the screen share delivery rework to everyone ( #2931 )
2026-09-24 14:57:40 +02:00
Hampus
88038a1d5b
fix(voice): stop direct input capturing microphones in stereo ( #2929 )
2026-09-24 14:51:05 +02:00
Hampus
c2c0fdb445
fix(app): make corner volume control the focused stream ( #2928 )
2026-09-24 14:04:05 +02:00
Hampus
dcd5f09d6a
feat(api): add env toggles for automatic phone flagging ( #2927 )
2026-09-24 03:36:35 +02:00
Hampus
590b1f36fd
docs(downloads): document the canary apt and dnf repositories ( #2926 )
2026-09-24 03:29:52 +02:00
Hampus
168ac727f1
fix(desktop): set the deb package synopsis ( #2925 )
2026-09-24 03:29:33 +02:00
Hampus
deb86dd92e
fix(admin): format users list search hint ( #2924 )
2026-09-24 02:12:37 +02:00
omster
7ccec4d3b8
feat(admin): hint text for * search in user page ( #2922 )
2026-09-24 01:56:17 +02:00
omster
2f38bcdf26
fix(admin): ordering fixes for admin user search and meilisearch ( #2920 )
2026-09-24 01:45:56 +02:00
Hampus
f2785941aa
fix(app): point self-hosted users at their instance admins ( #2921 )
2026-09-24 01:42:33 +02:00
Hampus
ea9f83a443
fix(push): keep read-state clears alive as long as the alert ( #2919 )
2026-09-24 01:26:18 +02:00
Hampus
bd6ca7290e
fix(api): allow deleting messages without send permission ( #2918 )
2026-09-24 01:14:01 +02:00
Hampus
b85e975fb5
feat(push): deliver our own relay endpoints in process ( #2917 )
2026-09-24 01:07:09 +02:00
Hampus
b6e504f68c
fix(push): keep device tokens out of logs ( #2916 )
2026-09-24 00:33:50 +02:00
Hampus
5fde6eb484
feat(push): ring Android calls and harden the relay ( #2915 )
2026-09-24 00:07:15 +02:00
Hampus
b16989d567
feat(push): ring incoming calls on Apple PushKit devices ( #2911 )
2026-09-23 20:21:08 +02:00
Hampus
c9754ac11a
fix(api): exempt internal rpc from the client ip check ( #2910 )
2026-09-23 18:03:36 +02:00
fluxer-weblate[bot]
f34e4a5115
chore(i18n): update translations from Weblate ( #2903 )
2026-09-23 17:28:25 +02:00
fluxer-weblate[bot]
44b3615298
chore(i18n): update translations from Weblate ( #2904 )
2026-09-23 17:27:59 +02:00
Hampus
211e98307d
perf(push): cache endpoint guard dns verdicts ( #2907 )
2026-09-23 17:27:19 +02:00
Hampus
18c303abf6
feat(push): relay notifications as encrypted web push ( #2906 )
2026-09-23 14:04:55 +02:00
Jiralite
7021a58090
fix: allow copying message snapshots ( #2905 )
2026-09-23 14:01:10 +02:00
Wagner
320725a587
fix(desktop): capture full pipewire quantum on linux ( #2481 )
2026-09-22 21:37:20 +02:00
fluxer-weblate[bot]
8450edc072
chore(i18n): update translations from Weblate ( #2895 )
2026-09-22 21:28:24 +02:00
omster
a1e2bf2c8d
feat(dev/linux): select the wayland backend when reachable in the native desktop app ( #2899 )
...
Signed-off-by: omstr <[email protected] >
2026-09-22 21:27:59 +02:00
Hampus
82b2f4ec5e
fix(app): put jxl and other image attachments in the mosaic ( #2902 )
2026-09-22 21:18:39 +02:00
Hampus
c92e5d03a7
fix(api): accept any image or video attachment as embed media ( #2901 )
2026-09-22 21:18:35 +02:00
Hampus
91340c5c84
fix(markdown): compile the parser wasm asynchronously ( #2900 )
2026-09-22 19:58:38 +02:00
Hampus
045dd5d027
test(api): make the harvest token tamper test deterministic ( #2894 )
2026-09-22 02:20:18 +02:00
Hampus
a21b9c4659
docs(readme): clean up the download prose ( #2893 )
2026-09-22 02:08:42 +02:00
Hampus
4b1b869802
docs(readme): point Linux installs at Flathub ( #2892 )
2026-09-22 02:04:06 +02:00
Hampus
1ab7e7dfcc
fix(api): unfurl links to a self-hosted instance's own domain ( #2891 )
2026-09-22 02:00:51 +02:00
Hampus
31c53d2dff
fix(app): stop pending stickers from reloading the channel ( #2890 )
2026-09-22 02:00:26 +02:00
Hampus
412a1ae79d
perf(api): stop ledgering session payment reconciliation ( #2889 )
2026-09-22 01:37:21 +02:00
Hampus
0b2306ec3d
fix(api): honour default TTLs and expire stale job ledger rows ( #2887 )
2026-09-21 23:16:39 +02:00
Hampus
242ed3a934
fix(desktop): drop orphaned Squirrel uninstall entry ( #2885 )
2026-09-21 20:03:33 +02:00
Hampus
70e1ce682a
feat(emoji): add Unicode 17 emoji and fix mixed skin tones ( #2883 )
2026-09-21 16:26:06 +02:00
Hampus
7601bf98ee
fix(channel): sync a cleared group DM name without a reload ( #2882 )
2026-09-21 15:34:18 +02:00
Tarek and Hampus
c7ec2a0f58
chore(tooling): Ignore .vscode/ in .gitignore ( #2868 )
...
Co-authored-by: Hampus <[email protected] >
2026-09-21 13:29:33 +02:00
Xeon
6a5e0056a8
fix(flatpak): Add a release tag and make small corrections ( #2872 )
2026-09-21 13:28:36 +02:00
Hampus
78d105b46e
fix(desktop): stop looping on an update that never installs ( #2879 )
2026-09-21 03:36:11 +02:00
Hampus
c68d62b8a0
fix(voice): darken screen share source titles in light theme ( #2878 )
2026-09-21 01:20:54 +02:00
Hampus
df58020f4c
fix(api): keep premium paid for after a subscription cancels ( #2875 )
2026-09-20 23:50:49 +02:00
Hampus
f052ce05aa
fix(workspace): point the Erlang extension at the repo root ( #2871 )
2026-09-20 19:49:06 +02:00
Hampus
eedfd9275f
fix(api): only require permissions a channel overwrite grants ( #2867 )
2026-09-20 17:56:22 +02:00
Hampus
416af4bec4
fix(docs): correct the flatpak and dnf signing instructions ( #2865 )
2026-09-20 16:42:33 +02:00
Hampus
108d282ddd
chore(deps): pin pnpm 11 so the lockfile parses for packagers ( #2864 )
2026-09-20 15:30:50 +02:00
Hampus
a6103244b0
docs(readme): fix the license wording and shrink the preview ( #2862 )
2026-09-20 15:11:06 +02:00
Hampus
38935c83c5
docs(readme): document every download and install method ( #2861 )
2026-09-20 15:05:54 +02:00
Hampus
c157ab5752
feat(voice): rework screen share delivery behind an experiment ( #2859 )
2026-09-20 06:10:20 +02:00
Hampus
574a93257c
docs(downloads): the pacman repository is signed ( #2858 )
2026-09-20 05:54:28 +02:00
Hampus
ba7d8781cf
feat(auth): make passkey two-factor authentication opt-in ( #2857 )
2026-09-20 05:06:50 +02:00
Hampus
3256af8d92
refactor(app-proxy): remove the stable time freeze ( #2856 )
2026-09-20 04:02:47 +02:00
Hampus
86043212f2
docs(downloads): one pacman repository holds both channels ( #2855 )
2026-09-20 02:50:08 +02:00
Hampus
5d85e88532
fix(search): suggest yourself in DM from: and mentions: filters ( #2854 )
2026-09-20 01:24:43 +02:00
Hampus
e2abfd476a
feat(api): redirect desktop downloads to pkgs ( #2853 )
2026-09-20 01:20:30 +02:00
Hampus
487febac8e
fix(voice): make stereo microphones work in studio and custom ( #2852 )
2026-09-20 00:19:53 +02:00
Hampus
a3454e8245
fix(installer): name the services that are not ready ( #2851 )
2026-09-19 23:34:08 +02:00
Hampus
bf7567b768
fix(user): push guild member updates on profile field changes ( #2850 )
2026-09-19 23:30:25 +02:00
Hampus
ac3450ab32
feat(ci): publish appimage zsync control files ( #2849 )
2026-09-19 22:22:54 +02:00
Hampus
5d034becb8
fix(installer): stop waiting for an absent bucket initialiser ( #2848 )
2026-09-19 22:14:13 +02:00
Hampus
f9397d0db9
feat(ci): publish linux repositories from the desktop release ( #2847 )
2026-09-19 22:01:06 +02:00
Hampus
9005139dc8
fix(voice): stop stereo microphones publishing as mono ( #2846 )
2026-09-19 21:54:38 +02:00
Hampus
d93604afa2
fix(voice): let screen shares use the hardware H.264 encoder ( #2845 )
2026-09-19 21:54:30 +02:00
Hampus
c4f0b2ece0
feat(desktop): self-update appimages in place ( #2843 )
2026-09-19 19:06:53 +02:00
Hampus
98a42f612b
fix(desktop): supersede the legacy linux packages on upgrade ( #2842 )
2026-09-19 18:50:37 +02:00
Hampus
cc75e1318d
fix(ci): raise the macos minimum to 13.0 ( #2841 )
2026-09-19 18:35:05 +02:00
Hampus
9027cbdf3e
fix(voice): send screen shares at the quality the user picked ( #2840 )
2026-09-19 16:46:22 +02:00
Hampus
2119e10ed5
chore(static): update marketing screenshots and readme cover ( #2839 )
2026-09-19 16:44:32 +02:00
Hampus
87f3eb3c81
feat(desktop): add flatpak and arch packaging inputs ( #2838 )
2026-09-19 15:31:41 +02:00
Hampus
f9bb8bd585
test(voice): remove the slow screen share delivery proof ( #2836 )
2026-09-19 02:33:32 +02:00
Hampus
bc47a724af
fix(voice): stop screen shares failing to reach their viewers ( #2835 )
2026-09-19 02:17:25 +02:00
Hampus
f32356801d
feat(api): make tor and breached password lookups opt-in ( #2834 )
2026-09-19 01:22:17 +02:00
Hampus
efd677f32b
feat(api): exempt configured ASNs from abusive IP auto-bans ( #2833 )
2026-09-18 23:01:58 +02:00
Hampus
3cec27ba57
fix(static): vendor the deepfilternet 1.3.0 assets ( #2832 )
2026-09-18 18:47:42 +02:00
Hampus
1f810ba04d
fix(api): drop the upload segment signal and dead exports ( #2831 )
2026-09-18 17:35:58 +02:00
Hampus
522cf08e61
feat(media-proxy): sign attachment URLs and gate origins ( #2830 )
2026-09-18 15:57:32 +02:00
Hampus
025c01ab13
fix(api): chunk guild permission batch RPC over 100 guilds ( #2829 )
2026-09-18 12:54:03 +02:00
Hampus
dc41b53d60
fix(desktop): drop redundant casts flagged by clippy 1.98 ( #2826 )
2026-09-17 21:28:48 +02:00
Hampus
3b552e00ef
chore(deps): upgrade all dependencies, toolchains and images ( #2825 )
2026-09-17 21:08:56 +02:00
Hampus
56e04e7b53
test(backend): remove duplicate and useless tests ( #2820 )
2026-09-17 15:32:25 +02:00
Hampus
deac653a9e
test(app): remove useless frontend tests ( #2819 )
2026-09-17 15:05:36 +02:00
Hampus
ed9528834d
fix(gateway): stop dead sessions leaving voice states behind ( #2818 )
2026-09-17 14:55:18 +02:00
Hampus
4cecbf1f43
fix(auth): disable TOTP with one code instead of two ( #2816 )
2026-09-17 04:21:50 +02:00
Hampus
b019f4a91f
fix(gateway): act on voice states in the voice server ( #2815 )
2026-09-17 03:59:36 +02:00
Hampus
34b6ecfbd2
chore(admin): remove the heap snapshot endpoint ( #2814 )
2026-09-16 18:56:01 +02:00
Hampus
4ef9c4c65b
fix(api): restore commas in geoip location labels ( #2812 )
2026-09-16 18:27:50 +02:00
Hampus
3276039e41
feat(admin): audit admin reads and filter the log by access ( #2811 )
2026-09-16 17:23:03 +02:00
Hampus
03d1354562
chore(voice): remove voice reconciliation leftovers ( #2810 )
2026-09-16 17:09:57 +02:00
Hampus
964845d7a7
chore(voice): remove the recon service ( #2808 )
2026-09-16 16:53:30 +02:00
Hampus
3bc5dd8e0f
fix(gateway): always clear expired custom statuses ( #2807 )
2026-09-16 16:52:22 +02:00
Hampus
17292fd6a5
fix(app): stop plain unicode symbols rendering as color emoji ( #2806 )
2026-09-16 16:33:13 +02:00
Tarek
f753659899
feat(instance): make the status page URL configurable ( #1159 )
2026-09-16 15:20:37 +02:00
Hampus
7412ec3395
refactor(api): purge cache by canonical media prefix ( #2802 )
2026-09-16 02:32:36 +02:00
Hampus
570c8776c4
fix(api): require manage messages to remove others' reactions ( #2799 )
2026-09-15 18:16:55 +02:00
Hampus
910db6734b
feat(experiments): ship seven treatments to everyone ( #2798 )
2026-09-15 18:03:35 +02:00
Hampus
9e614026d7
fix(api): stop exporting the change feed stats type ( #2797 )
2026-09-15 17:27:09 +02:00
Hampus
b38e7c6433
feat(api): publish object storage changes to a JetStream feed ( #2796 )
2026-09-15 17:20:26 +02:00
Hampus
83c8e91955
fix(app): fit the user area popout shadow to its card ( #2795 )
2026-09-15 17:11:43 +02:00
Hampus
0532dd0440
fix(app): stop guild banner jumps and restore hover animation ( #2792 )
2026-09-15 09:31:52 +02:00
Hampus
a08615e306
fix(gateway): match member search on username and global name ( #2791 )
2026-09-15 08:48:33 +02:00
Hampus
f4c5fee17e
feat(app): rank forward destinations and preview the message ( #2790 )
2026-09-15 07:23:26 +02:00
Hampus
c5aaf65a10
fix(app): list friends with closed DMs in the forward modal ( #2787 )
2026-09-15 00:39:18 +02:00
Hampus
951e39da3d
feat(api): add expression source guild routes ( #2786 )
2026-09-15 00:31:47 +02:00
Hampus
b693d84d2b
fix(openapi): restore named discriminated union branches ( #2785 )
2026-09-14 23:42:26 +02:00
Hampus
9bbf6c513b
fix(installer): say what the email prompt is for ( #2784 )
2026-09-14 23:07:03 +02:00
Hampus
50cec92738
fix(api): batch member user lookups on guild load ( #2783 )
2026-09-14 23:06:36 +02:00
Hampus
c212d315f4
fix(app): gate reworked typing indicators behind an experiment ( #2782 )
2026-09-14 21:54:52 +02:00
Hampus
1861432a53
fix(app): scope message rings and reach the composer by key ( #2781 )
2026-09-14 21:44:12 +02:00
Hampus
d0c6146429
feat(app): gate a collapsing guild header behind an experiment ( #2779 )
2026-09-14 21:15:31 +02:00
Hampus
550e6b05a1
fix(app): show hover highlight and inset the focus ring ( #2778 )
2026-09-14 20:51:59 +02:00
Hampus
5b6949170f
chore(donations): drop the donor email case backfill script ( #2776 )
2026-09-14 20:45:38 +02:00
Hampus
f32bc37794
fix(guild): correct activity log sentence presentation ( #2777 )
2026-09-14 20:43:08 +02:00
Hampus
8ee2279b4b
feat(donations): add Nordic currencies, raise amount ceilings ( #2775 )
2026-09-14 20:27:24 +02:00
Hampus
6339c3b8ad
feat(app): gate the expression info card behind an experiment ( #2773 )
2026-09-14 20:14:58 +02:00
Hampus
7c9274847f
feat(gateway): list bot ready guilds as unavailable ( #2774 )
2026-09-14 20:08:26 +02:00
Hampus
5d1dddc093
fix(deps): update rustls for RUSTSEC-2026-0285 ( #2772 )
2026-09-14 19:01:22 +02:00
Hampus
04481d7235
fix(app): keep blockquotes open across pasted lines ( #2771 )
2026-09-14 18:54:04 +02:00
Hampus Kraft
a3d6cf37cb
fix(guild): render activity log entries deterministically ( #2766 )
2026-09-14 17:39:19 +02:00
Hampus
ed10f9d323
fix(app): gate blocked group rendering behind an experiment ( #2763 )
2026-09-14 16:08:19 +02:00
Hampus
4b278a0da8
fix(app): gate one-Tab message focus behind an experiment ( #2762 )
2026-09-14 15:55:00 +02:00
Hampus
1281045648
fix(app): gate single-source message hover behind an experiment ( #2761 )
2026-09-14 15:37:37 +02:00
Hampus
69c42cff90
docs: reword vague sentences and fix wrong claims ( #2760 )
2026-09-14 15:18:53 +02:00
Hampus
7d56481aba
fix(app): copy selected message text without markdown ( #2759 )
2026-09-14 14:53:53 +02:00
Hampus
91a2604e9e
fix(admin): apply audit logs and side effects to bulk actions ( #2758 )
2026-09-14 14:34:43 +02:00
Hampus
a9dc74a520
fix(app): hide unread channels in muted collapsed categories ( #2752 )
2026-09-13 23:59:28 +02:00
Hampus
a9cc04d277
fix(media-proxy): retry relay uploads on dropped connections ( #2751 )
2026-09-13 23:35:09 +02:00
Hampus
8cb097f954
fix(i18n): review translations and fix i18n library misuse ( #2750 )
2026-09-13 22:58:09 +02:00
Hampus
78f783f0c4
fix(media-proxy): retry dropped connections and log the cause ( #2749 )
2026-09-13 22:39:13 +02:00
Hampus Kraft
d14998ff69
fix(app): back off image, reaction and settings retries on 429 ( #2743 )
2026-09-13 21:04:31 +02:00
Hampus
ca7ddd9272
refactor(api): drop Bunny for pluggable cache purge adapters ( #2742 )
2026-09-13 20:28:56 +02:00
Hampus
84dcf6b8a8
refactor(imports): replace relative imports with path aliases ( #2741 )
2026-09-13 20:18:22 +02:00
Hampus
a59b80ce11
docs(api): correct the synced preferences size limits ( #2740 )
2026-09-13 19:37:32 +02:00
Hampus
007f338823
feat(schema): add double tap reaction to synced preferences ( #2739 )
2026-09-13 18:47:21 +02:00
Hampus
7d34d25497
fix(ci): stop verifying published assets against the CDN ( #2738 )
2026-09-13 18:04:08 +02:00
Hampus
7375ac9d80
docs: simplify the reference and tighten the verifier ( #2736 )
2026-09-13 17:38:50 +02:00
Hampus
6af33c7188
refactor(svc): tidy the rust services and build tooling ( #2735 )
2026-09-13 17:38:32 +02:00
Hampus
33737e0f79
refactor(admin): tidy the admin routes and templates ( #2734 )
2026-09-13 17:38:15 +02:00
Hampus
5afbf67a70
refactor(api): tidy the api and shared packages ( #2733 )
2026-09-13 17:37:48 +02:00
Hampus
580401d2dc
chore(marketing): remove the private marketing submodule ( #2732 )
2026-09-13 16:37:55 +02:00
Hampus
38b7c63431
fix(admin): declare gateway cluster_metrics in node stats ( #2728 )
2026-09-12 22:48:22 +02:00
Hampus
57d08cd091
fix(api): keep stickers on messages sent to personal notes ( #2727 )
2026-09-12 20:20:26 +02:00
Hampus
91e2d31614
style(voice): format the room_finished webhook test
2026-09-12 16:05:26 +02:00
Hampus
d375dc7946
fix(ci): stop a new component blocking every other image promote
2026-09-12 16:01:47 +02:00
Hampus
3fffce2a4a
fix(voice): correct the room_finished test harness types ( #2723 )
2026-09-12 15:49:47 +02:00
Hampus
376c509083
docs(self-host): tighten the env example comments ( #2722 )
2026-09-12 15:39:24 +02:00
Hampus
156315fd5a
docs: drop exact counts that go stale when inventory changes ( #2721 )
2026-09-12 15:39:07 +02:00
Hampus
c7b9e9b9bd
fix(voice): stop room_finished evicting a whole channel ( #2720 )
2026-09-12 15:38:50 +02:00
Hampus
12397032e3
feat(voice): add the recon service and remove the old worker ( #2719 )
2026-09-12 15:38:32 +02:00
Hampus
4a285cbb11
fix(docs): drop the orphaned voice command footnote ( #2718 )
2026-09-12 01:45:27 +02:00
Hampus
6d600990fe
fix(app): derive unread from an ack timestamp floor ( #2717 )
2026-09-12 01:40:36 +02:00
Hampus
e1bc6c2f7e
refactor(voice): remove the unused voice state ack ( #2716 )
2026-09-12 01:37:45 +02:00
Hampus
3e79530389
fix(app): defer non-critical gateway dispatches ( #2715 )
2026-09-12 01:36:04 +02:00
Hampus
d0c84b3d9b
fix(voice): apply noise suppression in the mic test ( #2714 )
2026-09-12 01:14:36 +02:00
Hampus
3affd295e8
feat(guild): require opt-in for emoji and sticker cloning ( #2712 )
2026-09-12 00:33:23 +02:00
Hampus
7b15e5be0f
fix(admin): reject synthetic user ids on mutating routes ( #2711 )
2026-09-12 00:23:04 +02:00
Hampus
adab646d1e
fix(schema): preserve WebAuthn payloads and align fixtures ( #2710 )
2026-09-12 00:19:44 +02:00
Hampus
de1fd95a99
refactor(schema): simplify validation and OpenAPI generation ( #2709 )
2026-09-11 23:24:26 +02:00
Hampus
4bc5593f9f
chore(i18n): translate the voice quality catalog additions ( #2707 )
2026-09-11 22:59:12 +02:00
Hampus
172791316b
feat(voice): add noise suppression backends and rollout ( #2706 )
2026-09-11 22:24:05 +02:00
Hampus
b30a4f5d14
fix(admin): omit synthetic accounts from user lookup and search ( #2705 )
2026-09-11 22:06:29 +02:00
Hampus
f254ed679b
fix(app): never lower the read-state unread watermark ( #2704 )
2026-09-11 22:02:24 +02:00
Hampus
258fe6f742
feat(voice): add audio bitrate guild features and 96 kbps cap ( #2703 )
2026-09-11 22:00:15 +02:00
Hampus
cfa20b7093
fix(admin): let voice restriction lists be cleared ( #2701 )
2026-09-11 21:28:26 +02:00
Hampus
569146c5bc
fix(app): pick favorite GIF preview kind from content type ( #2696 )
2026-09-11 21:06:00 +02:00
Hampus
1b1d48b05e
feat(voice): soft connection limits for voice servers ( #2694 )
2026-09-11 20:05:14 +02:00
Hampus
cadca2c18e
test(voice): build watch attempt keys from the shared builder ( #2693 )
2026-09-11 19:44:34 +02:00
Hampus
2e3f78b3c6
fix(app): stop restarting the read-state ack batch window ( #2689 )
2026-09-11 16:26:34 +02:00
Hampus
b57545b1a4
refactor(api): replace stripe mock currency ternary chains ( #2688 )
2026-09-11 16:02:09 +02:00
Hampus
e490be2f35
feat(app): prompt to delete when clearing a message edit ( #2687 )
2026-09-11 15:56:05 +02:00
fluxer-ci[bot]
ab07fd23cf
chore(i18n): update public marketing catalogs ( #2686 )
2026-09-11 15:50:16 +02:00
fluxer-ci[bot]
c1fd2234b8
chore(marketing): advance pointer 7867cf8 → 23cd1c9 ( #2685 )
2026-09-11 15:50:05 +02:00
Hampus
3af43b3366
feat(api): add SEK, DKK and NOK as localized currencies ( #2684 )
2026-09-11 15:48:56 +02:00
Hampus
0e470f532e
test(voice): rename the watch failure deadline test file ( #2683 )
2026-09-11 15:18:08 +02:00
Hampus
c541b86c00
fix(voice): show buffering while screen share recovery runs ( #2682 )
2026-09-11 15:03:21 +02:00
Hampus
53b3fa2f4a
fix(voice): key watch attempts by published track ( #2681 )
2026-09-11 15:01:14 +02:00
Hampus
67e01be34a
fix(voice): judge H.264 hardware support by negotiated format ( #2680 )
2026-09-11 14:59:04 +02:00
Hampus
81fd8c9aad
fix(gateway): skip empty dm partner registration casts ( #2677 )
2026-09-11 13:49:03 +02:00
Hampus
bcef7b3123
feat(app): edit blockquote lines in the composer ( #2676 )
2026-09-11 13:27:50 +02:00
Hampus
a98d8ef679
fix(app): wrap multiline selections in code blocks ( #2675 )
2026-09-11 13:22:03 +02:00
Hampus
a5af857564
fix(app): insert a newline on Enter inside code blocks ( #2674 )
2026-09-11 13:20:26 +02:00
Hampus
2830221949
fix(desktop): download the version a linux update prompt names ( #2673 )
2026-09-11 13:19:25 +02:00
Hampus
84aa8880f5
fix(app): format typed @everyone and @here in the composer ( #2672 )
2026-09-11 13:18:48 +02:00
Hampus
395ec1d60f
fix(ci): publish desktop update feeds only after the release ( #2671 )
2026-09-11 13:18:15 +02:00
Hampus
e6ee3b8059
fix(api): only offer desktop builds whose release is published ( #2670 )
2026-09-11 13:17:41 +02:00
Hampus
61a13e1c1a
fix(app): download the version a linux update prompt names ( #2669 )
2026-09-11 13:16:27 +02:00
Hampus
fc0e2628a4
fix(app): honour @silent in the message composer ( #2668 )
2026-09-11 13:16:13 +02:00
Hampus
87fdfd9c34
fix(app): show DMs opened by an incoming message as unread ( #2667 )
2026-09-11 13:14:06 +02:00
Hampus
88a5ff9c45
feat(voice): record watch failures and decode counters ( #2666 )
2026-09-11 13:05:34 +02:00
Hampus
320949a79d
fix(gateway): drop dead clauses in dm partner visibility ( #2665 )
2026-09-11 13:00:23 +02:00
Hampus
3a862f1484
fix(voice): record why a screen share stopped ( #2664 )
2026-09-11 12:59:51 +02:00
Hampus
5da256df12
fix(voice): poll the current video element for a first frame ( #2663 )
2026-09-11 12:57:52 +02:00
Hampus
baf2cbf3fd
fix(voice): rebind codec negotiation after a region hot swap ( #2662 )
2026-09-11 12:55:50 +02:00
Hampus
74782dc4f2
fix(voice): confirm a decode stall before withdrawing a codec ( #2661 )
2026-09-11 12:53:29 +02:00
Hampus
7d8778495f
chore(desktop): drop Chromium switches that no longer exist ( #2660 )
2026-09-11 12:50:54 +02:00
Hampus
53399ffb44
fix(gateway): track dm partner presence in mutual guilds ( #2658 )
2026-09-11 04:23:20 +02:00
Hampus
35d73eae76
fix(voice): stop asking for camera and mic access on page load ( #2657 )
2026-09-11 02:00:48 +02:00
Hampus
54128e049a
test(api): restore the stripe webhook secret after mocking it ( #2656 )
2026-09-11 01:36:26 +02:00
Hampus
7d8d0ff804
fix(ci): retry release publish after transient GitHub failures ( #2655 )
2026-09-11 01:35:24 +02:00
Hampus
2e8f381efc
fix(gateway): keep ets tids opaque in the permission cache ( #2654 )
2026-09-11 01:31:58 +02:00
Hampus
b29da84282
perf(gateway): trim large guild connect snapshots by default ( #2653 )
2026-09-11 01:03:22 +02:00
Hampus
2988c846c8
perf(gateway): read cached members from the guild member table ( #2652 )
2026-09-11 00:58:17 +02:00
fluxer-ci[bot]
8e91c1412b
chore(marketing): advance pointer 5908507 → 7867cf8 ( #2650 )
2026-09-11 00:51:33 +02:00
fluxer-ci[bot]
5b2099c777
chore(i18n): update public marketing catalogs ( #2651 )
2026-09-11 00:51:25 +02:00
Hampus
f97841a58f
fix(installer): resolve the compose file name Compose loads ( #2649 )
2026-09-11 00:38:09 +02:00
Hampus
0421c86039
fix(api): price gifts in the base currency everywhere ( #2648 )
2026-09-11 00:28:14 +02:00
Hampus
d17f320bd7
fix(app): tidy the Plutonium billing and pricing layout ( #2647 )
2026-09-10 23:06:18 +02:00
Hampus
f708586c59
feat(api)!: always use localized pricing where it is offered ( #2646 )
2026-09-10 21:22:32 +02:00
Hampus
905af5dd5a
fix(app): shrink stored favorite gifs and raise their budget ( #2643 )
2026-09-10 18:43:42 +02:00
Hampus
5fea319f4e
fix(app): stop other youtube embeds when one starts playing ( #2642 )
2026-09-10 18:42:30 +02:00
Hampus
01fd11fea9
fix(api): unexport the search lookup result type ( #2641 )
2026-09-10 18:24:16 +02:00
Hampus
d028679b90
fix(api): batch the message lookups behind message search ( #2640 )
2026-09-10 18:18:49 +02:00
Hampus
4a93b677af
feat(api): retire prices safely and add a self-serve switch ( #2637 )
2026-09-10 17:28:16 +02:00
Hampus
d79cd99050
refactor(api): tidy message helper internals ( #2636 )
2026-09-10 02:07:03 +02:00
Hampus
167862a8a6
perf(api): harvest messages a page at a time ( #2633 )
2026-09-09 20:59:38 +02:00
Hampus
48b569b9d4
fix(api): harvest every authored message, not the first 100000 ( #2631 )
2026-09-09 11:52:55 +02:00
Hampus
75be6aa492
fix(gateway): deliver mention updates to passive sessions ( #2632 )
2026-09-09 11:31:17 +02:00
Hampus
9fe65d5036
fix(api): honour the configured S3 addressing on uploads ( #2626 )
2026-09-09 11:26:30 +02:00
Hampus
bfa9bf221d
docs(api): tidy up the reference prose ( #2628 )
2026-09-09 02:11:38 +02:00
Hampus
184eeb0846
fix(gateway): keep dispatch ordered under broadcaster load ( #2627 )
2026-09-09 02:06:36 +02:00
Hampus
0eff26a1c9
test(config): match the configurable client-IP trust defaults ( #2625 )
2026-09-09 01:32:36 +02:00
Hampus
d729f641ff
fix(app): do not crash when the browser translates the page ( #2624 )
2026-09-09 01:24:14 +02:00
Hampus
044a2c101d
feat(self-hosting): make the bundled services configurable ( #2621 )
2026-09-09 01:17:58 +02:00
Hampus
38e2c8db3e
fix(admin): keep server traits when an operator saves traits ( #2622 )
2026-09-09 00:13:07 +02:00
Hampus
1b22d14f3d
feat(self-hosting): run postgres or the object store outside ( #2620 )
2026-09-08 23:36:52 +02:00
Hampus
98cceae59d
fix(i18n): point static catalog translation at weblate ( #2619 )
2026-09-08 23:10:10 +02:00
Hampus
3e32414849
test(config): expand the shipped stack on another port ( #2612 )
2026-09-08 23:10:00 +02:00
Hampus
7707b9531c
chore(i18n): translate the new setup and email domain strings ( #2613 )
2026-09-08 22:57:07 +02:00
Hampus
86745e01e9
docs(operator): cover serving on a non-default port ( #2611 )
2026-09-08 22:18:19 +02:00
Hampus
098830a95a
fix(admin): compare the request origin against an origin ( #2610 )
2026-09-08 22:18:10 +02:00
Hampus
cf83f66911
fix(app): keep the new admin when setup meets one 401 ( #2609 )
2026-09-08 22:18:02 +02:00
Hampus
c577b97f35
fix(api): reject a mail-less email domain by its own code ( #2608 )
2026-09-08 22:17:53 +02:00
Hampus
8cc485cf81
fix(self-host): tie the public address to a single origin ( #2605 )
2026-09-08 22:17:39 +02:00
Hampus
6c36d934f7
fix(api): widen guild IP ban guard to shared-access networks ( #2607 )
2026-09-08 22:09:39 +02:00
Hampus
63e3be5750
fix(media-proxy): tone map HDR video instead of refusing it ( #2606 )
2026-09-08 21:18:55 +02:00
Hampus
cdecda7f78
ci: exclude the gateway build output from the rebar3 cache ( #2604 )
2026-09-08 19:47:44 +02:00
Hampus
4ad2858773
test(api): isolate the instance policy test files ( #2603 )
2026-09-08 19:46:07 +02:00
Hampus
fda41bb57a
style(gateway): apply erlfmt to the voice disconnect modules ( #2602 )
2026-09-08 19:29:38 +02:00
Hampus
ce08f82a92
refactor(gateway): remove voice reconciliation v3 ( #2601 )
2026-09-08 19:17:48 +02:00
Hampus
ef067f36c6
fix(voice): report real state in voice diagnostics ( #2600 )
2026-09-08 19:16:22 +02:00
Hampus
fc2b6b5299
fix(app): correct shortcuts, nagbar, stream menu, share audio ( #2599 )
2026-09-08 19:09:59 +02:00
Hampus
55846b24ea
fix(api): respect age gating in search and stabilise discovery ( #2598 )
2026-09-08 19:07:59 +02:00
Hampus
20a15ac11d
fix(voice): scope disconnects, correct VAD and stream lifecycle ( #2597 )
2026-09-08 19:06:42 +02:00
Hampus
667ac7da8e
fix(voice): rank h264 baseline first and gate opus stereo ( #2596 )
2026-09-08 19:04:24 +02:00
Hampus
1b81c14c48
fix(api): stop treating a LiveKit 404 as an empty room ( #2595 )
2026-09-08 19:02:43 +02:00
Hampus
ceec183d38
docs: remove duplicated statements from the reference ( #2594 )
2026-09-08 17:55:55 +02:00
Hampus
69ddc07ebb
docs(operator): tighten the get started guide ( #2593 )
2026-09-08 17:38:29 +02:00
Hampus
2f008b8653
docs: rewrite reference prose and correct field code citations ( #2592 )
2026-09-08 17:13:37 +02:00
Hampus
3d38d3f694
fix(self-host): add FLUXER_NATS_AUTH_TOKEN to .env.example ( #2590 )
2026-09-08 16:32:29 +02:00
Hampus
ad86a04e67
feat(app): describe every role and channel permission toggle ( #2589 )
2026-09-08 16:20:37 +02:00
Hampus
600c15e17d
chore(github): drop mobile build hint from the bug report form ( #2588 )
2026-09-08 15:37:26 +02:00
Hampus
08c9fe9886
docs: correct misreadable and factually wrong reference prose ( #2587 )
2026-09-08 15:36:50 +02:00
Hampus
43924e3ac5
chore(github): link mobile bug reports, drop security duplicate ( #2586 )
2026-09-08 15:34:34 +02:00
Hampus
824b5c86c9
fix(api): dedupe and budget ipinfo lookups across api pods ( #2584 )
2026-09-08 15:13:32 +02:00
Hampus
a2a68847fd
fix(api): let channel managers edit a mature channel ( #2583 )
2026-09-08 14:51:47 +02:00
Hampus
2019909a5e
fix(api): skip the mature gate when no birth date is collected ( #2582 )
2026-09-08 14:51:41 +02:00
Hampus
d46c8d49c6
fix(svc): authenticate to nats with the configured token ( #2581 )
2026-09-08 14:51:34 +02:00
Hampus
45530ebbf5
docs(operator): drop the redundant caddy forwarded-for setter ( #2580 )
2026-09-08 14:51:29 +02:00
Hampus
9cdad046b1
fix(self-host): keep seaweedfs inside its memory ceiling ( #2579 )
2026-09-08 14:51:24 +02:00
Hampus
b6c6928073
fix(self-host): strip the caddy file capability in fluxer-static ( #2578 )
2026-09-08 14:51:19 +02:00
Hampus
dd1ee999a4
fix(docs): drop visible pipe escapes from union notation prose ( #2577 )
2026-09-08 14:27:41 +02:00
Hampus
c506d6d5e3
fix(webhook): stop gating webhook file uploads on creator perms ( #2576 )
2026-09-08 14:25:59 +02:00
Hampus
8a65832a65
feat(theme): default new accounts to the dark theme ( #2575 )
2026-09-08 14:05:10 +02:00
Hampus
fd6ae4abd7
fix(app): distrust windows loaded across a connection gap ( #2574 )
2026-09-08 13:06:53 +02:00
Hampus
24b84c419c
docs(http-api): reword the supplementary members paragraph ( #2573 )
2026-09-08 12:53:43 +02:00
Hampus
746a75187a
fix(api): snapshot the new message id when opening a closed DM ( #2569 )
2026-09-07 11:00:03 +02:00
Hampus
10ba2ca896
fix(app): show the format toolbar on double-click selections ( #2566 )
2026-09-07 00:13:30 +02:00
Hampus
977b6767cd
fix(app): refetch the tail when a channel window falls behind ( #2565 )
2026-09-06 23:51:08 +02:00
Hampus
f00c6ee47a
docs(http-api): name the endpoint a third-party client reads ( #2564 )
2026-09-06 23:50:52 +02:00
Hampus
82859dc2f6
fix(api): keep a deferral while the phone gate state is unknown ( #2554 )
2026-09-06 23:41:29 +02:00
Hampus
328dc06ab0
feat(installer): drive podman as well as docker ( #2563 )
2026-09-06 23:28:40 +02:00
Hampus
ea6e4a75db
fix(markdown): let a backslash escape a code fence ( #2562 )
2026-09-06 22:45:29 +02:00
Hampus
69ca462930
fix(app): keep popouts in the window they were opened in ( #2561 )
2026-09-06 22:42:32 +02:00
Hampus
f38619d974
fix(app): isolate bidi usernames from message timestamps ( #2560 )
2026-09-06 22:41:57 +02:00
Hampus
6c0ce9369b
fix(app): refresh mutual communities on membership change ( #2559 )
2026-09-06 22:38:31 +02:00
Hampus
00c1b19809
fix(app): inherit category mute when hiding muted channels ( #2558 )
2026-09-06 22:10:09 +02:00
Hampus
2fd5daf104
fix(app): keep the client active while the user is typing ( #2557 )
2026-09-06 21:29:06 +02:00
Hampus
fbf0f6adfe
fix(app): load more bookmarks as the list scrolls ( #2556 )
2026-09-06 21:05:57 +02:00
Hampus
d91b5bec66
fix(app): show unread channels in muted collapsed categories ( #2555 )
2026-09-06 20:45:11 +02:00
Hampus
0f24cfb6ef
ci(docs): check the installer upgrade key lists for drift ( #2553 )
2026-09-06 20:43:50 +02:00
Hampus
7a6691cdbe
fix(installer): make the record and rollback paths trustworthy ( #2552 )
2026-09-06 20:36:59 +02:00
Hampus
73d3a4f843
fix(app): widen the custom status modal ( #2551 )
2026-09-06 20:19:28 +02:00
Hampus
091755fe78
fix(self-hosting): adapt the upgrade to existing instances ( #2550 )
2026-09-06 19:40:32 +02:00
Hampus
1fb2790bb9
fix(api): stop bounding the pin listing by the wall clock ( #2549 )
2026-09-06 19:03:15 +02:00
Hampus
798e64b224
refactor(app): remove the report modal path selection step ( #2548 )
2026-09-06 18:49:35 +02:00
Hampus
a2d6477b42
fix(admin): route the bulk user deletion action correctly ( #2545 )
2026-09-06 18:42:37 +02:00
Hampus
a2ca24eeb4
fix(admin): search archives across both subject types ( #2542 )
2026-09-06 18:42:33 +02:00
Hampus
8dcd00a8fe
fix(admin): batch user id lookups on the users page ( #2547 )
2026-09-06 18:41:46 +02:00
Hampus
be8a52c823
fix(admin): bound the reports page offset ( #2546 )
2026-09-06 18:41:18 +02:00
Hampus
43e420b0ab
fix(admin): require paired voice server coordinates ( #2544 )
2026-09-06 18:40:50 +02:00
Hampus
f8947adf62
fix(admin): map the index refresh status response union ( #2543 )
2026-09-06 18:40:20 +02:00
Hampus
81fccaf0ab
docs(media-proxy): stop documenting literal response bodies ( #2541 )
2026-09-06 18:39:50 +02:00
Hampus
7a42291baf
fix(api): search all reports when no status filter is given ( #2540 )
2026-09-06 18:39:18 +02:00
Hampus
d9f983b08e
fix(api): return the terminated count from terminate sessions ( #2539 )
2026-09-06 18:38:46 +02:00
Hampus
2f159852a7
fix(api): make an empty admin guild patch apply no change ( #2538 )
2026-09-06 18:38:13 +02:00
Hampus
5ef402b8ee
fix(api): apply the nsfw and content warning guild settings ( #2537 )
2026-09-06 18:37:38 +02:00
Hampus
a8d6e5ab73
refactor(api): remove premium-based voice track muting ( #2536 )
2026-09-06 18:37:01 +02:00
Hampus
e805a3797f
fix(api): stop entrance sound play probing channel existence ( #2535 )
2026-09-06 18:36:24 +02:00
Hampus
8f4fa82a9e
fix(api): always return the page total when listing reports ( #2534 )
2026-09-06 17:38:21 +02:00
Hampus
d2438b2fdd
docs(operator): note the upload relay secret an upgrade now needs ( #2533 )
2026-09-06 17:21:06 +02:00
Hampus
133640ef2b
fix(docs): allow unused pnpm patches in the docs image deploy ( #2531 )
2026-09-06 16:19:46 +02:00
Hampus
8e0516a8c3
feat(api): drop explicit media classification on asset uploads ( #2530 )
2026-09-06 16:12:25 +02:00
Hampus
d784c0692e
fix(app): set the jsx runtime in tsconfig so vitest parses tsx ( #2529 )
2026-09-06 15:51:18 +02:00
Hampus
fffa265117
chore(i18n): refresh the client message catalogues ( #2528 )
2026-09-06 15:41:52 +02:00
Hampus
5367c0ab42
docs: move the reference site to astro starlight ( #2527 )
2026-09-06 15:40:22 +02:00
Hampus
7f8f09ee51
feat(admin)!: move the admin api to rest and fix its defects ( #2515 )
2026-09-06 15:36:41 +02:00
Hampus
a70924d4b0
fix(admin): require the admin secret key base at boot ( #2514 )
2026-09-06 15:36:08 +02:00
Hampus
1a5925f9cb
chore(app): remove message scheduling and a dead descriptor ( #2513 )
2026-09-06 15:35:36 +02:00
Hampus
43c778aae4
fix(api): guard the rpc session init test harness route ( #2512 )
2026-09-06 15:34:57 +02:00
Hampus
34cf8f821f
refactor(api)!: drop unused helpers, parameters and a route ( #2511 )
2026-09-06 15:34:25 +02:00
Hampus
226cfd062e
fix(worker): rebuild the deletion queue and cancel system dms ( #2510 )
2026-09-06 15:33:53 +02:00
Hampus
e8f4e35c32
fix(api): gate stream keys by channel type and cover previews ( #2509 )
2026-09-06 15:33:20 +02:00
Hampus
ef559f3d8c
fix(api): handle bad manifests, unfurl errors and the apns key ( #2508 )
2026-09-06 15:32:47 +02:00
Hampus
ee7206ac66
fix(api): batch connection reorders, dispatch on failed recheck ( #2507 )
2026-09-06 15:32:16 +02:00
Hampus
1ba9592308
fix(api): correct webhook dedupe and the instatus transforms ( #2506 )
2026-09-06 15:31:43 +02:00
Hampus
d07f520b13
fix(api)!: correct pagination and locking, drop toggle routes ( #2505 )
2026-09-06 15:31:13 +02:00
Hampus
632f4c7b6c
fix(api): correct report targets and ticket handling ( #2504 )
2026-09-06 15:30:41 +02:00
Hampus
1f627c9cc5
fix(api): correct user content, read state and harvest paths ( #2501 )
2026-09-06 15:30:08 +02:00
Hampus
cc110b9f5a
fix(api): raise coded errors for prerequisites and bounds ( #2502 )
2026-09-06 15:29:36 +02:00
Hampus
f06d65db54
fix(api): reject unparsable bodies and screen non-form ones ( #2503 )
2026-09-06 15:29:04 +02:00
Hampus
f8a04b8985
fix(api)!: enforce declared rate limits and correct route auth ( #2500 )
2026-09-06 15:28:32 +02:00
Hampus
908e1b8bd4
fix(api): correct guild permission and mfa checks ( #2499 )
2026-09-06 15:28:01 +02:00
Hampus
f392636857
fix(auth): correct mfa errors, sudo methods and birth dates ( #2498 )
2026-09-06 15:27:30 +02:00
Hampus
150115cc0c
fix(media-proxy): bound the relay body and drop the unread ttl ( #2496 )
2026-09-06 15:26:57 +02:00
Hampus
710a6f1c5d
fix(media-proxy): correct route errors and test the ip gate ( #2495 )
2026-09-06 15:26:33 +02:00
Hampus
7c3e722085
chore(gateway): delete modules with no callers ( #2494 )
2026-09-06 15:26:08 +02:00
Hampus
d8f2aa3184
feat(gateway): add an undrain endpoint and sweep orphan tables ( #2493 )
2026-09-06 15:25:43 +02:00
Hampus
e828398e06
fix(gateway): close oversized bot identify with code 4011 ( #2497 )
2026-09-06 15:25:19 +02:00
Hampus
31d7cb81d6
fix(gateway): return precise rpc errors and bound snowflakes ( #2491 )
2026-09-06 15:24:54 +02:00
Hampus
214d19d45a
fix(gateway): resync permissions and validate voice leaves ( #2492 )
2026-09-06 15:24:23 +02:00
Hampus
d3170fc320
fix(gateway): repair the session lifecycle, limits and dead code ( #2490 )
2026-09-06 15:23:59 +02:00
Hampus
9a229c1b73
fix(api): answer 403 when the client ip header is unparsable ( #2483 )
2026-09-06 15:23:35 +02:00
Hampus
a036d9a2e1
fix(api): resolve missing user rows for webhooks and sessions ( #2487 )
2026-09-06 15:23:03 +02:00
Hampus
d5bfa5a73d
fix(api)!: align error codes with throw sites and image bounds ( #2488 )
2026-09-06 15:21:38 +02:00
Hampus
4534822355
fix(config): derive the VAPID public point to verify the pair ( #2521 )
2026-09-06 15:13:32 +02:00
Hampus
bff29d8f07
fix(api)!: always send Retry-After and reclassify two limits ( #2489 )
2026-09-06 15:07:00 +02:00
Hampus
bec34ea147
fix(api)!: correct declared bounds and hide public bot mfa ( #2485 )
2026-09-06 15:06:15 +02:00
Hampus Kraft
3be4171256
feat(self-host)!: rework the compose stack and demand secrets ( #2486 )
2026-09-06 15:02:20 +02:00
Hampus Kraft
5bcaa7cfac
fix(config)!: validate and derive config, drop the unread keys ( #2482 )
2026-09-06 15:02:20 +02:00
Hampus
ea93ef5352
fix(api): find every live route when generating openapi.json ( #2484 )
2026-09-06 14:54:21 +02:00
Hampus
8734956d86
fix(auth): explain why a phone number was rejected ( #2480 )
2026-09-06 03:09:26 +02:00
Hampus
519b3a6127
fix(i18n): translate shipped English, repair broken catalogs ( #2479 )
2026-09-06 02:58:56 +02:00
Hampus
9b3773c1e6
feat(auth): let phone-gated accounts set the check aside ( #2478 )
2026-09-06 01:11:24 +02:00
Hampus
e12b60078a
fix(self-host): probe the seaweedfs s3 health endpoint ( #2476 )
2026-09-06 00:24:31 +02:00
Hampus
7cb8f9f4ae
fix(app): pick default channel when guild channels arrive late ( #2475 )
2026-09-06 00:04:43 +02:00
Hampus
622bd124b9
fix(fonts): stop SC and TC from claiming kana ( #2473 )
2026-09-05 22:25:44 +02:00
Hampus
fed8b2d089
feat(admin): add bulk delete user messages tool ( #2472 )
2026-09-05 22:20:14 +02:00
Hampus
12718eabbc
refactor(api): drop cookie support for sudo mode ( #2466 )
2026-09-05 01:29:34 +02:00
Hampus
ab68b61653
refactor: remove the CTP_MEMBER user flag ( #2465 )
2026-09-05 01:13:34 +02:00
Hampus
639ade3802
refactor(app-proxy): drop invite metadata and database access ( #2464 )
2026-09-05 00:13:04 +02:00
Hampus
3f1f899b23
fix(api): keep a deprecated nsfw field for older clients ( #2463 )
2026-09-04 23:08:34 +02:00
Hampus
51cb750502
feat(api): drop NSFW classification for emojis and stickers ( #2462 )
2026-09-04 22:55:58 +02:00
Hampus
1e6c332eae
fix(app): show empty categories when hiding muted channels ( #2460 )
2026-09-04 21:04:34 +02:00
Hampus
18ae2e563e
fix(worker): fit the job streams to the jetstream budget ( #2458 )
2026-09-04 19:31:20 +02:00
Hampus
a4d039c910
fix(app-proxy): publish source maps with the asset tree ( #2457 )
2026-09-04 19:10:30 +02:00
Hampus
6163fd5644
fix(message): turn mentions red in failed messages ( #2456 )
2026-09-04 19:03:30 +02:00
Hampus
3e2ddaca4f
fix(message): turn links red in failed messages ( #2455 )
2026-09-04 18:21:27 +02:00
Hampus
054a59e622
fix(message): keep reply previews on one line after a mention ( #2454 )
2026-09-04 18:20:14 +02:00
Hampus
84d7290ed9
fix(api): tighten guild emoji and sticker mutation limits ( #2453 )
2026-09-04 17:58:08 +02:00
Hampus
f4c1254d91
fix(media-proxy): stop serving animated originals as stills ( #2452 )
2026-09-04 16:56:58 +02:00
Hampus
c01d22dc05
fix(self-host): unfurl media hosted by the instance itself ( #2451 )
2026-09-04 16:56:35 +02:00
Hampus
4c0f02d8a5
chore(i18n): refresh catalogs for the window share audio scope ( #2450 )
2026-09-04 16:41:53 +02:00
Hampus
2770482baf
perf(app-proxy): hold the frozen snapshot by reference ( #2449 )
2026-09-04 16:00:23 +02:00
Hampus
8e39a00e34
perf(app-proxy): run on jemalloc to curb arena growth ( #2448 )
2026-09-04 15:57:47 +02:00
Hampus
7bd0d3a962
fix(app-proxy): remove the SPA document render reservation ( #2447 )
2026-09-04 15:55:59 +02:00
Hampus
bc7f701e87
feat(voice): give window shares their own audio scope ( #2446 )
2026-09-04 15:48:37 +02:00
Hampus
0d8116d73e
fix(workspace): restore the devcontainer compose project name ( #2445 )
2026-09-04 15:41:38 +02:00
Hampus
255cbc1248
perf(app-proxy): drop dynamic brotli compression ( #2444 )
2026-09-04 14:47:49 +02:00
Hampus
098aeef412
fix(media-proxy): stop lifting bt709 video thumbnails ( #2443 )
2026-09-04 13:17:30 +02:00
Hampus
baa18aed5b
fix(media-proxy): link source-built native libs first ( #2442 )
2026-09-04 03:42:56 +02:00
Hampus
b7c8dab019
fix(media-proxy): pin builder libheif, fix the image build ( #2441 )
2026-09-04 02:06:02 +02:00
Hampus
587324fa38
fix(voice): reuse the Linux audio capture across routing changes ( #2440 )
2026-09-04 01:00:32 +02:00
Hampus
cc3a9c8613
fix(app): jitter gateway reconnects and recover status nagbar ( #2439 )
2026-09-03 23:21:32 +02:00
Hampus
b0645300ec
fix(i18n): reaction tooltip word order and plural agreement ( #2438 )
2026-09-03 22:11:59 +02:00
Hampus
d7d4e8da03
refactor(media-proxy): split into modules and harden streaming ( #2437 )
2026-09-03 22:04:00 +02:00
Hampus
16ae98e189
fix(auth): regenerate backup codes with the emailed challenge ( #2436 )
2026-09-03 21:29:16 +02:00
Hampus
add0a3dfc6
fix(voice): start bitrate for non-SVC screen share codecs ( #2434 )
2026-09-03 21:07:42 +02:00
Hampus
90c349392b
fix(auth): email code to view backup codes, fix login matching ( #2433 )
2026-09-03 21:06:30 +02:00
Hampus
eb4562b6a6
feat(voice): add screen share subscription debug helper ( #2432 )
2026-09-03 20:22:59 +02:00
Hampus
6c634b686f
feat(voice): rework screen share audio source selection ( #2431 )
2026-09-03 20:01:28 +02:00
Hampus
48e03edccc
chore(desktop): upgrade Electron to 44.1.1 ( #2430 )
2026-09-03 18:53:23 +02:00
Hampus
cef6f11fd0
fix(app): correct the connection nagbar button styling ( #2428 )
2026-09-03 18:17:06 +02:00
Hampus
2757659989
fix(gateway): satisfy dialyzer after the hotpatch reconcile ( #2427 )
2026-09-03 17:26:51 +02:00
Hampus
f090395c21
fix(voice): republish screen share when its codec goes stale ( #2426 )
2026-09-03 17:09:48 +02:00
Hampus
dd1d554cc6
fix(gateway): reconcile hotpatched member-list and push fixes ( #2425 )
2026-09-03 17:04:32 +02:00
Hampus
9c1b38aeaf
fix(api): always allow opening a dm channel ( #2423 )
2026-09-03 16:35:01 +02:00
Hampus
902dd60ff9
fix(voice): keep published codecs inside the opt-in policy ( #2422 )
2026-09-03 15:06:48 +02:00
Hampus
2426a5769d
feat(voice): drive screen share quality from viewer demand ( #2421 )
2026-09-03 04:49:29 +02:00
Hampus
66517c925b
feat(voice): show a passive badge when a stream underperforms ( #2420 )
2026-09-03 04:49:07 +02:00
Hampus
5f90e7d535
fix(api): downgrade oversized video instead of ending the call ( #2419 )
2026-09-03 04:47:02 +02:00
Hampus
9d63eb15a9
fix(voice): request a real camera frame rate at capture ( #2418 )
2026-09-03 04:46:32 +02:00
Hampus
c97bc53342
refactor(voice): remove screen share codec renegotiation ( #2417 )
2026-09-03 04:46:11 +02:00
Hampus
f5f60c66e7
refactor(voice): remove adaptive screen share quality system ( #2416 )
2026-09-03 04:41:04 +02:00
Hampus
3e15b97c8c
fix(voice): stop clamping stored video quality preferences ( #2415 )
2026-09-03 04:36:04 +02:00
Hampus
6c08813f9b
feat(voice): scale screen share bitrate to the selected rung ( #2414 )
2026-09-03 04:35:37 +02:00
Hampus
8158d44732
fix(voice): keep screen share resolution under constraint ( #2413 )
2026-09-03 04:35:12 +02:00
Hampus
9bd0019759
fix(api): declare undici for the bundled http client ( #2410 )
2026-09-02 19:55:11 +02:00
Hampus
a74f1b0e7b
fix(ci): clear knip, refresh openapi, close kv schema race ( #2409 )
2026-09-02 18:12:48 +02:00
Hampus
2b12f5db6c
feat(voice): enable web camera background effects ( #2408 )
2026-09-02 17:40:13 +02:00
Hampus
af4a52173c
fix(voice): dispatch sourceLifecycle.removed on unbind ( #2407 )
2026-09-02 17:40:00 +02:00
Hampus
5bc1f21d46
fix(voice): drive call tiles from gateway voice state ( #2406 )
2026-09-02 17:39:48 +02:00
Hampus
917e437939
feat(voice-menus): add call controls to private call user menus ( #2405 )
2026-09-02 17:39:25 +02:00
Hampus
7ee4fb37d6
feat(voice): add a live input level meter to voice menus ( #2404 )
2026-09-02 17:39:01 +02:00
Hampus
6155eec804
feat(voice): flatten voice menus, gate ptt on a bound key ( #2403 )
2026-09-02 17:38:37 +02:00
Hampus
43d8637153
fix(voice): gate the camera preview and update effects in place ( #2402 )
2026-09-02 17:38:14 +02:00
Hampus
250db2fdab
fix(voice): hide stream volume without remote share audio ( #2401 )
2026-09-02 17:37:52 +02:00
Hampus
7bd021cd5c
feat(voice): open voice popouts in the browser ( #2400 )
2026-09-02 17:37:28 +02:00
Hampus
adb9a689f0
feat(voice): share the voice room across popout trees ( #2399 )
2026-09-02 17:37:04 +02:00
Hampus
d8e0c2ec20
fix(settings): stop auto-requesting devices, warn when none ( #2398 )
2026-09-02 17:36:49 +02:00
Hampus
f98a74170a
feat(settings): move macos permission review into desktop tab ( #2397 )
2026-09-02 17:36:26 +02:00
Hampus
17b9821879
fix(voice-menus): drive stream actions from the published source ( #2396 )
2026-09-02 17:36:05 +02:00
Hampus
4b5bdefcb9
fix(voice-menus): sentence-case participant menu labels ( #2395 )
2026-09-02 17:35:49 +02:00
Hampus
45cbabd94d
fix(voice): abort screen share when its audio cannot start ( #2394 )
2026-09-02 17:35:26 +02:00
Hampus
8402eb53c8
feat(voice): skip the screen-share picker modal on web ( #2393 )
2026-09-02 17:35:15 +02:00
Hampus
d04ace5789
feat(voice): redesign the screen-share source picker ( #2392 )
2026-09-02 17:35:01 +02:00
Hampus
e94f587535
feat(voice): sequence join chimes ahead of entrance sounds ( #2391 )
2026-09-02 17:34:36 +02:00
Hampus
e73285060e
fix(voice): honour the codec preference in fallback selection ( #2390 )
2026-09-02 17:34:24 +02:00
Hampus
f1734704ef
fix(voice): guard stale screen-share negotiation and probes ( #2389 )
2026-09-02 17:34:10 +02:00
Hampus
59f6217267
refactor(voice): bound the screen-share codec wire formats ( #2388 )
2026-09-02 17:33:57 +02:00
Hampus
90f4a222b7
refactor(voice): request mic and camera permission separately ( #2387 )
2026-09-02 17:33:45 +02:00
Hampus
749d2091eb
fix(voice): log local voice state hydration failures ( #2386 )
2026-09-02 17:33:32 +02:00
Hampus
8d34c6bcaa
refactor(voice): make screen-share source swaps atomic ( #2385 )
2026-09-02 17:33:18 +02:00
Hampus
62577b25bb
feat(voice): request web share audio via the browser picker ( #2384 )
2026-09-02 17:32:55 +02:00
Hampus
475f5a7dae
fix(voice): refresh camera capture when the device changes ( #2383 )
2026-09-02 17:32:43 +02:00
Hampus
1772b3aad0
fix(voice): polish the stream settings menu ( #2382 )
2026-09-02 17:32:26 +02:00
Hampus
7263b21a06
refactor(voice): pin screen share to a fixed 7 Mbps bitrate ( #2381 )
2026-09-02 17:32:01 +02:00
Hampus
501adff13d
refactor(voice): clamp premium video quality at read time ( #2380 )
2026-09-02 17:31:39 +02:00
Hampus
12c6fb7b7f
feat(voice): add screen-share audio and rollback error handling ( #2379 )
2026-09-02 17:31:27 +02:00
Hampus
376168c922
feat(voice): add the camera background effects pipeline ( #2378 )
2026-09-02 17:31:04 +02:00
Hampus
cadab239a2
feat(backgrounds): accept webm custom call backgrounds ( #2377 )
2026-09-02 17:30:50 +02:00
Hampus
f57dc77c6d
vendor(livekit): make local track swaps transactional ( #2376 )
2026-09-02 17:30:35 +02:00
Hampus
497a494c37
vendor(livekit): await setParameters in setDegradationPreference ( #2375 )
2026-09-02 17:30:22 +02:00
Hampus
02069e8e5d
feat(voice-engine): add a sourceLifecycle.removed event ( #2374 )
2026-09-02 17:30:08 +02:00
Hampus
626293392c
fix(ui): let callers style the audio level meter ( #2373 )
2026-09-02 17:29:55 +02:00
Hampus
dfe42ae3e3
feat(sound): play one-shot sounds immediately and abortably ( #2372 )
2026-09-02 17:29:43 +02:00
Hampus
453abfa145
fix(ui): keep context menus clear of the native titlebar ( #2371 )
2026-09-02 17:29:29 +02:00
Hampus
8ebc9400ce
fix(permissions): gate role hierarchy on known membership ( #2370 )
2026-09-02 17:29:06 +02:00
Hampus
1598f48edd
fix(guild): invalidate member sidebar on role changes ( #2369 )
2026-09-02 17:28:44 +02:00
Hampus
cc92f37f0c
test(app): stop reading gl calls as react hooks ( #2368 )
2026-09-02 17:28:32 +02:00
Hampus
9322aca6cb
fix(channel): restore composer draft and message focus ( #2367 )
2026-09-02 17:28:19 +02:00
Hampus
ee8fbd6f4f
fix(ui): keep the focus ring stable across refocus ( #2366 )
2026-09-02 17:27:57 +02:00
Hampus
1acd61a112
fix(ui): hand tooltips over between adjacent triggers ( #2365 )
2026-09-02 17:27:46 +02:00
Hampus
e836686a71
fix(permissions): map not-determined media status to prompt ( #2364 )
2026-09-02 17:27:35 +02:00
Hampus
ea6c417378
fix(discovery): keep category counts when a search resolves ( #2363 )
2026-09-02 17:27:22 +02:00
Hampus
16cc9a9e69
fix(app): clamp persisted accessibility values ( #2362 )
2026-09-02 17:27:10 +02:00
Hampus
6b5316fa84
fix(desktop): return a generic clipboard copy error ( #2361 )
2026-09-02 17:26:57 +02:00
Hampus
a53f5d1289
fix(desktop): verify privileged ipc senders ( #2360 )
2026-09-02 17:26:45 +02:00
Hampus
de2ea99928
fix(desktop): pin outbound fetches to a validated address ( #2359 )
2026-09-02 17:26:32 +02:00
Hampus
25f4332b9e
fix(auth): guard stale submissions and rework form error mapping ( #2358 )
2026-09-02 17:26:18 +02:00
Hampus
f703969e80
fix(auth): require a hashed poll secret for desktop handoff ( #2357 )
2026-09-02 17:25:54 +02:00
Hampus
b82681b77a
fix(auth): revoke the parsed token on logout ( #2356 )
2026-09-02 17:25:33 +02:00
Hampus
ef248a8515
fix(platform): parse api error responses in one place ( #2355 )
2026-09-02 17:25:21 +02:00
Hampus
73a2345c26
fix(app-proxy): validate config, csp sources, cap resource use ( #2354 )
2026-09-02 17:25:10 +02:00
Hampus
9f33177eab
fix(gateway): rate limit resume like identify ( #2353 )
2026-09-02 17:24:58 +02:00
Hampus
d5a752c338
fix(gateway): only trust the client ip header when enabled ( #2352 )
2026-09-02 17:24:46 +02:00
Hampus
4021a2d697
fix(gateway): bound the zstd decompression window ( #2351 )
2026-09-02 17:24:35 +02:00
Hampus
bea4a6dcbc
fix(read-state): keep a failed ack dispatch from failing acks ( #2350 )
2026-09-02 17:24:24 +02:00
Hampus
4f48e04cad
feat(api): serve well-known discovery with etag and 304 ( #2349 )
2026-09-02 17:24:11 +02:00
Hampus
5719dfe8a3
fix(auth): bucket phone attempt risk by v4 and v6 subnet ( #2348 )
2026-09-02 17:23:58 +02:00
Hampus
4fb14e85e8
fix(auth): harden login rate keys and totp reuse ( #2347 )
2026-09-02 17:23:47 +02:00
Hampus
1d84689b45
fix(api): validate push and domain verification targets ( #2346 )
2026-09-02 17:23:34 +02:00
Hampus
693aec2b4d
fix(api): trust recorded upload types and bound edit sizes ( #2345 )
2026-09-02 17:23:23 +02:00
Hampus
c79c0ee138
fix(api): bound storage listings, ranges and search paging ( #2344 )
2026-09-02 17:23:12 +02:00
Hampus
e86e24a2db
fix(captcha): drop the body-email contact policy exemption ( #2343 )
2026-09-02 17:23:02 +02:00
Hampus
0f7ad484ce
fix(constants): add captcha, cache and feature headers ( #2342 )
2026-09-02 17:22:51 +02:00
Hampus
bcd95b2af9
fix(http-client): validate public addresses at connect time ( #2341 )
2026-09-02 17:22:37 +02:00
Hampus
32dcd5ed1c
chore(i18n): resync message catalogs with source ( #2340 )
2026-09-02 17:22:21 +02:00
Hampus
5119febb5b
fix(api): send stickers through webhooks ( #2338 )
2026-09-02 13:55:54 +02:00
Hampus
20cdfd3009
fix(api): stop exporting unused worker heartbeat symbols ( #2334 )
2026-09-01 21:03:26 +02:00
Hampus
9f739427c4
fix(desktop): update rtrb past the double free advisory ( #2336 )
2026-09-01 21:03:19 +02:00
Hampus
0201cafd7e
fix(admin): mark the crate unpublished so cargo deny passes ( #2335 )
2026-09-01 21:03:12 +02:00
Hampus
37f57bb29f
fix(desktop): restore offline Flatpak builds ( #2332 )
2026-09-01 20:51:18 +02:00
Hampus
ebd723679b
docs(operator): refresh the bundle pin and tunnel setup ( #2333 )
2026-09-01 20:51:00 +02:00
Hampus
961fa1f007
fix(self-hosting): correct compose probes and origins ( #2330 )
2026-09-01 20:47:20 +02:00
Hampus
7900a4da0c
feat(ci): pin releases to an immutable image set ( #2327 )
2026-09-01 20:47:20 +02:00
Hampus
8a24730884
fix(kv): align rust and typescript schema migration ( #2328 )
2026-09-01 20:47:19 +02:00
Hampus
1688e7dc50
fix(api): survive transient database errors in the worker ( #2326 )
2026-09-01 20:47:19 +02:00
Hampus
aa267b54ec
fix(api): dead-letter retired worker task types ( #2323 )
2026-09-01 20:47:19 +02:00
Hampus
bc40073a02
fix(config): carry the public port into derived endpoints ( #2329 )
2026-09-01 20:47:18 +02:00
Hampus
a93f9dd0af
fix(app-proxy): separate readiness from liveness ( #2322 )
2026-09-01 20:47:18 +02:00
Hampus
53a9fdc4b6
fix(app-proxy): share one asset tree across architectures ( #2325 )
2026-09-01 20:47:17 +02:00
Hampus
cef600277c
fix(media-proxy): probe health with the binary not /dev/tcp ( #2324 )
2026-09-01 20:47:17 +02:00
Hampus
bdac438329
fix(docker): emit consistent OCI metadata on every image ( #2321 )
2026-09-01 20:47:16 +02:00
Hampus
2d77f36a0b
fix(ci): generate locale and channel files before typecheck ( #2320 )
2026-09-01 20:47:16 +02:00
Hampus
90aa810ce4
fix(gateway): share the relay dispatch bound across producers ( #2315 )
2026-09-01 04:34:41 +02:00
Hampus
cf3af50464
fix(kv): bound multi key fan out by pipelining per hash slot ( #2313 )
2026-09-01 02:59:00 +02:00
Hampus
3b5b20c139
fix(gateway): bound relay dispatch without per-event probes ( #2312 )
2026-09-01 02:56:21 +02:00
Hampus
24cd163acd
fix(kv): restore keyset paging for numeric key scans ( #2314 )
2026-09-01 02:54:10 +02:00
Hampus
49f76e5b40
fix(api): abort startup on unverifiable deletion queue state ( #2311 )
2026-09-01 02:45:29 +02:00
Hampus
871788f0a9
fix(gateway): reclaim ip connection counts from dead sockets ( #2308 )
2026-09-01 01:39:25 +02:00
Hampus
24138b70f1
fix(kv): stop multi-key commands spanning cluster slots ( #2310 )
2026-09-01 01:39:16 +02:00
Hampus
da3332e711
fix(gateway): bound relay worker mailboxes without reordering ( #2309 )
2026-09-01 01:38:36 +02:00
Hampus
06e5cf2032
perf(gateway): evict presence tombstones in insertion order ( #2307 )
2026-09-01 01:34:57 +02:00
Hampus
d4b1923c23
fix(gateway): stop presence evictions suppressing repair ( #2305 )
2026-09-01 01:33:13 +02:00
Hampus
42df4f6731
fix(kv): drop the row_key order probe that cliffed paged scans ( #2306 )
2026-09-01 01:32:33 +02:00
Hampus
f1e6e94041
fix(cache): stop a timed out produce pinning its tracking entry ( #2304 )
2026-09-01 01:28:12 +02:00
Hampus
0cd12b2f32
test(api): build deletion queue users from the real row type ( #2303 )
2026-09-01 00:57:41 +02:00
Hampus
5da4d24d38
fix(kv): page scans by keyset so deletes cannot skip rows ( #2302 )
2026-09-01 00:29:24 +02:00
Hampus
7806d2ac02
fix(gateway): stop stale guild connect timers aborting connects ( #2301 )
2026-09-01 00:23:42 +02:00
Hampus
2c4d182d1f
fix(gateway): keep dispatch ordered under relay backpressure ( #2300 )
2026-09-01 00:17:12 +02:00
Hampus
dcd5f88d65
fix(gateway): stop rate limit tables dying with their creator ( #2299 )
2026-09-01 00:16:26 +02:00
Hampus
662f4ac93b
fix(worker): stop skipped accounts starving the deletion queue ( #2294 )
2026-09-01 00:16:08 +02:00
Hampus
a2480c6a02
fix(cache): time out a getOrSet produce that never settles ( #2297 )
2026-09-01 00:15:44 +02:00
Hampus
c49460a44f
fix(gateway): stop anti-entropy resurrecting deleted presence ( #2298 )
2026-09-01 00:14:32 +02:00
Hampus
6786dfe7e3
fix(gateway): stop dropping newly requested lazy ranges ( #2293 )
2026-09-01 00:14:24 +02:00
Hampus
7d710d881a
fix(worker): lease premium reconciliation queue entries ( #2296 )
2026-09-01 00:14:08 +02:00
Hampus
2ea2e79f6f
fix(voice): stop occupancy writes spanning kv cluster slots ( #2295 )
2026-09-01 00:11:29 +02:00
Hampus
cd42dd8ca7
fix(api): rebuild the deletion queue under its lock ( #2292 )
2026-09-01 00:06:33 +02:00
Hampus
f2eddeae4d
fix(gateway): stop rate limit sweepers outliving their table ( #2291 )
2026-08-31 23:25:00 +02:00
Hampus
8e1a8fc7e3
fix(gateway): sweep stale shared ip and user rate buckets ( #2290 )
2026-08-31 22:53:37 +02:00
Hampus
87c08b051f
fix(voice): finish the reconciliation sweep before stopping ( #2289 )
2026-08-31 22:38:04 +02:00
Hampus
9d95a80857
fix(worker): renew the deletion queue lock during a rebuild ( #2287 )
2026-08-31 22:38:00 +02:00
Hampus
9371b6d5de
fix(worker): count each channel once in a bulk reindex ( #2286 )
2026-08-31 22:37:56 +02:00
Hampus
bdcf4b25c0
chore(expressions): remove the pack residue cleanup tool ( #2288 )
2026-08-31 22:31:54 +02:00
Hampus
3dc344be65
fix(worker): keep attachment decay state on a stale expiry row ( #2285 )
2026-08-31 22:26:21 +02:00
Hampus
17ed0f70aa
fix(gateway): release the user session count on a handoff fence ( #2284 )
2026-08-31 22:25:14 +02:00
Hampus
be3e12e60d
fix(gateway): clamp a heartbeat ack to the session sequence ( #2283 )
2026-08-31 22:23:43 +02:00
Hampus
4261cc2ea5
fix(worker): resubscribe when the job stream ends unexpectedly ( #2282 )
2026-08-31 22:22:14 +02:00
Hampus
88dbc27019
fix(gateway): group debounced reactions by their own message ( #2281 )
2026-08-31 22:21:14 +02:00
Hampus
f38fc80c31
fix(gateway): clear the presence pid cache on a presence down ( #2279 )
2026-08-31 22:19:25 +02:00
Hampus
803fdaf443
fix(worker): stop replaying requeued asset deletions in a run ( #2280 )
2026-08-31 22:19:22 +02:00
Hampus
55d85db401
fix(gateway): drop the channel engine on an empty range list ( #2278 )
2026-08-31 22:17:19 +02:00
Hampus
7ce3d71c44
fix(gateway): stop a non-map opcode payload crashing the socket ( #2277 )
2026-08-31 22:14:26 +02:00
Hampus
04e150e4bf
fix(gateway): keep the replay buffer across a session transfer ( #2276 )
2026-08-31 22:10:44 +02:00
Hampus
0f6b118921
fix(worker): catch up cron jobs missed by a delayed tick ( #2275 )
2026-08-31 22:06:15 +02:00
Hampus
44277e6aa2
fix(worker): drain in-flight jobs before the runner stops ( #2274 )
2026-08-31 22:06:12 +02:00
Hampus
bb7e8cc6f1
fix(gateway): flush buffered presences in arrival order ( #2273 )
2026-08-31 22:04:49 +02:00
Hampus
32a64fb097
fix(cache): refcount produce tracking so deletes are not lost ( #2272 )
2026-08-31 22:00:48 +02:00
Hampus
c4594397e7
fix(desktop): accept array-form AppRun sandbox fallback ( #2271 )
2026-08-31 21:42:03 +02:00
Hampus
6a188a4cdf
fix(api): enforce guild bans when approving registrations ( #2270 )
2026-08-31 20:19:18 +02:00
Hampus
0ca0defd24
fix(desktop): keep notification sounds during fullscreen apps ( #2269 )
2026-08-31 19:51:42 +02:00
Hampus
b0b84f9c98
fix(media-proxy): cap external streams with no declared length ( #2267 )
2026-08-31 19:23:48 +02:00
Hampus
ef8d1225b5
refactor(api): split webhook attachment schemas ( #2268 )
2026-08-31 19:13:51 +02:00
Hampus
240b7e4388
feat(expressions): add an expression pack residue cleanup tool ( #2265 )
2026-08-31 19:06:31 +02:00
Hampus
bd205d2250
fix(app-proxy): honour the shared Postgres settings ( #2262 )
2026-08-31 19:00:43 +02:00
Hampus
e5e5bcccee
docs(operator): pin self-hosting downloads to stable revision ( #2266 )
2026-08-31 18:57:58 +02:00
Hampus
a5395b0109
fix(api): support presigned webhook attachments ( #2264 )
2026-08-31 18:54:25 +02:00
Hampus
09cea4394f
fix(app-proxy): give each test fixture its own temp directory ( #2261 )
2026-08-31 18:49:30 +02:00
Hampus
afeaddea22
fix(cache): do not fan a failed getOrSet out to its joiners ( #2260 )
2026-08-31 18:44:31 +02:00
Hampus
45f694310a
fix(api): make the http header and request timeouts tunable ( #2259 )
2026-08-31 18:43:14 +02:00
Hampus
995f5118b2
fix(message): reap orphaned rows on the build paths ( #2257 )
2026-08-31 17:23:46 +02:00
Hampus
415888a615
fix(admin): stop a stale CSRF cookie wedging actions ( #2258 )
2026-08-31 17:23:35 +02:00
Hampus
542fb9176a
fix(svc): allow disabling named Postgres prepared statements ( #2256 )
2026-08-31 17:19:44 +02:00
Hampus
b8f8d8d859
feat(expressions): remove the unfinished packs feature ( #2250 )
2026-08-31 16:34:22 +02:00
Hampus
0eef611b6d
test(message): pin response mapping across batch boundaries ( #2255 )
2026-08-31 16:24:33 +02:00
Hampus
f0612ee860
fix(message): key batched message responses by message id ( #2254 )
2026-08-31 16:19:29 +02:00
Hampus
8c85cce75c
fix(message): bound batched message response requests by size ( #2252 )
2026-08-31 16:13:36 +02:00
Hampus
5036ac3efa
fix(api): allow disabling named Postgres prepared statements ( #2251 )
2026-08-31 16:10:52 +02:00
Hampus
9025e03422
feat(admin): remove the unfinished billing APIs and panel UI ( #2248 )
2026-08-31 15:57:11 +02:00
Hampus
e82e8529bf
fix(gateway): replay voice state updates after a resume ( #2249 )
2026-08-31 15:56:32 +02:00
Hampus
eb1ed69489
chore(api): drop scheduled messages from the openapi spec ( #2247 )
2026-08-31 15:43:34 +02:00
Hampus
e81f3f7eae
fix(cache): do not resurrect a key deleted during getOrSet ( #2246 )
2026-08-31 15:41:05 +02:00
Hampus
4b9964bc89
fix(api): stop bounding request body receipt at the header timeout ( #2245 )
2026-08-31 15:36:54 +02:00
Hampus
b4a2af75d0
fix(media-proxy): read content length from the response header ( #2244 )
2026-08-31 15:33:49 +02:00
Hampus
8c3e3285f7
fix(gateway): clamp the derived BEAM scheduler count ( #2243 )
2026-08-31 15:29:58 +02:00
Hampus
0a4f6ff9fb
fix(test): surface docker errors when a test container fails ( #2242 )
2026-08-31 15:16:53 +02:00
Hampus
bfa1367ca2
fix(gateway): restore erlfmt style in the presence rpc module ( #2241 )
2026-08-31 15:10:59 +02:00
Hampus
bb81a2f165
fix(self-host): persist valkey and stop evicting durable state ( #2240 )
2026-08-31 14:48:58 +02:00
Hampus
7f448b1cab
fix(message): always flag a message when a reaction is added ( #2239 )
2026-08-31 14:47:16 +02:00
Hampus
2dd35c0d6e
fix(gateway): reject unknown rpc methods instead of crashing ( #2238 )
2026-08-31 14:34:35 +02:00
Hampus
0e73346c5f
fix(svc): treat a shard overload reply as retryable backpressure ( #2237 )
2026-08-31 14:23:11 +02:00
Hampus
8476595507
fix(api): let node size its heap from the container limit ( #2236 )
2026-08-31 14:09:13 +02:00
Hampus
7b9284edb9
fix(build): allow unused patches when deploying the api subset ( #2235 )
2026-08-31 14:06:07 +02:00
Hampus
c982b33212
fix(self-host): size memory limits and make them overridable ( #2234 )
2026-08-31 13:42:12 +02:00
Hampus
3c8466d714
feat(message): remove the unfinished scheduled messages feature ( #2233 )
2026-08-31 13:32:55 +02:00
Hampus
eeea391b63
fix(kv): claim parked jobs by member instead of secondary key ( #2232 )
2026-08-31 13:16:52 +02:00
Hampus
5c2dca1c51
chore(workspace): tighten quality gates ( #2230 )
2026-08-31 04:43:20 +02:00
Hampus
e6e4c6f7b5
perf(api): stop exempting self-hosted from response gating ( #2228 )
2026-08-31 02:04:07 +02:00
Hampus
5f6f9428ac
build(api): bundle the api instead of transpiling at boot ( #2227 )
2026-08-31 01:26:30 +02:00
Hampus
ba54b61dcf
perf(guild): add a lean channel auth context rpc ( #2226 )
2026-08-31 01:04:55 +02:00
Hampus
8dc2bad843
perf(auth): cache auth session lookups by token hash ( #2225 )
2026-08-31 01:04:51 +02:00
Hampus
3594cbd5ca
perf(svc): forward messages shard replies without transcoding ( #2224 )
2026-08-31 01:04:47 +02:00
Hampus
21b1e4e719
perf(ready): stop sending read state twice per session ( #2223 )
2026-08-31 01:04:43 +02:00
Hampus
50a17b6263
fix(metrics): reject non-loopback callers on metrics endpoints ( #2222 )
2026-08-31 00:23:00 +02:00
Hampus
0a920def2b
fix(kv): mark the messages migration done instead of rescanning ( #2221 )
2026-08-31 00:22:56 +02:00
Hampus
c4b1471923
perf(api): cache channel and guild reads for the request ( #2220 )
2026-08-31 00:22:52 +02:00
Hampus
ab08ed0d7c
chore(self-host): give every compose service a memory ceiling ( #2212 )
2026-08-31 00:22:48 +02:00
Hampus
34c13a747d
chore(self-host): probe the api readiness during startup ( #2216 )
2026-08-31 00:17:09 +02:00
Hampus
d559d8853d
perf(gateway): size replay buffer entries once per dispatch ( #2210 )
2026-08-31 00:14:57 +02:00
Hampus
a96d9cd075
perf(worker): skip the bunny purge cron when purging is off ( #2208 )
2026-08-31 00:14:39 +02:00
Hampus
b163888cf3
perf(gateway): stop building discarded debug logs on fanout ( #2219 )
2026-08-31 00:13:27 +02:00
Hampus
b07e2c397c
perf(api): resolve the client ip once per request ( #2218 )
2026-08-31 00:13:24 +02:00
Hampus
3eeba1da2b
fix(gateway): stop discarding container logs and add readiness ( #2217 )
2026-08-31 00:13:20 +02:00
Hampus
e160b1bf07
perf(api): fast path json bodies with no large integers ( #2214 )
2026-08-31 00:13:17 +02:00
Hampus
1199b36d1a
perf(worker): stop rereading rows in the discovery index sync ( #2211 )
2026-08-31 00:13:13 +02:00
Hampus
7a506478c7
perf(message): unlog bucket index writes on the read path ( #2209 )
2026-08-31 00:13:09 +02:00
Hampus
6faa40e0c2
fix(worker): bound the jobs stream and shed on overflow ( #2204 )
2026-08-31 00:13:04 +02:00
Hampus
768657d7e5
perf(worker): batch the inactivity sweep activity lookups ( #2215 )
2026-08-31 00:07:07 +02:00
Hampus
7157cca22f
perf(worker): match the user export zip level to the guild one ( #2213 )
2026-08-31 00:07:03 +02:00
Hampus
7aec79d3ad
perf(worker): throttle the cancel check in the domain sync ( #2207 )
2026-08-31 00:06:59 +02:00
Hampus
4357d5ec5d
fix(search): stop leaking meilisearch task ids on the api ( #2206 )
2026-08-31 00:06:56 +02:00
Hampus
7c1c8b2749
perf(rate-limit): precompute bucket hash and client identifier ( #2205 )
2026-08-31 00:06:52 +02:00
Hampus
15656bd5c8
perf(users): read only the partial columns for partial requests ( #2203 )
2026-08-31 00:06:48 +02:00
Hampus
c4897a7026
fix(svc): bound scylla request timeout below the rpc budget ( #2202 )
2026-08-31 00:06:44 +02:00
Hampus
e993a47720
perf(guild): fetch guild members a thousand at a time ( #2201 )
2026-08-31 00:06:41 +02:00
Hampus
0d4c65ad79
perf(cassandra): skip re-registering identical select metadata ( #2200 )
2026-08-31 00:06:37 +02:00
Hampus
f09bdb2b00
fix(cache): single-flight getOrSet and cache null results ( #2199 )
2026-08-31 00:06:33 +02:00
Hampus
f1400ae58e
fix(cassandra): shorten the read timeout below the rpc deadline ( #2198 )
2026-08-31 00:06:29 +02:00
Hampus
b5496097d2
perf(message): reuse the resolved channel for dm send checks ( #2197 )
2026-08-31 00:06:25 +02:00
Hampus
d5fb495e19
perf(read-state): read acked read states in one query ( #2196 )
2026-08-31 00:06:20 +02:00
Hampus
00e716bc3f
perf(worker): skip the premium sweep on self-hosted instances ( #2195 )
2026-08-31 00:06:16 +02:00
Hampus
ea4edd668f
fix(worker): heartbeat long running jobs to hold the ack ( #2194 )
2026-08-31 00:06:12 +02:00
Hampus
a22db125a9
perf(ready): send timing diagnostics only to staff sessions ( #2190 )
2026-08-30 23:50:09 +02:00
Hampus
e7f68c2e20
test(message): count permission fetches instead of view checks ( #2193 )
2026-08-30 23:25:47 +02:00
Hampus
933b13f3fa
perf(gateway): re-enable generational GC on hot processes ( #2188 )
2026-08-30 23:23:26 +02:00
Hampus
0be6c9c734
perf(gateway): skip permission cache rebuild on no-op updates ( #2187 )
2026-08-30 23:23:22 +02:00
Hampus
5aac331368
perf(gateway): skip materialising member list subscribers ( #2184 )
2026-08-30 23:23:18 +02:00
Hampus
57ec484626
fix(app): persist input access nagbar dismissal ( #2192 )
2026-08-30 23:20:51 +02:00
Hampus
9cd832bfa9
fix(app): let backspace cross a composer soft-wrap boundary ( #2191 )
2026-08-30 23:19:02 +02:00
Hampus
299cc40ff5
fix(gateway): split inbound and outbound rpc concurrency keys ( #2186 )
2026-08-30 23:16:53 +02:00
Hampus
6d305bacdf
build(rust): enable fat lto and one codegen unit in release ( #2185 )
2026-08-30 23:16:49 +02:00
Hampus
6fd3177844
fix(auth): time-bound outbound fetches and re-key pwned cache ( #2183 )
2026-08-30 23:16:44 +02:00
Hampus
5586d34293
fix(app): preserve input access nagbar dismissal ( #2189 )
2026-08-30 23:11:57 +02:00
Hampus
d43d242b16
perf(api): compile the phrase blocklist into one matcher ( #2164 )
2026-08-30 23:05:55 +02:00
Hampus
9f620e8c4b
perf(user): prefetch user partials for list endpoints ( #2182 )
2026-08-30 23:05:17 +02:00
Hampus
6c9afcc734
perf(gateway): skip member list resync on inert presence deltas ( #2180 )
2026-08-30 23:05:13 +02:00
Hampus
43d6c85f7e
perf(push): batch badge count invalidation per mention chunk ( #2178 )
2026-08-30 23:05:08 +02:00
Hampus
78056e0041
perf(gateway): pre-encode voice state update fanout ( #2177 )
2026-08-30 23:05:03 +02:00
Hampus
e83a2d6aec
perf(user): stop double-writing last active on every request ( #2148 )
2026-08-30 23:04:59 +02:00
Hampus
bac06fe182
perf(gateway): restore generational GC as the vm default ( #2181 )
2026-08-30 23:01:25 +02:00
Hampus
8ff6518797
perf(postgres): name the fixed kv statement shapes ( #2173 )
2026-08-30 23:01:21 +02:00
Hampus
f0e7c25e4c
perf(kv): collate key columns in C and drop the duplicate index ( #2162 )
2026-08-30 23:01:06 +02:00
Hampus
0da94965dc
perf(push): cache empty subscriptions and chunk fanout lookups ( #2176 )
2026-08-30 22:53:07 +02:00
Hampus
d82eed16b7
perf(push): batch guild settings lookups for push eligibility ( #2175 )
2026-08-30 22:53:03 +02:00
Hampus
b26748a2a7
fix(api): bound http server limits and shed on overload ( #2170 )
2026-08-30 22:53:00 +02:00
Hampus
a2d7f5e8cc
perf(app-proxy): serve precompressed assets and pass through ( #2165 )
2026-08-30 22:52:15 +02:00
Hampus
72ffa3bd9a
perf(gateway): memoise the parsed internal rpc url ( #2174 )
2026-08-30 22:48:11 +02:00
Hampus
e2fccaee74
fix(gateway): derive BEAM scheduler count from the environment ( #2169 )
2026-08-30 22:48:07 +02:00
Hampus
e41b209cb8
perf(media-proxy): cache-probe and stream external fetches ( #2168 )
2026-08-30 22:48:03 +02:00
Hampus
2517caf674
fix(svc): shed overload instead of buffering router requests ( #2171 )
2026-08-30 22:45:50 +02:00
Hampus
b9ec0d5f53
perf(gateway): avoid per-key exceptions in guild data wire ( #2167 )
2026-08-30 22:45:47 +02:00
Hampus
02e614632f
perf(api): construct request services lazily ( #2166 )
2026-08-30 22:45:43 +02:00
Hampus
3ca73901c9
perf(gateway): cache zstd availability instead of reprobing it ( #2160 )
2026-08-30 22:45:38 +02:00
Hampus
c379eed266
perf(gateway): split circuit breaker state from its window ( #2154 )
2026-08-30 22:45:34 +02:00
Hampus
5bac4fd719
perf(api): gate response schema revalidation to non-production ( #2134 )
2026-08-30 22:45:29 +02:00
Hampus
dd610e4c0f
fix(messages): pass message refs to the mention context helpers ( #2179 )
2026-08-30 22:44:12 +02:00
Hampus
bf080cb001
fix(search): omit referenced message from search results ( #2172 )
2026-08-30 22:42:07 +02:00
Hampus
169088df26
perf(gateway): drop per-recipient mailbox probe on dispatch ( #2146 )
2026-08-30 22:42:03 +02:00
Hampus
4a2a29f154
perf(kv): merge row data in one statement on upsert and patch ( #2161 )
2026-08-30 22:37:18 +02:00
Hampus
1054962008
perf(kv): chunk oversized IN lists instead of scanning ( #2163 )
2026-08-30 22:36:51 +02:00
Hampus
8bc8603460
perf(message): skip redundant has_reaction writes on reactions ( #2149 )
2026-08-30 22:36:47 +02:00
Hampus
6538b0bfeb
perf(message): skip reaction deletes for unreacted messages ( #2147 )
2026-08-30 22:36:44 +02:00
Hampus
9d2339bb3b
perf(cassandra): memoize CQL statement metadata per query ( #2155 )
2026-08-30 22:34:49 +02:00
Hampus
096f38d365
perf(media-proxy): bound mime sniff scans and sniff once ( #2159 )
2026-08-30 22:29:00 +02:00
Hampus
1046edd903
perf(media-proxy): drop the extra HEAD on passthrough GETs ( #2157 )
2026-08-30 22:27:51 +02:00
Hampus
cbf504dbb8
perf(api): memoise the effective bluesky oauth config ( #2156 )
2026-08-30 22:27:47 +02:00
Hampus
8491872908
perf(user): batch mention and saved message reads ( #2139 )
2026-08-30 22:27:41 +02:00
Hampus
c207918e90
perf(api): fetch channel permissions in one gateway call ( #2145 )
2026-08-30 22:17:23 +02:00
Hampus
12717f692b
chore(self-host): match shard admission to the postgres pool ( #2153 )
2026-08-30 22:17:12 +02:00
Hampus
36d630b37b
perf(cassandra): drop allocations from the undefined param guard ( #2152 )
2026-08-30 22:16:26 +02:00
Hampus
5333fe7c3a
perf(guild): unlog the audit log index batch ( #2151 )
2026-08-30 22:16:23 +02:00
Hampus
efae78056e
fix(worker): park far-future jobs in a KV due queue ( #2144 )
2026-08-30 22:16:18 +02:00
Hampus
6eca64a8f7
fix(user): stop invalidating user cache on profile reads ( #2142 )
2026-08-30 22:16:14 +02:00
Hampus
fcb629ca06
perf(app-proxy): stream local assets instead of buffering them ( #2141 )
2026-08-30 22:16:10 +02:00
Hampus
289f1af253
perf(worker): skip guild settings for direct mentions ( #2140 )
2026-08-30 22:16:06 +02:00
Hampus
8adc3ecb0b
perf(message): build pin responses in one messages round trip ( #2138 )
2026-08-30 22:16:02 +02:00
Hampus
e328c001a1
perf(messages): prefilter mention extraction and drop a pass ( #2137 )
2026-08-30 22:15:58 +02:00
Hampus
f796a31613
perf(worker): stop ledgering the two per-message tasks ( #2136 )
2026-08-30 22:15:54 +02:00
Hampus
e1bab2e353
perf(message): reuse channel auth across send and edit ( #2135 )
2026-08-30 22:15:49 +02:00
Hampus
1c135176d2
perf(messages): stop channel history scan once the page is full ( #2133 )
2026-08-30 22:15:45 +02:00
Hampus
723f0d6e6e
perf(logger): stop building a throwaway pino root per child ( #2132 )
2026-08-30 22:15:40 +02:00
Hampus
e14d193b43
fix(api): order service timeouts so inner hops expire first ( #2131 )
2026-08-30 22:15:36 +02:00
Hampus
9d1733bdb3
perf(kv-client): use EVALSHA for rate limit scripts ( #2130 )
2026-08-30 22:15:32 +02:00
Hampus
e06436d6f5
perf(svc): use cached prepared statements for postgres kv reads ( #2129 )
2026-08-30 22:15:28 +02:00
Hampus
4f67e2b362
perf(messages): overlap user partial fetch with response joins ( #2128 )
2026-08-30 22:15:24 +02:00
Hampus
8aa3415d73
perf(message): unlog bulk message delete batches ( #2126 )
2026-08-30 22:15:19 +02:00
Hampus
74f22e89ce
perf(svc): reuse the decoded request instead of reparsing it ( #2125 )
2026-08-30 22:15:15 +02:00
Hampus
7d826d1602
perf(rpc): bound concurrency in user batch fanout handlers ( #2124 )
2026-08-30 22:15:11 +02:00
Hampus
8aa39bc7db
perf(message): drop two reads and a write from message create ( #2123 )
2026-08-30 22:15:07 +02:00
Hampus
36dcf51024
fix(cassandra): bound driver in-flight requests per connection ( #2122 )
2026-08-30 22:15:02 +02:00
Hampus
3e74180bdc
chore(self-host): budget postgres pool sizes across services ( #2127 )
2026-08-30 22:14:56 +02:00
Hampus
45ed740575
chore(self-host): tune bundled postgres for the shipped box ( #2143 )
2026-08-30 22:14:52 +02:00
Hampus
8092ad8c4d
fix(media-proxy): support current FFmpeg APIs ( #2158 )
2026-08-30 22:08:55 +02:00
Hampus
b4d9cdc584
refactor(voice): remove heartbeat and debug logging sessions ( #2121 )
2026-08-30 21:08:46 +02:00
Hampus
36b85512c6
chore(api): drop knip-unused Postgres KV exports ( #2119 )
2026-08-30 18:58:50 +02:00
Hampus
14ae64f5f3
perf(api): stop Postgres KV reads scanning whole tables ( #2118 )
2026-08-30 18:34:23 +02:00
M0N7Y5
990176ac7c
feat(markdown): add a binary AST envelope to the native ABI ( #2117 )
2026-08-30 17:47:58 +02:00
M0N7Y5
69ef46356b
feat(markdown): add a native C ABI for 64-bit FFI hosts ( #2115 )
2026-08-30 15:47:34 +02:00
Hampus
bd88c7b04b
fix(desktop): don't fail startup on inconclusive native probe ( #2114 )
2026-08-30 15:22:48 +02:00
Hampus
03641f622f
refactor(voice): flatten participant context menu and extract stream menus ( #2112 )
2026-08-30 03:02:30 +02:00
Hampus
3b1eb56713
fix(voice): never auto-select AV1 or HEVC for screen sharing ( #2111 )
2026-08-30 02:05:21 +02:00
Hampus
059bcc6c53
chore(app): regenerate theme variable manifest for font fallbacks ( #2110 )
2026-08-30 01:30:00 +02:00
Hampus
82043ce2a8
fix(guild): show duplicated role in its final spot without flicker ( #2109 )
2026-08-30 01:25:34 +02:00
Hampus
470e752fba
chore(i18n): refresh catalogs for role and permission menus ( #2108 )
2026-08-30 00:17:31 +02:00
Hampus
3cc7b9050c
fix(app): clear stuck spellcheck reload banner ( #2107 )
2026-08-30 00:12:48 +02:00
Hampus
b1f7c78c7e
fix(app): overwrite context menu hover and delete danger item ( #2106 )
2026-08-30 00:12:41 +02:00
Hampus
8f20b29b16
feat(guild): duplicate role, plus delete and hover in roles sidebar ( #2105 )
2026-08-30 00:12:36 +02:00
Hampus
19efbd3d61
fix(app): scope the show-send-button toggle to the main composer ( #2104 )
2026-08-30 00:12:31 +02:00
Hampus
f35c0effa2
chore(i18n): drop unused gift redemption string ( #2102 )
2026-08-29 23:31:28 +02:00
Hampus
8363cc0844
fix(app): send only the gift link when gifting to a friend ( #2101 )
2026-08-29 23:29:49 +02:00
Hampus
5a11cacbae
chore(i18n): refresh catalogs for spellcheck copy ( #2100 )
2026-08-29 23:03:01 +02:00
Hampus
27151a9487
fix(desktop): restore Linux spellcheck, prefer OS engine ( #2099 )
2026-08-29 22:58:48 +02:00
Hampus
c152b25deb
chore(i18n): refresh catalogs for global shortcut string ( #2098 )
2026-08-29 22:57:18 +02:00
Hampus
04d3afaf7b
fix(app): default voice shortcuts to global and add a toggle ( #2097 )
2026-08-29 22:46:30 +02:00
Hampus
dbc63e9ef7
fix(voice): surface stream audio volume for screen-share viewers ( #2095 )
2026-08-29 22:05:06 +02:00
Hampus
ce91ff95ab
fix(app): render raw unicode emoji with OS color emoji fonts ( #2094 )
2026-08-29 21:09:08 +02:00
Hampus
d75a29f099
feat(app): composer send-button toggle and active button hover ( #2093 )
2026-08-29 20:25:49 +02:00
Hampus
cb889b1160
fix(api): correct apns clear payload and badge handling ( #2092 )
2026-08-29 20:07:18 +02:00
Hampus
8db4f5cb63
feat(app): full-Unicode font fallback with self-hosted Noto ( #2091 )
2026-08-29 19:27:47 +02:00
Hampus
d297dc5805
feat(api): exempt APP_STORE_REVIEWER accounts from captcha ( #2090 )
2026-08-29 18:00:52 +02:00
Hampus
9b8659a40b
fix(desktop): stop the updater button flickering after download ( #2089 )
2026-08-29 17:44:43 +02:00
Hampus
96c5db3f5d
fix(markdown): open code blocks for fences after text ( #2088 )
2026-08-29 17:32:43 +02:00
Hampus
78e403819e
fix(admin): set delete_message_seconds on ban request ( #2087 )
2026-08-29 16:35:40 +02:00
Hampus
805acf4e5e
feat(ban): accept delete_message_seconds and app options ( #2086 )
2026-08-29 16:22:12 +02:00
Hampus
9f099a9127
fix(api): keep the saved placeholder on sent memes ( #2085 )
2026-08-29 16:04:58 +02:00
Hampus
4d15c39cd7
fix(app): give mature media blur the real media dimensions ( #2084 )
2026-08-29 16:04:55 +02:00
Hampus
827451d12d
fix(unfurl): trust curated klipy media without rescanning ( #2083 )
2026-08-29 16:04:52 +02:00
Hampus
03603662c6
fix(media-proxy): require corroborating frames for nsfw ( #2082 )
2026-08-29 16:04:48 +02:00
Hampus
34eb10cd88
fix(markdown): only open code fences at line start ( #2081 )
2026-08-29 15:59:04 +02:00
Hampus
82941c08c9
fix(api): enforce single-role MFA, fix reindex and NCMEC scans ( #2080 )
2026-08-29 15:31:42 +02:00
Hampus
8d21c97d08
fix(admin): sort session imports to satisfy rustfmt ( #2079 )
2026-08-29 15:05:04 +02:00
Hampus
71a56f590d
fix(ci): read dependent load flags at the pe32+ offset ( #2078 )
2026-08-29 15:00:38 +02:00
Hampus
38297c4fe7
chore(api): drop knip-unused search and SSO exports ( #2077 )
2026-08-29 15:00:09 +02:00
Hampus
cf7ec06d85
fix(api): enforce scoped perms, age gates, audit logs ( #2076 )
2026-08-29 14:55:13 +02:00
Hampus
f2ea10f951
fix(api): harden ratelimit, SSRF, uploads and DM guards ( #2074 )
2026-08-29 14:55:09 +02:00
Hampus
bbd93df239
fix(api): expire auth tokens and harden login checks ( #2073 )
2026-08-29 14:55:04 +02:00
Hampus
9a6ab93e01
fix(media-proxy): bound GIF decode and BMFF box walking ( #2075 )
2026-08-29 14:55:00 +02:00
Hampus
38eed7cce6
fix(gateway): restrict /_metrics to loopback callers ( #2072 )
2026-08-29 14:54:56 +02:00
Hampus
79064c3399
fix(admin): sign CSRF tokens and escape them in scripts ( #2071 )
2026-08-29 14:54:51 +02:00
Hampus
0496b2f530
fix(ci): reject path traversal in S3 prefix downloads ( #2070 )
2026-08-29 14:54:37 +02:00
Hampus
9d0be1ebd1
fix(desktop): drop game capture injection and pin dll search ( #2069 )
2026-08-29 14:26:28 +02:00
Hampus
9ad026b8ce
fix(app): repair theme CSS sync persistence and data loss ( #2067 )
2026-08-29 03:37:41 +02:00
Hampus
14de5971d5
chore(api): drop unused ELEVATED_MFA_PERMISSIONS export ( #2066 )
2026-08-29 03:12:24 +02:00
Hampus
5474be3efa
fix(api): close auth, billing and authorization bypasses ( #2065 )
2026-08-29 02:59:38 +02:00
fluxer-ci[bot]
9a54bbba2d
chore(i18n): update public marketing catalogs ( #2064 )
2026-08-29 01:52:48 +02:00
fluxer-ci[bot]
5a0110ccc8
chore(marketing): advance pointer 0c78170 → 5908507 ( #2063 )
2026-08-29 01:52:44 +02:00
Hampus
d032d577bf
fix(app-proxy): drop leaked canary debug cert from assetlinks ( #2062 )
2026-08-29 01:43:26 +02:00
Hampus
243954c9c5
test(api): use a future baseline in invoice-skip premium tests ( #2061 )
2026-08-29 01:22:29 +02:00
Hampus
ba1be73389
fix(media-proxy): cap ISO-BMFF box walker recursion depth ( #2059 )
2026-08-29 01:04:46 +02:00
Hampus
af3ad02962
fix(voice): default noise suppression to standard
2026-08-28 20:43:22 +02:00
Hampus
53ddca725e
fix(desktop): deduplicate macOS release feeds ( #2056 )
2026-08-28 19:16:35 +02:00
Hampus
094fb0d1c8
feat(downloads): route desktop releases through GitHub
2026-08-28 18:19:08 +02:00
Hampus
dc230926a4
fix(desktop): skip glibc check for directory packs
2026-08-28 15:09:00 +02:00
Hampus
026ace6747
fix(ci): publish draft releases by ID ( #2050 )
2026-08-28 00:38:09 +02:00
Hampus
374db9ed2b
fix(desktop): harden capture and release packaging ( #2049 )
2026-08-27 23:54:38 +02:00
fluxer-ci[bot] and Jiralite
5ee59c4675
chore(i18n): update public marketing catalogs ( #2047 )
...
Co-authored-by: Jiralite <[email protected] >
2026-08-27 17:49:52 +01:00
fluxer-ci[bot] and Jiralite
33605171a8
chore(marketing): advance pointer 530c44e → 0c78170 ( #2046 )
...
Co-authored-by: Jiralite <[email protected] >
2026-08-27 17:49:38 +01:00
Hampus
89fac5b088
fix(api): use webhook ID for mention author ( #2045 )
2026-08-27 17:01:26 +02:00
Hampus
4a34b942b7
fix(api): key mention chunks by content ( #2044 )
2026-08-27 16:02:24 +02:00
Hampus
fc3065ebe4
fix(desktop): build with compatible PipeWire headers ( #2043 )
2026-08-27 15:18:15 +02:00
Hampus
23493b4ac2
fix(desktop): build libfido2 on Linux runners ( #2042 )
2026-08-27 14:44:44 +02:00
Hampus
13344096b7
fix(desktop): keep Linux builds compatible with glibc 2.35 ( #2041 )
2026-08-27 13:41:08 +02:00
Hampus
a800430997
fix(app): sort interface languages by locale code ( #2040 )
2026-08-27 13:30:39 +02:00
Hampus
509562e6da
feat(app): delete attachments from the media viewer ( #2039 )
2026-08-27 13:26:18 +02:00
Hampus
88d85919f1
fix(app): trim pasted friend tags ( #2038 )
2026-08-27 13:12:12 +02:00
Hampus
154e223284
fix(app): keep sticker sizes fixed while resizing the expression picker
2026-08-27 12:59:38 +02:00
Hampus
58732f7770
fix(api): configure email app base URL separately
2026-08-27 03:26:11 +02:00
Hampus
cb4c847d41
fix(app): separate unread state from unread counts
2026-08-27 02:35:56 +02:00
Hampus
d3976e33f8
fix(app): keep unread channel opens anchored to the divider
2026-08-27 02:02:45 +02:00
Hampus
8e17970632
fix(app): submit message edits in background
2026-08-26 23:54:28 +02:00
Hampus
c0048504db
fix(gifs): bound shard cache memory
2026-08-26 23:22:46 +02:00
Hampus
5015452280
fix(search): respect scope in channel suggestions
2026-08-26 23:06:07 +02:00
Hampus
c504b68354
fix(api): store administrator user archives separately ( #2025 )
2026-08-26 21:40:57 +02:00
Hampus
5d2e5932a4
fix(workspace): stabilise the development stack ( #2024 )
2026-08-26 18:52:53 +02:00
Hampus
cf1a7d7a8a
fix(api): mask Tor blocks as administrator IP bans ( #2023 )
2026-08-26 16:07:19 +02:00
Hampus
14a935db81
feat(settings): add mobile camera upload preference
2026-08-26 15:31:53 +02:00
Hampus
f98a40062a
fix(markdown): render default-presentation emoji without variation selectors
2026-08-26 14:19:28 +02:00
Hampus
f7ebc1492c
fix(app): recover active session after Electron downgrade
2026-08-26 01:33:26 +02:00
Hampus
da3922586a
fix(desktop): restore Windows canary builds ( #2017 )
2026-08-25 23:54:33 +02:00
Hampus
28184f8d4d
chore(desktop): downgrade Electron to 42.10.0 ( #2016 )
2026-08-25 23:21:20 +02:00
fluxer-ci[bot] and hampus-fluxer
a4e7522ca0
chore(i18n): update public marketing catalogs ( #2015 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-25 21:42:18 +02:00
fluxer-ci[bot] and hampus-fluxer
59b3d30323
chore(marketing): advance pointer 1915e59 → 530c44e ( #2014 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-25 21:41:56 +02:00
Hampus
53cac0b614
style(markdown): format the escaped emoji branch ( #2012 )
2026-08-25 14:48:30 +02:00
Hampus
82c29398d3
fix(markdown): render an escaped raw emoji as a plain glyph ( #2011 )
2026-08-25 14:24:20 +02:00
Hampus
6d289e31c7
fix(app): make a backslash before an emoji node keep it literal ( #2010 )
2026-08-25 14:23:52 +02:00
Hampus
5ec02c3089
fix(tools): stop the wasm clang test depending on an executable tempfile ( #2009 )
2026-08-25 14:23:18 +02:00
Hampus
9940273cd9
docs: drop the release status notices from the readme ( #2008 )
2026-08-25 14:09:54 +02:00
Hampus
21c7b9872e
fix(app): show composer autocomplete above modal surfaces ( #2007 )
2026-08-25 13:48:59 +02:00
Hampus
fa99ec6f8f
fix(app): keep a backslash-escaped emoji literal in the composer ( #2006 )
2026-08-25 13:45:53 +02:00
Hampus
78f7db9250
fix(app): convert pasted and edited unicode emoji in the composer ( #2005 )
2026-08-25 13:44:26 +02:00
Hampus
c101610c46
fix(markdown): render an escaped emoji shortcode as its raw glyph ( #2004 )
2026-08-25 13:42:51 +02:00
Hampus
6d383c7d0a
chore(i18n): translate the new bio and resize handle strings ( #2003 )
2026-08-25 13:07:08 +02:00
Hampus
2ca756d219
feat(app): give the topic and bio composers channel-aware autocomplete ( #2002 )
2026-08-25 12:57:18 +02:00
Hampus
1153327c75
feat(app): follow the newest forward target for mention autocomplete ( #2001 )
2026-08-25 12:57:06 +02:00
Hampus
42e45a0e3a
fix(app): honour silent and emoticon settings on forward comments ( #2000 )
2026-08-25 12:56:53 +02:00
Hampus
9f5a5b16d3
fix(app): resolve custom emoji before gating the edit length ( #1999 )
2026-08-25 12:56:39 +02:00
Hampus
44ecd928f0
fix(app): measure emoji inserts by the sent length, not the shortcode ( #1998 )
2026-08-25 12:56:26 +02:00
Hampus
3f5c8d8d0a
fix(app): move the caret to the line edges on home and end ( #1997 )
2026-08-25 12:56:13 +02:00
Hampus
e32c5b73a7
fix(app): send default emoji as unicode instead of shortcodes ( #1996 )
2026-08-25 12:56:01 +02:00
Hampus
21e806b991
fix(api): keep premium through cancellation and refund pix exactly ( #1995 )
2026-08-25 00:57:09 +02:00
Hampus
29e244d4eb
chore(deploy): remove the outdated helm charts and cluster manifests ( #1994 )
2026-08-25 00:19:07 +02:00
Hampus
0b6edf5690
fix(api): stop exporting the pix refund shortfall constant ( #1993 )
2026-08-24 23:48:49 +02:00
Hampus
9af7719d34
chore(i18n): drop the unused obtainium body string from the catalogs ( #1992 )
2026-08-24 23:40:41 +02:00
Hampus
9e5b4da954
fix(i18n): correct hebrew, korean and turkish download strings ( #1990 )
2026-08-24 23:32:09 +02:00
Hampus
b807234806
chore(i18n): translate the new marketing download strings ( #1987 )
2026-08-24 23:26:07 +02:00
Hampus
3445b94af3
fix(api): end premium at the real cancellation time and unstick pix refunds ( #1985 )
2026-08-24 22:43:52 +02:00
Hampus
c226eb7211
perf(repo): parallelise api tests and cache image builds in ghcr ( #1984 )
2026-08-24 21:24:39 +02:00
Hampus
3afad20e36
refactor(api): remove the pneumatic post system dm system ( #1983 )
2026-08-24 19:56:13 +02:00
Hampus
86497155cd
fix(app): keep avatars round in webkit browsers ( #1982 )
2026-08-24 17:57:19 +02:00
Hampus
af82974c8a
fix(api): keep the harvest download route literal for schema generation ( #1980 )
2026-08-24 14:55:11 +02:00
Hampus
bd4117fa0a
feat(api): stream harvest downloads from the configured s3 bucket ( #1979 )
2026-08-24 14:39:05 +02:00
Hampus
f004685424
fix(repo): make the workspace lint, typecheck and test clean ( #1978 )
2026-08-24 13:35:22 +02:00
Hampus
b268320406
chore(i18n): re-extract the message catalogs for the new strings ( #1977 )
2026-08-24 12:56:47 +02:00
Hampus
7a33b3198a
fix(app): stop reprobing image format support on every build ( #1976 )
2026-08-24 12:56:26 +02:00
Hampus
66791d3ca2
fix(app): stop fetching a tiny avatar for the large voice tile ( #1975 )
2026-08-24 12:56:16 +02:00
Hampus
a0d4a33fd4
fix(app): write the first voice session restore snapshot on startup ( #1974 )
2026-08-24 12:56:04 +02:00
Hampus
fdd12194b1
fix(app): record voice messages in a widely playable container ( #1973 )
2026-08-24 12:55:53 +02:00
Hampus
bf11445299
fix(app): terminate the voice e2ee worker with the room that owns it ( #1972 )
2026-08-24 12:55:42 +02:00
Hampus
61bf8f6ad3
perf(app): load voice background tiles only near the viewport ( #1971 )
2026-08-24 12:55:32 +02:00
Hampus
52282bfccf
refactor(app): collapse the wrapped voice avatar render branches into one ( #1970 )
2026-08-24 12:55:22 +02:00
Hampus
cf3a31ac42
perf(app): keep more twemoji urls cached instead of dropping them all ( #1969 )
2026-08-24 12:55:11 +02:00
Hampus
f56ccf5ef5
fix(app): keep tooltips inside the fullscreen element ( #1968 )
2026-08-24 12:55:00 +02:00
Hampus
51e2eee15a
fix(app): stop aborting shared uploads when cancelling one attachment ( #1967 )
2026-08-24 12:54:50 +02:00
Hampus
de97bf908d
fix(app): accept tenor links with a regional locale prefix ( #1966 )
2026-08-24 12:54:39 +02:00
Hampus
099fb80da2
perf(app): stop double-loading stream previews into the image cache ( #1965 )
2026-08-24 12:54:29 +02:00
Hampus
022ccc794d
perf(app): render guild stickers only near the modal viewport ( #1964 )
2026-08-24 12:54:19 +02:00
Hampus
987768e8dc
fix(app): only animate stickers that actually have animation ( #1963 )
2026-08-24 12:54:08 +02:00
Hampus
a3ffe963c3
fix(app): inherit the parent gap inside stepped carousel panes ( #1962 )
2026-08-24 12:53:58 +02:00
Hampus
b51562d0e3
fix(app): keep focus and its ring on a spoiler after it is revealed ( #1961 )
2026-08-24 12:53:47 +02:00
Hampus
38e86acffe
fix(app): let a sound restart immediately after being stopped ( #1960 )
2026-08-24 12:53:34 +02:00
Hampus
38a299d852
fix(app): show community avatars in the search user filter ( #1959 )
2026-08-24 12:53:20 +02:00
Hampus
55b25c919d
fix(app): announce search result counts to screen readers ( #1958 )
2026-08-24 12:53:10 +02:00
Hampus
2af4cc98fd
feat(app): suggest filters and people while typing search text ( #1957 )
2026-08-24 12:52:58 +02:00
Hampus
e68b5b8b5a
fix(app): stop animations running under reduced motion ( #1956 )
2026-08-24 12:52:47 +02:00
Hampus
317b4e26c0
fix(app): stop the pointer hijacking quick switcher selection ( #1955 )
2026-08-24 12:52:36 +02:00
Hampus
af5bee9149
fix(app): stop refetching profile art when menus appear ( #1954 )
2026-08-24 12:52:26 +02:00
Hampus
26939eccce
fix(app): let the profile popout banner fill its header ( #1953 )
2026-08-24 12:52:16 +02:00
Hampus
54360708d9
fix(app): stop rewriting profile bio emoji urls on hover ( #1952 )
2026-08-24 12:52:06 +02:00
Hampus
e441c7229c
fix(app): version profile badge assets so they refresh ( #1951 )
2026-08-24 12:51:56 +02:00
Hampus
54e5fe6ef9
fix(app): stop premium upsell preview emoji from stretching ( #1950 )
2026-08-24 12:51:45 +02:00
Hampus
6fc0f1ccd7
fix(app): remove popout stylesheets when the main document drops them ( #1949 )
2026-08-24 12:51:35 +02:00
Hampus
6cd30d893a
feat(app): let the pinned messages popout be resized ( #1948 )
2026-08-24 12:51:25 +02:00
Hampus
dceb9061d9
perf(app): recompute picker grid layout in scroll chunks ( #1947 )
2026-08-24 12:51:13 +02:00
Hampus
21438b2d8f
fix(app): fade the picker thumbhash out instead of fading images in ( #1946 )
2026-08-24 12:50:59 +02:00
Hampus
793e853eb3
fix(app): fit media to its real box and gate the zoom buttons ( #1945 )
2026-08-24 12:50:48 +02:00
Hampus
9cbe0efbbb
fix(app): rank permission override member search by the worker order ( #1944 )
2026-08-24 12:50:27 +02:00
Hampus
9219b886fe
fix(app): add a quick modal motion preset and settle instant modals ( #1943 )
2026-08-24 12:50:16 +02:00
Hampus
2377a4c9d0
fix(app): honour motion settings in the mobile meme picker ( #1942 )
2026-08-24 12:50:06 +02:00
Hampus
986c586683
fix(app): show message actions only on keyboard focus ( #1941 )
2026-08-24 12:49:52 +02:00
Hampus
7be52fa9fc
perf(app): stop redundant member list presence updates ( #1940 )
2026-08-24 12:49:40 +02:00
Hampus
32d7ae3eef
fix(app): track member list width with a media query ( #1939 )
2026-08-24 12:49:29 +02:00
Hampus
ef6fb4903f
perf(app): redraw the media timestamp only when the second changes ( #1938 )
2026-08-24 12:49:19 +02:00
Hampus
0fe3f7523d
fix(app): leave fullscreen when the video player unmounts ( #1937 )
2026-08-24 12:49:08 +02:00
Hampus
9991534c83
perf(app): reuse parsed markdown across message renders ( #1936 )
2026-08-24 12:48:57 +02:00
Hampus
455681b24c
fix(app): build settings preview state lazily at first use ( #1935 )
2026-08-24 12:48:47 +02:00
Hampus
14e63085dd
feat(app): resize the inbox popout from any edge ( #1934 )
2026-08-24 12:48:36 +02:00
Hampus
e8cb1cefbd
fix(app): reject oversized images before cropping an emoji or sticker ( #1933 )
2026-08-24 12:48:23 +02:00
Hampus
919e890011
fix(app): show guild initials until the guild icon has painted ( #1932 )
2026-08-24 12:48:11 +02:00
Hampus
299172c8aa
fix(app): animate guild icons through the shared motion gate ( #1931 )
2026-08-24 12:47:59 +02:00
Hampus
6cac93ef39
fix(app): use guild initials for community picker rows ( #1930 )
2026-08-24 12:47:49 +02:00
Hampus
e5c8ef7d60
perf(app): stop loading the animated guild banner where it is hidden ( #1929 )
2026-08-24 12:47:37 +02:00
Hampus
d0b4688a6c
perf(app): reuse pooled gif videos instead of caching blobs ( #1928 )
2026-08-24 12:47:13 +02:00
Hampus
e0464ee5be
fix(app): pick gif picker previews by format and skip empty sources ( #1927 )
2026-08-24 12:47:01 +02:00
Hampus
cbcd299bd9
fix(app): keep a child's own data-flx when wrapped in a focus ring ( #1926 )
2026-08-24 12:46:51 +02:00
Hampus
1300e5a690
fix(app): refresh favorite gif previews that point at a provider page ( #1925 )
2026-08-24 12:46:40 +02:00
Hampus
fbd653d8e0
feat(app): resize the expression picker and snap to emoji columns ( #1924 )
2026-08-24 12:46:30 +02:00
Hampus
eb4f41e80c
perf(app): preload picker images through the shared image cache ( #1923 )
2026-08-24 12:46:19 +02:00
Hampus
589a01a2da
fix(app): load expression grid images only when they scroll into view ( #1922 )
2026-08-24 12:46:08 +02:00
Hampus
aae6b99761
fix(app): stop the skin tone selector listening while closed ( #1921 )
2026-08-24 12:45:57 +02:00
Hampus
5d35047734
fix(app): reserve emoji picker cells while their image loads ( #1920 )
2026-08-24 12:45:47 +02:00
Hampus
98d10215d6
fix(app): blur mature embed images and videos ( #1919 )
2026-08-24 12:45:36 +02:00
Hampus
6656628bba
fix(app): load small list avatars eagerly ( #1918 )
2026-08-24 12:45:24 +02:00
Hampus
37f46fc62d
fix(app): hide decorative country and region flags from screen readers ( #1917 )
2026-08-24 12:45:13 +02:00
Hampus
9efd2b0a73
fix(app): replace the whole +: token when picking a reaction emoji ( #1916 )
2026-08-24 12:45:02 +02:00
Hampus
b1fb2c14a1
fix(app): keep composer markdown highlighting aligned on long messages ( #1915 )
2026-08-24 12:44:51 +02:00
Hampus
c5d910425e
fix(app): honour the animation setting for composer custom emoji ( #1914 )
2026-08-24 12:44:40 +02:00
Hampus
0a9e64d36a
fix(app): keep the character counter inside the composer box ( #1913 )
2026-08-24 12:44:30 +02:00
Hampus
7d02b7959f
fix(app): honour motion settings in composer autocomplete previews ( #1912 )
2026-08-24 12:44:19 +02:00
Hampus
0670380360
fix(app): reuse highlighted code instead of flashing plain text ( #1911 )
2026-08-24 12:44:09 +02:00
Hampus
904987795a
fix(app): let custom branding override the built-in meta description ( #1910 )
2026-08-24 12:43:58 +02:00
Hampus
4ee1b2294a
fix(app): show a still ban image under reduced motion or data saver ( #1909 )
2026-08-24 12:43:47 +02:00
Hampus
97eb84fd46
fix(app): keep avatar stack entries keyed by user across re-renders ( #1908 )
2026-08-24 12:43:37 +02:00
Hampus
5eb7822691
fix(app): show cached auth splash art without a fade-in flash ( #1907 )
2026-08-24 12:43:26 +02:00
Hampus
79cf57abe4
perf(app): keep gateway and layer manager off the auth session path ( #1906 )
2026-08-24 12:43:15 +02:00
Hampus
075bdb5128
fix(app): size auth entity icons to their reserved box ( #1905 )
2026-08-24 12:43:04 +02:00
Hampus
65698051ac
fix(app): keep paging when the jumped-to message is missing ( #1904 )
2026-08-24 12:42:54 +02:00
Hampus
95559f17d8
fix(app): drive the message list window from one load state machine ( #1903 )
2026-08-24 12:42:42 +02:00
Hampus
aabc13e3cb
perf(app): window sticker picker rows by offset instead of observers ( #1902 )
2026-08-24 12:42:31 +02:00
Hampus
b71ced9b2e
fix(app): tell the user when a search query has nothing to search ( #1901 )
2026-08-24 12:42:20 +02:00
Hampus
bb34c73069
perf(app): load sheet and popout media against their own scrollers ( #1900 )
2026-08-24 12:42:09 +02:00
Hampus
94bbbd1021
fix(app): only track hover on reactions that have an animated emoji ( #1899 )
2026-08-24 12:41:58 +02:00
Hampus
670a3a970e
fix(app): stop pickers re-slicing their grid on first paint ( #1898 )
2026-08-24 12:41:47 +02:00
Hampus
7a938c85f6
fix(app): stop rewriting message emoji urls to toggle animation ( #1897 )
2026-08-24 12:41:36 +02:00
Hampus
3a6bc4bc7b
perf(app): show the message action bar from css not remounting ( #1896 )
2026-08-24 12:41:24 +02:00
Hampus
c54d7bcc88
perf(app): render member list rows in scroll chunks ( #1895 )
2026-08-24 12:41:14 +02:00
Hampus
b81bfc80fd
fix(app): stop the inbox reshuffling unread channels as you read them ( #1894 )
2026-08-24 12:41:03 +02:00
Hampus
d8bad50eec
perf(app): defer video embed metadata probes until hover ( #1893 )
2026-08-24 12:40:53 +02:00
Hampus
3fe6217809
fix(app): keep animated embed images animated ( #1892 )
2026-08-24 12:40:41 +02:00
Hampus
50a947a722
fix(app): fade image embed placeholders out instead of images in ( #1891 )
2026-08-24 12:40:29 +02:00
Hampus
7fe5aad16e
feat(app): suggest recent speakers and stop autocomplete list flicker ( #1890 )
2026-08-24 12:40:19 +02:00
Hampus
97d559f749
fix(app): label pending composer attachments for screen readers ( #1889 )
2026-08-24 12:40:07 +02:00
Hampus
188f783fae
fix(app): request attachment images at their real mosaic tile size ( #1888 )
2026-08-24 12:39:56 +02:00
Hampus
3a064dd728
feat(app): render search filters as inline tokens you can type through ( #1887 )
2026-08-24 12:39:45 +02:00
Hampus
202856c0f7
feat(app): keep search history per conversation and allow in: in DMs ( #1886 )
2026-08-24 12:39:34 +02:00
Hampus
406340fa65
fix(app): open channels at the unread divider and settle jump scrolling ( #1885 )
2026-08-24 12:39:23 +02:00
Hampus
735ecc1cca
fix(api): distinguish a deleted reply target from no reply ( #1884 )
2026-08-24 12:39:11 +02:00
Hampus
7b646f891e
fix(app): animate reaction emoji only while hovering them ( #1883 )
2026-08-24 12:37:48 +02:00
Hampus
19264d7f81
perf(app): preload reaction menu emoji at the size they render ( #1882 )
2026-08-24 12:37:38 +02:00
Hampus
76ce060d13
fix(app): stop the quick switcher list rebuilding while you navigate ( #1881 )
2026-08-24 12:37:27 +02:00
Hampus
9b3dc19037
perf(app): load the keyboard mode intro modal only when it is shown ( #1880 )
2026-08-24 12:37:12 +02:00
Hampus
5821a68816
fix(app): show the server avatar on message notifications ( #1879 )
2026-08-24 12:37:01 +02:00
Hampus
e21544eac2
fix(app): order member mention results by search relevance ( #1878 )
2026-08-24 12:36:50 +02:00
Hampus
1f0f7d1222
perf(app): play gif embeds from the viewport not a js decoder ( #1877 )
2026-08-24 12:36:38 +02:00
Hampus
69e0086144
feat(app): warm full-size media while hovering an attachment ( #1876 )
2026-08-24 12:36:27 +02:00
Hampus
61ce8729de
fix(app): stop overlaying a sharpening canvas in the media viewer ( #1875 )
2026-08-24 12:36:15 +02:00
Hampus
44869b0ce4
fix(app): stop seeking and hidden tabs from stranding playback ( #1874 )
2026-08-24 12:35:58 +02:00
Hampus
213dd53ee8
fix(app): size youtube embeds with the shared embed limits ( #1873 )
2026-08-24 12:35:42 +02:00
Hampus
844952db51
feat(app): drop the compact attachments media size preference ( #1872 )
2026-08-24 12:35:28 +02:00
Hampus
eda29c0e34
fix(app): contain embedded media inside its box instead of overflowing ( #1871 )
2026-08-24 12:35:15 +02:00
Hampus
5834e32aa5
perf(app): window emoji picker rows by offset instead of observers ( #1870 )
2026-08-24 12:35:02 +02:00
Hampus
a59f3d0d0c
fix(app): animate message emoji only while hovering the message ( #1869 )
2026-08-24 12:34:52 +02:00
Hampus
5b8a46d087
fix(app): draw the mention badge cutout from the badge itself ( #1868 )
2026-08-24 12:34:37 +02:00
Hampus
677e6e5d6e
fix(app): stop animating emoji and stickers that have no animation ( #1867 )
2026-08-24 12:34:26 +02:00
Hampus
62f40116be
fix(app): stop discovery animating on first render ( #1866 )
2026-08-24 12:34:15 +02:00
Hampus
d2d199e136
perf(app): fetch text attachment previews only when they scroll near ( #1865 )
2026-08-24 12:34:04 +02:00
Hampus
39e2c89d5c
fix(app): only animate media that has an animated variant ( #1864 )
2026-08-24 12:33:53 +02:00
Hampus
15f4417c68
fix(app): scope near-viewport loading to the surrounding scroller ( #1863 )
2026-08-24 12:33:39 +02:00
Hampus
943b948de7
fix(app): keep hydrated state across gateway session resumes ( #1862 )
2026-08-24 12:33:27 +02:00
Hampus
b7f75e25ad
fix(app): keep unsent messages and stop the unread jump on reconnect ( #1861 )
2026-08-24 12:33:17 +02:00
Hampus
2af0405317
fix(app): keep the chat scroller pinned to the end while it resizes ( #1860 )
2026-08-24 12:33:06 +02:00
Hampus
a2099fb0e2
refactor(app): name mute and unread state accessors by intent ( #1859 )
2026-08-24 12:32:55 +02:00
Hampus
52781cfa2d
refactor(app): drop the unread jump anchor now the scroller finds it ( #1858 )
2026-08-24 12:32:44 +02:00
Hampus
af7469fa1f
fix(app): request custom emoji at one canonical image size ( #1857 )
2026-08-24 12:32:28 +02:00
Hampus
4c14ba0a5e
fix(app): paint avatars from a real image with a fading placeholder ( #1856 )
2026-08-24 12:32:14 +02:00
Hampus
b49cf349a8
perf(app): load images immediately instead of queueing four at a time ( #1855 )
2026-08-24 12:32:02 +02:00
Hampus
02406925d7
refactor(app): collapse the duplicate emoji shortcode matchers into one ( #1854 )
2026-08-24 12:31:51 +02:00
Hampus
aad7e1a551
fix(app): freeze embed author and footer icons under motion settings ( #1853 )
2026-08-24 12:31:40 +02:00
Hampus
a98a9fe6a9
feat(app): understand date words and DM channels in search filters ( #1852 )
2026-08-24 12:31:29 +02:00
Hampus
ac6fcc8c40
fix(app): close the modal you opened, not whatever is on top ( #1851 )
2026-08-24 12:31:14 +02:00
Hampus
b0e882645e
fix(app): match member search on accents, display names and ids ( #1850 )
2026-08-24 12:31:02 +02:00
Hampus
8c431c7562
fix(app): retry hydrating message authors after a reconnect ( #1849 )
2026-08-24 12:30:50 +02:00
Hampus
3e267b8104
fix(app): keep the member list in sync when switching channels ( #1848 )
2026-08-24 12:30:38 +02:00
Hampus
7c5cab2144
fix(app): make the media volume slider track loudness ( #1847 )
2026-08-24 12:30:13 +02:00
Hampus
5cb893245f
fix(app): hide the video controls again after a few idle seconds ( #1846 )
2026-08-24 12:30:01 +02:00
Hampus
aa1c636cc2
fix(app): keep local image previews from disappearing before upload ( #1845 )
2026-08-24 12:29:49 +02:00
Hampus
c285854b71
refactor(app): rename ComponentDispatch to ComponentBus ( #1844 )
2026-08-24 12:29:38 +02:00
Hampus
01a29d629b
fix(app): size the chat skeleton from the remembered viewport height ( #1843 )
2026-08-24 12:29:26 +02:00
Hampus
bd381ccc74
fix(app): request avatar and banner sizes the media proxy serves ( #1842 )
2026-08-24 12:29:16 +02:00
Hampus
c3e747aaa4
fix(media-proxy): stop re-encoding jpeg and video frames losslessly ( #1841 )
2026-08-24 12:29:05 +02:00
Hampus
480d56125d
fix(admin): render sticker previews at 320px instead of 160px ( #1840 )
2026-08-24 12:28:54 +02:00
Hampus
7ec155eac1
fix(desktop): stop reading whole voice backgrounds to classify them ( #1839 )
2026-08-24 12:28:43 +02:00
Hampus
c8ff177f85
fix(unfurl): cache empty results briefly and key entries by provider ( #1838 )
2026-08-24 12:28:32 +02:00
Hampus
f276bb1cd2
perf(app): stop the service worker caching static assets ( #1837 )
2026-08-24 12:28:21 +02:00
Hampus
208632e648
fix(common): stop advertising static assets as immutable ( #1836 )
2026-08-24 12:28:10 +02:00
Hampus
8cfac127f5
fix(media-proxy): stop proxy paths carrying fragments or credentials ( #1835 )
2026-08-24 12:27:58 +02:00
Hampus
ac76bee5a3
fix(media-proxy): clamp the webp effort override to the encoder maximum ( #1834 )
2026-08-24 12:27:46 +02:00
Hampus
171dc7e5b7
fix(media-proxy): serve and request images on one size ladder ( #1833 )
2026-08-24 12:27:33 +02:00
Hampus
051985b767
fix(media-proxy): stop marking cached media immutable ( #1832 )
2026-08-24 12:27:21 +02:00
Hampus
1eb85410bf
fix(common): keep the text after a block spoiler's closing pipes ( #1831 )
2026-08-24 12:27:08 +02:00
Hampus
6697db7cf8
build(app): minify css with lightningcss in production builds ( #1830 )
2026-08-24 12:26:55 +02:00
Hampus
56f6009390
feat(gifs): serve every medium, tiny and nano variant klipy offers ( #1829 )
2026-08-24 12:26:44 +02:00
Hampus
d339b82f8e
fix(api): give desktop downloads a lifetime that follows the key ( #1828 )
2026-08-24 12:26:33 +02:00
Hampus
82eb87bc47
perf(app-proxy): preconnect the media origin and revalidate the app shell ( #1827 )
2026-08-24 12:26:21 +02:00
Hampus
991be1c5a2
fix(api): log every error once and keep the cause chain ( #1826 )
2026-08-24 12:11:42 +02:00
Hampus
0d96a4574a
fix(api): read the log level and environment from the process env ( #1824 )
2026-08-23 21:44:32 +02:00
Hampus
61b4511ae4
fix(schema): group category channels text before voice when ordering ( #1823 )
2026-08-23 17:49:26 +02:00
Hampus
137edc7cfb
fix(app): share stream audio by default and reset the opt-out per stream ( #1819 )
2026-08-22 10:14:45 +02:00
Hampus
14e772a751
fix(api): serialise elapsed temp bans as null for the admin panel ( #1817 )
2026-08-21 20:34:43 +02:00
Hampus
32afbf12d6
fix(api): stop treating accounts pending deletion as already deleted ( #1816 )
2026-08-21 20:31:32 +02:00
Hampus
ffaf5119d8
fix(app): only warn about software encoding when no layer is accelerated ( #1815 )
2026-08-21 18:49:51 +02:00
Hampus
10bc8c1efa
fix(desktop): stop the windows audio probe timing out against its own budget ( #1814 )
2026-08-21 17:29:12 +02:00
Hampus
85a03a9e39
fix(app): apply the screen share audio toggle to the surface being shared ( #1813 )
2026-08-21 17:04:22 +02:00
fluxer-ci[bot] and hampus-fluxer
51ee6567b4
chore(i18n): update public marketing catalogs ( #1812 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-21 16:31:01 +02:00
fluxer-ci[bot] and hampus-fluxer
090220a29d
chore(marketing): advance pointer f39eced → 02e3a2c ( #1811 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-21 16:30:54 +02:00
Hampus
e7973b8be0
fix(api): derive voice reconciliation candidate ttl from real sweep spacing ( #1810 )
2026-08-21 15:49:50 +02:00
Hampus
b5324c9223
perf(gateway): stop materializing all members on the guild connect path ( #1809 )
2026-08-21 14:00:19 +02:00
Hampus
edb8d80077
ci: source the s3 provider for downloads and static from repo variables ( #1803 )
2026-08-20 21:46:26 +02:00
Hampus
ddee116339
feat(api): route downloads through the configured downloads provider ( #1802 )
2026-08-20 21:44:53 +02:00
Hampus
bdacaea4a8
feat(config): add an optional separate s3 provider for downloads ( #1801 )
2026-08-20 21:34:19 +02:00
Hampus
9e28e02b5d
ci(rust): pin the floating toolchains to the version images build with ( #1800 )
2026-08-20 21:27:12 +02:00
Hampus
3527dc95a2
fix(rust): silence result_large_err on axum response error paths ( #1799 )
2026-08-20 21:18:18 +02:00
Hampus
27c7b2722d
chore(admin): regenerate openapi schemas for the admin acl cap ( #1798 )
2026-08-20 21:17:04 +02:00
Hampus
ba96f52ed6
fix(schema): allow assigning every admin ACL to a user ( #1797 )
2026-08-20 21:09:56 +02:00
Hampus
2c8b3ff45c
fix(build): build the messages and users images with scylla support ( #1796 )
2026-08-20 20:30:16 +02:00
Hampus
631bc2307a
fix(slowmode): stop the local cooldown from outgrowing the channel setting ( #1795 )
2026-08-20 19:56:02 +02:00
Hampus
8f4f9a8601
refactor(media): share one external proxy url codec across every service ( #1794 )
2026-08-20 19:55:40 +02:00
Hampus
1c920f966e
feat(media): emit external proxy urls with a readable path and extension ( #1793 )
2026-08-20 18:44:45 +02:00
Hampus
2b1de38949
chore(i18n): regenerate catalogs after the voice engine removal ( #1791 )
2026-08-20 17:45:49 +02:00
Hampus
d5daf61dbd
fix(voice): recalibrate stored participant and stream volumes too ( #1790 )
2026-08-20 17:45:17 +02:00
Hampus
06c42ce02f
refactor(desktop): delete the unused rust voice module ( #1789 )
2026-08-20 17:44:55 +02:00
Hampus
4f21430880
refactor(voice): drop the native only surface from voice_engine_v2 and narrow the desktop bridge ( #1788 )
2026-08-20 17:44:37 +02:00
Hampus
9731bac40f
refactor(voice): remove the native voice engine from the renderer ( #1787 )
2026-08-20 17:43:38 +02:00
Hampus
b144e650f2
fix(voice): make deafen reach watched screen share audio ( #1786 )
2026-08-20 17:43:19 +02:00
Hampus
ef6536644c
fix(voice): stop the in call speaker slider clamping a boosted output volume ( #1785 )
2026-08-20 17:42:59 +02:00
Hampus
17eab43245
fix(voice): retune the remote playback leveller and measure it in float ( #1784 )
2026-08-20 17:42:40 +02:00
Hampus
fbd7f1e3b8
fix(voice): compose participant gain in linear space and split the ceilings ( #1783 )
2026-08-20 17:42:21 +02:00
Hampus
25af7516a4
fix(voice): widen the volume boost leg and add a master soft clip limiter ( #1782 )
2026-08-20 17:42:02 +02:00
Hampus
c020eded31
fix(voice): stop forcing automatic gain control off on every capture profile ( #1781 )
2026-08-20 17:41:44 +02:00
Hampus
5331c0216a
fix(voice): keep a remote track pinned at zero volume across re-attach ( #1780 )
2026-08-20 17:40:53 +02:00
Hampus
528777926c
fix(api): stop one unreachable community from breaking bookmarks ( #1779 )
2026-08-20 15:50:51 +02:00
Hampus
47b5c3d4f0
fix(app): expose the guild id on guild list items again ( #1778 )
2026-08-20 14:39:24 +02:00
Hampus
d9bfca66d6
fix(app): keep search results in server order instead of per channel ( #1777 )
2026-08-20 13:10:47 +02:00
Hampus
ded51b65d3
fix(app): restore the mobile voice message recorder ( #1776 )
2026-08-20 04:33:24 +02:00
Hampus
ddc8837d4f
fix(app): scale embed and attachment width caps with zoom ( #1775 )
2026-08-20 04:33:17 +02:00
Hampus
df16957c95
fix(app): scale tooltip max-width with app zoom ( #1774 )
2026-08-20 04:33:10 +02:00
Hampus
f38b19d4bd
fix(app): let the caret move past emoji and mentions in the composer ( #1768 )
2026-08-19 23:41:05 +02:00
Hampus
f7cd4f2c74
docs(operator): explain how to reclaim space after upgrades ( #1767 )
2026-08-19 23:31:15 +02:00
fluxer-ci[bot] and hampus-fluxer
a078392888
chore(i18n): update public marketing catalogs ( #1719 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-19 22:46:33 +02:00
Hampus
3060f23f8c
chore(marketing): bump the marketing submodule pointer ( #1766 )
2026-08-19 22:29:10 +02:00
Hampus
6a5f0d4d29
fix(i18n): simplify the marketing translation and saved media strings ( #1764 )
2026-08-19 22:25:01 +02:00
Hampus
91d989dc7c
fix(app): point the language notice at Weblate instead of email ( #1763 )
2026-08-19 22:05:39 +02:00
Hampus
7c82804df6
fix(app): stop sensitive content options overlapping in long locales ( #1762 )
2026-08-19 19:53:46 +02:00
Hampus
b7de83f7fc
fix(app): stop the Firefox microphone failure and self-mute storm ( #1761 )
2026-08-19 19:32:41 +02:00
Hampus
97bd022bee
fix(app): render the discovery language icon at bold weight ( #1760 )
2026-08-19 19:08:48 +02:00
Hampus
62324df039
feat(app): add a language filter button to the discovery navbar ( #1759 )
2026-08-19 18:46:39 +02:00
Hampus
9f78b3d9a6
feat(app): retry failed image loads with escalating delay and connectivity waits ( #1758 )
2026-08-19 18:25:34 +02:00
Hampus
362a89f2b2
fix(app): keep embed icons mounted so they reserve space while loading ( #1757 )
2026-08-19 18:00:08 +02:00
Hampus
ce41960fcd
perf(app): load embed author and footer icons through the image cache ( #1756 )
2026-08-19 17:38:00 +02:00
Hampus
2083eaddd6
feat(app): wrap pasted links in every composer that allows masked links ( #1755 )
2026-08-19 17:19:39 +02:00
Hampus
d398ebc44b
test: drop desktop test files that no runner executes ( #1753 )
2026-08-19 14:58:59 +02:00
Hampus
59887ad404
fix(app): wrap pasted links from any source, not just Fluxer's own clipboard ( #1752 )
2026-08-19 14:57:13 +02:00
Hampus
5aa283e8e0
fix(desktop): repair a stale Linux .desktop entry instead of preserving it ( #1751 )
2026-08-19 14:56:29 +02:00
Hampus
d9ed256a4b
fix(desktop): pin Electron to 43.4.0 to restore KDE and XFCE tray icons ( #1750 )
2026-08-19 14:45:58 +02:00
Hampus
a297f89b83
fix(markdown): parse a table that follows a text line without a blank line ( #1749 )
2026-08-19 14:24:33 +02:00
Hampus
4a16921242
fix(app): stop macOS window chrome from swallowing clicks below the titlebar ( #1748 )
2026-08-19 13:05:42 +02:00
Hampus
a6f83c4fb1
feat(app): wrap the selection in a link when pasting a URL ( #1747 )
2026-08-19 12:55:15 +02:00
Hampus
7b5c82c6cf
fix(app): keep quick switcher focus when results are recomputed ( #1746 )
2026-08-19 12:55:04 +02:00
Hampus
30a61ce90f
chore(i18n): refresh catalogs and translate new strings ( #1745 )
2026-08-19 12:46:51 +02:00
Hampus
22bc2cab74
fix(app): offset toasts below the window chrome on macOS ( #1744 )
2026-08-19 12:42:08 +02:00
Hampus
53df9a0d6d
fix(app): include remainder seconds in slowmode durations ( #1743 )
2026-08-19 12:41:56 +02:00
Hampus
f9b7ec4d0b
fix(app): stop the bio editor placeholder from overflowing ( #1742 )
2026-08-19 12:41:44 +02:00
Hampus
569abf57b7
fix(app): keep the edited marker on attachment-only messages ( #1741 )
2026-08-19 12:41:31 +02:00
Hampus
ae8e32d809
fix(app): render modals above a fullscreen voice call ( #1740 )
2026-08-19 12:41:19 +02:00
Hampus
a81b1abec7
fix(api): reject alt text edits on forwarded messages ( #1739 )
2026-08-19 12:41:07 +02:00
Hampus
8836565c32
fix(app): keep the guild verification timer stable across switches ( #1738 )
2026-08-19 12:40:55 +02:00
Hampus
a1b595d52f
fix(app): apply the current system theme when relaunching ( #1737 )
2026-08-19 12:40:43 +02:00
Hampus
abb71ed558
fix(app): prompt for a restart when the system titlebar toggle changes ( #1736 )
2026-08-19 12:40:32 +02:00
Hampus
c006d413ac
fix(desktop): bump Electron to 43.4.1 to restore the Linux tray icon ( #1735 )
2026-08-19 12:40:20 +02:00
Hampus
fa11acae15
fix(desktop): use the masked icon for AppImage desktop integration ( #1734 )
2026-08-19 12:40:09 +02:00
Hampus
300f467ad0
fix(desktop): stop the AppImage adding a duplicate menu entry each launch ( #1733 )
2026-08-19 12:39:57 +02:00
Hampus
698469fa96
perf(app): defer media capture routing and skip offscreen skeleton layout ( #1732 )
2026-08-19 02:58:01 +02:00
Hampus
591e9fe2ba
fix(api): only finalize self-serve refunds once the provider confirms ( #1731 )
2026-08-19 02:57:58 +02:00
Hampus
d148b4e5b7
feat(app): show 25 unread messages per channel in the inbox ( #1729 )
2026-08-19 01:06:00 +02:00
Hampus
324f333bb5
test: drop stale hosted instance config and voice engine boundary tests ( #1728 )
2026-08-19 00:48:06 +02:00
Hampus
9b0b703c9d
fix(api): identify session clients correctly and attribute handoff sessions ( #1727 )
2026-08-19 00:41:29 +02:00
Hampus
5660972c71
perf(app): cut idle renderer CPU and unbounded memory growth ( #1724 )
2026-08-18 23:13:42 +02:00
Hampus
b4a5eb77a8
docs: fix community health document links broken by the .github move ( #1723 )
2026-08-18 20:23:40 +02:00
Hampus
4bbfee4cec
fix(app): make click-through the default and move animation pausing to Accessibility ( #1722 )
2026-08-18 19:40:35 +02:00
Hampus
9e89539f0a
perf(app): stop unbounded WASM heap growth and idle-CPU churn ( #1721 )
2026-08-18 18:31:28 +02:00
fluxer-ci[bot] and hampus-fluxer
fa71eb8682
chore(marketing): advance pointer 9720a17 → a31164c ( #1717 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-18 16:50:27 +02:00
Hampus
49b7127bc7
chore(static): regenerate marketing screenshots and README showcase ( #1718 )
2026-08-18 16:50:23 +02:00
Hampus
9cb8812be0
fix(app-proxy): collapse the discovery cold-start retry condition ( #1716 )
2026-08-18 16:12:33 +02:00
Hampus
7d82d188a0
fix(gateway): register the session process with presence on resume ( #1715 )
2026-08-18 16:06:26 +02:00
Hampus
5ce5669f17
fix(app): allow the inbox shortcut while the composer is empty ( #1714 )
2026-08-18 14:31:23 +02:00
Hampus
9ea750152e
fix(app-proxy): serve the SPA from cached discovery instead of blocking on refresh ( #1713 )
2026-08-18 06:07:53 +02:00
Hampus
e87e2fe7bf
fix(admin): show the deferred phone gate controls on hosted instances ( #1712 )
2026-08-18 05:49:33 +02:00
Hampus
871b5116dc
fix(media-proxy): stop sending X-Robots-Tag in static mode ( #1710 )
2026-08-18 05:21:10 +02:00
Hampus
d7b2e67c35
feat(api): defer registration phone verification to community joins ( #1709 )
2026-08-18 05:13:41 +02:00
Hampus
7e1ca9ed6a
fix(api): mirror Stripe billing data using the shapes the pinned API version sends ( #1708 )
2026-08-18 02:35:58 +02:00
Hampus
1922d56188
fix(api): keep Stripe expand paths within the four-level limit ( #1707 )
2026-08-18 01:06:10 +02:00
Hampus
cc105883a5
feat(app): restyle the inbox and message preview surfaces ( #1706 )
2026-08-18 00:43:18 +02:00
Hampus
41c7acdd8f
feat(api): redirect artifact downloads to presigned storage URLs ( #1703 )
2026-08-17 21:47:46 +02:00
Hampus
c35d29ea0b
fix(app): resolve the unread anchor where channel message loads originate ( #1701 )
2026-08-17 16:20:49 +02:00
Hampus
97c29bf1fb
fix(app): open channels at the unread boundary when the backlog exceeds one page ( #1698 )
2026-08-17 15:14:42 +02:00
Hampus
3ff7189566
fix(app): apply streamer mode to member nicknames and stop guild scope leaking into global surfaces ( #1697 )
2026-08-17 14:58:56 +02:00
Hampus
3fa766c39c
fix(app): show the full user tag beside display names instead of a bare discriminator ( #1696 )
2026-08-17 14:46:06 +02:00
Hampus
10ae4bfe1e
ci: publish releases with the Fluxer CI app instead of the Actions token ( #1695 )
2026-08-17 12:59:29 +02:00
Hampus
d271f3112c
fix(app): resend a stalled member list subscription before replacing the session ( #1694 )
2026-08-17 12:48:17 +02:00
Hampus
5a13172b46
ci: stop fork clones running repository-scoped workflows ( #1693 )
2026-08-17 12:06:24 +02:00
Hampus
2269e1899e
fix(app): show friend nicknames on forward targets ( #1692 )
2026-08-17 12:00:08 +02:00
Hampus
c61fd96df6
fix(app): search forward targets by username and every known nickname ( #1691 )
2026-08-17 11:51:07 +02:00
Hampus
6c68202222
fix(api): let SSO accounts without a password satisfy sudo verification ( #1690 )
2026-08-16 23:35:47 +02:00
Hampus
e0bb10d5b7
fix(api): reject unclaimed guild creation before the email verification gate ( #1689 )
2026-08-16 23:34:07 +02:00
Hampus
96643ab20d
fix(unfurl): key the cache on available provider credentials ( #1688 )
2026-08-16 23:19:51 +02:00
Hampus
40da982f57
fix(app): restore the guild list item hover tooltip ( #1687 )
2026-08-16 23:04:55 +02:00
Hampus
8a14281b87
feat(api): return discovery category counts and banners for faceted search ( #1686 )
2026-08-16 22:39:21 +02:00
Hampus
be69157811
fix(admin): allow single community mode to be turned back on ( #1684 )
2026-08-16 22:29:23 +02:00
Hampus
45289b5531
fix(api): let single community setup work without email verification ( #1683 )
2026-08-16 22:14:59 +02:00
Hampus
30a1271774
fix(app): keep timers running while the window is visible but unfocused ( #1682 )
2026-08-16 22:06:09 +02:00
Hampus
438f11adda
perf(app): stop per-frame style recalculation in skeletons and member list ( #1681 )
2026-08-16 22:00:10 +02:00
Hampus
170ca805c5
fix(app): stop the service worker serving the unrendered index template ( #1680 )
2026-08-16 20:52:07 +02:00
Hampus
f4547d11d3
fix(app): dim the disabled discovery nav item through colour only ( #1678 )
2026-08-16 19:33:35 +02:00
Hampus
ccdd85b099
refactor(desktop): replace the native voice engine with a standalone hardware encoder ( #1677 )
2026-08-16 19:24:31 +02:00
Hampus
98c40c6979
feat(app): redesign discovery and align skeletons with rendered UI
2026-08-16 19:17:28 +02:00
Hampus
e054aa96be
chore(desktop): upgrade Electron to 43.4.0 ( #1674 )
2026-08-16 15:42:29 +02:00
Hampus
3e12466c57
fix(unfurl): restore document title fallback for link embeds ( #1673 )
2026-08-16 15:02:16 +02:00
Hampus
039bd1a7df
fix(embed): correct link thumbnail placement and harden unfurl parsing ( #1672 )
2026-08-16 14:10:25 +02:00
Hampus
7a45d5844d
fix(app): scale guild list selection pill with app zoom ( #1670 )
2026-08-16 01:36:16 +02:00
Hampus
410fa2dba9
fix(app): scale group DM status indicator with app zoom ( #1669 )
2026-08-16 01:36:01 +02:00
Hampus
4cb1808959
fix(media-proxy): register coalescer waiters before checking slot state ( #1668 )
2026-08-16 01:02:09 +02:00
yido
60a62c24c3
fix(media-proxy): handle coalescer future cancellation with optimal drop guard ( #1156 )
...
Refs #1146
2026-08-16 00:59:41 +02:00
Hampus
c06e958eb5
fix(ci): resolve knip unused export and stale entry pattern ( #1667 )
2026-08-16 00:47:56 +02:00
Liam and Hampus
358b7c88fc
fix(settings): require all query words to match ( #1665 )
...
Signed-off-by: liamt8d <[email protected] >
Co-authored-by: Hampus <[email protected] >
2026-08-16 00:44:34 +02:00
Hampus
1bced6abae
fix(app): keep typing indicator dots animating under reduced motion ( #1666 )
2026-08-16 00:32:52 +02:00
Hampus
8cbd55dcaf
feat(app): open the emoji picker when selecting Add reaction ( #1664 )
2026-08-15 23:35:07 +02:00
Hampus
162937575c
feat(search): accept user IDs in from and mentions filters ( #1663 )
2026-08-15 23:31:04 +02:00
Hampus
c6223d656e
ci: fail when compiled locale modules drift from the Weblate catalogs ( #1662 )
2026-08-15 23:24:17 +02:00
Hampus
2dd5e6a4b4
chore(i18n): recompile locale modules from the Weblate catalogs ( #1661 )
2026-08-15 23:15:49 +02:00
Hampus
490b710c61
feat(api): allow bots to search messages within a single community ( #1660 )
2026-08-15 23:11:45 +02:00
Hampus
b5285019cd
fix(i18n): keep SSO URL error translations in the Weblate catalogs ( #1658 )
2026-08-15 22:53:55 +02:00
Hampus
dcd3d9d08a
fix(app): pan zoomed media with the scroll wheel ( #1657 )
2026-08-15 22:49:54 +02:00
Hampus
fb718e7e5b
fix(search): filter message dates on createdAt instead of the id string ( #1656 )
2026-08-15 22:41:51 +02:00
Hampus
578fd61d93
feat(self-hosting): allow opting in to private-address SSO providers ( #1655 )
2026-08-15 22:30:46 +02:00
Hampus
cbc0a616ea
fix(self-hosting): verify seaweedfs buckets instead of trusting exit status ( #1654 )
2026-08-15 22:21:24 +02:00
Hampus
6d04fa3e6d
fix(api): report non-routable SSO URLs distinctly from malformed ones ( #1653 )
2026-08-15 21:49:43 +02:00
Hampus
562819be09
fix(app-proxy): allow extra CSP sources from the environment ( #1652 )
2026-08-15 21:32:16 +02:00
Hampus
f45a3073c1
fix(app-proxy): allow configured branding image origins in the CSP ( #1651 )
2026-08-15 21:21:59 +02:00
Hampus
5f9e4db230
fix(app): treat official invite and gift links as external when self-hosted ( #1650 )
2026-08-15 21:08:22 +02:00
Hampus
0be2a7fed9
feat(openapi): recognise the modern Zod integer formats ( #1649 )
2026-08-15 21:01:43 +02:00
Hampus
e0876d719c
fix(auth): reject a weak claim password before sending the code ( #1648 )
2026-08-15 20:53:03 +02:00
Hampus
ae11ee86aa
fix(api): disable Bluesky OAuth instead of failing on an invalid key ( #1647 )
2026-08-15 20:43:30 +02:00
Hampus
5022568608
fix(search): match the Meilisearch result window to Elasticsearch ( #1646 )
2026-08-15 20:38:28 +02:00
Hampus
004fb0c7b0
fix(self-hosting): surface passkey relying party settings ( #1645 )
2026-08-15 20:23:19 +02:00
Hampus
2dc9ded0e8
fix(app): stop muted channels from marking the guild unread ( #1644 )
2026-08-15 20:18:05 +02:00
Hampus
0692aa0e25
fix(app): route middle-clicked external links through the warning ( #1643 )
2026-08-15 20:12:21 +02:00
Hampus
3ed43ca00f
fix(schema): keep the extension when a filename has repeated dots ( #1642 )
2026-08-15 20:06:19 +02:00
Hampus
5cd22ee84e
fix(app): wrap long guild names in the sidebar tooltip ( #1641 )
2026-08-15 20:01:20 +02:00
fluxer-ci[bot] and hampus-fluxer
a90168fa66
chore(marketing): advance pointer 1bba956 → 9720a17 ( #1640 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-15 19:55:27 +02:00
Hampus
1f76c9d3d3
fix(api): auto-join the single community on registration approval ( #1639 )
2026-08-15 19:54:40 +02:00
Hampus
4480d4db69
fix(self-hosting): declare postgres dependencies in compose ( #1638 )
2026-08-15 19:38:19 +02:00
valtteri1010 and Hampus
d1e5b00c52
Use locale parameter for date formatting ( #1637 )
...
Co-authored-by: Hampus <[email protected] >
2026-08-15 19:37:48 +02:00
Hampus
b937306210
fix(caddy): route server discovery to the API ( #1636 )
2026-08-15 19:32:17 +02:00
Hampus
de614db368
fix(app): restore text selection on narrow desktop windows ( #1635 )
2026-08-15 19:28:59 +02:00
Hampus
a4b121345f
fix(app-proxy): allow Cloudflare Turnstile origins in the CSP ( #1634 )
2026-08-15 19:26:12 +02:00
Hampus
6073ad74d5
fix(schema): raise user trait length limit to fit SSO identities ( #1633 )
2026-08-15 19:21:46 +02:00
Hampus
2d51600b6c
fix(markdown): stop escaped link destinations from swallowing later content ( #1630 )
2026-08-15 15:48:58 +02:00
Hampus
235399cfd6
fix(api): keep activity tracking out of the registration critical path ( #1629 )
2026-08-15 15:08:48 +02:00
Hampus
2bb4c92f2b
feat(ci): list desktop download URLs in release bodies ( #1628 )
2026-08-15 14:50:51 +02:00
Hampus
86afe3aefc
fix: repair the failing gateway and knip checks ( #1627 )
2026-08-15 14:41:07 +02:00
Hampus
d0f56c3afd
fix(app): preserve node selection when reconciling composer markdown ( #1626 )
2026-08-15 14:07:58 +02:00
fluxer-ci[bot] and hampus-fluxer
3df84098e6
chore(marketing): advance pointer 81f925a → 1bba956 ( #1625 )
...
Co-authored-by: hampus-fluxer <[email protected] >
2026-08-15 14:03:57 +02:00
fluxer-weblate[bot] and Weblate
6e2fbb712e
chore(i18n): update translations from Weblate ( #1434 )
...
Co-authored-by: Weblate <[email protected] >
2026-08-15 13:56:30 +02:00
9cbed99420
chore(i18n): update translations from Weblate ( #1433 )
...
Co-authored-by: Weblate <[email protected] >
Co-authored-by: Gabriela <[email protected] >
2026-08-15 13:56:27 +02:00
fluxer-weblate[bot] and Weblate
fa63c2ed9a
chore(i18n): update translations from Weblate ( #1431 )
...
Co-authored-by: Weblate <[email protected] >
2026-08-15 13:56:23 +02:00
Hampus
c87933ab2f
chore(i18n): apply pending Weblate translations ( #1624 )
2026-08-15 13:52:41 +02:00
Hampus
9606009d3e
fix(ci): sync the standalone tools/ci lockfile ( #1623 )
2026-08-15 13:43:08 +02:00
Fenane and Hampus
b4bf8c92f1
fix(app): forcefully unmount splash screen and disable pointer events when ready ( #1542 )
...
Co-authored-by: Hampus <[email protected] >
2026-08-15 13:39:23 +02:00
Gapriel Ride and Hampus
b386cd625a
fix: Remove more "required optionals" from OpenAPI spec ( #1522 )
...
Co-authored-by: Hampus <[email protected] >
2026-08-15 13:32:59 +02:00
Emma and Hampus
d8c5c88c0d
fix(devcontainer): set "biome" as default formatter ( #1446 )
...
Co-authored-by: Hampus <[email protected] >
2026-08-15 13:30:57 +02:00
Emma and Hampus
f579b515df
fix(devcontainer): add editorconfig vscode extension ( #1447 )
...
Co-authored-by: Hampus <[email protected] >
2026-08-15 13:30:21 +02:00
Aki and Hampus
23955b0997
fix(messaging): consume full text node when detecting jumbo emojis ( #1540 )
...
Co-authored-by: Hampus <[email protected] >
2026-08-15 13:28:53 +02:00