Commit Graph

5450 Commits

Author SHA1 Message Date
beads/crew/grip
e2121a2e07 fix(refile): address code review feedback
- Warn if source issue is already closed
- Copy all issue fields (SourceRepo, Ephemeral, MolType, RoleType, Rig)
- Log warnings on label copy failures instead of silently ignoring
- Schedule auto-flush when source is local store
- Remove stale comment

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 13:01:20 -08:00
beads/crew/wolf
54d15252fa Add BEADS_NO_AUTO_STAGE opt-out for pre-commit auto-staging (GH#826)
Users with conflicting git hooks (e.g., hooks that read the staging
area like GGA) can now set BEADS_NO_AUTO_STAGE=1 to disable auto-staging
and get check-and-block behavior instead.

Default behavior unchanged - auto-staging still works for most users.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 12:58:54 -08:00
gastown/crew/joe
e53ef575b3 bd sync: 2025-12-31 12:57:57 2025-12-31 12:57:57 -08:00
gastown/crew/joe
b15b9ba973 bd sync: 2025-12-31 12:51:11 2025-12-31 12:51:11 -08:00
beads/crew/fang
0a96b10bba feat: add bd mol progress command for efficient molecule monitoring (bd-8xnf)
Adds a new `bd mol progress` command that shows molecule progress using
indexed queries instead of loading all steps into memory. This makes it
suitable for mega-molecules with millions of steps.

Features:
- Efficient SQL-based counting via idx_dependencies_depends_on_type index
- Progress display: completed / total (percentage)
- Current step identification
- Rate calculation from closure timestamps
- ETA estimation
- JSON output support

New storage interface method: GetMoleculeProgress(ctx, moleculeID)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 12:35:41 -08:00
mayor
585d0d607f bd sync: 2025-12-31 12:35:04 2025-12-31 12:35:04 -08:00
mayor
c493ed0ab7 bd sync: 2025-12-31 12:35:01 2025-12-31 12:35:01 -08:00
beads/crew/grip
297b3af233 beads sync: close bd-1eak 2025-12-31 12:34:57 -08:00
beads/crew/grip
3593ba8d66 feat: add bd refile command to move issues between rigs (bd-1eak)
Implements `bd refile <source-id> <target-rig>` which:
- Gets source issue via routing
- Creates new issue in target rig with same content
- Closes source with "Refiled to <new-id>"
- Appends "(Refiled from <old-id>)" to description

Target rig accepts rig names (beads), prefixes (bd-), or prefix shorthand (bd).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 12:34:18 -08:00
mayor
18fbab6a38 bd sync: conflict resolution
Executed-By: mayor
Role: mayor
2025-12-31 12:33:42 -08:00
beads/crew/emma
3108000f72 fix: add text reference updates to deleteBatchFallback
Code review found that deleteBatchFallback was missing the text
reference update step (replacing "issue-id" with "[deleted:issue-id]"
in connected issues). This aligns the fallback path with the SQLite
batch delete behavior.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 12:24:17 -08:00
beads/crew/emma
b161e22144 fix: support delete in --no-db mode (GH#822)
Add CreateTombstone() to MemoryStorage and deleteBatchFallback() to
handle deletion when SQLite is not available. This fixes the error
"tombstone operation not supported by this storage backend" when
using bd delete with --no-db flag.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 11:45:52 -08:00
beads/crew/fang
ee51298fd5 feat: add Obsidian Tasks markdown export format (GH#819)
Merge PR #819 from justbry with improvements:
- Add --format obsidian option to bd export
- Generate Obsidian Tasks-compatible markdown
- Default output to ai_docs/changes-log.md
- Map status to checkboxes, priority to emoji, type to tags
- Support parent-child hierarchy with indentation
- Use official Obsidian Tasks format (🆔,  emojis)

Improvement over PR: replaced O(n²) bubble sort with slices.SortFunc
for date ordering.

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

Co-Authored-By: justbry <justbu42@proton.me>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 11:39:17 -08:00
Ezo Saleh
8ab9b815ba fix(jira-import): handle Jira API v3 ADF format and explicit field selection (#825)
Two fixes for real-world Jira Cloud usage:

1. Add fields=*all to API request - v3 search/jql endpoint returns
   only issue IDs by default, causing empty title/description imports

2. Add adf_to_text() converter for Atlassian Document Format - API v3
   returns rich text fields as ADF JSON instead of plain text/HTML

Also documented:
- Silent auth failure gotcha (200 with empty results vs 401)
- ADF format explanation with conversion examples
2025-12-31 11:37:51 -08:00
gastown/crew/max
18d4e63948 bd sync: 2025-12-31 11:37:03 2025-12-31 11:37:03 -08:00
beads/crew/emma
6893eb6080 feat: add negation support for step conditions (!{{var}})
Adds "!{{var}}" syntax for negated truthy checks in Step.Condition.
Useful for "skip this step if feature is enabled" patterns.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 00:37:59 -08:00
beads/crew/emma
ee34a74e90 feat: implement Step.Condition evaluation in bd cook (bd-7zka.1)
Add compile-time step filtering based on formula variables:
- New EvaluateStepCondition function for {{var}} truthy and equality checks
- FilterStepsByCondition to exclude steps based on conditions
- Integration into pour, wisp, and mol bond commands
- Supports: {{var}}, {{var}} == value, {{var}} != value

Steps with conditions that evaluate to false are excluded from the
cooked formula, along with their children.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 00:33:11 -08:00
beads/crew/dave
82611834df feat: add version sync check to bd preflight --check (bd-lfak.5)
- Implement runVersionSyncCheck() to compare version.go and default.nix
- Reports version mismatch as hard failure
- Gracefully skips if default.nix is missing
- Fix version mismatch: update default.nix from 0.37.0 to 0.42.0

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
2025-12-31 00:08:40 -08:00
beads/crew/dave
6298359b60 feat: add nix-hash staleness detection to bd preflight --check (bd-lfak.4)
- Add Warning field to CheckResult for soft failures
- Implement runNixHashCheck() that detects go.sum changes
- Warnings (⚠) shown separately from failures (✗)
- Warnings don't fail the overall preflight result
- Summary shows warning count separately
- Add test for warning state

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
2025-12-31 00:05:53 -08:00
beads/crew/dave
1b432ad9b6 feat: add lint check to bd preflight --check (bd-lfak.3)
- Add Skipped field to CheckResult for graceful handling of missing tools
- Implement runLintCheck() that runs golangci-lint run ./...
- Skip lint check gracefully if golangci-lint not in PATH
- Update summary to show skipped count separately
- Add test for skipped state

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
2025-12-31 00:02:59 -08:00
beads/crew/dave
64c65974f0 fix: align preflight tests with implementation (bd-lfak.2)
Fix test file to match the actual preflight.go implementation:
- Remove capitalizeFirst test (function doesn't exist)
- Rename PreflightResults -> PreflightResult
- Update truncation test to use actual truncateOutput function
- Update test data to match current Name format

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
2025-12-30 23:32:57 -08:00
beads/polecats/basalt
8dcfdda186 feat: implement bd preflight --check flag with test runner (bd-lfak.2)
- Add CheckResult and PreflightResults structs for check outcomes
- Implement runTestCheck() to execute go test -short ./...
- Wire up --check flag to actually run tests instead of placeholder
- Add ✓/✗ output formatting with command and truncated output
- Support --json flag for programmatic consumption
- Exit with non-zero code when tests fail
- Add tests for new preflight functionality

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:22:15 -08:00
Steve Yegge
39ab273773 bd sync: 2025-12-30 22:21:43 2025-12-30 22:21:43 -08:00
beads/crew/emma
140c5fd309 chore: reset formula version to 1 2025-12-30 22:21:02 -08:00
Steve Yegge
b992a428dc bd sync: 2025-12-30 22:17:11 2025-12-30 22:17:11 -08:00
Steve Yegge
6b874c8416 bd sync: 2025-12-30 22:15:38 2025-12-30 22:15:38 -08:00
beads/crew/emma
b11d9b247b docs: improve beads-release formula with lessons learned
Add robustness improvements based on v0.42.0 release experience:

- Add preflight-sync step to catch beads issues early
- Split local-install into install + verify-local-install gate
- Add dev build instructions (go build + cp to ~/.local/bin)
- Improve daemon restart with version verification
- Add post-release-sync step for clean state
- Add verification checklist to release-complete step

Formula version bumped to 2.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:11:43 -08:00
Steve Yegge
08637989f6 bd sync: 2025-12-30 22:09:05 2025-12-30 22:09:05 -08:00
beads/polecats/jade
44853d1690 fix: bd cook now looks up formula names from registry (bd-hp8g)
bd cook previously treated its argument as a file path only. Now it first
tries to load by name from the formula registry (.beads/formulas/), and
only falls back to parsing as a file path if that fails.

This enables commands like `bd cook beads-release` to work without
specifying the full path to the formula file.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:08:06 -08:00
Steve Yegge
338bb79833 bd sync: 2025-12-30 22:07:33 2025-12-30 22:07:33 -08:00
beads/crew/emma
23be8684bd bd sync: 2025-12-30 22:01:30 2025-12-30 22:01:30 -08:00
beads/crew/fang
da7a42c945 bd sync: 2025-12-30 21:22:13 2025-12-30 21:22:19 -08:00
mayor
fb3f5860cf bd sync: 2025-12-30 21:22:02 2025-12-30 21:22:19 -08:00
beads/crew/fang
1ec6df9eb5 fix: emit issue title with dep/label/comment mutation events (bd-sco6)
Added lookupIssueMeta helper to fetch title and assignee before emitting
mutation events. This makes bd activity and gt feed show informative entries
like "gt-xxx updated · Title..." instead of just "gt-xxx updated".

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 21:22:06 -08:00
beads/crew/emma
4c063d9783 chore: bump version to 0.42.0 2025-12-30 21:21:46 -08:00
beads/crew/emma
9800302033 docs: add v0.42.0 changelog and whats-new entries 2025-12-30 21:21:46 -08:00
mayor
c67dd310a2 bd sync: 2025-12-30 21:21:09 2025-12-30 21:21:09 -08:00
Steve Yegge
6c02aa3635 bd sync: 2025-12-30 21:05:34 2025-12-30 21:06:05 -08:00
Steve Yegge
23dccff03a fix: bypass external direct-commit when sync.branch is configured (bd-n663)
When .beads/redirect points to another location that crosses directory
boundaries, isExternalBeadsDir() can return true even when both paths
are in the same git repo. Previously, this would trigger the direct
commit mode, bypassing the configured sync.branch workflow.

Now we check hasSyncBranchConfig before entering the external path.
When sync.branch is configured, we skip direct-commit mode and use
the sync.branch worktree workflow instead, which properly handles
copying JSONL files regardless of where the source .beads lives.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 21:05:27 -08:00
beads/crew/fang
f77b290d43 fix: git hook chaining now works correctly (GH#816)
Two fixes:
1. `bd init` chaining was broken - the code referenced `.old` hooks but
   never actually renamed the existing hooks. Added the missing os.Rename().

2. `bd hooks install` now supports --chain flag to chain with existing hooks
   (e.g., pre-commit framework). When used, existing hooks are renamed to
   .old and bd hooks run will call them before the bd logic.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 20:40:09 -08:00
beads/crew/emma
9bfbdc400a bd sync: add bd-n663 2025-12-30 19:44:05 -08:00
Steve Yegge
310d374264 fix: prevent .beads/redirect from being committed (GH#814)
- Add redirect to GitignoreTemplate with explanatory comment
- Add redirect to requiredPatterns for outdated gitignore detection
- Add CheckRedirectNotTracked() to detect already-tracked redirect files
- Add FixRedirectTracking() to untrack via git rm --cached
- Register check in bd doctor under Git Integration category
- Add 6 tests for the new functionality

The redirect file contains a relative path that only works in the
original worktree. When committed, it causes warnings in other clones:
"Warning: redirect target does not exist"

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 18:29:03 -08:00
Steve Yegge
584608a14e feat: add llms.txt standard support for AI agent discoverability (#784)
Cherry-picked website/, scripts/generate-llms-full.sh, and deploy-docs.yml
from joyshmitz's PR. Fixed workflow to trigger on main branch instead of
docs/docusaurus-site.

Features:
- Docusaurus documentation site with llms.txt support
- Environment-variable driven config (defaults to steveyegge org)
- Automated llms-full.txt generation from docs
- GitHub Pages deployment workflow

Co-authored-by: joyshmitz <joyshmitz@users.noreply.github.com>

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
2025-12-30 18:27:50 -08:00
Steve Yegge
2e55f2838a fix: show "No changes to commit" when sync-branch worktree has no changes
Follow-up to #812 fix. When useSyncBranch is true, we always call
CommitToSyncBranch (bypassing gitHasBeadsChanges). If the worktree
has no actual changes, we now show "→ No changes to commit" for
consistent UX with the non-sync-branch code path.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 18:20:33 -08:00
Steve Yegge
202a617bb5 test: add coverage for GH#807 sync.branch main/master rejection
- Add TestSet cases for main/master rejection in syncbranch_test.go
- Add TestInitWithSyncBranch to verify --branch flag works
- Add TestInitWithoutBranchFlag to verify no auto-detection (root cause)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 18:19:53 -08:00
Steve Yegge
5d79ddf642 bd sync: 2025-12-30 18:16:19 2025-12-30 18:16:19 -08:00
Steve Yegge
787dbd06f9 bd sync: 2025-12-30 18:15:54 2025-12-30 18:15:54 -08:00
Steve Yegge
a190381de9 Exclude agent type from bd ready by default
Agent beads are identity/state tracking beads for agents, not actionable work items.

Cherry-picked from fix/actor-on-status-events

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 18:15:30 -08:00
Steve Yegge
430c6bba9b Merge remote-tracking branch 'origin/fix/actor-on-status-events'
# Conflicts:
#	.beads/issues.jsonl
2025-12-30 18:14:27 -08:00
Steve Yegge
9158c23ec8 Add bd preflight command with static checklist (Phase 1)
Scaffolds bd preflight for PR readiness checks. Currently prints a
static checklist of common pre-PR validation items:
- Tests pass
- Lint passes
- No beads pollution
- Nix hash current
- Version sync

--check and --fix flags are documented but not yet implemented
(see bd-lfak.2 through bd-lfak.5 for roadmap).

(bd-lfak.1)

Cherry-picked from polecat/amber-1767146829144

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 18:13:57 -08:00