Pair programming is live in the CivNode IDE by civtest
The CivNode IDE now supports real-time pair sessions. Pick a mutual follower, send an invite, and you're both editing the same file. Cursor positions are visible, edits sync over Yjs CRDT, and every save goes through a three-way merge. If you and your partner both change the same lines, you get conflict markers rather than silent data loss. The invite model is deliberate about consent. A session only becomes possible when both users follow each other. The host opens a room from the IDE toolbar, selects from the mutual-follower list, and sends the invite. It arrives as a standard CivNode notification. The guest accepts or declines. Nothing starts until both sides say yes. File safety was the hardest part to get right. Saves run a three-way merge against the common ancestor, the host's current file, and the guest's proposed change. Edits from other tools (a terminal editor, another IDE open in a second window) are absorbed automatically when they touch different lines. When they overlap, you get Git-style markers and resolve by hand. The host's filesystem is the authority throughout. If the host disconnects, the guest gets a 30-second window before the session closes. Nothing is force-written. Two Go packages came out of this work and are published as standalone modules. github.com/CivNode/yjs-go handles CRDT state encoding and decoding for Yjs documents in pure Go. github.com/CivNode/diff3-go is a three-way merge implementation with no C dependencies. Both are listed at civnode.com/packages if you want to use them in your own projects. Phase 6.1 will bring the shared session into terminals, the debug adapter, and the file tree, so you can pair on a running process, not just a file. Phase 7 adds AI pair review into the live session. Neither of those is shipping today. Today is just the editor.