Commit Graph

681 Commits

Author SHA1 Message Date
Steve Yegge
9e7a2dfd4e Merge branch 'main' of github.com:steveyegge/beads 2025-11-01 23:25:55 -07:00
Steve Yegge
6ec5fc1273 bd sync: 2025-11-01 23:25:54 2025-11-01 23:25:54 -07:00
Steve Yegge
83f04c9662 bd sync: 2025-11-01 23:25:13 2025-11-01 23:25:13 -07:00
Steve Yegge
88fd7b2bc2 Improve git operations: use --ff-only for pull, make commit idempotent 2025-11-01 23:00:25 -07:00
Steve Yegge
2615c72fc9 Merge remote changes 2025-11-01 22:56:21 -07:00
Steve Yegge
988521d668 bd sync: 2025-11-01 22:56:11 2025-11-01 22:56:11 -07:00
Steve Yegge
9c62d548b6 bd sync: 2025-11-01 22:53:45 2025-11-01 22:53:45 -07:00
Steve Yegge
1849ffe17a test: add comprehensive Comments API tests (bd-d68f)
- Test AddIssueComment basic functionality
- Test GetIssueComments retrieval and ordering
- Test edge cases (empty, nonexistent issues)
- Test dirty flag marking
- Test comment isolation across issues

Improves sqlite package coverage: 69.1% → 70.6%
2025-11-01 22:53:38 -07:00
Steve Yegge
d86f359e63 fix: DetectCycles SQL bug and add comprehensive tests
- Fix SQL query bug preventing cycle detection (bd-9f20)
  - Allow revisiting start node to complete cycle
  - Remove duplicate start_id concatenation in final SELECT
- Add cycle_detection_test.go with comprehensive test coverage (bd-cdf7)
  - Simple 2-node cycles
  - Complex multi-node cycles (4-node, 10-node)
  - Self-loops
  - Multiple independent cycles
  - Acyclic graphs (diamond, chain)
  - Empty graph and single node edge cases
  - Mixed dependency types

Improves sqlite package coverage: 68.2% → 69.1%
2025-11-01 22:51:58 -07:00
Steve Yegge
39b49ca4b6 bd sync: 2025-11-01 22:41:02 2025-11-01 22:41:02 -07:00
Steve Yegge
27940878cf bd sync: apply rename detection from import 2025-11-01 22:39:39 -07:00
Steve Yegge
7a47e4d108 Merge branch 'main' of github.com:steveyegge/beads 2025-11-01 22:39:38 -07:00
Steve Yegge
440d9bf913 bd sync: 2025-11-01 22:39:37 2025-11-01 22:39:37 -07:00
Steve Yegge
123a0faa8b bd sync: 2025-11-01 22:34:01 2025-11-01 22:34:01 -07:00
Steve Yegge
6ef3ba1d49 bd sync: 2025-11-01 22:21:05 2025-11-01 22:21:05 -07:00
Steve Yegge
14f28020c6 Sync databases after daemon race condition fix 2025-11-01 22:20:32 -07:00
Steve Yegge
43ed423575 bd sync: 2025-11-01 22:20:19 2025-11-01 22:20:19 -07:00
Steve Yegge
50edb7349e bd sync: 2025-11-01 22:18:58 2025-11-01 22:18:58 -07:00
Steve Yegge
05b2d2bdbb bd sync: 2025-11-01 22:01:47 2025-11-01 22:01:47 -07:00
Steve Yegge
7c1ff833f4 bd sync: 2025-11-01 22:01:28 2025-11-01 22:01:41 -07:00
Steve Yegge
8cc1bb4e24 bd sync: 2025-11-01 21:49:42 2025-11-01 21:49:42 -07:00
Steve Yegge
839a4877e8 Close bd-5f26: daemon.go refactoring complete 2025-11-01 21:46:50 -07:00
Steve Yegge
ce4d7564f9 bd sync: 2025-11-01 21:45:12 2025-11-01 21:45:12 -07:00
Steve Yegge
5d046d29c7 Sync JSONL from main repo to converge databases 2025-11-01 21:33:28 -07:00
Steve Yegge
ba886698a5 bd sync: manual export to fix divergence 2025-11-01 21:29:51 -07:00
Steve Yegge
6e8907335f Add test coverage for daemon lifecycle and config modules
- Add config_test.go: tests for daemon configuration (local/global, sync behavior)
- Add daemon_test.go: tests for daemon lifecycle (creation, shutdown, database path resolution)
- Add process_test.go: tests for daemon lock acquisition and release
- Closes bd-2b34.6, bd-2b34.7

Amp-Thread-ID: https://ampcode.com/threads/T-4419d1ab-4105-4e75-bea8-1837ee80e2c2
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 21:27:09 -07:00
Steve Yegge
8a76b52cfc Merge branch 'main' of github.com:steveyegge/beads 2025-11-01 20:29:24 -07:00
Steve Yegge
c83560ddd1 bd sync: 2025-11-01 20:29:22 2025-11-01 20:29:23 -07:00
Steve Yegge
b0bbe449a1 bd sync: 2025-11-01 20:18:26 2025-11-01 20:18:37 -07:00
Steve Yegge
0c1738c976 bd sync: 2025-11-01 20:11:52 2025-11-01 20:11:52 -07:00
Steve Yegge
daef76d837 bd sync: 2025-11-01 20:11:00 2025-11-01 20:11:08 -07:00
Steve Yegge
6076651d28 bd sync: 2025-11-01 20:02:23 2025-11-01 20:02:23 -07:00
Steve Yegge
b5db80c412 Refactor sqlite.go: Extract hash IDs, batch ops, validators (bd-90a5, bd-c796, bd-d9e0)
- Extract hash ID generation to hash_ids.go (bd-90a5)
  - generateHashID, getNextChildNumber, GetNextChildID
  - Reduced sqlite.go from 1880 to 1799 lines

- Extract batch operations to batch_ops.go (bd-c796)
  - validateBatchIssues, generateBatchIDs, bulkInsertIssues
  - bulkRecordEvents, bulkMarkDirty, CreateIssues
  - Reduced sqlite.go from 1799 to 1511 lines

- Extract validation functions to validators.go (bd-d9e0)
  - validatePriority, validateStatus, validateIssueType
  - validateTitle, validateEstimatedMinutes, validateFieldUpdate
  - Reduced sqlite.go from 1511 to 1447 lines

- Add comprehensive validator tests (bd-3b7f)
  - validators_test.go with full coverage

Total reduction: 2298 → 1447 lines (851 lines extracted, 37% reduction)

Part of epic bd-fc2d to modularize sqlite.go
All tests pass

Amp-Thread-ID: https://ampcode.com/threads/T-09c4383b-bc5c-455e-be24-02b4f9df7d78
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 19:55:48 -07:00
Steve Yegge
537844cb11 Fix bd-36870264: Prevent nested .beads directories with path canonicalization
- Add filepath.Abs() + EvalSymlinks() to FindDatabasePath() to normalize all database paths
- Add nested .beads directory detection in setupDaemonLock() with helpful error messages
- Prevents infinite .beads/.beads/.beads/ recursion when using relative BEADS_DB paths
- All acceptance criteria passed: singleton enforcement, lock release, no recursion

Amp-Thread-ID: https://ampcode.com/threads/T-c7fc78b8-a935-48dc-8453-a1bd47a14f72
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 19:50:34 -07:00
Steve Yegge
ce9a5164f7 Close daemon refactoring tasks and create sqlite.go refactor epic 2025-11-01 19:33:53 -07:00
Steve Yegge
3733b12f7b bd sync: 2025-11-01 19:29:40 2025-11-01 19:29:40 -07:00
Steve Yegge
a4b9ae5fcf bd sync: 2025-11-01 19:28:32 2025-11-01 19:28:32 -07:00
Steve Yegge
72c4c908db bd sync: 2025-11-01 19:20:28 2025-11-01 19:20:28 -07:00
Steve Yegge
eb00ab8005 Refactor daemon.go for testability and maintainability (bd-2b34)
- Split 1567-line daemon.go into 5 focused modules
- daemon_config.go (122 lines): config/path resolution
- daemon_lifecycle.go (451 lines): start/stop/status/health/metrics
- daemon_sync.go (510 lines): export/import/sync logic
- daemon_server.go (115 lines): RPC server setup
- daemon_logger.go (43 lines): logging utilities
- Reduced main daemon.go to 389 lines (75% reduction)
- All tests pass, improved code organization

Amp-Thread-ID: https://ampcode.com/threads/T-7504c501-f962-4b82-a6d9-8e33f547757d
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 19:20:01 -07:00
Steve Yegge
4879b1a8c4 bd sync: 2025-11-01 19:14:04 2025-11-01 19:14:04 -07:00
Steve Yegge
87c60d1f43 bd sync: 2025-11-01 17:05:41 2025-11-01 17:05:41 -07:00
Steve Yegge
965e6af705 bd sync: 2025-11-01 16:56:12 2025-11-01 16:56:12 -07:00
Steve Yegge
1bdf6e0fbe bd sync: 2025-11-01 12:24:02 2025-11-01 12:24:02 -07:00
Steve Yegge
94f2dc1198 WIP: Extract daemon runtime into internal/daemonrunner
- Created config.go with Config struct
- Created daemon.go with Daemon struct and Start/Stop methods
- Created logger.go for logging setup
- Created process.go for lock/PID management
- Created fingerprint.go for database validation
- Created flock_unix.go/flock_windows.go for platform-specific locking
- Created git.go for git operations

Still TODO:
- Implement runGlobalDaemon, startRPCServer, runSyncLoop
- Create sync.go, rpc.go, jsonl.go, validation.go
- Update cmd/bd/daemon.go to use daemonrunner

Part of bd-5f26
2025-11-01 11:47:41 -07:00
Steve Yegge
95560dc6e8 Add refactoring issues for sqlite.go and daemon.go 2025-11-01 11:41:29 -07:00
Steve Yegge
48469585b4 Close bd-2530 and bd-373c 2025-11-01 11:16:25 -07:00
Steve Yegge
d163b797e0 bd sync: 2025-11-01 11:07:43 2025-11-01 11:07:43 -07:00
Steve Yegge
fc2213dfe4 Auto-sync beads database 2025-10-31 23:46:56 -07:00
Steve Yegge
5d64c09237 bd sync: 2025-10-31 23:04:08 2025-10-31 23:04:08 -07:00
Steve Yegge
cc7918daf4 Implement bd stale command (bd-c01f, closes #184)
- Add bd stale command to find abandoned/forgotten issues
- Support --days (default 30), --status, --limit, --json flags
- Implement GetStaleIssues in SQLite and Memory storage
- Add full RPC/daemon support
- Comprehensive test suite (6 tests, all passing)
- Update AGENTS.md documentation

Resolves GitHub issue #184

Amp-Thread-ID: https://ampcode.com/threads/T-f021ddb8-54e3-41bf-ba7a-071749663c1d
Co-authored-by: Amp <amp@ampcode.com>
2025-10-31 23:03:56 -07:00