lesseradmin
1341dfbd12
fix(compaction): exclude operational notifications from tail anchor and auto-focus ( #92703 )
...
Kanban/background completion wakes persist as role=user rows typed with
display_kind="internal_notification" (the synthetic-wake path in run.py).
The model-payload builder already strips display_kind before the request
and is_user_originated_turn already ignores it, but two compaction scans
still treated those rows as real user turns:
- _is_actionable_user_turn (tail anchor) only checked role/content, so a
notification became the protected 'last user turn' the compressor keeps.
- _derive_auto_focus_topic only skipped synthetic compression turns, so
operational notices leaked into the compact focus hint.
Both now exclude display_kind-typed rows, mirroring the existing
is_user_originated_turn exclusion. No schema change; cache- and
role-alternation-safe.
Behavior-contract tests feed 1,000 operational notifications around one
human turn and assert they never anchor the tail, become the auto-focus
source, or count as actionable user turns.
Fixes #92703
2026-08-26 21:38:20 -07:00
..
2026-08-25 01:48:43 +05:30
2026-08-25 14:02:40 -07:00
2026-08-15 00:33:01 -07:00
2026-08-15 13:28:14 -07:00
2026-08-26 12:58:35 +05:30
2026-08-07 10:11:05 -07:00
2026-08-26 10:10:11 -07:00
2026-08-26 10:10:11 -07:00
2026-08-25 12:12:08 +05:30
2026-08-20 12:29:11 -05:00
2026-08-24 20:11:18 -07:00
2026-08-26 10:10:11 -07:00
2026-08-21 15:02:29 -07:00
2026-08-10 10:45:44 -07:00
2026-08-12 19:13:32 -07:00
2026-08-25 12:12:08 +05:30
2026-08-26 12:58:35 +05:30
2026-08-25 03:55:55 -07:00
2026-08-24 20:25:10 -07:00
2026-08-15 03:16:21 -07:00
2026-08-21 21:53:11 +05:30
2026-08-26 21:38:20 -07:00
2026-08-08 23:09:45 +05:30
2026-08-12 18:41:59 -07:00
2026-08-26 13:02:27 +05:30
2026-08-26 10:10:11 -07:00
2026-08-26 10:10:11 -07:00
2026-08-23 20:01:18 -07:00
2026-08-08 12:32:23 -07:00
2026-08-22 04:20:48 +05:30
2026-08-16 22:06:41 -07:00
2026-08-25 00:31:14 -07:00
2026-08-26 17:47:22 +05:30
2026-08-13 09:34:36 -07:00
2026-08-16 22:06:08 -07:00
2026-08-23 20:02:07 -07:00
2026-08-21 15:24:03 -07:00
2026-08-08 05:21:09 -07:00
2026-08-26 19:25:33 -07:00
2026-08-25 13:14:30 +05:30
2026-08-08 14:49:28 -07:00
2026-08-19 16:10:01 -07:00
2026-08-23 17:47:50 -07:00
2026-08-14 02:04:24 +05:30
2026-08-23 18:25:19 -07:00
2026-08-08 05:09:43 -07:00
2026-08-19 22:41:05 -07:00
2026-08-25 03:55:55 -07:00
2026-08-25 03:55:55 -07:00
2026-08-15 01:04:19 -07:00
2026-08-23 18:24:43 -07:00
2026-08-13 23:10:16 +05:30
2026-08-13 23:10:16 +05:30
2026-08-24 03:20:57 -07:00
2026-08-14 03:31:22 +05:30
2026-08-25 03:55:55 -07:00
2026-08-12 16:25:20 -07:00
2026-08-12 18:38:25 -07:00
2026-08-24 21:46:05 -07:00
2026-08-26 04:50:13 -07:00
2026-08-09 15:25:12 +05:30
2026-08-15 11:09:56 +05:30
2026-08-21 12:23:47 +05:30
2026-08-26 10:10:11 -07:00
2026-08-21 14:58:37 -07:00
2026-08-20 23:12:38 -07:00
2026-08-13 23:10:16 +05:30
2026-08-19 08:52:01 -07:00
2026-08-19 08:52:03 -07:00
2026-08-08 23:46:17 -07:00
2026-08-16 01:55:51 -07:00
2026-08-23 19:04:37 -07:00
2026-08-21 13:21:46 +10:00
2026-08-15 23:03:52 -07:00
2026-08-19 19:41:42 -07:00
2026-08-24 20:25:10 -07:00
2026-08-08 15:10:24 +05:30
2026-08-23 18:25:19 -07:00
2026-08-16 22:07:43 -07:00
2026-08-26 04:50:13 -07:00
2026-08-24 20:10:44 -07:00
2026-08-24 20:10:44 -07:00
2026-08-15 00:33:01 -07:00
2026-08-16 22:10:02 -07:00
2026-08-25 15:24:15 -07:00
2026-08-24 20:11:18 -07:00
2026-08-25 02:45:10 -07:00
2026-08-14 21:41:26 -07:00
2026-08-12 19:01:30 -07:00
2026-08-12 19:13:32 -07:00
2026-08-12 19:13:32 -07:00
2026-08-24 03:15:07 -07:00
2026-08-25 03:55:55 -07:00
2026-08-08 11:24:45 -07:00
2026-08-24 03:23:07 -07:00
2026-08-16 00:14:58 -07:00
2026-08-12 01:15:25 -07:00
2026-08-22 23:25:43 -07:00
2026-08-08 14:49:28 -07:00
2026-08-19 16:10:01 -07:00
2026-08-19 15:15:27 -07:00
2026-08-20 00:17:25 -07:00