Commit Graph

2361 Commits

Author SHA1 Message Date
Steve Yegge
88e76ec426 bd sync: 2025-12-26 17:38:21 2025-12-26 23:19:38 -08:00
Steve Yegge
7046e90ada bd sync: 2025-12-26 17:29:25 2025-12-26 23:19:38 -08:00
Steve Yegge
3b8e4db555 bd sync: 2025-12-26 17:25:21 2025-12-26 17:25:21 -08:00
Steve Yegge
9bc98cd778 bd sync: 2025-12-26 15:20:26 2025-12-26 15:20:35 -08:00
Steve Yegge
2a1c03a915 bd sync: 2025-12-26 14:54:51 2025-12-26 15:20:35 -08:00
Steve Yegge
f11ad08ad9 bd sync: 2025-12-26 14:36:48 2025-12-26 14:36:48 -08:00
Steve Yegge
b9b2c826fd bd sync: 2025-12-26 14:36:25 2025-12-26 14:36:43 -08:00
Steve Yegge
f86a5187c2 bd sync: 2025-12-26 13:34:29 2025-12-26 14:36:43 -08:00
Steve Yegge
b71c06e954 bd sync: 2025-12-26 12:45:39 2025-12-26 14:36:43 -08:00
Steve Yegge
1fdd3538d2 bd sync: 2025-12-26 01:12:48 2025-12-26 01:12:48 -08:00
Steve Yegge
cc858b8273 bd sync: 2025-12-26 01:10:54 2025-12-26 01:11:03 -08:00
Steve Yegge
8fa3a21a8a bd sync: 2025-12-26 00:58:07 2025-12-26 01:11:03 -08:00
Steve Yegge
a975cdecd9 bd sync: 2025-12-26 00:57:19 2025-12-26 01:11:03 -08:00
Steve Yegge
64d2f372a3 fix: Allow tombstones to retain closed_at timestamp
Previously, tombstones could not have a closed_at timestamp due to:
1. Go validation: `if status != closed && closed_at != nil` failed
2. SQL CHECK constraint: `(status = 'closed') = (closed_at IS NOT NULL)`

This caused import failures for tombstones that were closed before being
deleted - a valid scenario where we want to preserve the historical
closed_at timestamp for audit purposes.

Changes:
- internal/types/types.go: Updated validation to allow tombstones with
  closed_at (line 253)
- internal/storage/sqlite/schema.go: Updated CHECK constraint to allow
  closed AND tombstone statuses to have closed_at
- internal/storage/sqlite/migrations/028_tombstone_closed_at.go: Migration
  to update existing databases with the new constraint
- .beads/issues.jsonl: Fixed bd-6s61 status from 'closed' to 'tombstone'

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:57:59 -08:00
Steve Yegge
53921d75c8 chore: Move beads-release formula to gastown
Formulas are Gas Town orchestration workflows, not beads primitives.
The release workflow now lives in gastown/mayor/rig/.beads/formulas/

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:47:32 -08:00
Steve Yegge
c366d538a1 bd sync: Filed bd-70c4 (gate await fields bug) 2025-12-25 23:32:44 -08:00
Steve Yegge
3b0630ba0e chore(formula): Convert beads-release to TOML format
Align with Gas Town formula format change from JSON to TOML.
Same content, cleaner syntax.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:31:32 -08:00
Steve Yegge
5788f90aa1 bd sync: 2025-12-25 23:20:35 2025-12-25 23:20:35 -08:00
Steve Yegge
9a508240d9 fix(gate): Use correct gh pr field name (mergedAt, not merged)
The merged field does not exist in gh pr view output. The actual
fields are:
- state: OPEN, CLOSED, or MERGED
- mergedAt: timestamp string (empty if not merged)

Also simplified the switch statement since state already distinguishes
merged vs closed-without-merge PRs.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:10:00 -08:00
Steve Yegge
1c95ac9ae2 bd sync: 2025-12-25 22:57:05 2025-12-25 22:58:10 -08:00
Steve Yegge
92e6ccb88d bd sync: 2025-12-25 22:45:49 2025-12-25 22:58:10 -08:00
Steve Yegge
e22cdc2f58 bd sync: 2025-12-25 22:34:55 2025-12-25 22:58:10 -08:00
Steve Yegge
e581188c80 bd sync: 2025-12-25 22:27:01 2025-12-25 22:58:10 -08:00
Steve Yegge
acc7168931 bd sync: 2025-12-25 22:04:46 2025-12-25 22:58:10 -08:00
Steve Yegge
3d83226d93 bd sync: 2025-12-25 20:20:55 2025-12-25 22:58:10 -08:00
Steve Yegge
f3a5e02a35 feat(close): Add --suggest-next flag to show newly unblocked issues (GH#679)
When closing an issue, the new --suggest-next flag returns a list of
issues that became unblocked (ready to work on) as a result of the close.

This helps agents and users quickly identify what work is now available
after completing a blocker.

Example:
  $ bd close bd-5 --suggest-next
  ✓ Closed bd-5: Completed

  Newly unblocked:
    • bd-7 "Implement feature X" (P1)
    • bd-8 "Write tests for X" (P2)

Implementation:
- Added GetNewlyUnblockedByClose to storage interface
- Implemented efficient single-query for SQLite using blocked_issues_cache
- Added SuggestNext field to CloseArgs in RPC protocol
- Added CloseResult type for structured response
- CLI handles both daemon and direct modes

Thanks to @kraitsura for the detailed feature request and design.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 20:05:04 -08:00
Steve Yegge
35ab0d7a7f bd sync: 2025-12-25 20:01:27 2025-12-25 20:01:27 -08:00
Steve Yegge
76c1e08a9b bd sync: 2025-12-25 20:01:13 2025-12-25 20:01:13 -08:00
Steve Yegge
46b7f162cf bd sync: 2025-12-25 19:55:25 2025-12-25 19:55:25 -08:00
Steve Yegge
bbe1980b6c bd sync: 2025-12-25 19:43:27 2025-12-25 19:43:27 -08:00
Steve Yegge
3e7628348a bd sync: 2025-12-25 19:40:08 2025-12-25 19:40:08 -08:00
Steve Yegge
8050e7b5fa bd sync: 2025-12-25 19:38:08 2025-12-25 19:38:08 -08:00
Steve Yegge
fbd2371200 bd sync: 2025-12-25 19:32:24 2025-12-25 19:32:24 -08:00
Steve Yegge
ae2a0b2503 bd sync: merge divergent histories (content-level recovery) 2025-12-25 19:30:40 -08:00
Steve Yegge
e4feccfc2b bd sync: 2025-12-25 17:03:56 2025-12-25 17:03:56 -08:00
Steve Yegge
c1fefc1bc4 bd sync: 2025-12-25 16:55:34 2025-12-25 16:55:34 -08:00
Steve Yegge
788e07be00 bd sync: 2025-12-25 14:49:21 2025-12-25 16:55:27 -08:00
Steve Yegge
76f2179ea4 bd sync: 2025-12-25 14:06:00 2025-12-25 16:55:27 -08:00
Steve Yegge
e410b9b08d bd sync: 2025-12-25 13:56:03 2025-12-25 16:55:27 -08:00
Steve Yegge
35e8c06f3e feat: add beads-release formula for molecular releases
18-step workflow covering full release cycle:
- Preflight checks (git status, pull)
- Documentation (CHANGELOG, info.go)
- Version bump (wraps bump-version.sh)
- Git operations (commit, tag, push)
- CI verification
- Artifact verification (GitHub, npm, PyPI)
- Local installation and daemon restart

Replaces ad-hoc release process with structured molecular workflow.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 16:51:26 -08:00
Steve Yegge
6da9610ba6 bd sync: 2025-12-25 13:40:56 2025-12-25 13:40:56 -08:00
Steve Yegge
e7735f0083 bd sync: 2025-12-25 13:32:48 2025-12-25 13:32:57 -08:00
Steve Yegge
df3a6bff43 bd sync: 2025-12-25 12:42:51 2025-12-25 12:42:51 -08:00
Steve Yegge
09d053233e feat: Add bd formula list/show commands (gt-8tmz.14)
Implements formula management commands:
- bd formula list: Lists formulas from all search paths
- bd formula show <name>: Shows formula details, steps, composition rules

Search paths in priority order:
1. .beads/formulas/ (project)
2. ~/.beads/formulas/ (user)
3. ~/gt/.beads/formulas/ (town)

Features:
- Type filtering (--type workflow|expansion|aspect)
- JSON output support (--json)
- Shows variables, steps, advice, bond points, and aspects
- Formulas in earlier paths shadow later ones

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:38:00 -08:00
Steve Yegge
fe661887ae bd sync: 2025-12-25 12:31:14 2025-12-25 12:31:14 -08:00
Steve Yegge
6311fbaebf bd sync: 2025-12-25 12:18:37 2025-12-25 12:18:37 -08:00
Steve Yegge
71dc671dd6 bd sync: 2025-12-25 12:18:21 2025-12-25 12:18:21 -08:00
Steve Yegge
516c62e543 feat: Add aspect composition support (gt-8tmz.5)
- Add Aspects field to ComposeRules for listing aspect formulas
- Apply aspects during cooking after expansions
- Aspects are loaded by name and their advice rules are applied

Usage in formula:
  "compose": {
    "aspects": ["security-audit", "logging"]
  }

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:15:12 -08:00
Steve Yegge
de1a9559fa fix: Map expansion now matches nested child steps (gt-8tmz.33)
The map rule was only iterating over top-level steps, missing nested
children. Now uses buildStepMap to include all steps at any depth.

Added test case for map expansion over nested children.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:08:05 -08:00
Steve Yegge
2392496b0c bd sync: 2025-12-25 12:05:37 2025-12-25 12:05:37 -08:00