b566b5fd4e
perf(inbox): ship a 200-character preview of comment notifications in the lists ( #8294 )
...
A comment notification stores the full comment it was raised for, and both
inbox lists returned it verbatim. A several-thousand-character agent reply
travelled over the wire, through JSON parsing and into the client cache for
every subscriber, only to be rendered as a single truncated line.
The main and archived list responses now cap the body of a `new_comment`
notification on an issue at 200 characters, the ellipsis included. The
database keeps the full text, and `details.comment_id` is untouched.
The scope is exactly the rows whose full body no client reads from the list.
Opening an issue-backed notification renders the issue itself and lands on the
comment through `comment_id`; everywhere else, web, desktop and mobile show
that body as one line. That holds for builds already installed, so none has to
change: the field, its type and the endpoints are the same. Other types keep
their full body — issue-less notifications render it in the detail pane from
the list cache, and Quick Create failures refill the composer from `details`.
Single-item responses are unchanged.
Truncation walks code points and stops at the limit, so a multi-byte character
is never split and the work per row is bounded by the preview, not by the
comment's length.
Sampled on 264 comments from this workspace's recent issues: half exceed 200
characters (median 203, p90 3,277, max 12,251), and capping cuts their text by
86%. A list of comment notifications built from them shrinks 64% raw and 69%
gzipped; an inbox's overall saving depends on its share of comment rows.
Refs MUL-6967.
Co-authored-by: J <[email protected] >
Co-authored-by: multica-agent <[email protected] >
2026-09-11 14:12:02 +08:00
..
2026-09-02 17:58:14 +08:00
2026-09-02 17:58:14 +08:00
2026-08-18 03:00:21 +08:00
2026-09-07 16:46:07 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-08-14 18:56:40 +08:00
2026-09-04 15:39:38 +08:00
2026-09-02 18:29:11 +08:00
2026-07-29 15:39:18 +08:00
2026-09-03 13:23:25 +08:00
2026-08-26 19:01:01 +08:00
2026-07-03 14:18:43 +08:00
2026-08-12 16:09:16 +08:00
2026-08-26 19:01:01 +08:00
2026-07-29 14:01:09 +08:00
2026-08-20 13:42:44 +08:00
2026-07-03 14:18:43 +08:00
2026-08-18 03:00:21 +08:00
2026-06-13 15:33:28 +08:00
2026-08-03 12:39:27 +08:00
2026-07-22 15:38:38 +08:00
2026-08-31 17:46:56 +08:00
2026-09-07 14:59:40 +08:00
2026-09-03 13:23:25 +08:00
2026-09-02 15:48:38 +08:00
2026-07-29 12:47:14 +08:00
2026-08-26 16:34:10 +08:00
2026-09-10 21:24:35 +08:00
2026-08-19 16:33:48 +08:00
2026-08-12 15:02:03 +08:00
2026-08-12 15:02:03 +08:00
2026-07-29 18:25:14 +08:00
2026-09-08 14:32:23 +08:00
2026-09-03 14:13:47 +08:00
2026-09-07 18:12:23 +08:00
2026-09-03 14:13:47 +08:00
2026-09-07 18:12:23 +08:00
2026-09-07 16:46:07 +08:00
2026-07-15 03:09:56 +08:00
2026-09-07 16:46:07 +08:00
2026-07-17 16:44:31 +08:00
2026-07-17 16:44:31 +08:00
2026-08-26 01:28:35 +08:00
2026-09-07 14:57:37 +08:00
2026-09-08 12:58:16 +08:00
2026-06-30 12:29:11 +08:00
2026-07-15 03:09:56 +08:00
2026-08-19 15:51:26 +08:00
2026-09-02 18:29:11 +08:00
2026-08-20 16:48:03 +08:00
2026-09-03 13:23:25 +08:00
2026-08-18 03:00:21 +08:00
2026-09-03 13:23:25 +08:00
2026-08-20 13:42:44 +08:00
2026-09-07 16:46:07 +08:00
2026-07-29 15:39:18 +08:00
2026-07-29 15:39:18 +08:00
2026-09-10 21:24:35 +08:00
2026-08-25 18:28:01 +08:00
2026-09-07 13:52:47 +08:00
2026-09-07 13:52:47 +08:00
2026-08-25 18:28:01 +08:00
2026-08-20 01:30:58 +08:00
2026-08-25 18:28:01 +08:00
2026-08-25 18:28:01 +08:00
2026-08-11 13:46:48 +08:00
2026-07-15 00:52:27 +08:00
2026-08-03 12:39:27 +08:00
2026-08-22 11:27:39 +08:00
2026-09-07 16:46:07 +08:00
2026-08-25 18:28:01 +08:00
2026-08-05 15:06:42 +08:00
2026-07-08 21:58:16 +08:00
2026-08-25 18:28:01 +08:00
2026-08-05 15:06:42 +08:00
2026-08-25 18:28:01 +08:00
2026-08-25 18:28:01 +08:00
2026-08-21 13:56:18 +08:00
2026-09-10 21:24:35 +08:00
2026-08-22 11:18:02 +08:00
2026-07-22 16:52:34 +08:00
2026-07-22 16:52:34 +08:00
2026-08-27 14:23:09 +08:00
2026-08-27 14:23:09 +08:00
2026-05-27 14:52:03 +08:00
2026-05-27 14:52:03 +08:00
2026-07-31 14:40:16 +08:00
2026-07-14 19:56:17 +08:00
2026-07-15 03:09:56 +08:00
2026-09-08 12:58:16 +08:00
2026-06-24 09:52:18 +08:00
2026-07-31 14:40:16 +08:00
2026-09-08 12:58:16 +08:00
2026-09-11 14:09:28 +08:00
2026-08-03 13:35:04 +08:00
2026-07-10 16:15:10 +08:00
2026-08-18 03:00:21 +08:00
2026-09-08 12:58:16 +08:00
2026-08-19 16:08:40 +08:00
2026-07-15 03:09:56 +08:00
2026-09-08 22:51:19 +08:00
2026-09-11 14:09:28 +08:00
2026-09-11 14:09:28 +08:00
2026-09-03 13:23:25 +08:00
2026-08-26 19:01:01 +08:00
2026-08-18 03:00:21 +08:00
2026-06-03 16:39:06 +08:00
2026-08-21 14:12:36 +08:00
2026-07-14 11:53:42 +08:00
2026-09-04 13:01:07 +08:00
2026-07-27 15:44:39 +08:00
2026-08-19 12:40:04 +08:00
2026-09-08 11:59:16 +08:00
2026-08-20 01:30:58 +08:00
2026-08-25 18:28:01 +08:00
2026-07-27 13:12:06 +08:00
2026-08-21 17:40:27 +08:00
2026-08-14 19:49:37 +08:00
2026-09-08 12:58:16 +08:00
2026-07-10 13:43:45 +08:00
2026-08-05 15:41:15 +08:00
2026-09-08 11:59:16 +08:00
2026-09-04 13:51:12 +08:00
2026-07-14 11:53:42 +08:00
2026-07-14 11:53:42 +08:00
2026-08-26 15:55:05 +08:00
2026-08-31 14:52:00 +08:00
2026-09-04 13:51:12 +08:00
2026-09-11 12:57:16 +08:00
2026-09-10 21:24:35 +08:00
2026-09-04 14:30:44 +08:00
2026-09-03 16:12:34 +08:00
2026-09-03 16:12:34 +08:00
2026-09-11 14:09:28 +08:00
2026-09-10 16:26:38 +08:00
2026-09-10 16:26:38 +08:00
2026-09-10 16:26:38 +08:00
2026-09-08 12:58:16 +08:00
2026-08-21 14:26:48 +08:00
2026-08-21 14:26:48 +08:00
2026-09-08 22:51:19 +08:00
2026-08-24 19:02:47 +08:00
2026-08-12 11:55:53 +08:00
2026-08-12 11:55:53 +08:00
2026-08-27 16:55:03 +08:00
2026-09-07 16:46:07 +08:00
2026-09-10 17:16:50 +08:00
2026-09-10 17:16:50 +08:00
2026-09-04 15:49:34 +08:00
2026-09-04 13:51:12 +08:00
2026-09-07 16:46:07 +08:00
2026-09-04 15:39:38 +08:00
2026-09-04 15:39:38 +08:00
2026-09-04 15:39:38 +08:00
2026-09-11 14:12:02 +08:00
2026-09-11 14:12:02 +08:00
2026-07-13 16:42:46 +08:00
2026-07-03 16:10:19 +08:00
2026-08-26 12:42:42 +08:00
2026-09-03 13:23:25 +08:00
2026-08-26 12:42:42 +08:00
2026-08-18 03:00:21 +08:00
2026-07-15 03:09:56 +08:00
2026-07-02 14:11:10 +08:00
2026-09-02 18:29:11 +08:00
2026-07-10 09:11:29 +08:00
2026-07-13 16:15:58 +08:00
2026-08-07 15:35:59 +08:00
2026-09-10 14:54:21 +08:00
2026-09-09 16:56:54 +08:00
2026-08-18 02:38:18 +08:00
2026-08-20 01:30:58 +08:00
2026-09-10 14:54:21 +08:00
2026-07-22 22:43:34 +08:00
2026-08-19 14:06:59 +08:00
2026-09-09 16:00:03 +08:00
2026-07-16 13:31:06 +08:00
2026-09-02 18:29:11 +08:00
2026-07-13 13:08:04 +08:00
2026-05-19 10:37:38 +08:00
2026-09-11 13:34:33 +08:00
2026-06-02 17:17:41 +08:00
2026-08-27 14:23:09 +08:00
2026-09-11 13:34:33 +08:00
2026-05-21 16:35:45 +08:00
2026-09-11 13:34:33 +08:00
2026-07-23 15:58:25 +08:00
2026-08-19 14:06:59 +08:00
2026-08-19 16:08:40 +08:00
2026-08-19 14:06:59 +08:00
2026-07-06 19:11:47 +08:00
2026-09-11 13:34:33 +08:00
2026-07-13 13:08:04 +08:00
2026-08-19 16:08:40 +08:00
2026-08-23 12:36:10 +08:00
2026-08-18 18:52:11 +08:00
2026-09-10 21:12:00 +08:00
2026-08-31 16:00:45 +08:00
2026-09-01 17:21:11 +08:00
2026-07-17 19:21:27 +08:00
2026-09-10 21:12:00 +08:00
2026-09-10 21:12:00 +08:00
2026-09-01 17:21:11 +08:00
2026-09-10 21:12:00 +08:00
2026-09-10 21:12:00 +08:00
2026-07-31 13:04:42 +08:00
2026-08-20 16:03:51 +08:00
2026-09-03 18:17:25 +08:00
2026-09-08 12:58:16 +08:00
2026-08-11 14:43:45 +08:00
2026-06-16 12:26:44 +08:00
2026-08-10 11:55:05 +08:00
2026-08-10 11:55:05 +08:00
2026-08-18 03:00:21 +08:00
2026-08-10 11:55:05 +08:00
2026-09-10 21:12:00 +08:00
2026-07-31 14:41:05 +08:00
2026-08-19 14:06:59 +08:00
2026-07-08 16:19:41 +08:00
2026-07-08 16:19:41 +08:00
2026-07-03 14:18:43 +08:00
2026-08-03 17:43:03 +08:00
2026-09-08 12:58:16 +08:00
2026-08-06 14:21:02 +08:00
2026-08-31 17:46:56 +08:00
2026-08-07 18:48:07 +08:00
2026-09-03 13:23:25 +08:00
2026-08-07 18:48:07 +08:00
2026-08-07 18:48:07 +08:00
2026-08-07 18:48:07 +08:00
2026-08-25 18:28:01 +08:00
2026-08-06 14:17:19 +08:00
2026-08-06 14:17:19 +08:00
2026-08-27 14:23:09 +08:00
2026-07-23 01:57:44 +08:00
2026-08-06 14:21:02 +08:00
2026-05-21 15:33:47 +08:00
2026-05-27 22:22:26 +08:00
2026-05-27 22:22:26 +08:00
2026-08-10 11:55:05 +08:00
2026-08-23 22:47:37 +08:00
2026-08-27 14:23:09 +08:00
2026-08-20 02:35:29 +08:00
2026-08-23 22:47:37 +08:00
2026-08-23 17:15:46 +08:00
2026-08-23 22:47:37 +08:00
2026-08-23 22:47:37 +08:00
2026-08-21 16:03:44 +08:00
2026-08-20 02:35:29 +08:00
2026-08-21 16:03:44 +08:00
2026-08-23 13:47:06 +08:00
2026-08-23 13:47:06 +08:00
2026-08-21 16:03:44 +08:00
2026-08-23 13:47:06 +08:00
2026-08-23 13:47:06 +08:00
2026-08-23 17:37:21 +08:00
2026-08-23 17:37:21 +08:00
2026-07-13 13:22:02 +08:00
2026-08-31 16:00:45 +08:00
2026-08-18 18:49:01 +08:00
2026-08-22 11:18:02 +08:00
2026-06-21 23:54:58 +08:00
2026-09-04 16:53:05 +08:00
2026-09-02 18:42:25 +08:00
2026-09-02 18:42:25 +08:00
2026-07-30 21:01:48 +08:00
2026-07-30 21:01:48 +08:00
2026-09-02 18:29:11 +08:00
2026-08-27 16:55:03 +08:00
2026-08-19 14:06:59 +08:00
2026-08-06 15:36:02 +08:00
2026-08-11 02:23:11 +08:00
2026-07-02 18:31:45 +08:00
2026-07-08 16:00:17 +08:00
2026-09-03 13:23:25 +08:00
2026-05-06 14:31:33 +08:00
2026-06-11 13:00:56 +08:00
2026-08-19 14:37:08 +08:00
2026-08-19 14:37:08 +08:00
2026-08-31 15:31:29 +08:00
2026-08-31 17:46:56 +08:00
2026-09-08 11:59:16 +08:00
2026-07-30 20:34:01 +08:00
2026-09-02 15:48:38 +08:00
2026-09-02 15:48:38 +08:00
2026-09-03 15:05:11 +08:00
2026-09-02 15:48:38 +08:00
2026-09-02 15:48:38 +08:00
2026-09-02 15:48:38 +08:00
2026-09-03 13:23:25 +08:00
2026-09-03 15:05:11 +08:00
2026-09-03 14:50:14 +08:00
2026-09-03 14:50:14 +08:00
2026-07-02 14:38:05 +08:00
2026-08-03 12:39:27 +08:00
2026-09-03 14:50:14 +08:00
2026-08-28 12:49:08 +08:00
2026-08-03 12:39:27 +08:00
2026-08-20 13:42:44 +08:00
2026-08-26 01:48:44 +08:00
2026-08-03 13:35:04 +08:00
2026-08-19 14:37:08 +08:00
2026-08-19 14:37:08 +08:00
2026-07-16 13:54:01 +08:00
2026-08-31 17:46:56 +08:00
2026-08-26 01:48:44 +08:00
2026-09-08 11:59:16 +08:00
2026-08-07 12:33:47 +08:00
2026-09-09 17:17:50 +08:00
2026-09-04 16:53:05 +08:00
2026-09-09 17:17:50 +08:00
2026-09-07 13:58:26 +08:00
2026-09-08 15:46:48 +08:00
2026-08-25 17:19:46 +08:00
2026-08-26 12:42:42 +08:00
2026-08-26 12:42:42 +08:00
2026-08-25 12:51:44 +08:00
2026-08-13 13:48:18 +08:00
2026-06-30 14:46:46 +08:00
2026-06-30 14:46:46 +08:00
2026-06-11 13:00:56 +08:00
2026-07-22 15:38:38 +08:00
2026-08-26 15:45:06 +08:00
2026-08-13 13:48:18 +08:00
2026-08-13 13:48:18 +08:00
2026-06-01 15:19:42 +08:00
2026-07-22 14:38:31 +08:00
2026-08-26 15:45:06 +08:00
2026-06-29 14:09:34 +08:00
2026-07-09 15:07:11 +08:00
2026-08-25 12:00:49 +08:00
2026-08-27 16:55:03 +08:00
2026-08-25 12:00:49 +08:00
2026-09-02 18:29:11 +08:00
2026-05-13 18:46:20 +08:00
2026-08-06 21:05:21 +08:00
2026-09-03 18:57:35 +08:00
2026-09-04 15:33:53 +08:00
2026-09-03 16:32:41 +08:00
2026-07-08 14:51:54 +08:00
2026-08-24 14:38:07 +08:00
2026-07-03 14:18:43 +08:00
2026-08-07 12:40:12 +08:00
2026-08-24 14:38:07 +08:00
2026-08-20 11:32:17 +08:00
2026-08-19 16:33:48 +08:00
2026-09-08 12:58:16 +08:00
2026-09-04 15:39:38 +08:00
2026-07-31 16:52:17 +08:00
2026-07-31 16:52:17 +08:00
2026-05-11 12:39:45 +08:00
2026-07-31 16:52:17 +08:00
2026-09-10 21:24:35 +08:00
2026-09-10 21:24:35 +08:00
2026-09-01 12:11:50 +08:00
2026-09-10 22:18:16 +08:00
2026-09-10 22:18:16 +08:00
2026-08-20 01:30:58 +08:00
2026-09-08 22:51:19 +08:00
2026-07-14 13:16:50 +08:00
2026-08-05 19:14:33 +08:00
2026-08-19 23:04:26 +08:00
2026-08-19 23:04:26 +08:00
2026-07-31 14:40:16 +08:00
2026-09-02 18:29:11 +08:00
2026-06-02 14:29:29 +08:00
2026-05-21 15:33:47 +08:00
2026-08-20 13:42:44 +08:00
2026-07-24 16:39:22 +08:00
2026-09-10 17:16:50 +08:00
2026-09-10 17:16:50 +08:00
2026-07-24 16:39:22 +08:00
2026-08-19 15:51:26 +08:00
2026-08-19 15:51:26 +08:00
2026-09-07 16:46:07 +08:00
2026-09-03 13:23:25 +08:00
2026-08-17 12:51:39 +08:00
2026-09-09 14:36:42 +08:00
2026-08-08 19:20:38 +08:00
2026-08-08 02:01:43 +08:00
2026-08-08 19:20:38 +08:00
2026-09-03 14:50:14 +08:00
2026-08-11 02:23:11 +08:00
2026-08-25 18:28:01 +08:00
2026-08-12 14:09:48 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-05-08 19:14:12 +08:00
2026-09-01 12:11:50 +08:00
2026-09-03 14:50:14 +08:00
2026-09-03 14:50:14 +08:00
2026-08-20 01:30:58 +08:00