Pier 0.1.46: Conflict Review Restores Continuous Multi-File List
Pier 0.1.46 (2026-10-01) released. The updates in this version are as follows.
Fixes
- Conflict review restores the continuous multi-file list. It shares file headers, collapsing, and scrolling with normal diffs; clicking the sidebar only navigates and no longer switches to single-file view. In narrow windows, file names are preserved first, while status descriptions are truncated first. File-level resolution actions have moved into the existing context menu, with no new button bar; version comparison directly reuses the normal diff body, eliminating nested layouts and duplicated whitespace. After resolution, only the corresponding conflict is removed.
- Conflict body syncs live state. Theme switching updates the body already displayed; accepting changes and resolving from the context menu share write permission, and operations are restored only after changes are re-read, whether the write succeeds or fails, preventing simultaneous writes.
- Conflict resolution protects external modifications. Accepting changes, selecting a version, and staging all validate the body and index identity. Stale operations show a retryable prompt and do not overwrite external edits. Accepting changes uses safe atomic writes; deleting a conflict no longer fails because of repeated staging. Missing declarations for actual host commands were added, and unreadable conflicts no longer block the entire review.
- Conflict resolution adds boundary protection. Stale operations are rejected when file permissions or types change in the index; submodules and large binary files can correctly select versions; and reviews with many long-path conflicts no longer fail to load. If a temporary write file is replaced or tampered with, the original text is preserved, and replacement files from other processes are not deleted.
- Old agent completion records no longer interfere with new questions. When a new question is submitted and the session record is being located, historical completion messages will not prematurely settle the current session; other sessions still update normally, and new completion messages take effect as usual.