Commit Graph

4688 Commits

Author SHA1 Message Date
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 cbf6545b95 feat: add Jira export script (jsonl2jira.py)
Add a Python script to push bd issues to Jira.

Features:
- Create new Jira issues from bd issues without external_ref
- Update existing Jira issues matched by external_ref
- Handle Jira workflow transitions for status changes
- Reverse field mappings (bd -> Jira) via config
- Dry-run mode for previewing changes
- Auto-update external_ref after creation (--update-refs)

Also updates README to document bidirectional sync workflow.

Closes bd-93d

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 15:19:51 -08:00
Steve Yegge 9aada0fd89 bd sync: 2025-11-30 15:12:22 2025-11-30 15:12:22 -08:00
Steve Yegge 3f9c9bdfd4 feat: add Jira import script (jira2jsonl.py)
Add a Python script to import Jira issues into beads JSONL format.

Features:
- Fetch issues from Jira Cloud or Server/Data Center REST API
- JQL query support for flexible filtering
- Configurable field mappings via bd config
- Hash-based or sequential ID generation
- Issue links converted to dependencies
- external_ref set for re-sync capability

Configuration options:
- jira.url, jira.project, jira.api_token
- jira.status_map.*, jira.type_map.*, jira.priority_map.*

Closes bd-tjn

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 15:12:14 -08:00
Steve Yegge 59befda847 docs: add dependency direction guidance for AI agents
Add section explaining the cognitive trap where temporal language
("Phase 1", "Step 1", "before") causes inverted dependency direction.
Includes examples of correct vs incorrect dependency setup and
verification using bd blocked.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 12:57:58 -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 70f5d6e158 Merge branch 'main' of github.com:steveyegge/beads 2025-11-30 12:36:39 -08:00
Steve Yegge 54928b78a1 fix: validate BEADS_DIR env var for project files (bd-420)
Extends the fix from PR #424 to also validate the BEADS_DIR environment
variable. Previously, only the directory tree search was validated, but
BEADS_DIR could still point to a daemon-only directory.

Changes:
- Add validation to BEADS_DIR path using hasBeadsProjectFiles()
- Add comprehensive test for BEADS_DIR validation
- Test verifies both rejection of daemon-only dirs and acceptance of valid dirs

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 12:36:27 -08:00
Steve Yegge b8679fe3c6 bd sync: 2025-11-30 12:36:12 2025-11-30 12:36:12 -08:00
Serhii 95fe36fb53 fix: validate project files in FindBeadsDir (bd-420) (#424)
FindBeadsDir() now checks for actual beads project files before returning
a .beads directory. This prevents false positives when ~/.beads/ exists
only for daemon registry (registry.json).

Changes:
- Add hasBeadsProjectFiles() helper that checks for:
  - metadata.json or config.yaml (project config)
  - *.db files (excluding backups and vc.db)
  - *.jsonl files (JSONL-only mode)
- Update FindBeadsDir() to validate directories during tree search
- Add comprehensive tests for project file detection
- Update version_tracking_test.go to create project files

Fixes #420

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

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-30 12:35:18 -08:00
Steve Yegge 7128524db9 bd sync: 2025-11-30 12:11:44 2025-11-30 12:11:44 -08:00
Kasper Zutterman c4dd8e57c7 fix: broken Claude Code plugin link (#431) 2025-11-30 12:10:19 -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 01052fffe8 fix(hooks): update comments and handle malformed YAML
- Change comments from sync.branch to sync-branch for consistency
- Add head -1 to handle malformed YAML with duplicate keys

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 11:21:15 -08:00
Steve Yegge ab58aa8224 bd sync: 2025-11-30 11:16:59 2025-11-30 11:16:59 -08:00
Steve Yegge 1ab040390a Merge conflict resolution: sync-branch in config.yaml
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 11:16:50 -08:00
Steve Yegge 2bc8b4cf0a bd sync: 2025-11-30 11:15:59 2025-11-30 11:15:59 -08:00
Steve Yegge 978cb1c31f feat(config): move sync-branch to config.yaml as source of truth
Previously sync.branch was stored in the database via bd config set.
Now it is in config.yaml (version controlled, shared across clones):

  sync-branch: "beads-sync"

Changes:
- Add sync-branch to .beads/config.yaml
- Update syncbranch.Get() to check config.yaml before database
- Add syncbranch.GetFromYAML() and IsConfigured() for fast checks
- Update hooks to read sync-branch from config.yaml directly
- Update bd doctor to check config.yaml instead of database
- Remove auto-fix (config.yaml changes should be committed)

Precedence: BEADS_SYNC_BRANCH env > config.yaml > database (legacy)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 11:15:49 -08:00
Steve Yegge f8c87aba73 feat(sync): read sync-branch from config.yaml (bd-io0)
sync.branch config was lost on clone because it was only stored in
the database (which is gitignored). Now syncbranch.Get() checks:
1. BEADS_SYNC_BRANCH env var (highest)
2. config.yaml sync-branch (tracked, persists across clones)
3. Database config (local override)
4. Empty (use current branch)

Changes:
- Update syncbranch.Get() to check config.yaml
- Update config.yaml template with sync-branch option
- Set sync-branch: beads-sync in this repo config.yaml

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 10:55:41 -08:00
Steve Yegge d02905a4fa feat(hooks): make template hooks sync.branch aware (bd-8ib)
Update the embedded template hooks (used by bd init) to also check
for sync.branch configuration. This complements the earlier update
to examples/git-hooks/.

Changes:
- templates/hooks/pre-push: Skip uncommitted check when sync.branch set
- templates/hooks/pre-commit: Skip flush/staging when sync.branch set
- Bump version to 0.27.1 for all hooks
- Add sync.branch hooks change to --whats-new

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 10:52:07 -08:00
Steve Yegge 5c013ab072 bd sync: apply DB changes after import 2025-11-30 10:46:53 -08:00
Steve Yegge 685023766a Merge branch 'main' of github.com:steveyegge/beads 2025-11-30 10:46:48 -08:00
Steve Yegge 3bf25ca85f bd sync: 2025-11-30 10:46:41 2025-11-30 10:46:41 -08:00
Steve Yegge cfe7d14ac4 feat(hooks): make git hooks sync.branch aware (bd-8ib)
When sync.branch is configured, .beads changes are committed to a
separate branch via worktree rather than the current branch. Updated
both hooks to detect this configuration and skip the uncommitted
.beads check in that scenario.

Changes:
- pre-push: Skip uncommitted .beads check when sync.branch is set
- pre-commit: Skip flush and auto-staging when sync.branch is set
- Both: Use --json output for reliable config value detection
- Bump version to 0.22.2

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 10:46:27 -08:00
Steve Yegge 7c949cbf7c bd sync: 2025-11-30 10:43:01 2025-11-30 10:43:01 -08:00