Files
dolphin f519954911 Merge branch 'feat/2.6.0-ui' into feat/2.7-ui
Rebases the UI line onto the released mainline: feat/2.7-ui starts from
origin/main (2.6.0 + hotfix1 + hotfix2) and takes in all the UI work that
accumulated on feat/2.6.0-ui — which had already merged feat/2.6.0, so the
2.6 feature work rides along in the same merge.

Both sides forked before hotfix2, so the twelve conflicts are the same
"mainline fixed it / the UI line rewrote it" files. Resolution rule:
mainline wins on logic, the UI line wins on presentation and design tokens.

- chat_service.py: mainline's interrupted-stream persistence plus the UI
  line's classified error payload.
- redis_callback.py: mainline — the UI line still referenced the outer
  `node_id` inside the closure instead of its `one_node_id` parameter.
- chatApi.ts: all three error fields (errorText, errorType, errorDetail).
- useAiChat.ts / useAiChatSSE.ts: the UI line's 3-arg onError and
  classification payload, with mainline's localized connection-lost copy.
- AiMessageBubble.tsx: mainline's rule that a partially streamed answer
  still renders, with the UI line's rich ChatErrorCard below it.
- ContextChips.tsx / SaveAsButton.tsx: mainline — it unified the
  uploading/uploaded chip lists and added download-without-preview.
- PlusMenu.tsx / WorkspacePanel.tsx: the UI line's semantic color tokens,
  kept together with mainline's icon choice and its no-flex-1 layout fix.
- Roles.tsx: the UI line's extracted roleMenuSelection module (constants
  verified identical to mainline's inline copy).

Housekeeping: froze mainline's lint violations (its branch carries no
suppressions file), added the missing 11059 error copy in zh-Hans/en/ja,
and guarded one optional-typed artifact preview callback.

Both apps lint clean; platform typecheck clean; i18n parity clean. The six
remaining client typecheck errors are byte-identical to main and predate
this merge.
2026-08-20 18:29:43 +08:00
..
2026-07-19 00:01:13 +08:00
2024-08-15 11:00:37 +08:00