Commit Graph

4312 Commits

Author SHA1 Message Date
Steve Yegge
2cf449ff5c bd sync: 2025-12-30 15:56:37 2025-12-30 15:56:37 -08:00
Steve Yegge
68283fa3cb bd sync: 2025-12-30 15:53:25 2025-12-30 15:53:25 -08:00
Steve Yegge
1cf687afaf bd sync: 2025-12-30 15:49:59 2025-12-30 15:49:59 -08:00
Steve Yegge
2cd2d4deb3 bd sync: 2025-12-30 15:49:30 2025-12-30 15:49:30 -08:00
Steve Yegge
0a741d800c bd sync: 2025-12-30 10:27:55 2025-12-30 10:27:55 -08:00
Steve Yegge
5783cec740 bd sync: 2025-12-30 10:20:45 2025-12-30 10:20:45 -08:00
Steve Yegge
0e0307ca49 bd sync: 2025-12-30 07:04:49 2025-12-30 07:04:50 -08:00
Steve Yegge
0337c519bb bd sync: 2025-12-29 21:16:03 2025-12-29 21:16:03 -08:00
Steve Yegge
f6325bee38 bd sync: 2025-12-29 21:06:16 2025-12-29 21:06:16 -08:00
Steve Yegge
369863d239 bd sync: 2025-12-29 21:04:53 2025-12-29 21:04:53 -08:00
Steve Yegge
86774569b0 bd sync: 2025-12-29 21:04:05 2025-12-29 21:04:05 -08:00
Steve Yegge
fcffc75bfc bd sync: 2025-12-29 20:58:33 2025-12-29 20:58:34 -08:00
Steve Yegge
285228e01d bd sync: 2025-12-29 18:48:59 2025-12-29 18:48:59 -08:00
Steve Yegge
e28eda8e1c bd sync: 2025-12-29 17:29:20 2025-12-29 17:29:20 -08:00
Steve Yegge
9f3feb3da8 bd sync: 2025-12-29 12:41:15 2025-12-29 12:41:15 -08:00
Steve Yegge
7d1ee6d3e9 feat: Add 'hooked' status for GUPP work assignment (bd-s00m)
Separates semantics of 'pinned' (identity records) from work-on-hook:
- 'pinned' = domain table / identity record (agents, roles) - non-blocking
- 'hooked' = work on agent's hook (GUPP-driven) - blocks dependents

Changes:
- Add StatusHooked constant to types.go
- Update all blocking queries to include 'hooked' status
- Add cyan styling for 'hooked' in UI output
- Create migration 032 to convert pinned work items to hooked

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 22:37:04 -08:00
Steve Yegge
4a6d942fad bd sync: 2025-12-28 22:36:53 2025-12-28 22:36:53 -08:00
Steve Yegge
8e746ed9ec bd sync: 2025-12-28 22:22:39 2025-12-28 22:22:39 -08:00
Steve Yegge
aa016c8802 bd sync: 2025-12-28 22:14:33 2025-12-28 22:14:51 -08:00
Steve Yegge
b3d6ef60bb feat: swarm commands improvements (bd-2ubv)
- Add findExistingSwarm helper and duplicate swarm check with --force flag
- Add bd swarm list command for discovering swarm molecules with progress stats
- Fix empty coordinator display in swarm create output
- Allow swarm status to accept swarm molecule ID (follows relates-to link)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 22:07:39 -08:00
Steve Yegge
5bd387c4bc bd sync: 2025-12-28 22:07:05 2025-12-28 22:07:05 -08:00
Steve Yegge
7a3498f881 refactor: extract shared getEpicChildren helper for swarm commands
- Add EpicChildren struct and getEpicChildren() helper function
- Define SwarmStore interface for dependency injection
- Refactor analyzeEpicForSwarm to use shared helper
- Refactor getSwarmStatus to use shared helper
- Eliminates duplicate code for fetching epic children and building
  dependency maps across both functions

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:44:06 -08:00
Steve Yegge
68ffda0fc0 bd sync: 2025-12-28 21:43:56 2025-12-28 21:43:56 -08:00
Steve Yegge
cb601d661e bd sync: 2025-12-28 21:38:58 2025-12-28 21:38:58 -08:00
Steve Yegge
a93736b8f6 bd sync: 2025-12-28 21:35:43 2025-12-28 21:35:43 -08:00
Steve Yegge
d5a87e839a docs: Replace Epic Planning with Ready Front model
The Ready Front model replaces temporal 'phase' thinking:
- Ready Front = issues with all deps satisfied (unblocked)
- Static: natural topology (sync points, bottlenecks)
- Dynamic: current wavefront of in-progress work

Key changes:
- Add cognitive trap warning (temporal language inverts deps)
- Graph Walk Pattern: walk backward from goal
- Requirement language: 'X needs Y' not 'X before Y'
- Validation with bd blocked
- Ready Fronts visualization
2025-12-28 21:35:30 -08:00
Steve Yegge
2213fc016d Add --short flag to bd show for compact output
Displays each issue on a single line with format:
<id> [<status>] P<priority> <type>: <title>

Example:
  bd show bd-nlzv --short
  bd-nlzv [open] P2 feature: bd show --short flag for compact output

Useful for quick status checks of multiple issues. (bd-nlzv)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:35:30 -08:00
Steve Yegge
2f6efffab3 bd sync: 2025-12-28 21:34:36 2025-12-28 21:35:30 -08:00
Steve Yegge
3fd4eccb78 perf: fix N+1 query in swarm status blocked check (bd-7p5l)
Build status map upfront from childIssues instead of calling
GetIssue for each dependency. Reduces queries from O(issues * deps)
to O(issues).

Also removes unused GetIssue from the interface.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:35:22 -08:00
Steve Yegge
67cf9dc302 feat: Add bd swarm create command (bd-fa1q)
Implements `bd swarm create <epic-id>` to create a swarm molecule
that orchestrates parallel work on an epic.

Features:
- Creates molecule with mol_type=swarm for discovery
- Links to epic via relates-to dependency
- Validates epic structure before creation
- Auto-wraps single issues in an epic when needed
- Optional --coordinator flag to specify coordinator agent
- Supports JSON output for machine consumption

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:34:24 -08:00
Steve Yegge
302964b0f6 bd sync: 2025-12-28 21:31:23 2025-12-28 21:31:23 -08:00
Steve Yegge
2b8d9bc751 bd sync: 2025-12-28 21:28:27 2025-12-28 21:28:27 -08:00
Steve Yegge
a1ac42aca9 feat: add bd swarm status command (bd-5x0j)
Show current swarm status computed from beads:
- Completed: closed issues with timestamps
- Active: in_progress issues with assignees
- Ready: open issues with all deps satisfied
- Blocked: open issues waiting on deps
- Progress percentage

State is COMPUTED from beads, not stored separately.
Supports --json for programmatic use.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:28:14 -08:00
Steve Yegge
7ff5481966 fix: resolve golangci-lint errors (errcheck, gosec, unparam)
- orphans.go: check fmt.Scanln return value
- edit.go: #nosec G204 for trusted $EDITOR execution
- sync_git.go: #nosec G204 for git commands with internal branch names
- worktree_cmd.go: #nosec G304/G306 for .gitignore file operations
- migrations: handle rows.Close() error
- doctor_pollution.go: mark unused path parameter

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 20:50:54 -08:00
Jordan Hubbard
713c569e6e test: add git helper and guard annotations 2025-12-28 20:48:37 -08:00
Steve Yegge
f3dcafca66 feat: Add mol_type schema field for molecule type classification (bd-oxgi)
Add mol_type field to beads for swarm coordination:
- Values: 'swarm' (multi-polecat), 'patrol' (recurring ops), 'work' (default)
- Nullable, defaults to empty string (treated as 'work')

Changes:
- Add mol_type column to SQLite schema and migration 031
- Add MolType type with IsValid() validation in types.go
- Update insertIssue/GetIssue to handle mol_type
- Add --mol-type flag to create command
- Add mol_type filtering to list and ready commands
- Update RPC protocol for daemon mode support
- Update test schema in migrations_test.go

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:52:51 -08:00
Steve Yegge
77ba8f3d10 feat: Add bd swarm validate command (bd-nkqx)
Adds validation of epic structure for swarm execution:
- Computes ready fronts (waves of parallel work)
- Detects structural issues (cycles, orphans, missing deps)
- Reports estimated worker-sessions and max parallelism
- Warns about potential dependency inversions
- Returns exit code for CI integration

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:35:28 -08:00
Steve Yegge
27101a4f57 bd sync: 2025-12-28 19:04:53 2025-12-28 19:04:53 -08:00
Steve Yegge
8ed12091ab bd sync: code review round 2 issues 2025-12-28 19:00:43 -08:00
Steve Yegge
36ae647599 bd sync: 2025-12-28 19:00:28 2025-12-28 19:00:28 -08:00
Steve Yegge
b5beedbeda bd sync: 2025-12-28 18:45:30 2025-12-28 18:45:30 -08:00
Steve Yegge
6c14fd2225 refactor: Split large cmd/bd files to meet 800-line limit (bd-xtf5)
Split 6 files exceeding 800 lines by extracting cohesive function groups:

- show.go (1592→578): extracted show_thread.go, close.go, edit.go, update.go
- doctor.go (1295→690): extracted doctor_fix.go, doctor_health.go, doctor_pollution.go
- sync.go (1201→749): extracted sync_git.go
- compact.go (1199→775): extracted compact_tombstone.go, compact_rpc.go
- linear.go (1190→641): extracted linear_sync.go, linear_conflict.go
- main.go (1148→800): extracted main_help.go, main_errors.go, main_daemon.go

All files now under 800-line acceptance criteria.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:43:09 -08:00
Steve Yegge
7ea7aee411 refactor: Split init.go from 1928 to 705 lines (bd-xtf5)
Extract init.go into multiple focused files:

- init_git_hooks.go: Git hooks installation and merge driver setup (~480 lines)
- init_stealth.go: Stealth mode and fork/exclude configuration (~310 lines)
- init_agent.go: AGENTS.md and Claude settings setup (~170 lines)
- init_templates.go: config.yaml and README.md templates (~180 lines)

This reduces init.go from 1928 lines to 705 lines, meeting the <800 line target.
Each extracted file handles a cohesive set of functionality.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:43:09 -08:00
Steve Yegge
f7dd2eaa8c bd sync: 2025-12-28 Close bd-9btu, bd-kkka 2025-12-28 18:43:09 -08:00
Steve Yegge
2960a46913 bd sync: 2025-12-28 Close bd-1tkd 2025-12-28 18:42:51 -08:00
Steve Yegge
d4c55639ea refactor: Remove deprecated fetchAndRebaseInWorktree (bd-kkka)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:42:51 -08:00
Steve Yegge
1cdece372a bd sync: 2025-12-28 16:41:41 2025-12-28 16:41:49 -08:00
Steve Yegge
715631bcaa bd sync: 2025-12-28 16:41:33 2025-12-28 16:41:49 -08:00
Steve Yegge
9dda75ef15 docs: Document deprecation timeline and add removal warnings (bd-pndo)
- Add Deprecated section to CHANGELOG.md listing all deprecated commands
- Set removal target: v1.0.0 for all deprecated commands
- Add '(will be removed in v1.0.0)' to all deprecation messages
- Add proper Deprecated field to admin_aliases.go (cleanup, compact, reset)
- Remove manual warning prints from admin aliases (Cobra handles it)

Deprecated commands documented:
- bd relate/unrelate → bd dep relate/unrelate
- bd daemons → bd daemon <subcommand>
- bd cleanup/compact/reset → bd admin <command>
- bd comment → bd comments add
- bd template* → bd mol/formula commands
- bd detect-pollution → bd doctor --check=pollution
- bd migrate-* → bd migrate <subcommand>

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:40:43 -08:00
Steve Yegge
2e7562e77b bd sync: 2025-12-28 Close bd-5l59 2025-12-28 16:40:42 -08:00