Commit Graph

3402 Commits

Author SHA1 Message Date
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
Steve Yegge
39b31e31c0 bd sync: 2025-12-16 20:36:32 2025-12-16 20:36:32 -08:00
Steve Yegge
e7fe8f7dcb bd sync: 2025-12-16 20:36:27 2025-12-16 20:36:27 -08:00
Steve Yegge
ac8c577e63 bd sync: 2025-12-16 20:35:36 2025-12-16 20:35:36 -08:00
Steve Yegge
f070e41162 Remove orphaned child issues (parents deleted) 2025-12-16 20:35:28 -08:00
Steve Yegge
cf6d949364 bd sync: 2025-12-16 20:28:53 2025-12-16 20:28:53 -08:00
Steve Yegge
85324c82a8 bd sync: 2025-12-16 20:28:25 2025-12-16 20:28:25 -08:00
Steve Yegge
fc7d41098c bd sync: 2025-12-16 20:27:35 2025-12-16 20:27:35 -08:00
Steve Yegge
137de5407b bd sync: 2025-12-16 20:27:00 2025-12-16 20:27:00 -08:00
Steve Yegge
d69e1cf371 bd sync: 2025-12-16 20:26:49 2025-12-16 20:26:49 -08:00
Steve Yegge
8fdc317071 bd sync: 2025-12-16 20:26:01 2025-12-16 20:26:02 -08:00
Steve Yegge
0ed24f0846 bd sync: 2025-12-16 20:25:57 2025-12-16 20:25:57 -08:00
Steve Yegge
f94b8e2888 bd sync: 2025-12-16 20:20:40 2025-12-16 20:20:40 -08:00
Steve Yegge
46bfb43b8d feat: add graph links and hooks system (bd-kwro.2-5, bd-kwro.8)
- bd mail reply: reply to messages with thread linking via replies_to
- bd show --thread: display full conversation threads
- bd relate/unrelate: bidirectional relates_to links for knowledge graph
- bd duplicate --of: mark issues as duplicates with auto-close
- bd supersede --with: mark issues as superseded with auto-close
- Hooks system: on_create, on_update, on_close, on_message in .beads/hooks/
- RPC protocol: added Sender, Ephemeral, RepliesTo fields to CreateArgs/UpdateArgs

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 18:34:48 -08:00
Steve Yegge
027296b5c7 bd sync: 2025-12-16 18:34:20 2025-12-16 18:34:20 -08:00
Steve Yegge
f86412d8a6 bd sync: 2025-12-16 18:34:15 2025-12-16 18:34:15 -08:00
Steve Yegge
026a5e40e8 bd sync: 2025-12-16 18:21:55 2025-12-16 18:21:55 -08:00
Steve Yegge
8eed366c06 bd sync: 2025-12-16 18:19:19 2025-12-16 18:19:19 -08:00
Steve Yegge
a4ed1c94dc bd sync: 2025-12-16 18:17:37 2025-12-16 18:17:37 -08:00
Steve Yegge
96d60a67bb bd sync: merge divergent histories (69 local + 136 remote commits) 2025-12-16 18:13:47 -08:00
Steve Yegge
5e39a0a24f feat: add bd mail commands and identity configuration (bd-kwro.6, bd-kwro.7)
- Add `bd mail send/inbox/read/ack` commands for inter-agent messaging
- Implement GetIdentity() with priority chain: flag > BEADS_IDENTITY env > config.yaml > git user.name > hostname
- Messages are stored as issues with type=message for git-native communication
- Support both daemon and direct mode for all mail operations

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 18:13:33 -08:00
Steve Yegge
c7661e0890 bd sync: 2025-12-16 18:12:56 2025-12-16 18:12:56 -08:00
Steve Yegge
52f3363b0f fix: resolve all golangci-lint errors
- errcheck: explicitly discard error returns for git config --unset
- gosec G304: add nolint for safe file read from hardcoded list
- gosec G306: add nolint for .gitattributes (must be world-readable)
- unparam: remove unused gitDir param, use _ for unused ctx
- unparam: change functions with always-nil error returns to void

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 17:50:25 -08:00
Valient Gough
3770fe4eeb cleanup 2025-12-16 17:26:06 -08:00
Steve Yegge
a6f0c2d497 fix: sync all version files to 0.30.2 and add CI check
The 0.30.2 bump was done manually and missed several files:
- .claude-plugin/plugin.json (was 0.30.0)
- .claude-plugin/marketplace.json (was 0.30.0)
- npm-package/package.json (was 0.30.1)
- integrations/beads-mcp/pyproject.toml (was 0.30.1)
- integrations/beads-mcp/src/beads_mcp/__init__.py (was 0.30.1)

Added scripts/check-versions.sh and CI job to prevent this in future.
Always use scripts/bump-version.sh for version bumps.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 17:13:01 -08:00
Valient Gough
309997576b add visual create-form command 2025-12-16 17:05:45 -08:00