Sonarist project

Sonarist / Design system

Documentation v1.0.0 · Work in progress · UI prototype with separate server foundations

Design system contents

Patterns

Merge related threads deliberately

Select a related source conversation while preserving the canonical thread and original message identity.

On this page

User goal

Select a related source conversation while preserving the canonical thread and original message identity.

Workflow

Workflow
StepExpected behavior
1Open More conversation actions and choose Merge conversation.
2Review the canonical subject/person/message count.
3Choose another non-junk conversation; same-person options are ranked first.
4Read the consequence summary and source message count.
5Confirm merge; local source thread disappears and its messages join the target.

Decision and composition rules

  • Same person is a ranking preference, not an enforced condition.
  • Target ID remains canonical.
  • Production must preserve routing/history and validate cross-contact consequences.

Edge cases and recovery

  • No selection disables merge.
  • Display-string sorting is not reliable chronology.
  • There is no verified undo or durable transaction.
  • Do not merge live data during capture; specimen callback is a no-op.

Persistence boundary

The demonstrated frontend uses local React state or static fixtures. Read the readiness topic before connecting these actions to authenticated persistence. A visible toast, badge or timer is not a server acknowledgement.

Source references

Source references
FileResponsibility
components/inbox/merge-dialog.tsxDecision UI
components/helpdesk-app.tsxLocal merge logic

Examples from the app

Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.

Merge · Component detail · Light · Desktop · 1152 × 1316 px
Merge · Component detail · Light · Desktop · Selected · 1152 × 1504 px

Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0