Fix bd-ca0b: bd sync now auto-resolves conflicts instead of failing
Previously, bd sync would fail with "Pre-export validation failed: refusing to export: JSONL is newer than database" when JSONL was modified (e.g., after git pull). Now bd sync intelligently handles this by: - Detecting when JSONL is newer than the database - Automatically importing before exporting - Continuing with the normal sync flow This makes the workflow much smoother - users can just run 'bd sync' and it figures out what needs to be done. Changes: - Added isJSONLNewer() helper to check file timestamps - Modified sync command to auto-import when JSONL is newer - Extracted timestamp check logic for reusability Resolves: bd-ca0b 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -126,6 +126,16 @@ Use --merge to merge the sync branch back to main branch.`,
|
||||
if dryRun {
|
||||
fmt.Println("→ [DRY RUN] Would export pending changes to JSONL")
|
||||
} else {
|
||||
// Smart conflict resolution: if JSONL is newer, auto-import first
|
||||
if isJSONLNewer(jsonlPath) {
|
||||
fmt.Println("→ JSONL is newer than database, importing first...")
|
||||
if err := importFromJSONL(ctx, jsonlPath, renameOnImport); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error auto-importing: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
fmt.Println("✓ Auto-import complete")
|
||||
}
|
||||
|
||||
// Pre-export integrity checks
|
||||
if err := ensureStoreActive(); err == nil && store != nil {
|
||||
if err := validatePreExport(ctx, store, jsonlPath); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user