Commit Graph

1165 Commits

Author SHA1 Message Date
Steve Yegge
8fccf0df27 Merge remote changes 2025-11-01 23:45:55 -07:00
Steve Yegge
7834957105 bd sync: 2025-11-01 23:45:49 2025-11-01 23:45:49 -07:00
Steve Yegge
9d23805a26 bd sync: apply rename detection from import 2025-11-01 23:37:08 -07:00
Steve Yegge
edf1fba17a bd sync: 2025-11-01 23:37:07 2025-11-01 23:37:08 -07:00
Steve Yegge
784f7bc3bf bd sync: 2025-11-01 23:34:17 2025-11-01 23:34:17 -07:00
Steve Yegge
010525607f bd sync: 2025-11-01 23:33:09 2025-11-01 23:33:09 -07:00
Steve Yegge
ac64f9b18b bd sync: 2025-11-01 23:32:03 2025-11-01 23:32:03 -07:00
Steve Yegge
1578afff24 bd sync: apply rename detection from import 2025-11-01 23:25:56 -07:00
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
c399d177a7 Add comprehensive tests for migrations.go and batch_ops.go (bd-3b7f)
- migrations_test.go: Tests all 10 migration functions
- batch_ops_test.go: Tests batch operations and bulk helpers
- All tests passing
- Completes bd-3b7f and sqlite refactoring epic bd-fc2d

Amp-Thread-ID: https://ampcode.com/threads/T-80ad18be-cff5-46c5-9540-47b55b92b4eb
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 23:25:44 -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
cfce2b1e70 Add GitClient interface to daemonrunner/git.go for testability
Amp-Thread-ID: https://ampcode.com/threads/T-3e38fcda-411e-41db-bfe4-eba7a7771b67
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 22:56:08 -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
e9bb1ac121 test: add sqlite collision and delete test coverage
- Add collision_test.go: comprehensive ID collision handling tests
- Add delete_test.go: test soft delete, cascade, and edge cases
- Improves sqlite package coverage from 57.8% to 68.2%

Amp-Thread-ID: https://ampcode.com/threads/T-f4a96cad-a2a4-4f6f-af47-cd56700429f7
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 22:47:07 -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
98ecaec2ec AGENTS.md: Strongly recommend git hooks installation 2025-11-01 22:23:59 -07:00
Steve Yegge
9c38082cbf Add pre-push hook to prevent stale JSONL exports 2025-11-01 22:22:55 -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
7421f525fb Fix daemon race condition: prevent stale exports
- Add JSONL timestamp check in validatePreExport
- Refuse export if JSONL is newer than database
- Force daemon to import before exporting when JSONL updated
- Add test case for JSONL-newer-than-DB scenario
- Fixes bd-89e2
2025-11-01 22:01:41 -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
5fabb5fdcc Fix bd-c6cf: Force full export when export_hashes is cleared
When validateJSONLIntegrity() clears export_hashes due to hash mismatch
or missing JSONL, the subsequent export now correctly exports ALL issues
instead of only dirty ones, preventing permanent database divergence.

Changes:
- validateJSONLIntegrity() returns (needsFullExport, error) to signal when
  export_hashes was cleared
- flushToJSONL() moved integrity check BEFORE isDirty gate so integrity
  issues trigger export even when nothing is dirty
- Missing JSONL treated as non-fatal force-full-export case
- Increased scanner buffer from 64KB to 2MB to handle large JSON lines
- Added scanner.Err() check to catch buffer overflow errors
- Updated all tests to verify needsFullExport flag

Fixes database divergence issue where clearing export_hashes didn't
trigger re-export, causing 5 issues to disappear from JSONL in fred clone.

Amp-Thread-ID: https://ampcode.com/threads/T-bf2fdcd6-7bbd-4c30-b1db-746b928c93b8
Co-authored-by: Amp <amp@ampcode.com>
2025-11-01 20:29:13 -07:00
Steve Yegge
55ff80caee updated instructions 2025-11-01 20:23:46 -07:00
Steve Yegge
ed1eca9064 Add circular dependency detection to bd doctor
- Added checkDependencyCycles() function using recursive CTE
- Integrated as Check #10 in runDiagnostics()
- Reports error status with count and fix suggestion if cycles found
- Updated doctor command documentation
- Fixes bd-3e3b
2025-11-01 20:18:37 -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
3fc8922c86 Refactor daemon runtime into internal/daemonrunner package
- Extract Daemon struct with Start/Stop methods
- Create focused modules: config, daemon, rpc, sync, git, process, logger
- Move platform-specific code to separate files (signals_*.go, flock_*.go)
- Add database fingerprint validation
- Keep import logic in cmd/bd for now (TODO: extract later)
- All builds pass, most daemon tests pass

Closes bd-b5a3
2025-11-01 20:02:30 -07:00
Steve Yegge
53e340e54f Merge branch 'main' of github.com:steveyegge/beads 2025-11-01 20:02:24 -07:00