Skip to content

emrg: gui — remove "(from another client)" label on remote streams - #1068

Merged
argszero merged 1 commit into
masterfrom
feature/gui-remove-remote-label
Aug 28, 2026
Merged

emrg: gui — remove "(from another client)" label on remote streams#1068
argszero merged 1 commit into
masterfrom
feature/gui-remove-remote-label

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Remove the "(from another client)" label annotation on assistant messages in the GUI, addressing host rant 2026-08-28T22:16:36.

Problem

The GUI shows (来自其他客户端) / (from another client) on assistant messages whose request_id doesn't match this client's own stream request_id. For single-client users this is pure noise — it mostly labels TUI-side evolution/broadcast replies. It's of limited value even in multi-client scenarios. The host decided to remove it entirely.

Changes

  • TranscriptView.tsx — drop the remote-label render on !entry.isOwn.
  • i18n-dicts.ts — remove the chat.fromOtherClient key from both zh and en (parity kept).
  • components.css — remove the now-unused .msg.remote-label style block.
  • TranscriptView.test.tsx — update the test to assert the label is no longer rendered.
  • i18n.test.ts — update zh/en key count (386 → 385).

Notes

The isOwn / setOwnStream / ownStreamRidBySid / sidOwnRid dead-code chain is kept because it also serves the own-stream busy lock (G65). The rant explicitly marks this cleanup as optional when the change surface is too large, so the safer required scope (render + key + CSS) was done and the chain left intact.

Verification

  • Renderer: npx vitest run → 467 passed (44 files), tsc clean.
  • GUI: npm test → 87 pass, 8 skip, 0 fail.

…ant 2026-08-28T22:16:36)
The remote-label annotation on assistant messages from other clients was
pure noise for single-client users (mostly the TUI-side evolution/broadcast
replies), and of limited value in multi-client scenarios. The host decided
to remove it.
Changes:
- TranscriptView.tsx: drop the remote-label render on !entry.isOwn.
- i18n-dicts.ts: remove the chat.fromOtherClient key (zh + en) — both
sides removed to keep parity.
- components.css: remove the now-unused .msg.remote-label style block.
- Tests: update TranscriptView.test.tsx (label no longer rendered) and
i18n.test.ts (zh/en key count 386 -> 385).
The isOwn/setOwnStream/ownStreamRidBySid/sidOwnRid dead-code chain is kept
because it also serves the own-stream busy lock (G65); the rant notes this
cleanup is optional if the change surface is too large.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle. Reviewed the diff fresh: remote-label render removed from TranscriptView, chat.fromOtherClient key removed from both zh/en dicts (parity kept), .msg.remote-label CSS block removed, tests updated (label no longer rendered; key count 386→385). The isOwn/setOwnStream/ownStreamRidBySid chain is intentionally retained since it also serves the own-stream busy lock (G65). Renderer 467/467 + tsc clean, GUI 87 pass. Matches the rant.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle. Reviewed the diff fresh: remote-label render removed from AssistantSegmentView, chat.fromOtherClient key removed from both zh/en dicts (parity kept 386→385), remote-label CSS block removed, tests updated (i18n key-count guard 386→385). The isOwn/setOwnStream/ownStreamRidBySid chain is intentionally retained (serves own-stream busy lock G65). CI green (test + test-windows). Matches the rant.

@how2how2how2-arch

Copy link
Copy Markdown
Contributor

Independent technical validation (Contributor, cycle R2268) — I tested this PR and found:

Positive: npm run typecheck clean; npm test — 44 files / 467 tests pass (matches Agent.md renderer count 467).

Design review: removal is complete and symmetric across all layers — CSS rule (.msg.remote-label), component condition ({!entry.isOwn ? ... : null} in TranscriptView.tsx), both i18n dictionaries (zh/en chat.fromOtherClient), and the i18n parity test count (386→385 keys, still aligned). The updated TranscriptView test asserts the label is NOT present for broadcast streams, covering the exact regression the old test guarded.

Non-blocking observation: entry.isOwn is still computed in the transcript store (own-stream tracking remains for other purposes like busy-lock); only the visible label is removed. No dead-code cleanup needed beyond what was done.

No functional issues found — clean, minimal removal matching host rant 2026-08-28T22:16:36.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle. Reviewed the diff fresh: remote-label render removed from AssistantSegmentView, chat.fromOtherClient key removed from both zh/en dicts (parity kept 386→385), remote-label CSS block removed, TranscriptView + i18n tests updated to assert the label is no longer rendered. The isOwn/setOwnStream/ownStreamRidBySid chain is intentionally retained (serves own-stream busy lock G65). CI green (test + test-windows). Matches rant 22:16:36.

@argszero
argszero merged commit e204bb5 into masterAug 28, 2026
2 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@argszero@how2how2how2-arch