Commit Graph

3876 Commits

Author SHA1 Message Date
Steve Yegge a10f580bbe bd sync: 2025-12-23 22:29:35 2025-12-23 22:29:35 -08:00
Steve Yegge a8b0163bca bd sync: 2025-12-23 21:51:36 2025-12-23 21:51:36 -08:00
Steve Yegge 93bbad4197 bd sync: 2025-12-23 21:44:33 2025-12-23 21:46:54 -08:00
Steve Yegge 2d592a8983 Merge polecat/testcat - tests for delete wrappers (bd-d28c) 2025-12-23 21:43:08 -08:00
Steve Yegge 9ac2b64038 bd sync: 2025-12-23 21:36:59 2025-12-23 21:36:59 -08:00
Steve Yegge 2e25dbed27 bd sync: 2025-12-23 21:34:40 2025-12-23 21:34:40 -08:00
Steve Yegge cd87e54176 bd sync: Close bd-d28c (tests added with 100% coverage)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:32:46 -08:00
Steve Yegge 7d3447b971 Add tests for createTombstone and deleteIssue wrappers (bd-d28c)
Test scenarios cover:
- Successful tombstone creation with actor/reason tracking
- Original type preservation in tombstone
- Audit trail recording
- Issue deletion with dependency cleanup
- Error handling for non-existent issues
- Unsupported storage backend fallback

Both functions achieve 100% test coverage.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:32:08 -08:00
Steve Yegge 8f366788b7 bd sync: 2025-12-23 21:22:55 2025-12-23 21:22:55 -08:00
Steve Yegge f11663cea9 bd sync: 2025-12-23 21:19:01 2025-12-23 21:19:01 -08:00
Steve Yegge cf9e5a597b bd sync: 2025-12-23 20:50:50 2025-12-23 20:50:50 -08:00
Steve Yegge 9c8761abc9 bd sync: 2025-12-23 20:45:19 2025-12-23 20:45:19 -08:00
Steve Yegge 25fa0e5c25 bd sync: 2025-12-23 20:34:32 2025-12-23 20:34:32 -08:00
Steve Yegge 39ce73e3cf bd sync: 2025-12-23 20:34:11 2025-12-23 20:34:11 -08:00
Steve Yegge cf41d8a040 bd sync: 2025-12-23 20:33:50 2025-12-23 20:33:50 -08:00
Steve Yegge 302b4e4d52 bd sync: 2025-12-23 20:33:29 2025-12-23 20:33:29 -08:00
Steve Yegge 119df253c4 bd sync: 2025-12-23 20:33:08 2025-12-23 20:33:08 -08:00
Steve Yegge 33064e02bd bd sync: 2025-12-23 20:32:47 2025-12-23 20:32:47 -08:00
Steve Yegge 75da35a31a bd sync: 2025-12-23 20:32:16 2025-12-23 20:32:16 -08:00
Steve Yegge c500e00c9e bd sync: 2025-12-23 20:31:54 2025-12-23 20:31:54 -08:00
Steve Yegge 2bb7128fdb bd sync: 2025-12-23 20:31:33 2025-12-23 20:31:33 -08:00
Steve Yegge 8969574b32 bd sync: 2025-12-23 20:31:12 2025-12-23 20:31:12 -08:00
Steve Yegge 742ba75d18 bd sync: 2025-12-23 20:30:51 2025-12-23 20:30:51 -08:00
Steve Yegge 1db506fc51 bd sync: 2025-12-23 20:30:29 2025-12-23 20:30:29 -08:00
Steve Yegge c4473ea757 bd sync: 2025-12-23 19:12:19 2025-12-23 19:12:29 -08:00
Steve Yegge f777093386 feat(rpc): add GetMoleculeProgress endpoint (bd-0oqz)
New RPC endpoint to get detailed progress for a molecule (parent issue
with child steps). Returns moleculeID, title, assignee, and list of
steps with their status (done/current/ready/blocked) and timestamps.

Used when user expands a worker in the activity feed TUI.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:27:35 -08:00
Steve Yegge b889aa6edb bd sync: 2025-12-23 18:16:31 2025-12-23 18:16:31 -08:00
Steve Yegge 3a82ce2929 feat(rpc): add GetWorkerStatus RPC endpoint (bd-l13p)
New RPC endpoint to get all workers and their current molecule/step in one call.
Returns: assignee, moleculeID, moleculeTitle, currentStep, totalSteps, stepTitle,
lastActivity, status. Enables activity feed TUI to show worker state without
multiple round trips.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:12:58 -08:00
Steve Yegge 0d66aed954 feat(types): add omitempty to JSONL fields for smaller output
Add omitempty json tag to:
- Issue.Description: often empty for quick tasks
- Dependency.CreatedBy: often empty

This reduces JSONL file size when these fields are empty, leading to
faster syncs and smaller repository size.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:11:06 -08:00
Steve Yegge 3405f0c684 feat(rpc): enrich MutationEvent with Title and Assignee fields
Add Title and Assignee fields to MutationEvent struct so activity feeds
can display meaningful context without extra lookups. Updated emitMutation
signature to accept these values and modified all callers:

- Create: passes issue.Title and issue.Assignee directly
- Update/Close: moved emitMutation after GetIssue to access enriched data
- Delete: uses existing issue lookup before deletion
- Dep/Label/Comment ops: passes empty strings (would require extra lookup)

Fixes bd-gqxd

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:09:56 -08:00
Steve Yegge e0f1d43c2c fix: write startup config keys to config.yaml instead of SQLite (GH#536)
`bd config set no-db true` now correctly writes to config.yaml instead of
SQLite. Previously, startup flags like no-db, no-daemon, no-auto-flush were
stored in SQLite but read from config.yaml at startup - making the command
appear to work while having no effect.

This adds:
- yaml_config.go: Defines yaml-only keys and provides SetYamlConfig/GetYamlConfig
- Updated config set/get commands to route yaml-only keys appropriately
- Comprehensive tests for yaml config handling

Startup flags affected: no-db, no-daemon, no-auto-flush, no-auto-import,
json, auto-start-daemon, flush-debounce, lock-timeout, git.*, sync.*, routing.*

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:03:39 -08:00
Steve Yegge d33bd822ca bd sync: 2025-12-23 17:03:27 2025-12-23 17:03:27 -08:00
Steve Yegge 2ac190f26d bd mol run: add cross-database spawning support (gt-jsup)
Add --template-db flag and auto-discovery for wisp molecule spawning.
When --db contains .beads-wisp, auto-discover the main database to read
templates from while writing spawned instances to wisp storage.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:39:18 -08:00
Steve Yegge c2d6b130d9 bd sync: 2025-12-23 16:32:42 2025-12-23 16:32:42 -08:00
Steve Yegge 37042a82ce bd sync: 2025-12-23 16:32:21 2025-12-23 16:32:21 -08:00
Steve Yegge be06a68dea bd sync: 2025-12-23 16:32:00 2025-12-23 16:32:00 -08:00
Steve Yegge 4bcf2a9c22 bd sync: 2025-12-23 16:29:02 2025-12-23 16:29:15 -08:00
Steve Yegge 4c9eb700cc bd sync: 2025-12-23 15:25:28 2025-12-23 16:29:15 -08:00
Steve Yegge a23271d497 bd sync: 2025-12-23 15:15:28 2025-12-23 16:29:15 -08:00
Steve Yegge 3d924f88f3 fix: handle multi-hyphen prefixes correctly (GH#422)
The prefix mismatch detection was using ExtractIssuePrefix() which
tries to guess the prefix by analyzing suffix patterns. This failed
for multi-hyphen prefixes like "asianops-audit-" when issue IDs had
word-like suffixes (e.g., "asianops-audit-test") - the heuristic
would fall back to the first hyphen and report "asianops-" as the
prefix.

Fixed by checking directly if the issue ID starts with the configured
prefix using strings.HasPrefix(). This is more reliable than guessing
since we know the expected prefix from the database config.

Added test case TestImportMultiHyphenPrefix to prevent regression.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:20:04 -08:00
Steve Yegge ee3d070d08 fix(mol): respect --pour flag in bond operations (bd-l7y3)
bondProtoMol was hardcoding Wisp=true, ignoring --pour flag.
Now passes pour parameter through the call chain so --pour
correctly creates persistent (non-wisp) issues.
2025-12-23 15:25:13 -08:00
Steve Yegge 2f049dfe6b docs: add temporal trap warning to onboard section
Helps agents avoid the common mistake of inverting dependency
direction when using temporal language like 'Phase 1 blocks Phase 2'.
2025-12-23 15:10:25 -08:00
Steve Yegge fe2ac97597 fix: Exclude workflow types from bd ready by default (gt-7xtn)
merge-request, gate, molecule, and message types are internal workflow
items processed by Refinery/Deacon, not work for polecats to claim.
These are now excluded from bd ready unless explicitly requested via
--type flag.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:05:51 -08:00
Steve Yegge 649a48d64b bd sync: 2025-12-23 14:41:28 2025-12-23 14:41:28 -08:00
Steve Yegge f4acf5c662 bd sync: 2025-12-23 14:18:09 2025-12-23 14:39:07 -08:00
Steve Yegge 7b671662aa bd sync: 2025-12-23 13:49:07 2025-12-23 14:39:07 -08:00
Steve Yegge 37ec967619 fix(stealth): use .git/info/exclude instead of global gitignore (GH#704)
The --stealth flag was writing absolute paths to global gitignore, but
git pattern matching does not support absolute paths in gitignore files.
Patterns are interpreted relative to the gitignore location, making
absolute paths like /home/user/project/.beads/ never match.

Fix: Use .git/info/exclude which is the git-recommended location for
user-specific, per-repository ignores. Patterns here are relative to
repo root, so .beads/ works correctly.

Benefits:
- Patterns actually work (fixes the bug)
- Per-repo isolation (stealth in one repo does not affect others)
- No global gitignore pollution
- Follows git best practices for user-local ignores

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 14:18:02 -08:00
intentsolutions.io ac1f5807a8 feat: enhance natural language activation + Anthropic 2025 compliance (#718)
Restructures SKILL.md for better Claude Code skill compliance:

- Adds trigger phrases to description for better skill activation
- Adds allowed-tools, version, author, license to frontmatter
- Reorganizes content into workflow-based structure (Session Start, Task Creation, etc.)
- Adds consolidated Command Reference Table for faster intent → command mapping
- Adds dedicated Error Handling section with 7 common failures and solutions
- Adds dedicated Examples section with complete workflow examples

The workflow-based organization and command table are material improvements for Claude's ability to route user requests to the correct bd commands.

PR #718 by @jeremylongshore
2025-12-23 14:10:10 -08:00
Steve Yegge 0d31e4209d fix: preserve pinned field during JSONL import (bd-phtv)
Fixed two code paths where pinned=false from JSONL would overwrite
existing pinned=true in database:
- importer.go: Only update pinned if explicitly true in JSONL
- multirepo.go: Use COALESCE to preserve existing pinned value

Added tests for pinned field preservation.

Note: Bug may have additional code path - investigation ongoing.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 13:49:22 -08:00
Steve Yegge f503a5ae43 test: improve syncbranch coverage from 27% to 67% (bd-io8c)
Add comprehensive tests for internal/syncbranch package:

syncbranch.go:
- TestGetFromYAML: env var and default behavior
- TestIsConfigured: env var presence detection
- TestIsConfiguredWithDB: database and env var checks
- TestGetConfigFromDB: direct DB value retrieval

worktree.go helper functions:
- TestIsNonFastForwardError: git push error detection
- TestHasChangesInWorktree: dirty state detection
- TestCommitInWorktree: worktree commit flow
- TestCopyJSONLToMainRepo: file sync between worktrees
- TestGetRemoteForBranch: remote name resolution
- TestGetRepoRoot: repo root detection including worktrees
- TestHasGitRemote: remote existence check
- TestGetCurrentBranch: branch name detection
- TestFormatVanishedIssues: forensic logging

worktree.go main functions:
- TestCommitToSyncBranch: basic commit flow
- TestPullFromSyncBranch: pull and fast-forward scenarios
- TestResetToRemote: remote reset error handling
- TestPushSyncBranch: push with worktree recreation
- TestPreemptiveFetchAndFastForward: pre-fetch behavior
- TestFetchAndRebaseInWorktree: rebase error handling
- TestRunCmdWithTimeoutMessage: command execution

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 13:48:40 -08:00