mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-26 18:21:13 +00:00
* feat(chat-ui): inline diffs for edit and write tool rows Port the web Control UI's kind-aware diff rendering to the shared SwiftUI tool rows: persisted details.diff parses into numbered add/del/ctx lines, edit/write/text-editor args fall back to a local capped line diff, the collapsed row shows a +N/-M diffstat, and the expanded surface renders the diff with the result summary or error diagnostic beneath it. * fix(chat-ui): preserve tool-result details through message reconciliation Canonical-adoption rebuilds enumerated message fields and silently dropped details, so inline diffs vanished after cache-warm history reconciliation (every app relaunch). Carry details through adoptingCanonicalMessage and messageWithTimestampIfNeeded and lock it in with regression tests. * chore(i18n): sync native inventory for tool diff rows * fix(chat-ui): render diffstat and line numbers as verbatim text * fix(chat-ui): use theme tokens for diff colors * refactor(chat-ui): drop test-only parseDetailsDiff wrapper * fix(chat-ui): address diff-row review findings Interpret details.diff only for edit/write/patch tool names so plugin detail schemas stay opaque; number write previews from line 1 with an 80-line cap and a subtractive char budget while keeping the exact stat; bound per-line rendering to 2000 unicode scalars; announce add/del rows and collapsed skip markers to assistive tech. * chore(i18n): sync native artifacts for diff-row labels * fix(chat-ui): announce diff line numbers to assistive tech