Commit Graph

3377 Commits

Author SHA1 Message Date
Steve Yegge
488986c729 chore: Bump version to 0.30.3
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 19:16:12 -08:00
Steve Yegge
5869adadf2 fix: Remove unsafe ClearDirtyIssues() method (bd-b6xo)
Remove ClearDirtyIssues() which had a race condition that could lose
dirty issues if export failed partway through. All callers now use
ClearDirtyIssuesByID() which only clears specific exported issues.

- Remove from Storage interface
- Remove from SQLite and Memory implementations
- Update 6 test call sites to use ClearDirtyIssuesByID()

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 19:10:13 -08:00
Steve Yegge
a7bfb3a6cf feat: Add dependency direction guidance to onboard
Adds "Dependencies: Think Needs, Not Before" section with the
WRONG/RIGHT example pair to help agents avoid the temporal
language trap that inverts dependency direction.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 18:46:46 -08:00
Steve Yegge
125cfafe7f feat: Add self-contained issue writing guidance to onboard
Adds a "Writing Self-Contained Issues" section to the onboarding output
that instructs AI agents to create fully context-independent issues.
Includes required elements (summary, files, steps, examples) and shows
good vs bad examples.

Closes #618

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 18:34:23 -08:00
Steve Yegge
f270d90f12 fix: Resolve 3 P1 bugs and add --body-file flag to bd create
- bd-06px: Add --no-git-history flag to import command for sync subprocess compatibility
- bd-0zp7: Add missing hook calls (EventMessage in mail reply, EventClose in mail ack)
- bd-hy9p: Implement --body-file and --description-file flags for reading descriptions from files

Also closed stale issues that were already fixed:
- bd-0d5p: macOS test timeout (already fixed with SysProcAttr)
- bd-7yg: Merge driver placeholders (already using correct %A %O %A %B)
- bd-4ri: Test deadlock (test passes in 0.04s now)
- bd-b3og: TestImportBugIntegration (test no longer exists)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 17:29:33 -08:00
Steve Yegge
9073309b29 chore: Clean up old closed issues and tombstones
- Deleted 71 closed issues (converted to tombstones)
- Purged 697 tombstones older than 48 hours
- Cleaned 286 orphaned dependency records
- Kept 48 recent tombstones (< 48h) for resurrection protection

Before: 847 issues | After: 150 issues (102 open + 48 tombstones)
2025-12-17 16:13:43 -08:00
Steve Yegge
47a682acfb fix: Remove orphaned child issues permanently (bd-cb64c226.*, bd-cbed9619.*)
Root cause: Previous fix only cleaned beads-sync branch, not main.
During 3-way merge, orphans were re-introduced from main.

This export is from clean DB (0 orphaned issues).
Also force-resetting beads-sync to match.
2025-12-17 16:10:09 -08:00
Steve Yegge
93fdcc2b02 Merge pull request #601 from chapel/fix/gh-587-memory-stats-blocked-ready
Reviewed and approved - clean bug fix with good test coverage achieving parity between memory and SQLite storage implementations.
2025-12-17 15:30:05 -08:00
Steve Yegge
2e0f6e7ca2 Merge pull request #602 from SorraTheOrc/patch-1
Update link to EXTENDING.md in example extending README
2025-12-17 14:54:12 -08:00
Steve Yegge
b273652826 Merge pull request #603 from vgough/vgough/create-form
add visual create-form command
2025-12-17 14:19:16 -08:00
Steve Yegge
8f15dcfdae Merge pull request #606 from SorraTheOrc/fix/hooks-timeout-kill-descendants
hooks: kill descendant processes on timeout; add test and comment
2025-12-17 14:00:28 -08:00
Steve Yegge
56d2920bb3 docs: restore Community Tools section with beads.el
Adds back third-party tools removed in succinct README PR.
Includes beads.el Emacs package (closes #610).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 13:45:41 -08:00
Steve Yegge
9ddf69d700 fix: correct broken documentation links in README
The succinct README PR had Google search URLs instead of relative paths.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 13:43:05 -08:00
Steve Yegge
f3cd32d66e Merge pull request #612 from brycedrennan/patch-2
make README.md succinct
2025-12-17 13:42:11 -08:00
Bryce Drennan
57b1d90196 make README.md succinct 2025-12-17 10:44:51 -08:00
Steve Yegge
ff0ecb526e fix: daemon delete creates tombstones, export includes tombstones (bd-rp4o)
Three changes to fix deleted issues resurrecting during bd sync:

1. daemon handleDelete now uses CreateTombstone instead of DeleteIssue
   - internal/rpc/server_issues_epics.go

2. sync.go exportToJSONL now includes IncludeTombstones:true
   - cmd/bd/sync.go

3. server_export_import_auto.go handleExport and auto-export now include
   tombstones in SearchIssues filter
   - internal/rpc/server_export_import_auto.go

Also adds README.md documentation for sync.branch mode (bd-dsdh):
- Explains "always dirty" working tree behavior
- Shell alias tip: gs='git status -- ":!.beads/"'
- When to use bd sync --merge

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 01:15:40 -08:00
Steve Yegge
123e66f625 Merge beads-sync into main 2025-12-17 01:02:29 -08:00
Steve Yegge
bb750a96da bd sync: 2025-12-16 23:16:19 2025-12-16 23:16:19 -08:00
Steve Yegge
edb2186066 bd sync: 2025-12-16 23:09:57 2025-12-16 23:09:57 -08:00
Steve Yegge
4af0e1798e fix: allow bd sync --merge with uncommitted .beads/ changes (bd-7b7h)
The sync.branch workflow copies JSONL to main working dir without
committing, which blocked bd sync --merge (required clean working dir).

Changes:
- Exclude .beads/ from dirty check in mergeSyncBranch
- Restore .beads/ to HEAD before merge to prevent conflicts

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 23:09:19 -08:00
Steve Yegge
88703ced1e bd sync: 2025-12-16 23:08:59 2025-12-16 23:08:59 -08:00
Steve Yegge
6ab8918177 bd sync: 2025-12-16 23:08:55 2025-12-16 23:08:55 -08:00
Steve Yegge
518b09ca4c bd sync: 2025-12-16 22:57:41 2025-12-16 22:57:41 -08:00
Ross Gardler
6b0d0901d0 hooks: harden timeout kill and add platform split
- Move runHook into build-tagged implementations (unix/windows) to keep unix syscalls off Windows builds.
- In unix implementation, guard nil Process, return wrapped kill errors except ESRCH, and document linkage to TestRunSync_KillsDescendants.
- On Windows, best-effort kill on timeout retains prior behavior.
- In tests, move testing.Short earlier and keep descendant-kill coverage on Linux.
2025-12-16 22:38:45 -08:00
Steve Yegge
a1604ddad1 bd sync: 2025-12-16 22:35:35 2025-12-16 22:35:35 -08:00
Steve Yegge
fcd29f5ea4 fix: add ID-based fallback matching to prevent ghost resurrection (bd-ncwo)
Root cause: The merge driver matched issues by IssueKey (ID+CreatedAt+CreatedBy).
When timestamp precision differed (e.g., with/without nanoseconds), the same
issue was treated as two different issues, causing both tombstone and closed
versions to appear in the merge result.

Fix: Added ID-based fallback matching in merge3WayWithTTL. When key-based
matching fails but the same ID exists in the other side, use that for merging.
Also track processed IDs to prevent duplicates.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 22:35:29 -08:00
Steve Yegge
b0df00c10d bd sync: 2025-12-16 22:01:38 2025-12-16 22:01:38 -08:00
Steve Yegge
0ce039429d fix: tombstone/deletion overhaul for bd-4q8
- IsExpired(): Negative TTL means immediately expired (for --hard mode)
- IsExpired(): ClockSkewGrace only added for TTLs > 1 hour
- bd cleanup --hard: Use negative TTL to prune freshly created tombstones
- bd delete --hard: New flag to immediately prune tombstones from JSONL
- Import: Add early tombstone check before all phases to prevent resurrection

The early tombstone check prevents ghost issues from being created when
tombstones exist in the DB. However, a deeper git merge issue (bd-ncwo)
can still cause resurrection when remote's status:closed wins the merge.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 22:01:31 -08:00
Steve Yegge
cf8e84773a bd sync: 2025-12-16 21:59:18 2025-12-16 21:59:18 -08:00
Steve Yegge
3eb72ba91a bd sync: 2025-12-16 21:59:14 2025-12-16 21:59:14 -08:00
Steve Yegge
d8e42f4c59 bd sync: 2025-12-16 21:58:33 2025-12-16 21:58:33 -08:00
Steve Yegge
69ff0ac67c bd sync: 2025-12-16 21:58:29 2025-12-16 21:58:29 -08:00
Steve Yegge
2fa0920af2 bd sync: 2025-12-16 21:57:36 2025-12-16 21:57:36 -08:00
Steve Yegge
d42cb96ebb bd sync: 2025-12-16 21:57:32 2025-12-16 21:57:32 -08:00
Ross Gardler
1465f7bb1d hooks: kill descendant processes on timeout; add test and comment
Ensure RunSync kills the hook process group on timeout so descendant processes (e.g. scripts that ) cannot keep the caller blocked. Add explanatory comment in  and a Linux-only unit test  in . Trim pid parsing newline in the test. All tests pass locally.
2025-12-16 21:57:29 -08:00
Steve Yegge
9794591c5b bd sync: 2025-12-16 21:31:09 2025-12-16 21:31:09 -08:00
Steve Yegge
fc9951fa04 bd sync: 2025-12-16 21:31:05 2025-12-16 21:31:05 -08:00
Steve Yegge
3cad28713f bd sync: 2025-12-16 20:53:02 2025-12-16 20:53:02 -08:00
Steve Yegge
b83ebdcb38 bd sync: 2025-12-16 20:44:31 2025-12-16 20:44:31 -08:00
Steve Yegge
8f940dfbb6 bd sync: 2025-12-16 20:44:27 2025-12-16 20:44:27 -08:00
Steve Yegge
0b7c6935b1 bd sync: 2025-12-16 20:44:04 2025-12-16 20:44:04 -08:00
Steve Yegge
d4a9315e91 bd sync: 2025-12-16 20:43:46 2025-12-16 20:43:46 -08:00
Steve Yegge
9846940ce4 bd sync: 2025-12-16 20:42:43 2025-12-16 20:42:43 -08:00
Steve Yegge
3c91c67311 Remove orphans 2025-12-16 20:42:29 -08:00
Steve Yegge
3fafd2dcff bd sync: 2025-12-16 20:38:55 2025-12-16 20:38:55 -08:00
Steve Yegge
0558fc0258 bd sync: 2025-12-16 20:38:39 2025-12-16 20:38:39 -08:00
Steve Yegge
955acd70d3 bd sync: 2025-12-16 20:38:35 2025-12-16 20:38:35 -08:00
Steve Yegge
2fc5e0c979 bd sync: 2025-12-16 20:36:58 2025-12-16 20:36:58 -08:00
Steve Yegge
19198939e8 bd sync: 2025-12-16 20:36:54 2025-12-16 20:36:54 -08:00
Steve Yegge
8d73a86f7a feat: complete bd-kwro messaging & knowledge graph epic
- Add bd cleanup --ephemeral flag for transient message cleanup (bd-kwro.9)
- Add Ephemeral filter to IssueFilter type
- Add ephemeral filtering to SQLite storage queries

Tests (bd-kwro.10):
- Add internal/hooks/hooks_test.go for hook system
- Add cmd/bd/mail_test.go for mail commands
- Add internal/storage/sqlite/graph_links_test.go for graph links

Documentation (bd-kwro.11):
- Add docs/messaging.md for full messaging reference
- Add docs/graph-links.md for graph link types
- Update AGENTS.md with inter-agent messaging section
- Update CHANGELOG.md with all bd-kwro features

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 20:36:47 -08:00