The sync command was crashing at sync.go:245 with a nil pointer
dereference when running in direct mode (without daemon). The
exportToJSONL function attempted to use store.SearchIssues()
without first ensuring the store was initialized.
This fix adds a call to ensureStoreActive() before accessing
the store, matching the pattern used by other commands like
export. This ensures the store is properly initialized whether
running with or without the daemon.
Fixes#106🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
- Added OpExport/OpImport to RPC protocol
- Implemented handleExport() in daemon to export via RPC
- Modified sync command to use daemon export when available
- Prevents nil pointer dereference when daemon is running
- Falls back to direct mode if daemon unavailable
- Fix dry-run to not mutate state (no export/clear dirty flags)
- Use os.Executable() for import to avoid path hijacking
- Add preflight checks for merge/rebase in progress
- Add upstream tracking validation with helpful hints
- Use CommandContext for all git operations (enable cancellation)
- Add chmod(0644) to exportToJSONL for consistency with export.go
All critical issues from Oracle review addressed.