Commit Graph

1655 Commits

Author SHA1 Message Date
Steve Yegge
b9607e1814 Update JSONL after closing bd-4b6u
Amp-Thread-ID: https://ampcode.com/threads/T-645ccbf4-a5b6-44a1-bbd9-913447e17b49
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 19:54:00 -08:00
Steve Yegge
e73f89edbe Add multi-repo patterns documentation for AI agents (bd-4b6u)
- Create docs/MULTI_REPO_AGENTS.md with comprehensive multi-repo patterns
- Document config options, routing behavior, troubleshooting, best practices
- Update AGENTS.md to reference new doc
- Update README.md documentation index

Amp-Thread-ID: https://ampcode.com/threads/T-645ccbf4-a5b6-44a1-bbd9-913447e17b49
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 19:53:29 -08:00
Steve Yegge
6960feb93d Update beads.jsonl (bd-bc2c6191 closed) 2025-11-06 19:51:31 -08:00
Steve Yegge
ac1752d87d Complete cache audit (bd-bc2c6191)
- Created CACHE_AUDIT.md with comprehensive findings
- Confirmed cache was already removed in commit 322ab63
- Fixed stale comment in internal/rpc/server.go
- All tests passing, MCP multi-repo working correctly
- Closed bd-bc2c6191

Amp-Thread-ID: https://ampcode.com/threads/T-c1286278-b1ff-4b8a-b090-2b3a1c38c9dd
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 19:51:16 -08:00
Steve Yegge
59e0238c48 Ignore snapshot metadata files 2025-11-06 19:43:37 -08:00
Steve Yegge
b15d4c7340 Update bd JSONL 2025-11-06 19:42:48 -08:00
Steve Yegge
eb30e94220 Configure beads merge driver for intelligent JSONL merging 2025-11-06 19:42:32 -08:00
Steve Yegge
99acd03e32 Update beads.jsonl (close bd-iov0, bd-aec5439f, bd-fd8753d9)
Amp-Thread-ID: https://ampcode.com/threads/T-71887707-4d93-4070-869e-b46b32ab8b6a
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 19:42:27 -08:00
Steve Yegge
2c0102048a Merge branch 'main' of github.com:steveyegge/beads 2025-11-06 19:42:06 -08:00
Steve Yegge
9c3ab7fba9 Document -short flag, update linting baseline, clarify bd edit MCP exclusion
- Enhanced CONTRIBUTING.md with -short flag usage guidance
- Updated LINTING.md: 22 issues baseline (down from 34)
- Added MCP exclusion note for bd edit command in AGENTS.md

Closes bd-iov0, bd-aec5439f, bd-fd8753d9
2025-11-06 19:42:01 -08:00
Steve Yegge
20eafa103a Merge branch 'main' of github.com:steveyegge/beads
# Conflicts:
#	.beads/beads.jsonl
2025-11-06 19:41:52 -08:00
Steve Yegge
7afb1439f2 Cache getMultiRepoJSONLPaths() to avoid redundant calls (bd-we4p)
- Call getMultiRepoJSONLPaths() once at sync start instead of 3 times
- Eliminates redundant config lookups and path constructions
- Performance optimization for multi-repo workflows
2025-11-06 19:41:38 -08:00
Steve Yegge
5c1f441c2a Fix bd-ng56: add raw string equality short-circuit before jsonEquals
Optimization to avoid JSON unmarshalling when strings match exactly (common case).
Simple 1-line change instead of complex streaming rewrite for P3 issue.
2025-11-06 19:41:27 -08:00
Steve Yegge
581294f98b bd sync: 2025-11-06 19:40:52 2025-11-06 19:40:52 -08:00
Steve Yegge
244367c351 Update bd JSONL 2025-11-06 19:37:54 -08:00
Steve Yegge
729ab60ef5 Update beads.jsonl - close bd-2997 2025-11-06 19:36:32 -08:00
Steve Yegge
a891ebe79e Add snapshot versioning and timestamp validation (bd-2997)
- Add snapshotMetadata struct with version, timestamp, commit SHA
- Validate snapshots are <1 hour old, from compatible version
- Auto-cleanup stale snapshots from interrupted syncs
- All snapshot functions now write/validate metadata files
- Fixes issue where crash/kill -9 left stale snapshots
2025-11-06 19:36:13 -08:00
Steve Yegge
621ffdb594 Update beads.jsonl (close bd-irq6)
Amp-Thread-ID: https://ampcode.com/threads/T-71887707-4d93-4070-869e-b46b32ab8b6a
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 19:36:06 -08:00
Steve Yegge
a7ec8a2eaa Remove unused internal/daemonrunner/ package (~1,500 LOC)
Removed old global daemon infrastructure that was replaced by per-workspace
daemon architecture. Package had no imports and all functions were unreachable.

Closes bd-irq6
2025-11-06 19:35:43 -08:00
Steve Yegge
7672473bbd Update bd JSONL 2025-11-06 19:25:03 -08:00
Steve Yegge
fb17b4286d Update issue metadata for bd-rb75 and bd-6ku3 closures 2025-11-06 19:23:45 -08:00
Steve Yegge
807e48966a Merge remote changes and fix isHashID for Base36 2025-11-06 19:23:06 -08:00
Steve Yegge
c9247312df Fix bd-6ku3: Update isHashID to recognize Base36 hash IDs
- Changed pattern from [a-f] (hex) to [a-z] (Base36)
- Added length check: 5+ chars = hash ID (sequential IDs rarely exceed 4 digits)
- Fixes test failure where all-digit Base36 IDs were incorrectly identified as sequential
2025-11-06 19:22:12 -08:00
Steve Yegge
6e182fa32f Update bd JSONL 2025-11-06 19:21:17 -08:00
Steve Yegge
47185830bb Fix bd-4oob: Add multi-repo deletion tracking support
- Added getMultiRepoJSONLPaths() helper to enumerate all JSONL files
- Updated daemon_sync.go to capture/update snapshots for each repo
- Added TestMultiRepoDeletionTracking to verify fix
- Added TestMultiRepoSnapshotIsolation for isolation guarantees

Previously, deletion tracking only worked for single-repo mode because
snapshot operations were hardcoded to the primary JSONL path. This fix
ensures snapshots are managed per-repository in multi-repo mode.
2025-11-06 19:21:11 -08:00
Steve Yegge
7726d6207e Update beads database after closing bd-1fkr
Amp-Thread-ID: https://ampcode.com/threads/T-11b30d1f-1dbf-4bf1-b3ef-866ff6f75662
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 19:17:21 -08:00
Steve Yegge
e291ee078e Fix storage backend extensibility by adding DeleteIssue to Storage interface
- Added DeleteIssue to Storage interface
- Implemented DeleteIssue in MemoryStorage backend
- Removed brittle type assertion from deletion_tracking.go
- Closes bd-1fkr
2025-11-06 19:17:06 -08:00
Steve Yegge
f61f8dd2ba bd sync: apply DB changes after import 2025-11-06 19:16:50 -08:00
Steve Yegge
7c124835bf Merge branch 'main' of github.com:steveyegge/beads 2025-11-06 19:16:48 -08:00
Steve Yegge
d6cc42d7b1 bd sync: 2025-11-06 19:16:47 2025-11-06 19:16:47 -08:00
Steve Yegge
ba71874cac Update beads JSONL (timestamp updates from daemon) 2025-11-06 19:15:03 -08:00
Steve Yegge
055f1d9c1e Fix isHashID to handle hash IDs without letters a-f
The previous implementation required hash IDs to contain letters a-f,
but SHA256 hashes can be all digits (probability ~2.4%). This caused
TestMigrateHashIDs to fail when the generated hash ID was all numeric.

Updated isHashID to:
- Strip hierarchical suffixes (.1, .1.2) before checking
- Accept any valid hex string (0-9, a-f)
- Distinguish hash IDs by presence of letters a-f

Fixes bd-6ku3
2025-11-06 19:14:49 -08:00
Steve Yegge
41b1a21206 Fix bd-rb75: Ignore merge artifacts in .beads/.gitignore 2025-11-06 19:14:04 -08:00
Steve Yegge
a0d24f37af Fix bd-1ezg: Prevent import/export from hanging when daemon is running
Root cause: Import and export commands tried to open the database directly
while the daemon already held the lock, causing indefinite blocking.

Solution: Both commands now explicitly close the daemon connection before
opening direct database access, avoiding SQLite lock contention.

Changes:
- import.go: Close daemon connection and open direct SQLite connection
- export.go: Close daemon connection before direct access
- Added debug logging to help diagnose similar issues

Tests: Existing TestImport and TestExport tests pass
2025-11-06 19:07:46 -08:00
Steve Yegge
d2d31766e6 bd sync: 2025-11-06 19:07:35 2025-11-06 19:07:35 -08:00
Steve Yegge
746961efd2 Merge branch 'main' of github.com:steveyegge/beads
# Conflicts:
#	.beads/beads.jsonl
2025-11-06 19:07:31 -08:00
Steve Yegge
d6c2550579 bd sync: 2025-11-06 19:07:19 2025-11-06 19:07:19 -08:00
Steve Yegge
0b0d9a43d1 Improve bd-my64 fix based on oracle review
Oracle identified a critical race condition in the initial fix:
- Pre-push hook checked for changes but didn't flush first
- Pending 5s-debounced flushes could land after the check
- Result: stale JSONL could still be pushed

Improvements:
1. Pre-push now flushes pending changes FIRST (bd sync --flush-only)
2. Uses git status --porcelain to catch ALL change types:
   - Staged, unstaged, untracked, deleted, renamed, conflicts
3. Handles both beads.jsonl and issues.jsonl (backward compat)
4. Works even without bd installed (git-only check)
5. Pre-commit stages both JSONL files (simpler loop)

This completely eliminates the race condition.
2025-11-06 19:01:28 -08:00
Steve Yegge
4460ede3a7 Remove dead issues.jsonl and add bd-1ezg sync investigation issue 2025-11-06 19:01:03 -08:00
Steve Yegge
ff1f25ea63 Update beads JSONL 2025-11-06 18:57:52 -08:00
Steve Yegge
3ba245e6c0 Fix bd-my64: Pre-push hook blocks instead of exports
The original pre-push hook tried to export DB → JSONL during the push,
then run 'git add', but this doesn't work because:

1. The commit is already created when pre-push runs
2. git add in pre-push stages files for a FUTURE commit
3. The current push sends the old commit with stale JSONL
4. Result: dirty git status after push

Fix:
- Pre-push now CHECKS for uncommitted JSONL changes
- If found, it FAILS the push with clear instructions
- User must commit JSONL before pushing
- This prevents stale JSONL from reaching remote

The pre-commit hook already properly flushes changes, so this
catch-all prevents changes made BETWEEN commit and push.

Amp-Thread-ID: https://ampcode.com/threads/T-39a89553-c301-4d4f-b39f-6df9c403d22b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 18:57:34 -08:00
Steve Yegge
2cb97e4d22 Update beads JSONL 2025-11-06 18:53:07 -08:00
Steve Yegge
bae701af13 Add bd-6ku3: Fix TestMigrateHashIDs test failure 2025-11-06 18:53:02 -08:00
Steve Yegge
7eea30acde Update beads JSONL
Amp-Thread-ID: https://ampcode.com/threads/T-65a9b3f9-0552-4587-bb8f-34c2b98781b1
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 18:52:37 -08:00
Steve Yegge
96269763c0 Update beads database with comments 2025-11-06 18:49:46 -08:00
Steve Yegge
e85740167b Sync beads database
Amp-Thread-ID: https://ampcode.com/threads/T-dc29c5ad-ff33-401a-9546-4d5ca1d8421b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 18:49:31 -08:00
Steve Yegge
510934ff19 bd sync: 2025-11-06 18:49:09 2025-11-06 18:49:09 -08:00
Steve Yegge
1edf3c6c88 Fix bd-9v7l: bd status now uses git history for recent activity
- Changed from database timestamps (7 days) to git log analysis (24 hours)
- Git log is fast (~24ms) and reflects actual JSONL changes
- Shows commits, total changes, created/closed/reopened/updated counts
- Updated tests to verify git-based activity tracking
- Removed misleading database-based getRecentActivity function

Amp-Thread-ID: https://ampcode.com/threads/T-dc29c5ad-ff33-401a-9546-4d5ca1d8421b
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 18:49:07 -08:00
Steve Yegge
c731c45f0c Update beads JSONL
Amp-Thread-ID: https://ampcode.com/threads/T-5e744954-8a08-4697-960e-5f2a88d50c54
Co-authored-by: Amp <amp@ampcode.com>
2025-11-06 18:48:53 -08:00
Steve Yegge
b23c472f55 Update AGENTS.md: use -short flag for all local tests
- Changed all test commands to 'go test -short ./...'
- Clarified that full tests run in CI
- Updated: Code Standards, Before Committing, Landing the Plane, Building and Testing, Release Process
- Agents should only run short tests; CI runs full suite
2025-11-06 18:48:23 -08:00