POST-035: row-based conflict gate posting is the resolution

Now
DONE

Per DIS-080: with fence markers retired, post's POST-017 byte pre-scan (hasConflictMarker over tracked adds, post.js:884-895) is replaced by a row-based gate: refuse committing tracked paths that are live conflicts per the ULOG-004 accessor (con rows since the last get/post), --force overrides as before. A successful post IS the resolution the new post row becomes the barrier that expires the con rows; nothing is deleted.

Input

Context

Goals

  1. Pre-flight: tracked add whose path is in the live conflict set refuse conflict in tracked file <path> (--force overrides); all-or-nothing before any store write (POST-017 semantics kept).
  2. Post success expires the conflicts by barrier verify accessor returns empty after; no row rewriting ([ulog-edits-are-put-delete] untouched).
  3. Weave fold at commit consumes the same EXPECTED object as DIFF-016 merged bytes + theirs merge parent unchanged (post.js:788-806).

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome