Fixes #1103: bd sync --merge fails when sync-branch configured due to skip-worktree/daemon write conflict. Root cause: When sync-branch is configured, daemon/bd writes to main's .beads/issues.jsonl which has skip-worktree set. This hides changes from `git status` but `git merge` still detects them, causing merge failures. Solution: When sync-branch is configured, redirect all JSONL writes to the worktree's JSONL only. Main's JSONL is now read-only and only updated via merges from the sync branch. Changes: - autoflush.go: findJSONLPath() now returns worktree JSONL path when sync-branch configured, with safeguards for test isolation - sync_branch.go: Remove incomplete skip-worktree manipulation code that is no longer needed with this architectural fix Data flow with sync-branch: 1. bd create -> SQLite 2. bd sync --flush-only -> worktree/.beads/issues.jsonl 3. bd sync --merge -> clean merge (main's JSONL unchanged) 4. auto-import -> SQLite updated from merged JSONL
13 KiB
13 KiB