* test: synced JSON that does not parse is never committed and is reported (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(brain-sync): hold a synced JSON file that does not parse; --profile and doctor report it (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(brain-sync): read JSON index blobs with one cat-file batch, no python subprocess (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(brain-sync): block instead of committing a one-sided merge when a held file is mid-merge (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(brain-sync): merge-block status names the real recovery and waiting files (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* docs(brain-sync): JSON holds in the --status, held-files and two-machine sections (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* test(brain-sync): #3704 fixtures write valid JSON to developer-profile.json (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* docs(brain-sync): keep the reviewed JSON paragraph wording after the main merge (#3763)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>