diff --git a/.beads/beads.jsonl b/.beads/beads.jsonl index 4d5b94f7..72cd6869 100644 --- a/.beads/beads.jsonl +++ b/.beads/beads.jsonl @@ -556,6 +556,7 @@ {"id":"bd-p6vp","content_hash":"1df6d3b9b438cdcdbc618c24fea48769c1f22e8a8701af4e742531d4433ca7ea","title":"Clarify .beads/.gitattributes handling in Protected Branches docs","description":"Protected Branches docs quick start leaves untracked `.beads` directory and `.gitattributes`.\nQuestion: Are these changes meant to be checked into the protected branch?\nNeed to clarify if these should be ignored or committed, or if the instructions are missing a step.\n","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-20T18:56:25.79407-05:00","updated_at":"2025-11-20T18:56:25.79407-05:00","source_repo":"."} {"id":"bd-pdjb","content_hash":"ac30f03839ef20d09a5a6c4915b8046b270ebdb564c1ee7511edc72128cd8fa0","title":"Testing \u0026 Validation","description":"Ensure reliability through comprehensive testing.","notes":"Completed comprehensive Agent Mail test coverage analysis and implementation.\n\n**Test Coverage Summary:**\n- 66 total tests across 5 files\n- 51 unit tests for HTTP adapter (0.02s)\n- 15 integration tests for multi-agent scenarios (~55s total)\n\n**New Tests Added:**\nCreated `test_multi_agent_coordination.py` (4 tests, 11s) covering:\n1. Fairness: 10 agents competing for 5 issues → exactly 1 claim per issue\n2. Notifications: End-to-end message delivery between agents\n3. Handoff: Clean reservation transfer from agent1 to agent2\n4. Idempotency: Double reserve/release by same agent\n\n**Coverage Quality:**\n✅ Collision prevention (race conditions)\n✅ Graceful degradation (7 failure modes)\n✅ TTL/expiration behavior\n✅ Multi-agent coordination\n✅ JSONL consistency\n✅ HTTP error handling\n✅ Authorization and configuration\n\n**Intentionally Skipped:**\n- Path traversal (validated elsewhere)\n- Retry policies (nice-to-have)\n- HTTPS/TLS (out of scope)\n- Slow tests (50+ agents, soak tests)\n\nSee `tests/integration/AGENT_MAIL_TEST_COVERAGE.md` for details.\n\nAll tests pass. Agent Mail integration is well-tested and reliable for multi-agent scenarios.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-11-07T22:43:00.457985-08:00","updated_at":"2025-11-08T03:09:48.253758-08:00","closed_at":"2025-11-08T02:47:34.153586-08:00","source_repo":".","dependencies":[{"issue_id":"bd-pdjb","depends_on_id":"bd-wfmw","type":"blocks","created_at":"2025-11-07T22:43:00.459403-08:00","created_by":"daemon"}]} {"id":"bd-pdwz","content_hash":"5c35a877ec5fa3af14a45a920764e7a4c289f93c427a479da7b335c068195af0","title":"Add t.Parallel() to slow hash multiclone tests","description":"Add t.Parallel() to TestHashIDs_MultiCloneConverge and TestHashIDs_IdenticalContentDedup so they run concurrently.\n\nExpected savings: ~10 seconds (from 20s to ~11s)\n\nImplementation:\n- Add t.Parallel() call at start of each test function\n- Verify tests don't share resources that would cause conflicts\n- Run tests to confirm they work in parallel\n\nFile: beads_hash_multiclone_test.go:34, :101","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-04T01:24:15.705228-08:00","updated_at":"2025-11-04T09:52:31.945545-08:00","closed_at":"2025-11-04T09:52:31.945545-08:00","source_repo":".","dependencies":[{"issue_id":"bd-pdwz","depends_on_id":"bd-l5gq","type":"blocks","created_at":"2025-11-04T01:24:15.706149-08:00","created_by":"daemon"}]} +{"id":"bd-pi7u","content_hash":"68afb41a73129782a2f0c22d98a1bb04ecaf1adf059dc183849a0b731e65fd8d","title":"Fix TestAddCommentUpdatesTimestamp timing flake on Windows","description":"The TestAddCommentUpdatesTimestamp test fails on Windows due to insufficient time resolution between creating an issue and adding a comment. The test expects updated_at to be strictly after the original timestamp, but on Windows both operations can complete within the same time unit, causing them to have identical timestamps.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-23T10:56:40.575897-08:00","updated_at":"2025-11-23T10:57:20.956211-08:00","closed_at":"2025-11-23T10:57:20.956211-08:00","source_repo":"."} {"id":"bd-pmuu","content_hash":"5e55fb75f647ecdcf928497d05c0263a5db7baf1d1d47e8b4074ca02766672ba","title":"Create architecture decision record (ADR)","description":"Document why we chose Agent Mail, alternatives considered, and tradeoffs.\n\nAcceptance Criteria:\n- Problem statement (git traffic, no locks)\n- Alternatives considered (custom RPC, Redis, etc.)\n- Why Agent Mail fits Beads\n- Integration principles (optional, graceful degradation)\n- Future considerations\n\nFile: docs/adr/002-agent-mail-integration.md","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-07T22:42:51.420203-08:00","updated_at":"2025-11-08T00:06:01.816892-08:00","closed_at":"2025-11-08T00:06:01.816892-08:00","source_repo":".","dependencies":[{"issue_id":"bd-pmuu","depends_on_id":"bd-spmx","type":"parent-child","created_at":"2025-11-08T00:02:47.93119-08:00","created_by":"daemon"}]} {"id":"bd-poh9","content_hash":"a8cb703915a08abe2c2123e49a46d768e5a6aefee0ab7c4d9174749d538cfa56","title":"Complete and commit beads-mcp type safety improvements","description":"Uncommitted type safety work in beads-mcp needs review and completion","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-20T19:23:32.8516-05:00","updated_at":"2025-11-20T19:27:00.88849-05:00","closed_at":"2025-11-20T19:27:00.88849-05:00","source_repo":"."} {"id":"bd-q13h","content_hash":"ad443aa59b317e5900e1c0e3a083d693c699c44f8582a6bfdf6c0d93f909e40c","title":"Makefile Integration for Benchmarks","description":"Add a single 'bench' target to the Makefile for running performance benchmarks.\n\nTarget:\n.PHONY: bench\n\nbench:\n\tgo test -bench=. -benchtime=3s -tags=bench \\\n\t\t-cpuprofile=cpu.prof -memprofile=mem.prof \\\n\t\t./internal/storage/sqlite/\n\t@echo \"\"\n\t@echo \"Profiles generated. View flamegraph:\"\n\t@echo \" go tool pprof -http=:8080 cpu.prof\"\n\nFeatures:\n- Single simple target, no complexity\n- Always generates CPU and memory profiles\n- Clear output on how to view results\n- 3 second benchmark time for reliable results\n- Uses bench build tag for heavy benchmarks\n\nUsage:\n make bench # Run all benchmarks\n go test -bench=BenchmarkGetReadyWork... # Run specific benchmark","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-13T22:23:25.922916-08:00","updated_at":"2025-11-14T08:55:17.620824-08:00","closed_at":"2025-11-14T08:55:17.620824-08:00","source_repo":".","dependencies":[{"issue_id":"bd-q13h","depends_on_id":"bd-zj8e","type":"blocks","created_at":"2025-11-13T22:24:06.371947-08:00","created_by":"daemon"}]} diff --git a/internal/storage/sqlite/events_test.go b/internal/storage/sqlite/events_test.go index af7b66d5..af772b90 100644 --- a/internal/storage/sqlite/events_test.go +++ b/internal/storage/sqlite/events_test.go @@ -4,6 +4,7 @@ import ( "context" "strings" "testing" + "time" "github.com/steveyegge/beads/internal/types" ) @@ -253,6 +254,10 @@ func TestAddCommentUpdatesTimestamp(t *testing.T) { originalUpdatedAt := issue.UpdatedAt + // Sleep briefly to ensure timestamp difference on systems with low time resolution (e.g., Windows) + // This prevents flaky test failures when both operations complete in the same millisecond + time.Sleep(2 * time.Millisecond) + // Add comment err = store.AddComment(ctx, issue.ID, "alice", "Test comment") if err != nil {