Commit Graph

602 Commits

Author SHA1 Message Date
Steve Yegge
2e9b5a5870 Merge bd-xoyh-morsov: GH#517 2025-12-16 01:17:18 -08:00
Steve Yegge
2d1c8900cb chore: sync beads 2025-12-16 01:16:40 -08:00
Steve Yegge
a518581a86 Merge bd-6xfz-furiosa: GH#405 prefix parsing 2025-12-16 01:16:26 -08:00
Steve Yegge
11c3bb4fdb Merge bd-0yzm-ace: GH#522 --type flag for bd update 2025-12-16 01:15:11 -08:00
Steve Yegge
3d8750883c chore: track and close GH#405 fix 2025-12-16 01:14:03 -08:00
Steve Yegge
77aeb50d27 fix(utils): parse multi-hyphen prefixes correctly (GH#405)
The ExtractIssuePrefix function was falling back to first-hyphen
extraction when the suffix didn't look like a hash (e.g., 4+ char
words without digits). This broke prefixes like 'hacker-news' where
an issue ID 'hacker-news-test' would incorrectly extract 'hacker'.

Fix: Always use last-hyphen extraction for alphanumeric suffixes.
Only fall back to first-hyphen for non-alphanumeric suffixes.

Examples:
- 'hacker-news-test' -> 'hacker-news' (was: 'hacker')
- 'me-py-toolkit-abc' -> 'me-py-toolkit' (was: 'me')
- 'vc-baseline-hello' -> 'vc-baseline' (was: 'vc')

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 01:13:15 -08:00
Steve Yegge
25b3876113 chore: sync beads - close GH#522 2025-12-16 01:09:28 -08:00
Steve Yegge
7d35ced5ae feat(update): add --type flag to bd update command (GH#522)
Allow changing an issue type (bug, feature, task, epic, chore) via the
bd update command. The storage layer already supported issue_type in
allowedUpdateFields, this just exposes it through the CLI.

Changes:
- Add --type/-t flag to updateCmd in show.go
- Add IssueType field to UpdateArgs in protocol.go
- Handle issue_type in updatesFromArgs in server_issues_epics.go
- Add validation using ParseIssueType before update

Example usage:
  bd update ab-xyz --type epic

Fixes: #522
2025-12-16 01:08:11 -08:00
Steve Yegge
0c9e78f42e fix: improve priority format documentation and error message (GH#517)
Claude was using word-based priorities like "medium" instead of numeric
values (0-4 or P0-P4), causing bd create commands to fail in a loop.

Changes:
- Update bd prime output to clearly document priority format with example
- Add explicit note: NOT "high"/"medium"/"low"
- Improve error message to mention that words are not valid

Closes #517

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 01:07:55 -08:00
Ryan Snodgrass
c7b45a8a40 fix(import): support hierarchical hash IDs in --rename-on-import
The isNumeric function was rejecting valid hierarchical hash IDs like
'6we.2' that contain dots for parent.child notation. This caused
`bd import --rename-on-import` to fail with "non-numeric suffix" errors.

Changes:
- Rename isNumeric to isValidIDSuffix for clarity
- Accept dots (.) in addition to alphanumeric for hierarchical IDs
- Update test cases to cover hierarchical ID formats
2025-12-16 00:12:10 -08:00
Steve Yegge
a6e28f7087 bd-411u: Document BEADS_DIR pattern for Gas Town integration
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 22:09:15 -08:00
Steve Yegge
936c446d3c chore: sync beads changes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-12-14 23:08:29 -08:00
Steve Yegge
0dd8914619 chore: sync beads - close bd-0yzm 2025-12-14 17:24:14 -08:00
Steve Yegge
2db4808a19 chore: sync beads state 2025-12-14 17:23:26 -08:00
Steve Yegge
6a8b278f16 chore: clean beads state 2025-12-14 17:22:31 -08:00
Steve Yegge
50608ce3a5 chore: close bd-6xfz (GH#517 fix) 2025-12-14 17:19:46 -08:00
Steve Yegge
8d409fc719 chore: sync beads 2025-12-14 16:55:37 -08:00
Steve Yegge
b0b4e9fa44 bd sync: 2025-12-14 16:54:27 2025-12-14 16:54:27 -08:00
Steve Yegge
9d51f0579a bd sync: 2025-12-14 16:54:23 2025-12-14 16:54:23 -08:00
Steve Yegge
fc99ca0ca3 bd sync: merge divergent histories (6 local + 4 remote commits) 2025-12-14 16:54:12 -08:00
Steve Yegge
659fbd0b59 chore: remove legacy deletions files and clean up beads 2025-12-14 16:53:51 -08:00
Steve Yegge
ab20f6947a chore: update beads after sync cleanup 2025-12-14 16:52:18 -08:00
Steve Yegge
509d96e58a chore: sync beads 2025-12-14 16:50:24 -08:00
Steve Yegge
48697663d8 chore: clean up beads sync state 2025-12-14 16:49:25 -08:00
Steve Yegge
fb55272156 chore: clean beads - remove orphans and fix prefixes 2025-12-14 16:46:01 -08:00
Steve Yegge
2b0141ec79 chore: cleanup beads - migrate tombstones, delete orphans, fix prefix mismatch 2025-12-14 16:44:13 -08:00
Steve Yegge
768db19635 chore: clean up orphaned issues and sync beads state 2025-12-14 16:43:53 -08:00
Steve Yegge
58a5b4a54f chore: sync beads state after preflight fix 2025-12-14 16:42:15 -08:00
Steve Yegge
eed8587208 chore: cleanup orphaned issues and sync beads 2025-12-14 16:42:09 -08:00
Steve Yegge
aa1e8db78f chore: sync beads 2025-12-14 16:41:06 -08:00
Steve Yegge
6c2c37ec52 chore: sync beads after sanitization 2025-12-14 16:39:53 -08:00
Steve Yegge
e6c6581b65 chore: sync beads after prefix fix 2025-12-14 16:39:04 -08:00
Steve Yegge
aa89c43573 chore: sync beads after preflight fix 2025-12-14 16:38:05 -08:00
Steve Yegge
e5f185875e chore: sanitize beads after sync 2025-12-14 15:24:08 -08:00
Steve Yegge
8a7b9afea3 chore: sync beads changes 2025-12-14 15:23:35 -08:00
Steve Yegge
43addba194 chore: sync issues after lockfile test coverage 2025-12-14 15:22:30 -08:00
Steve Yegge
d7a813c045 chore: sync issues.jsonl after PR #555 merge 2025-12-14 15:13:34 -08:00
Steve Yegge
a60972cd6a Merge remote-tracking branch 'origin/main' into performance-fix 2025-12-14 14:53:30 -08:00
matt wilkie
a22d949cbd Fix bd-in7q: prevent migrate-tombstones from corrupting deletions manifest (#554)
Root cause: bd doctor hydrate was re-adding migrated tombstones to the
deletions manifest because getCurrentJSONLIDs() included all issues,
including tombstones. When compared against git history, tombstones
appeared as 'deleted' and were incorrectly added to the manifest as new
deletions, corrupting the database on next sync.

Fix: Skip tombstone-status issues in getCurrentJSONLIDs() so they don't
participate in deletion detection. Tombstones represent already-recorded
deletions/migrations and shouldn't be treated as active issues.

Changes:
- cmd/bd/doctor/fix/deletions.go: Skip tombstones in getCurrentJSONLIDs()
- cmd/bd/doctor/fix/deletions_test.go: New tests for tombstone skipping
- cmd/bd/migrate_tombstones_test.go: Test that tombstones are valid

This fixes the bug where 'bd migrate-tombstones' followed by 'bd sync'
would add thousands of deletion records with author 'bd-doctor-hydrate'
2025-12-14 14:11:27 -08:00
Ryan Snodgrass
f88a0d015b feat(cli): add 'bd thanks' command to thank contributors
Adds a new command that displays a thank you page listing all human
contributors to the beads project. Features:

- Static list of contributors (compiled into binary)
- Top 20 featured contributors displayed in columns
- Additional contributors in wrapped list
- Styled output using lipgloss (colored box, sections)
- Dynamic width based on content
- JSON output support (--json flag)
- Excludes bots and AI agents by email pattern
2025-12-14 12:40:32 -08:00
Steve Yegge
70d09be1bc chore: upgrade bd-3ee1 to P0 2025-12-14 00:46:41 -08:00
Steve Yegge
a61ca252ae fix(cleanup): resolve CHECK constraint failure and add tombstone pruning
- Fix bd-tnsq: executeDelete now sets closed_at=NULL when creating
  tombstones, satisfying the CHECK constraint that requires
  closed_at IS NULL when status != 'closed'

- Fix bd-08ea: cleanup command now also prunes expired tombstones
  (older than 30 days) after converting closed issues to tombstones

- Add regression test for batch deletion of closed issues

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 00:37:54 -08:00
Steve Yegge
21e276dfad Merge remote-tracking branch 'origin/main' into fix/nodb-mode-547 2025-12-14 00:28:25 -08:00
Steve Yegge
9db756f8b6 fix(memory): implement GetReadyWork/GetBlockedIssues + child counters
Fixes #543, #544, #545, #546 (no-db mode regressions)

Memory backend fixes:
- GetReadyWork now properly excludes issues with open blocks dependencies
- GetBlockedIssues now includes issues with status=blocked (even with 0 blockers)
- LoadFromIssues initializes hierarchical child counters from existing IDs
  so repeated --parent creates bd-xxx.1, bd-xxx.2, etc.

JSONL path discovery:
- findJSONLPath works in no-db mode when dbPath is empty
- Honors BEADS_JSONL environment variable override
- Falls back to locating .beads directory

Based on PR #547 by @joelklabo - cherry-picked core fixes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-13 23:22:10 -08:00
Steve Yegge
7f843a6105 chore: remove 12 orphaned child issues from JSONL
Orphaned issues (children of deleted epics):
- bd-cb64c226.1, .6, .8, .9, .10, .12, .13 (cache removal epic)
- bd-cbed9619.1, .2, .3, .4, .5 (N-way collision epic)

These were completed tasks from October 2025 that became orphans
when their parent epics were deleted.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 23:04:30 -08:00
Steve Yegge
dffb56299a chore: add 12 orphaned issues to deletions manifest
Added tombstones for orphaned child issues whose parent epics were deleted:
- bd-cb64c226.1, .6, .8, .9, .10, .12, .13 (cache removal epic)
- bd-cbed9619.1, .2, .3, .4, .5 (N-way collision epic)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 22:57:17 -08:00
Steve Yegge
4c985d7d3b chore: remove 12 orphaned issues (bd-cb64c226.* and bd-cbed9619.*) 2025-12-13 22:55:47 -08:00
Steve Yegge
89d97d4ccb chore: sync beads issues 2025-12-13 21:28:23 -08:00
Steve Yegge
980c4aae8f Merge branch 'main' of github.com:steveyegge/beads 2025-12-13 21:06:54 -08:00
Steve Yegge
fdb722bf08 chore(beads): add preflight epic (bd-lfak) and namespace design (bd-umbf) 2025-12-13 21:06:52 -08:00