CoffeeKnyte
0cc706e066
fix(playback): resolve group-merged cap in async stream enforcer
...
The enforcer's LimitFunc read the raw users.max_streams column, which is 0
("inherit from group") for every standard account since migrations
20260702180000/20260702190000 moved the real cap into the Default Group.
The enforcer treats limit <= 0 as unlimited, so the async over-cap brain
never trimmed anyone on a default install — only per-process synchronous
admission held, leaving the cross-node backstop it was built for a no-op.
Extract admission's limit lookup into a shared SessionLimitProvider
(GetByID + access.EffectivePolicyForUser) and feed the enforcer through
it, so admission and the enforcer can never disagree about a user's
effective cap again.
Part of #306 .
2026-07-29 12:28:06 +00:00
..
2026-07-16 14:34:35 -04:00
2026-07-10 08:21:26 -04:00
2026-07-26 11:19:33 -04:00
2026-07-09 08:53:52 -04:00
2026-07-29 12:26:03 +00:00
2026-07-16 17:33:21 -04:00
2026-07-16 17:33:21 -04:00
2026-07-27 22:58:18 -04:00
2026-07-23 11:40:38 -04:00
2026-07-18 17:12:36 -04:00
2026-05-22 23:26:56 -04:00
2026-07-05 17:38:19 -04:00
2026-07-28 21:33:30 -04:00
2026-07-21 13:03:53 -04:00
2026-07-09 08:53:52 -04:00
2026-07-05 16:44:36 -04:00
2026-05-22 23:26:56 -04:00
2026-07-07 10:46:50 -04:00
2026-07-07 10:46:50 -04:00
2026-06-09 20:08:30 -04:00
2026-07-23 15:14:52 -04:00
2026-07-26 11:19:33 -04:00
2026-06-15 16:20:50 -04:00
2026-07-27 12:07:37 -04:00
2026-06-11 19:51:03 -04:00
2026-07-09 08:53:52 -04:00
2026-06-17 13:09:55 -04:00
2026-07-23 11:10:31 -04:00
2026-06-25 22:43:23 -04:00
2026-07-25 14:47:12 -04:00
2026-07-16 14:34:35 -04:00
2026-07-24 14:22:12 -04:00
2026-05-22 23:26:56 -04:00
2026-07-16 17:55:36 -04:00
2026-07-01 17:37:06 -04:00
2026-07-09 08:53:52 -04:00
2026-07-27 22:58:18 -04:00
2026-07-29 12:26:03 +00:00
2026-05-22 23:26:56 -04:00
2026-07-22 13:43:57 +02:00
2026-07-02 11:42:28 -04:00
2026-07-01 23:21:25 -04:00
2026-07-23 11:24:55 -04:00
2026-07-09 08:53:52 -04:00
2026-05-22 23:26:56 -04:00
2026-06-11 21:34:19 -04:00
2026-07-16 17:33:21 -04:00
2026-07-09 08:53:52 -04:00
2026-07-23 11:24:55 -04:00
2026-07-28 21:02:51 -04:00
2026-07-27 22:58:18 -04:00
2026-07-24 12:02:52 -04:00
2026-07-09 08:53:52 -04:00
2026-07-14 12:13:16 -04:00
2026-07-09 08:53:52 -04:00
2026-07-29 12:23:48 +00:00
2026-07-23 11:24:55 -04:00
2026-07-27 22:58:18 -04:00
2026-07-09 08:53:52 -04:00
2026-07-16 10:53:30 -04:00
2026-06-12 15:04:31 -04:00
2026-07-16 13:58:44 -04:00
2026-07-29 12:28:06 +00:00
2026-06-25 14:47:48 -04:00
2026-07-24 12:18:49 -04:00
2026-07-10 22:30:04 -04:00
2026-07-24 12:02:52 -04:00
2026-07-29 12:26:03 +00:00
2026-07-27 22:58:18 -04:00
2026-07-09 08:53:52 -04:00
2026-07-27 22:34:30 -04:00
2026-07-16 13:58:44 -04:00
2026-07-21 08:16:53 -04:00
2026-07-28 21:33:30 -04:00
2026-07-25 14:47:12 -04:00
2026-07-22 13:43:57 +02:00
2026-06-08 15:25:48 -04:00
2026-07-09 08:53:52 -04:00
2026-07-22 13:43:57 +02:00
2026-07-29 12:26:03 +00:00
2026-07-29 12:23:48 +00:00
2026-07-29 12:26:03 +00:00
2026-07-29 12:26:03 +00:00
2026-07-23 11:24:55 -04:00
2026-07-24 12:02:52 -04:00
2026-07-09 08:53:52 -04:00
2026-05-22 23:26:56 -04:00
2026-07-29 12:26:03 +00:00
2026-07-27 12:07:37 -04:00
2026-07-09 08:53:52 -04:00
2026-07-27 22:58:18 -04:00
2026-07-27 22:58:18 -04:00
2026-07-09 08:53:52 -04:00
2026-07-01 17:36:47 -04:00
2026-07-23 09:15:19 -04:00
2026-07-26 22:01:31 -04:00
2026-07-09 08:53:52 -04:00
2026-07-28 21:27:58 -04:00