Commit Graph

2084 Commits

Author SHA1 Message Date
Steve Yegge
fd8b987189 Merge branch 'pr-678' 2025-12-21 12:42:29 -08:00
Steve Yegge
f1e4c4f4a5 Merge branch 'pr-677' 2025-12-21 12:42:11 -08:00
Steve Yegge
2602a768ad bd sync: 2025-12-21 11:43:33 2025-12-21 11:43:33 -08:00
Steve Yegge
091cba87a5 bd sync: 2025-12-21 11:31:46 2025-12-21 11:31:54 -08:00
Steve Yegge
982a3e10e8 bd sync: 2025-12-21 11:31:09 2025-12-21 11:31:54 -08:00
Steve Yegge
98b5bb5388 bd sync: 2025-12-21 11:30:36 2025-12-21 11:31:54 -08:00
Steve Yegge
0ebc06b0e0 bd sync: 2025-12-21 11:18:33 2025-12-21 11:31:54 -08:00
Steve Yegge
feb1275469 bd sync: 2025-12-21 11:09:54 2025-12-21 11:09:54 -08:00
matt wilkie
03118e7226 feat(sync): add timeout message for long-running git operations (fixes #647)
When git push or other git operations hang waiting for credential/browser
auth, show a helpful message to the user after 5 seconds of inactivity
instead of appearing frozen.

Added:
- runCmdWithTimeoutMessage() in internal/syncbranch/worktree.go
- runGitCmdWithTimeoutMsg() in cmd/bd/sync.go
- Both functions print a message after timeout delay with advice
  to check for browser auth prompts

Fixes issue #647 (bd sync frozen waiting for browser auth)
2025-12-21 12:05:13 -07:00
Steve Yegge
132d6c396d bd sync: 2025-12-21 10:42:50 2025-12-21 10:42:50 -08:00
Steve Yegge
7e89aa536f bd sync: 2025-12-21 10:32:29 2025-12-21 10:36:56 -08:00
Steve Yegge
50167d0c96 bd sync: 2025-12-21 10:23:33 2025-12-21 10:36:56 -08:00
Steve Yegge
0992f22767 bd sync: 2025-12-21 10:13:15 2025-12-21 10:36:56 -08:00
matt wilkie
2de4d0facd fix(bd-68e4): make DBJSONLSync bidirectional - export DB when it has more issues
- Modified fix.DBJSONLSync() to detect which direction to sync:
  - If DB > JSONL: run 'bd export' to sync JSONL (DB has newer data)
  - If JSONL > DB: run 'bd sync --import-only' to import (JSONL is source of truth)
  - If equal but different timestamps: use file mtime to decide direction

- Updated CheckDatabaseJSONLSync() error messages to recommend correct fix direction:
  - Shows different guidance based on whether DB or JSONL has more issues

- Added helper functions:
  - countDatabaseIssues() to count issues in SQLite
  - countJSONLIssues() to count issues in JSONL (local, avoids circular import)

- Added tests for countJSONLIssues() with edge cases

Fixes issue where 'bd doctor --fix' would recommend 'bd sync --import-only'
when DB > JSONL, which would be a no-op since JSONL hasn't changed.
2025-12-21 11:22:37 -07:00
Steve Yegge
1c58aabaa3 bd sync: 2025-12-21 10:10:26 2025-12-21 10:10:26 -08:00
Steve Yegge
fa90c95475 bd sync: 2025-12-21 01:33:20 2025-12-21 01:33:20 -08:00
Steve Yegge
0618bebe01 bd sync: 2025-12-21 01:30:32 2025-12-21 01:30:40 -08:00
Steve Yegge
9336d2dd1a bd sync: 2025-12-21 01:20:06 2025-12-21 01:20:06 -08:00
Steve Yegge
88c1ad9fee bd sync: 2025-12-21 01:10:57 2025-12-21 01:10:57 -08:00
Steve Yegge
e94cea1c37 docs: fix bd mail → gt mail in CLAUDE.md
gt mail is the correct command for Gas Town mail routing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 00:20:44 -08:00
Steve Yegge
8e17dcff6d feat(mol): add bd mol run command for durable execution
bd mol run = bond + assign + pin:
- Bonds the molecule (creates issues from template)
- Assigns root to the caller
- Sets root status to in_progress
- Pins root issue for session recovery

After a crash or session reset, the pinned root ensures the agent
can resume from where it left off by checking 'bd ready'.

This is the Gas Town integration point that makes molecules immortal.

Closes: bd-icnf

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 00:07:19 -08:00
Steve Yegge
b950604e0a refactor(mol): remove molecule.go (superseded by mol.go)
The simple single-issue instantiation in molecule.go is superseded by
the full DAG-based mol commands. Use 'bd mol bond' for all molecule
instantiation - it handles both single-issue and multi-issue molecules.

Closes: bd-8b0x

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 00:04:25 -08:00
Steve Yegge
ca678ca5ba feat(mol): add bd mol commands, deprecate bd template
Adds the mol command group for molecule workflows:
- bd mol catalog - list available molecules
- bd mol show <id> - show molecule structure and variables
- bd mol bond <id> --var k=v - instantiate a molecule

Molecules are templates with workflow semantics - they are the
orchestration primitive for Gas Town. This unifies the template
system under the mol command.

The template commands are deprecated but still work:
- bd template list -> use bd mol catalog
- bd template show -> use bd mol show
- bd template instantiate -> use bd mol bond

Closes: bd-ffjt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 00:01:53 -08:00
Steve Yegge
ee255c215a bd sync: 2025-12-20 23:22:54 2025-12-20 23:22:54 -08:00
Steve Yegge
22f4e0d6fa bd sync: 2025-12-20 22:35:59 2025-12-20 22:35:59 -08:00
Steve Yegge
d2956739c8 bd sync: 2025-12-20 22:35:19 2025-12-20 22:35:26 -08:00
Steve Yegge
ecea63da75 bd sync: 2025-12-20 21:59:07 2025-12-20 21:59:07 -08:00
Steve Yegge
9768317eea bd sync: 2025-12-20 21:57:50 2025-12-20 21:58:59 -08:00
Steve Yegge
cad4f49f64 bd sync: 2025-12-20 21:56:38 2025-12-20 21:58:59 -08:00
Steve Yegge
2cb155eeba docs: add v0.32.0 changelog and info.go entries
Prepare for v0.32.0 release with:
- Removed bd mail commands (orchestration belongs elsewhere)
- Data model unchanged (type=message, Sender, etc.)
- Symlink fix (PR#665)
- Docs fix (GH#666)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 18:23:02 -08:00
Steve Yegge
1b2cd71c97 fix(docs): correct broken link to LABELS.md in examples
LABELS.md is in docs/, not root.

Fixes #666

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 18:11:16 -08:00
Steve Yegge
7ad2bbbcde Merge PR #665: fix(setup): preserve symlinks in atomicWriteFile
Add ResolveForWrite helper that resolves symlinks before writing, so
atomic writes go to the symlink target instead of replacing the symlink.

This prevents `bd setup claude` from overwriting nix/home-manager
managed ~/.claude/settings.json symlinks.

Closes #665

Co-authored-by: qmx <qmx@qmx.me>
2025-12-20 18:03:12 -08:00
Steve Yegge
4f504bdff8 fix(test): resolve target path in symlink test for macOS
On macOS, /var is a symlink to /private/var, so EvalSymlinks returns
the canonical path. The test needs to resolve the expected target path
before comparison.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 18:02:41 -08:00
Steve Yegge
4fa0866fcf refactor: remove bd mail commands - mail moves to Gas Town
Mail is orchestration, not data plane. The bd mail commands were just
sugar over bd create/list/show with type=message. Gas Town (gt) now
owns mail routing and delivery.

Removed:
- cmd/bd/mail.go - all mail subcommands (send, inbox, read, ack, reply)
- cmd/bd/mail_test.go - mail command tests
- docs/messaging.md - dedicated mail documentation
- EventMessage hook - no longer triggered

Kept (data plane):
- type=message as valid issue type
- Sender, Ephemeral fields on issues
- replies_to dependency type for threading

Coordination: gt-9xg implements native mail in Gas Town.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 17:56:46 -08:00
Steve Yegge
9d19115357 docs: add 0.31.0 changelog 2025-12-20 16:59:09 -08:00
Steve Yegge
8e8301a016 fix(doctor): update broken Claude plugin link (GH#623)
The bd doctor command was pointing to a non-existent README anchor
(#claude-code-plugin). Updated to point to docs/PLUGIN.md which
contains the actual plugin installation instructions.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 02:38:56 -08:00
Steve Yegge
6c060461cb feat(jsonl): add omitempty to reduce JSONL bloat (beads-399)
Add omitempty JSON tags to Issue struct fields (Description, Status,
Priority, IssueType) and SetDefaults method to apply proper defaults
when importing JSONL with omitted fields.

This reduces JSONL file size for minimal issues like notifications
by not exporting empty/default values.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 23:18:11 -08:00
Steve Yegge
2ea6083163 fix(info): add third change to satisfy TestVersionChangesCoverage
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 23:03:37 -08:00
Steve Yegge
1efa5043e7 chore: bump version to 0.30.7
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 22:57:45 -08:00
Steve Yegge
46488d4f96 Add 'molecule' as valid issue type
Molecules are composable workflow templates used by Gas Town (gt) for
defining multi-step processes like bootstrap, engineer-in-box, etc.

Changes:
- Add TypeMolecule constant to internal/types/types.go
- Add molecule to IsValid() switch case
- Add molecule and merge-request to validation/bead.go validTypes map
- Update help text in create.go, show.go, list.go
- Add test cases for molecule and merge-request types

Closes gt-qn4l

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 18:31:33 -08:00
Steve Yegge
6d931f9bd1 Setup emma as crew worker
- Update CLAUDE.md with crew worker identity and context
- Crew workers are persistent, user-managed (vs ephemeral polecats)
- Update mail commands to use beads-emma identity
- Sync beads database ordering
2025-12-19 12:48:52 -08:00
Steve Yegge
c78347c4c4 Merge polecat/Morsov: exclude pinned from bd ready 2025-12-19 01:28:26 -08:00
Steve Yegge
2ea1b74f43 Merge beads-sync into main 2025-12-18 18:58:35 -08:00
Steve Yegge
d2b9554651 bd sync: 2025-12-18 18:33:29 2025-12-18 18:33:29 -08:00
matt wilkie
fb16e504e6 Fix tests (bd-6ss and sub-issues) (#626)
Test coverage improvements for bd-6ss. Fixing failing test assumption in follow-up commit.
2025-12-18 18:23:30 -08:00
Steve Yegge
736389b6b7 bd sync: 2025-12-18 13:47:56 2025-12-18 13:47:56 -08:00
Steve Yegge
acb3bbf7b6 bd sync: 2025-12-18 11:47:46 2025-12-18 11:47:46 -08:00
Steve Yegge
8b581d6de3 bd sync: 2025-12-18 11:29:45 2025-12-18 11:29:45 -08:00
Steve Yegge
1951a2c5fe bd sync: 2025-12-18 11:28:36 2025-12-18 11:28:36 -08:00
Steve Yegge
5981e6e752 bd sync: 2025-12-18 11:13:50 2025-12-18 11:13:50 -08:00