fix(chat): give every backend-tagged system event its own timeline chip (#936)
System events ride as role=user rows with a display_kind sidecar (backend issues #904/#82888). The full-bleed renderer routes any displayKind != null to a SystemEvent, but timelineMarkerLabelRes only had labels for model_switch / personality_switch / auto_continue / async_delegation_complete. skill_invocation and internal_notification had NO label, so TimelineMarkerChip returned early and they fell through to the bare SystemBubble (centered italic text, no clear system identity) instead of a distinct chip. - Add skill_invocation + internal_notification to timelineMarkerLabelRes. - Add string resources en/zh/ko (ko was missing all timeline markers; added the two new ones for parity). - TimelineMarkerTest: assert both new kinds map to labels. Result: every backend system message type now renders as its own centered timeline chip, never as a user bubble. Legacy sessions persisted before the backend added display_kind tagging still lack the sidecar and would need a one-time backend re-tag to stop rendering as user bubbles. Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
1 parent
82e2d787af
commit
0d1b4fee11
5 files changed
+16
No files matched your search
@@ -18,6 +18,14 @@ class TimelineMarkerTest {
|
||||
R.string.timeline_marker_delegation_complete,
|
||||
timelineMarkerLabelRes("async_delegation_complete"),
|
||||
)
|
||||
assertEquals(
|
||||
R.string.timeline_marker_skill_invocation,
|
||||
timelineMarkerLabelRes("skill_invocation"),
|
||||
)
|
||||
assertEquals(
|
||||
R.string.timeline_marker_internal_notification,
|
||||
timelineMarkerLabelRes("internal_notification"),
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in new issue
Block a user