Merge conflict detected
Original PR title: feat(app): add copy rich text option for message content
Detected: 2026-04-28T06:41:28.839Z
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 all have content conflicts from both branches modifying the same file (changed in both).
- On
dev / base, the excerpts show settings-general.tsx importing existing settings/platform/permission/global-sync/global-SDK pieces plus playSoundById; context/settings.tsx keeping general.showSessionProgressBar; i18n/en.ts keeping the "Feed" section label and strings for "showSessionProgressBar"; message-timeline.tsx not computing or passing any assistant copy mode; and markdown.tsx using @opencode-ai/core/util/encode without the new clipboard-copy helper. Evidence is insufficient here to describe the full file bodies beyond those shown excerpts.
- On the PR head, the excerpts show
settings-general.tsx adding imports for AssistantCopyFormat, useSettings, monoFontFamily, usePlatform, and playSound; context/settings.tsx adding AssistantCopyFormat = "plain" | "rich" | "ask" and general.assistantCopyFormat; i18n/en.ts renaming the section to "Feed & copy" and adding "assistantCopyFormat" title/description strings; message-timeline.tsx deriving assistantCopyMode from platform/settings and passing it to SessionTurn; and markdown.tsx switching the checksum import path to @opencode-ai/util/encode and adding serializeMarkdownClipboardHTML plus copy-handling logic.
- Safest resolution: merge both sides’ non-overlapping intent in each conflicted file—retain base-only settings such as
showSessionProgressBar and its i18n strings, while also adding the head branch’s assistant copy format type/settings/UI/text and the message-timeline.tsx / markdown.tsx clipboard-related changes, then reconcile import-path/API differences (playSoundById vs playSound, @opencode-ai/core/util/* vs @opencode-ai/util/*) against the actual current modules. After pushing, verify the app builds, the settings screen shows both the session progress bar option and the new copy-mode control, assistant copy behavior works on desktop, and the affected i18n keys resolve. Small conflict-reduction suggestion: keep new settings keys and their i18n entries grouped together in one dedicated block so parallel additions to general settings touch fewer adjacent lines.
Resolve locally
git fetch origin
git checkout feature-branch
git merge origin/main
# resolve conflicts
git push
Merge conflict detected
Original PR title: feat(app): add copy rich text option for message content
Detected: 2026-04-28T06:41:28.839Z
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, andpackages/ui/src/components/markdown.tsxall have content conflicts from both branches modifying the same file (changed in both).dev/ base, the excerpts showsettings-general.tsximporting existing settings/platform/permission/global-sync/global-SDK pieces plusplaySoundById;context/settings.tsxkeepinggeneral.showSessionProgressBar;i18n/en.tskeeping the"Feed"section label and strings for"showSessionProgressBar";message-timeline.tsxnot computing or passing any assistant copy mode; andmarkdown.tsxusing@opencode-ai/core/util/encodewithout the new clipboard-copy helper. Evidence is insufficient here to describe the full file bodies beyond those shown excerpts.settings-general.tsxadding imports forAssistantCopyFormat,useSettings,monoFontFamily,usePlatform, andplaySound;context/settings.tsxaddingAssistantCopyFormat = "plain" | "rich" | "ask"andgeneral.assistantCopyFormat;i18n/en.tsrenaming the section to"Feed & copy"and adding"assistantCopyFormat"title/description strings;message-timeline.tsxderivingassistantCopyModefrom platform/settings and passing it toSessionTurn; andmarkdown.tsxswitching the checksum import path to@opencode-ai/util/encodeand addingserializeMarkdownClipboardHTMLplus copy-handling logic.showSessionProgressBarand its i18n strings, while also adding the head branch’s assistant copy format type/settings/UI/text and themessage-timeline.tsx/markdown.tsxclipboard-related changes, then reconcile import-path/API differences (playSoundByIdvsplaySound,@opencode-ai/core/util/*vs@opencode-ai/util/*) against the actual current modules. After pushing, verify the app builds, the settings screen shows both the session progress bar option and the new copy-mode control, assistant copy behavior works on desktop, and the affected i18n keys resolve. Small conflict-reduction suggestion: keep new settings keys and their i18n entries grouped together in one dedicated block so parallel additions togeneralsettings touch fewer adjacent lines.Resolve locally
git fetch origin git checkout feature-branch git merge origin/main # resolve conflicts git push