Commit Graph

2380 Commits

Author SHA1 Message Date
Steve Yegge f84684e314 refactor(daemon): consolidate local-only sync functions to reduce duplication (bd-73u)
Extract performExport() and performAutoImport() shared implementations:
- createExportFunc() and createLocalExportFunc() now use performExport()
  with skipGit parameter
- createAutoImportFunc() and createLocalAutoImportFunc() now use performAutoImport()
  with skipGit parameter
- createLocalSyncFunc() kept as-is (different flow from createSyncFunc)

Reduces daemon_sync.go by 89 lines (1003 -> 914) while maintaining
identical behavior and test coverage.

All existing tests pass. New shared functions use conditional logic
to skip git operations when skipGit=true, eliminating the need for
separate implementations.
2025-12-01 17:39:43 -08:00
Steve Yegge 34799a001d bd sync: close Jira integration epic bd-qvj 2025-12-01 10:45:11 -08:00
Steve Yegge 4a8e01f4d2 bd sync: 2025-11-30 22:11:35 2025-11-30 22:11:35 -08:00
Steve Yegge 40ab349c0a bd sync: 2025-11-30 21:31:13 2025-11-30 21:31:13 -08:00
Steve Yegge 8d19e75431 fix: add safety guard to prevent git-history-backfill mass deletion (bd-t5m)
When a clone gets reset (git reset --hard origin/main), the
git-history-backfill logic was incorrectly marking ALL issues as
deleted since they appeared in git history but not in the current
JSONL. This caused the entire database to be purged.

Fix:
- Add 50% threshold check: abort if git-history-backfill would delete
  more than 50% of issues (likely a reset scenario, not deletions)
- Add warning when >10 issues would be deleted via backfill
- Print helpful message about manual deletion if needed

Test:
- Added TestMassDeletionSafetyGuard that simulates JSONL reset and
  verifies the safety guard prevents mass deletion

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:26:16 -08:00
Steve Yegge da38f8becf bd sync: close bd-4zy (import deletions warning) 2025-11-30 21:23:22 -08:00
Steve Yegge f7dea354d8 fix(import): add warning when issues are skipped due to deletions manifest
When importing JSONL that contains issues in the deletions manifest,
import now:
- Filters out deleted issues before import
- Prints per-issue warning with deletion details (date, actor)
- Shows count of skipped issues in summary
- Suggests --ignore-deletions flag to force import

The new --ignore-deletions flag allows importing issues that are in the
deletions manifest, useful for recovering accidentally deleted issues.

Fixes bd-4zy

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:23:04 -08:00
Steve Yegge 3df138445a fix(init): allow fresh clones with JSONL to run bd init (bd-4h9)
Previously, bd init blocked when JSONL existed with issues but no database,
telling users to run 'bd doctor --fix'. But doctor --fix just ran bd migrate
which requires an existing database - creating a circular dependency.

Now:
- bd init allows fresh clones (JSONL exists, no database) to proceed
- bd init creates the database and imports from JSONL automatically
- bd doctor --fix runs bd init (not migrate) when there's no database

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:18:23 -08:00
Steve Yegge d3dafcf76e bd sync: update beads files 2025-11-30 21:14:10 -08:00
Steve Yegge e4de6f8af4 bd sync: 2025-11-30 21:13:33 2025-11-30 21:13:33 -08:00
Steve Yegge 5413536d5c bd sync: 2025-11-30 20:59:33 2025-11-30 20:59:33 -08:00
Steve Yegge 4616b20127 bd sync: 2025-11-30 20:51:02 2025-11-30 20:51:02 -08:00
Steve Yegge 2320a1c2ef fix: ExtractIssuePrefix now handles 3-char base36 hashes (#425)
- Lower minimum hash length from 4 to 3 characters
- Update hash validation to support base36 (0-9, a-z) instead of just hex
- Require at least one digit to distinguish hashes from English words
- Fixes prefix extraction for hyphenated prefixes with 3-char hashes
  e.g., 'document-intelligence-0sa' now correctly extracts 'document-intelligence'
- Add test cases for 3-char hashes with multi-part prefixes
- Resolves bd sync failures with 'prefix mismatch detected' errors
2025-11-30 20:50:56 -08:00
Steve Yegge af78e7b10c bd sync: 2025-11-30 20:37:45 2025-11-30 20:37:45 -08:00
Steve Yegge 0b914d545a bd sync: update issues.jsonl 2025-11-30 19:24:31 -08:00
Steve Yegge 8a6fd9c0ff feat: add .beads/redirect file support for workspace redirection
Adds a lightweight redirect mechanism that allows a stub .beads directory
to point to the actual beads location. This solves the workspace problem
where an AI agent runs in one directory but needs to operate on beads
stored elsewhere.

The redirect file is a simple text file containing a path (relative or
absolute) to the target .beads directory. Comments (lines starting with #)
are supported. Redirect chains are prevented - only one level is followed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 19:23:30 -08:00
Steve Yegge e6ddacf0be bd sync: 2025-11-30 17:18:21 2025-11-30 17:18:21 -08:00
Steve Yegge e452a60627 bd sync: 2025-11-30 17:17:57 2025-11-30 17:18:08 -08:00
Steve Yegge ae939798bd bd sync: 2025-11-30 15:25:51 2025-11-30 15:25:51 -08:00
Steve Yegge d7294486b0 bd sync: 2025-11-30 15:20:00 2025-11-30 15:20:00 -08:00
Steve Yegge 9aada0fd89 bd sync: 2025-11-30 15:12:22 2025-11-30 15:12:22 -08:00
Steve Yegge 3357dfc632 bd sync: apply DB changes after import 2025-11-30 12:57:45 -08:00
Steve Yegge 71beffdd12 bd sync: 2025-11-30 12:57:44 2025-11-30 12:57:44 -08:00
Steve Yegge 77bb8e65a4 bd sync: update deletions manifest 2025-11-30 12:40:44 -08:00
Steve Yegge 79379a259e bd sync: 2025-11-30 12:38:06 2025-11-30 12:38:06 -08:00
Steve Yegge f60c1e1463 bd sync: 2025-11-30 12:37:19 2025-11-30 12:37:39 -08:00
Steve Yegge 56153c19a8 bd sync: 2025-11-30 12:36:34 2025-11-30 12:37:39 -08:00
Steve Yegge 68b2a6dff4 bd sync: 2025-11-30 12:37:22 2025-11-30 12:37:22 -08:00
Steve Yegge 590fc1db60 bd sync: 2025-11-30 12:36:59 2025-11-30 12:37:17 -08:00
Steve Yegge 6095383360 bd sync: 2025-11-30 12:36:42 2025-11-30 12:37:17 -08:00
Steve Yegge 0b989d7e05 bd sync: 2025-11-30 12:36:23 2025-11-30 12:37:17 -08:00
Steve Yegge 3f7a967a47 bd sync: apply DB changes after import 2025-11-30 12:36:59 -08:00
Steve Yegge e8ed88bf5d bd sync: apply DB changes after import 2025-11-30 12:36:59 -08:00
Steve Yegge 026f17d1f6 bd sync: 2025-11-30 12:36:29 2025-11-30 12:36:59 -08:00
Steve Yegge 73a899d772 bd sync: apply DB changes after import 2025-11-30 12:36:44 -08:00
Steve Yegge b8679fe3c6 bd sync: 2025-11-30 12:36:12 2025-11-30 12:36:12 -08:00
Steve Yegge 7128524db9 bd sync: 2025-11-30 12:11:44 2025-11-30 12:11:44 -08:00
Steve Yegge 6242373cca bd sync: apply DB changes after import 2025-11-30 11:31:47 -08:00
Steve Yegge 2febf7fb61 bd sync: 2025-11-30 11:31:40 2025-11-30 11:31:46 -08:00
Steve Yegge 0c9b03c1a0 bd sync: 2025-11-30 11:31:43 2025-11-30 11:31:43 -08:00
Steve Yegge 3e579d3bc7 bd sync: 2025-11-30 11:31:29 2025-11-30 11:31:29 -08:00
Steve Yegge 33265af58a bd sync: 2025-11-30 11:30:59 2025-11-30 11:30:59 -08:00
Steve Yegge 5fa21a5e63 bd sync: 2025-11-30 11:30:01 2025-11-30 11:30:47 -08:00
Steve Yegge 7eac26a086 bd sync: 2025-11-30 11:30:02 2025-11-30 11:30:02 -08:00
Steve Yegge 62bab53f38 bd sync: 2025-11-30 11:29:39 2025-11-30 11:29:57 -08:00
Steve Yegge cd60e26432 bd sync: 2025-11-30 11:29:21 2025-11-30 11:29:57 -08:00
Steve Yegge 5fd1d0de84 bd sync: apply DB changes after import 2025-11-30 11:29:29 -08:00
Steve Yegge 8a24c0bf34 bd sync: 2025-11-30 11:29:22 2025-11-30 11:29:29 -08:00
Steve Yegge 44587d1eed bd sync: 2025-11-30 11:29:07 2025-11-30 11:29:07 -08:00
Steve Yegge ab58aa8224 bd sync: 2025-11-30 11:16:59 2025-11-30 11:16:59 -08:00