77 Commits

Author SHA1 Message Date
Steve Yegge
d3de5519b2 Fix Windows SQLite support in releases
- Enable CGO in GoReleaser config
- Add MinGW cross-compiler for Windows builds
- Split builds per platform to configure correct CC
- Install cross-compilation toolchains in release workflow

Fixes #253

Amp-Thread-ID: https://ampcode.com/threads/T-8600ed89-42af-4785-b5dc-01ad37f1451d
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 15:54:59 -08:00
Steve Yegge
ef8585bd2e feat: Add automatic Homebrew formula update to release workflow 2025-11-06 20:35:25 -08:00
Steve Yegge
c47f40b03e fix: Extract linux checksums properly in Homebrew workflow
Fixes #238 - The workflow was using a shell command
instead of extracting the linux checksums like it does for macOS.
Now extracts all platform hashes and uses them in the formula.
2025-11-06 10:20:12 -08:00
Steve Yegge
563c12ba2f feat: Add manual trigger to Homebrew workflow for testing 2025-11-05 20:51:46 -08:00
Steve Yegge
739786e949 feat: Separate Homebrew update workflow with PAT support 2025-11-05 20:38:47 -08:00
Steve Yegge
b31bddc210 Optimize test suite performance - 45% reduction in integration tests
- Add testutil.TempDirInMemory() using /dev/shm on Linux for 20-30% I/O speedup
- Update slow hash multiclone tests to use in-memory filesystem
- Convert 17 scripttest tests (~200+s) to fast CLI tests (31s) with --no-daemon
- Disable slow scripttest suite behind build tag
- Add README_TESTING.md documenting test strategy and optimizations
- Update CI to use -short flag for PR checks, full tests nightly

Results:
- TestHashIDs_* reduced from ~20s to ~11s (45% reduction)
- Scripttest suite eliminated from default runs (massive speedup)
- Total integration test time significantly reduced

Closes bd-gm7p, bd-l5gq

Amp-Thread-ID: https://ampcode.com/threads/T-c2b9434a-cd29-4725-b8e0-cbea50b36fe2
Co-authored-by: Amp <amp@ampcode.com>
2025-11-04 11:25:36 -08:00
Steve Yegge
5513af3b63 Fix CI: Configure git identity for tests 2025-10-29 19:16:43 -07:00
Steve Yegge
0e13a4268d Fix Go version in release workflow (1.24 -> 1.23) 2025-10-26 23:38:53 -07:00
Steve Yegge
b0b9c37f6b Fix PyPI publish workflow to run independently of GoReleaser
- Add 'if: always()' to publish-pypi job so it runs even if goreleaser fails
- Remove 'go test' from .goreleaser.yml since CI already runs tests
- This ensures MCP server gets published even if binary release has issues
2025-10-24 22:38:42 -07:00
Steve Yegge
98da376f7b Fix golangci-lint CI: add config version and upgrade action to v8 2025-10-24 21:59:33 -07:00
Steve Yegge
0b154afe89 fix: let golangci-lint-action choose compatible version 2025-10-24 16:22:39 -07:00
Steve Yegge
841ff3df9c fix: use golangci-lint-action@v6 for v1.x compatibility 2025-10-24 16:17:24 -07:00
Steve Yegge
913c661d05 fix: downgrade golangci-lint to v1.63.4 for config compatibility 2025-10-24 15:38:34 -07:00
Steve Yegge
d47f3aebf5 Fix golangci-lint: upgrade to v8 action with v2.5.0 2025-10-24 00:37:20 -07:00
Steve Yegge
0be4f2b062 Fix CI: use latest golangci-lint and check for RPC test race 2025-10-24 00:03:57 -07:00
Steve Yegge
622dec3b19 Fix CI: update golangci-lint to v1.64.1 and Nix vendorHash for Go 1.24 2025-10-23 23:55:49 -07:00
Steve Yegge
72d16229e0 feat: Add Dependabot config and README badges
- Add Dependabot for Go modules, GitHub Actions, and Python dependencies
- Add badges: Go version, release, CI status, Go Report Card, license, PyPI
- Weekly automated security and dependency updates

Amp-Thread-ID: https://ampcode.com/threads/T-ea1982a4-56dc-482a-8c00-00963623cd64
Co-authored-by: Amp <amp@ampcode.com>
2025-10-23 20:06:40 -07:00
Steve Yegge
32ddf92007 feat: Automate PyPI publishing via GitHub Actions
- Add PyPI publish job to release workflow (runs after GoReleaser)
- Add manual TestPyPI workflow for testing uploads
- Update RELEASING.md:
  - Document automated PyPI publishing
  - Fix go install vs brew conflicts
  - Simplify Homebrew upgrade instructions
- Created bd-87 for epic command daemon support
- Closed bd-86 (merge transactions) as won't fix

Amp-Thread-ID: https://ampcode.com/threads/T-ea1982a4-56dc-482a-8c00-00963623cd64
Co-authored-by: Amp <amp@ampcode.com>
2025-10-23 19:58:11 -07:00
Steve Yegge
e009296f13 fix: Code review fixes for GoReleaser setup
- Change version.go constants to variables for ldflags to work
- Fix changelog regex to properly match feat(scope): and fix(scope):
- Enable windows/arm64 builds (pure Go, no CGO issues)
- Add concurrency guard to release workflow

Oracle review feedback implemented.
2025-10-23 19:20:07 -07:00
Steve Yegge
50eb9ce550 feat: Add GoReleaser workflow for cross-platform binary releases
- Add .goreleaser.yml for automated releases
- Add .github/workflows/release.yml triggered on version tags
- Build matrix: darwin/linux/windows for amd64/arm64
- Update install.sh to download from GitHub releases first
- Add install.sh symlink at root for convenience
- Update RELEASING.md with automation documentation

Closes #89 (vendorable executables as releases)
Implements bd-85

Amp-Thread-ID: https://ampcode.com/threads/T-02baad43-7e97-4710-bc60-777643d2eb77
Co-authored-by: Amp <amp@ampcode.com>
2025-10-23 19:02:12 -07:00
Zoe Gagnon
474f62c6f2 Fix regression in Nix Flake
In PR #105, a regression was introduced into the nix flake
which disabled consumers from access the package.

This pr fixes that regression.

Additionally adds a nix smoke test for a backstop against this in the future
2025-10-22 22:24:23 -04:00
Steve Yegge
49275463d2 Add Windows CI build (#bd-178)
- Add windows-latest job to GitHub Actions
- Build bd.exe and run tests on Windows
- Catch cross-platform issues early
2025-10-20 21:27:32 -07:00
Steve Yegge
a86f3e139e Add native Windows support (#91)
- Native Windows daemon using TCP loopback endpoints
- Direct-mode fallback for CLI/daemon compatibility
- Comment operations over RPC
- PowerShell installer script
- Go 1.24 requirement
- Cross-OS testing documented

Co-authored-by: danshapiro <danshapiro@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-c6230265-055f-4af1-9712-4481061886db
Co-authored-by: Amp <amp@ampcode.com>
2025-10-20 21:08:49 -07:00
Steve Yegge
91948f7a2b Fix: Pin golangci-lint to v1.62.0 to unblock CI (#86)
Amp-Thread-ID: https://ampcode.com/threads/T-056a25c4-ad39-4124-99b8-b459b3e21305
Co-authored-by: Amp <amp@ampcode.com>
2025-10-19 09:12:32 -07:00
Steve Yegge
a7693aee97 fix: Update CI workflow and close stale issues
**CI Improvements:**
- Fix Go version: 1.25 → 1.23 (matches go.mod)
- Add coverage threshold check (fail <50%, warn <55%)
- Coverage check runs after tests, before codecov upload

**Issue Cleanup:**
- Close bd-1: Stale test issue from early development
- Close bd-2: Auto-export verified working
- Close bd-9: Collision resolution complete (all subtasks done)
- Close bd-69: Coverage threshold implemented

**New Issues:**
- bd-69: CI coverage threshold (completed this session)
- bd-70: Test coverage improvements for auto-flush/import

Addresses review findings. System is now clean and ready for plugin testing (bd-64).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 14:34:04 -07:00
Steve Yegge
19cd7d1887 Prepare for public launch: comprehensive examples, docs, and tooling
This commit adds everything needed for a successful public launch:

**New Documentation**
- SECURITY.md: Security policy and best practices
- CLAUDE.md: Complete agent instructions for contributing to beads
- Enhanced README with pain points, FAQ, troubleshooting sections
- Added Taskwarrior to comparison table with detailed explanation

**Installation**
- install.sh: One-liner installation script with platform detection
- Auto-detects OS/arch, tries go install, falls back to building from source
- Updated README with prominent installation instructions

**Examples** (2,268+ lines of working code)
- examples/python-agent/: Full Python implementation of agent workflow
- examples/bash-agent/: Shell script agent with colorized output
- examples/git-hooks/: Pre-commit, post-merge, post-checkout hooks with installer
- examples/claude-desktop-mcp/: Documentation for future MCP server integration
- examples/README.md: Overview of all examples

**Dogfooding**
- Initialized bd in beads project itself (.beads/beads.db)
- Created issues for roadmap (MCP server, migrations, demos, 1.0 milestone)
- Exported to .beads/issues.jsonl for git versioning

**Visual Assets**
- Added screenshot showing agent using beads to README intro
- Placed in .github/images/ following GitHub conventions

This addresses all launch readiness items:
 Security policy
 Working agent examples (Python, Bash)
 Git hooks for automation
 FAQ addressing skeptics
 Troubleshooting common issues
 Easy installation
 Dogfooding our own tool
 Pain points that create urgency

Ready to ship! 🚀

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-12 11:25:29 -07:00
Steve Yegge
87ed7c8793 Polish for open-source release
Major improvements to code quality, documentation, and CI:

Code Quality:
- Add golangci-lint configuration with 13 linters
- Fix unchecked error returns in export/import/init
- Refactor duplicate scanIssues code
- Add package comments for all packages
- Add const block comments for exported constants
- Configure errcheck to allow idiomatic defer patterns

Documentation:
- Add comprehensive CONTRIBUTING.md with setup, testing, and workflow
- Fix QUICKSTART.md binary name references (beads → bd)
- Correct default database path documentation

CI/CD:
- Add GitHub Actions workflow for tests and linting
- Enable race detection and coverage reporting
- Automated quality checks on all PRs

All tests passing. Lint issues reduced from 117 to 103 (remaining are
idiomatic patterns and test code). Ready for open-source release.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-12 09:41:29 -07:00