Skip to content

watson-16056-20260428073350-validation #14

@anduimagui

Description

@anduimagui

Merge conflict detected

Original PR title: feat(app): add copy rich text option for message content

Detected: 2026-04-28T06:38:34.311Z

Watson Guidance

  • packages/app/src/components/settings-general.tsx, packages/app/src/context/settings.tsx, packages/app/src/i18n/en.ts, packages/app/src/pages/session/message-timeline.tsx, and packages/ui/src/components/markdown.tsx are all content conflicts (changed in both).
  • In packages/app/src/components/settings-general.tsx, the base side imports permission/global sync/global SDK utilities, TextField, router params, DisplayBackend, decode64, and playSoundById; in packages/app/src/context/settings.tsx, base adds general.showSessionProgressBar; in packages/app/src/i18n/en.ts, base keeps "settings.general.section.feed": "Feed" and adds the showSessionProgressBar title/description strings; for packages/app/src/pages/session/message-timeline.tsx and packages/ui/src/components/markdown.tsx, the excerpt only shows surrounding base imports, so base-side behavior for those files is insufficiently shown beyond not containing the head-side added copy-mode/copy-HTML lines.
  • In packages/app/src/components/settings-general.tsx, the head side switches imports to usePlatform, AssistantCopyFormat, useSettings, monoFontFamily, and playSound, dropping the base-only imports shown in the conflict; in packages/app/src/context/settings.tsx, head adds AssistantCopyFormat = "plain" | "rich" | "ask" and general.assistantCopyFormat; in packages/app/src/i18n/en.ts, head renames the section label to "Feed & copy" and adds assistantCopyFormat setting strings; in packages/app/src/pages/session/message-timeline.tsx, head adds usePlatform(), computes assistantCopyMode from desktop platform + settings.general.assistantCopyFormat(), and passes it to SessionTurn; in packages/ui/src/components/markdown.tsx, head changes the checksum import path, adds serializeMarkdownClipboardHTML, and adds setupSelectionCopy() for clipboard HTML handling.
  • Safest resolution: merge both sides where they are not mutually exclusive—keep the base-only settings fields/strings (showSessionProgressBar) and the head-only assistant copy additions (AssistantCopyFormat, assistantCopyFormat, "Feed & copy", assistantCopyMode, serializeMarkdownClipboardHTML/setupSelectionCopy)—then reconcile import lists in packages/app/src/components/settings-general.tsx and packages/ui/src/components/markdown.tsx so every referenced symbol exists exactly once and uses the correct package path. Before merge, verify the conflicted files compile, the settings UI shows both the progress-bar control and copy-mode control with matching i18n keys, desktop message copy still works in plain/rich/ask modes, markdown selection copy writes both text/plain and text/html, and the project’s required validation/test suite passes before pushing the resolved branch.

Resolve locally

git fetch origin
git checkout feature-branch
git merge origin/main
# resolve conflicts
git push

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions