frontend-patterns/research/bench/infospaces/joplin-conflicts-01/artifacts/generated/candidates.md
tegwick ad6f8fa600 Ground conflict-copy candidate in Joplin and Obsidian evidence
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
2026-09-25 02:04:30 +02:00

4.2 KiB

Conflict Copy

Definition

A Conflict Copy is a mechanism where, upon detection of a data conflict during synchronization, a copy of the local version of the conflicting data is preserved in a designated, separate location before the remote version overwrites the original local data.

Candidate Identity

P01, Family: Conflict Resolution, Scale: Component, Status: Draft, Maturity: Hypothesis, Evidence_kind: Primary

Context

A client application synchronizes data with a remote source. During this process, a conflict is detected between the local version of a data item and its remote counterpart.

Problem

How can the synchronization process proceed by applying the remote version of data, while still preserving the user's local changes for potential future reconciliation, without blocking the synchronization flow?

Forces

  • Synchronization Priority: The need to quickly update the local client with the latest remote data to maintain consistency with the server or other clients.
  • User Data Preservation: The need to avoid data loss by discarding a user's local changes when a conflict occurs.
  • Simplicity of Resolution: The desire to allow users to resolve conflicts at their own pace, without immediate interruption during synchronization.

Solution

When a conflict is detected, the application creates a dedicated container (e.g., a "Conflict notebook" or folder). The local version of the conflicting data item is copied into this container. Subsequently, the remote version of the data item replaces the original local version.

Dynamics

  1. Synchronization initiates.
  2. A conflict is detected for a specific data item (e.g., a note).
  3. The application identifies the local version of the conflicting data.
  4. A copy of this local version is made and placed into a pre-defined "Conflict" container.
  5. The remote version of the data item then overwrites the original local data item.
  6. The synchronization process continues, having applied the remote change locally while preserving the pre-conflict local state.

Resulting Context

The local client now reflects the remote state of the data item, allowing synchronization to complete. The user's pre-conflict local changes are accessible in the "Conflict" container, enabling later review and manual reconciliation.

Consequences

  • Pros: Prevents immediate data loss of local changes. Allows synchronization to proceed without user intervention at the moment of conflict. Provides a clear separation between automated synchronization and user-driven conflict resolution.
  • Cons: Requires user action to review and potentially merge the conflict copy. The "Conflict" container might accumulate many items if not regularly managed, leading to clutter. The user might not be immediately aware of the conflict or the existence of the conflict copy.

Failure Modes

  • The "Conflict" container is not easily discoverable by the user.
  • The user is not adequately notified of the conflict or the creation of the conflict copy.
  • The conflict copy itself is not durable or is accidentally deleted.
  • The mechanism for merging or resolving the conflict copy is complex or non-existent.

Source Evidence

  • C01: "it creates a Conflict notebook and copies the local note to it." (SRC-0005, Passage A)
  • C02: "Then the remote note replaces the local note." (SRC-0005, Passage B)
  • C03: Describes the overall process of preserving a local version and replacing the original with a remote version. (SRC-0005, Passages A and B)

Counterevidence

None.

Review Notes

The evidence clearly supports the creation of a copy of the local note and its placement in a "Conflict notebook" before the remote note replaces the local one. This directly aligns with the definition of a Conflict Copy.

Known Uses

  • Joplin Conflict Notebook: The Joplin application creates a "Conflict notebook" and copies the local note to it when a conflict is detected, then the remote note replaces the local note.
    • implementation: Joplin
    • source_locator: SRC-0005, Passage A, Passage B

Recurrence

Recurrence: unknown

{"candidates": [{"id": "P01", "known_uses": [{"implementation": "Joplin", "source_locator": "SRC-0005, Passage A, Passage B"}], "recurrence": "unknown"}]}