Commit Graph

1754 Commits

Author SHA1 Message Date
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
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
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
7c949cbf7c bd sync: 2025-11-30 10:43:01 2025-11-30 10:43:01 -08:00
Steve Yegge
a0c5a90926 Merge remote-tracking branch 'origin/main' 2025-11-30 10:43:00 -08:00
Steve Yegge
6da8763100 feat(sync): use worktree for sync.branch commits (bd-e3w)
When sync.branch is configured, bd sync now commits beads changes
to that branch via git worktree, keeping the user's current branch
(e.g., main) clean of beads sync commits.

Changes:
- Add internal/syncbranch/worktree.go with CommitToSyncBranch and
  PullFromSyncBranch functions for worktree-based operations
- Modify sync.go to check sync.branch config and use worktree
  functions when configured
- Skip pre-commit hooks in worktree commits (--no-verify) since
  bd's pre-commit hook would fail in worktree context
- Re-export after import also uses worktree when sync.branch set

This enables the orchestrator workflow where multiple workers stay
on main but all beads commits flow to a dedicated beads-sync branch.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:42:26 -08:00
Steve Yegge
0f57d415f3 bd sync: apply DB changes after import 2025-11-30 00:42:26 -08:00
Steve Yegge
94aa8c0638 bd sync: 2025-11-30 00:39:20 2025-11-30 00:39:20 -08:00
Steve Yegge
64771a28d2 feat(ready): add --unassigned filter for bd ready
Add -u/--unassigned flag to bd ready command to show only issues
with no assignee. This supports the SCAVENGE protocol where polecats
query the 'Salvage Yard' for unassigned ready work.

Changes:
- Add NoAssignee field to WorkFilter struct
- Update SQLite GetReadyWork to filter by empty/null assignee
- Add --unassigned/-u flag to ready command
- Update RPC protocol and daemon handler
- Add test for NoAssignee filter functionality

Fixes: gt-3rp

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:38:57 -08:00
Steve Yegge
19eec843d9 bd sync: 2025-11-30 00:37:21 2025-11-30 00:37:21 -08:00
Steve Yegge
53342732b5 feat: add --unassigned flag to bd ready command
Adds the ability to filter ready work for issues with no assignee,
which is useful for the SCAVENGE protocol in Gas Town where polecats
need to query the "Salvage Yard" for unclaimed work.

Changes:
- Add Unassigned bool field to types.WorkFilter
- Add --unassigned/-u flag to bd ready command
- Update SQL query in GetReadyWork to filter for NULL/empty assignee
- Add Unassigned field to RPC ReadyArgs for daemon support
- Add tests for the new functionality

Closes: gt-3rp

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:37:12 -08:00
Steve Yegge
08d2a58302 bd sync: 2025-11-30 00:33:33 2025-11-30 00:33:33 -08:00
Steve Yegge
c06b387fa1 bd sync: 2025-11-30 00:31:51 2025-11-30 00:31:51 -08:00
Steve Yegge
494146d4e3 bd sync: 2025-11-30 00:26:55 2025-11-30 00:26:55 -08:00
Steve Yegge
1131160d53 bd sync: 2025-11-30 00:24:24 2025-11-30 00:24:24 -08:00
Steve Yegge
133503c2b0 bd sync: 2025-11-29 23:31:21 2025-11-29 23:31:21 -08:00
Steve Yegge
f6f47bc4b2 bd sync: 2025-11-29 23:23:01 2025-11-29 23:23:01 -08:00
Steve Yegge
80ec809473 feat: configure sync.remote for contributor fork workflows
When bd init --contributor detects a fork setup (upstream remote exists),
it now configures sync.remote = upstream. This ensures bd sync pulls
beads from the source repo (upstream/main) rather than the fork's
potentially outdated origin/main.

Changes:
- Add sync.remote config in contributor wizard when fork detected
- Modify doSyncFromMain() to use configured sync.remote
- Add getDefaultBranchForRemote() to support any remote name
- Verify configured remote exists before fetching

Fixes bd-bx9

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 23:22:52 -08:00
Steve Yegge
099e4f5fc3 bd sync: 2025-11-29 23:20:04 2025-11-29 23:20:04 -08:00
Steve Yegge
0b13a0df3c fix: support git worktrees in hooks installation
Use `git rev-parse --git-dir` instead of hardcoded `.git` path to find
the actual git directory. In worktrees, `.git` is a file containing a
gitdir pointer, not a directory.

Changes:
- Add getGitDir() helper in hooks.go
- Update installHooks(), uninstallHooks(), CheckGitHooks() to use it
- Update hooksInstalled(), detectExistingHooks(), installGitHooks() in init.go
- Update checkHooksQuick() in doctor.go
- Update GitHooks() in doctor/fix/hooks.go
- Update tests to use real git repos via `git init`

Fixes bd-63l

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 23:19:57 -08:00
Steve Yegge
b4f69eb6f5 bd sync: 2025-11-29 23:07:42 2025-11-29 23:07:42 -08:00
Steve Yegge
7858cf899f Merge fix-ci: CI fixes and lint suppressions 2025-11-29 23:07:32 -08:00