* feat(daemon): add --local flag for git-free operation Add --local mode to the daemon that allows it to run without a git repository. This decouples the daemon's core functionality (auto-flush to JSONL, auto-import from JSONL) from git synchronization. Changes: - Add --local flag to daemon command - Skip git repo check when --local is set - Add validation that --auto-commit and --auto-push cannot be used with --local - Create local-only sync functions that skip git operations: - createLocalSyncFunc: export-only for polling mode - createLocalExportFunc: export without git commit/push - createLocalAutoImportFunc: import without git pull - Update startup message to indicate LOCAL mode - Update event loop to use local functions when in local mode This enables use cases like: - Single-machine issue tracking without git - Auto-flush to JSONL for backup purposes - Running daemon in environments without git access Multi-machine sync still requires git (as expected). * fix(daemon): skip fingerprint validation in local mode validateDatabaseFingerprint() calls beads.ComputeRepoID() which executes git commands. This fails in non-git directories even with --local flag. Skip fingerprint validation entirely when running in local mode since there's no git repository to validate against. * test(daemon): add comprehensive test coverage for --local mode Add tests for: - Flag validation (--local incompatible with --auto-commit/--auto-push) - Git check skip logic in local mode - createLocalSyncFunc, createLocalExportFunc, createLocalAutoImportFunc - Fingerprint validation skip in local mode - Full integration test in non-git directory - Export/import round-trip test --------- Co-authored-by: Claude <noreply@anthropic.com>
14 KiB
14 KiB