G30
e69ce6e1c6
perf(channels): batch N+1 queries for reactions and thread replies ( #25831 )
...
Replace per-message database queries with batch IN-clause queries in
channel message handlers. This eliminates the N+1 query pattern that
caused ~102 queries per channel page load (50 messages × 2 queries each).
Changes:
- Add get_reactions_by_message_ids() to MessageTable: single query
fetches all reactions for multiple messages using IN clause with
User JOIN, returns dict[message_id, list[Reactions]]
- Add get_thread_reply_counts_by_message_ids() to MessageTable: single
GROUP BY aggregate query returns (count, max_created_at) per parent,
replacing full object loads just to call len()
- Refactor get_channel_messages(): 102 → 4 queries per page
- Refactor get_pinned_channel_messages(): 22 → 3 queries per page
- Refactor get_channel_thread_messages(): 53 → 4 queries per page
- Refactor send_notification(): N+1 membership check → batch set lookup
2026-06-29 02:05:16 -05:00
Timothy Jaeryang Baek
6050a94d77
refac
2026-06-29 02:03:58 -05:00
Classic298
5fd26b7549
docs: note pydub/audioop Python 3.13 constraint at the import ( #25785 )
...
pydub imports the stdlib `audioop`, removed in Python 3.13, so audio
preprocessing would break there. requires-python is already capped at
< 3.13; this one-line pointer flags what to handle (audioop-lts, or drop
pydub) before raising that cap.
2026-06-29 02:03:11 -05:00
G30
3c67774eb3
fix(auth): enforce settings.interface permission on /user/settings/update endpoint ( #25996 )
2026-06-29 01:53:20 -05:00
Timothy Jaeryang Baek
ce4a323f43
refac
2026-06-29 01:52:07 -05:00
Timothy Jaeryang Baek
46c1d6591b
refac
2026-06-29 01:41:43 -05:00
Timothy Jaeryang Baek
3730a9eaac
refac
2026-06-29 01:38:41 -05:00
G30
677e164f29
feat(permissions): add workspace.skills_import and workspace.skills_export permissions ( #25921 )
2026-06-29 01:36:27 -05:00
Timothy Jaeryang Baek
7240517807
refac
2026-06-29 01:01:27 -05:00
Hrushikesh Yadav
1f6336fd98
fix: strip whitespace from user info headers to prevent MCP connection failures ( #26182 )
2026-06-29 00:57:07 -05:00
alvarellos
368b4a5b22
solve-valves-icon-disappear-issue ( #26256 )
2026-06-29 00:56:44 -05:00
Timothy Jaeryang Baek
b854eb09b1
refac
2026-06-29 00:46:45 -05:00
Timothy Jaeryang Baek
7292cee868
refac
2026-06-29 00:42:39 -05:00
Timothy Jaeryang Baek
bc70696f4f
refac
2026-06-29 00:40:28 -05:00
Timothy Jaeryang Baek
dbdcfd8c60
refac
2026-06-29 00:35:54 -05:00
Timothy Jaeryang Baek
7e13fd7ad1
refac
2026-06-29 00:26:35 -05:00
Timothy Jaeryang Baek
124c7a3283
refac
2026-06-29 00:21:37 -05:00
Timothy Jaeryang Baek
cfb49c4c18
refac
2026-06-29 00:19:47 -05:00
Timothy Jaeryang Baek
2560533c1a
refac
2026-06-29 00:18:40 -05:00
Timothy Jaeryang Baek
5b1c42e81a
refac
2026-06-29 00:05:10 -05:00
Timothy Jaeryang Baek
97901220f2
refac
2026-06-28 23:28:03 -05:00
Timothy Jaeryang Baek
8977a10a2b
refac
2026-06-28 23:24:24 -05:00
Timothy Jaeryang Baek
ef8c9c063c
refac
2026-06-28 23:22:10 -05:00
Timothy Jaeryang Baek
dd4f43bfdb
refac
2026-06-28 23:21:05 -05:00
Timothy Jaeryang Baek
3a232f5e9a
refac
2026-06-28 23:20:54 -05:00
Timothy Jaeryang Baek
23d03d6aae
refac
2026-06-28 23:10:14 -05:00
Timothy Jaeryang Baek
d99ac7d3f8
refac
2026-06-28 23:02:38 -05:00
Timothy Jaeryang Baek
464e703e47
refac
2026-06-28 22:50:31 -05:00
Timothy Jaeryang Baek
516051304e
refac
2026-06-28 22:33:59 -05:00
Timothy Jaeryang Baek
0130b49514
refac
2026-06-28 22:32:10 -05:00
Timothy Jaeryang Baek
df634bb64f
refac
2026-06-28 22:11:01 -05:00
Timothy Jaeryang Baek
ea3f5f22d2
refac
2026-06-28 22:09:15 -05:00
Timothy Jaeryang Baek
e3ba698453
refac
2026-06-25 17:34:41 -04:00
Timothy Jaeryang Baek
741b64edb6
refac
2026-06-25 17:23:53 -04:00
Timothy Jaeryang Baek
8f890f0b43
refac
2026-06-25 15:56:10 +01:00
Timothy Jaeryang Baek
ede39d82de
refac
2026-06-25 15:49:36 +01:00
Timothy Jaeryang Baek
1a8e1a9939
refac
2026-06-25 15:22:31 +01:00
Timothy Jaeryang Baek
e124c2656a
refac
2026-06-25 14:37:05 +01:00
Timothy Jaeryang Baek
5576e6ed8a
refac
2026-06-25 14:34:22 +01:00
Timothy Jaeryang Baek
7453968678
refac
2026-06-25 14:19:30 +01:00
Timothy Jaeryang Baek
b5c43968db
refac
2026-06-25 03:31:45 +01:00
Timothy Jaeryang Baek
1111a3a222
refac
2026-06-25 03:26:07 +01:00
Timothy Jaeryang Baek
f812072215
refac
2026-06-25 03:24:50 +01:00
Timothy Jaeryang Baek
8934bfb04b
refac
2026-06-24 14:13:58 +02:00
Timothy Jaeryang Baek
fd56086e79
refac
2026-06-24 13:19:55 +02:00
Timothy Jaeryang Baek
95391221df
refac
2026-06-23 23:35:44 +02:00
Timothy Jaeryang Baek
19db873603
refac
2026-06-23 23:35:40 +02:00
Timothy Jaeryang Baek
7f08376f0c
refac
2026-06-23 23:18:05 +02:00
Timothy Jaeryang Baek
15c7e37438
refac
2026-06-23 23:13:32 +02:00
Timothy Jaeryang Baek
b1c2536ed2
refac
2026-06-23 23:13:28 +02:00