Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
Review Syncthing conflict files side by side, then keep, replace or archive them with a backup.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A local desktop workbench for reviewing Syncthing conflict files before resolving them. Compare text, images, or binary metadata, make an explicit decision, and keep verified backups and a recoverable transaction receipt outside the synced folder.
Why install it? A conflict list or “newest wins” rule cannot tell you which version contains the change you intended. ConflictBench ties each decision to reviewed SHA-256 hashes, rechecks files before mutation, and records interrupted stages instead of claiming an all-or-nothing multi-file transaction. The alternatives study includes a reproducible synthetic comparison against a small existing resolver.
No account, Syncthing API key, daemon, telemetry, or automatic winner. ConflictBench is independent of the Syncthing project.
Download your platform package from Releases. Extract it and open ConflictBench. The packages are unsigned and macOS is not notarized. Verify the published SHA-256 checksum first. Linux runtime requirements and build instructions are in BUILDING.
Choose Try demo for disposable text, Korean Unicode, image, and binary examples. Demo files and backups are removed when the application closes. To preserve real work, use your own selected folder and a separate private backup location.
For a first session, follow a complete demo decision and recovery before selecting a real synced folder. It includes the expected result and common reasons a commit is refused.
Conflict copies whose content is byte-for-byte the same as their original are marked identical. Clean up identical copies archives all of them in one reviewed step, each with its own receipt, so a folder with dozens of leftover copies does not need dozens of dialogs.
The interface follows the system language. Korean is included; ConflictBench --language en forces English.
한국어 빠른 시작 · Safety and recovery · Backup format · Privacy · Support · Verification records
| Decision | Result after backups are verified |
|---|---|
| Keep original | Original remains; the selected conflict is removed from the sync folder and retained in the external backup. |
| Use conflict | Original receives the selected conflict's bytes; selected conflict is removed. Both prior versions stay in backup. |
| Keep both | Original remains; a separately named copy retains the conflict's extension. The conflict-marker file is removed. |
Conflicts missing their original are skipped because deletion may have been intentional. Case-only name collisions are a different Syncthing problem and are not resolved here. Dates and sizes are informative; they never determine a winner.
Local regular files only, maximum 256 MiB per version, 100,000 scanned entries and 1,000 conflict pairs. UTF-8 text preview is limited to 1 MiB, inline diff to 1,200 lines; image decoding is bounded. Unsupported formats get metadata and an explicit decision. A trusted external diff executable receives temporary verified snapshots using a literal argument list, without a shell.
Pause is required. Hash checks detect observed changes but cannot prevent a writer changing a file after its final check. Use a local filesystem with normal atomic rename semantics. Network drives, cloud placeholders, malicious concurrent writers, and preserving ACLs/extended attributes/resource forks are outside this release's supported scope. Undo is local and conditional; it does not reverse later changes on other devices. Read the complete contract before using important documents.
C++17, CMake, Qt 6.8 or later; release builds use Qt 6.11.2. Qt is dynamically linked. There is no JavaScript or server component. Build/test instructions, dependency sources, license notices, and packaging commands are in BUILDING and LICENSING.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/Qt
cmake --build build --parallel 2
ctest --test-dir build --output-on-failure
GPL-3.0-only. Third-party libraries retain their own licenses. See LICENSE and THIRD_PARTY_NOTICES.