Documentation

Edit Conflicts

Field-level detection, agreement-based resolution

When multiple people (or a person and an agent) edit the same project, edits can collide. Because Stellify stores code as structured entities rather than text files, it detects collisions at the field level — and never silently overwrites anyone's work.

Conflict detection runs automatically on multi-user projects for shared (main-branch) entities. Work on an isolated branch is exempt — branches can't collide until merge.

How Detection Works

Every save carries the state the editor originally loaded. When you save, Stellify compares three things: what you loaded, what you're saving, and what's currently stored. If someone else changed the entity since you loaded it and your edits touch the same fields, the save is stopped and a conflict is recorded. Nothing is committed — both versions are preserved.

If the other person changed different fields, there's no conflict: their changes are pulled in alongside yours.

Live Reconciliation

The editor also reconciles continuously while you work. If a collaborator saves changes to the entity you have selected, safe fields update in place, and only genuinely clashing fields are flagged — most simultaneous editing never becomes a conflict at all.

Resolving Conflicts

Open /conflicts to see your pending conflicts. Each one shows both versions with the clashing fields highlighted. The person who hit the conflict proposes a resolution:

  • Mine — keep your version
  • Theirs — accept the other person's version
  • Merge — combine, field by field
  • Manual — write the resolution yourself
  • Abandon — discard the proposed change entirely

Resolutions are durable: both parties must agree before anything commits. The counterparty reviews the proposal and agrees (or counter-proposes); once both have agreed, the resolution is applied automatically. The proposer can also cancel their own proposal at any time.

Design Principles

  • No lost work — a conflicting save is parked, never dropped or force-merged
  • Conservative by default — only fields both users actually touched count as conflicts
  • Agreement, not authority — neither side can unilaterally impose a resolution on shared code

Next Steps