bd daemon sync: 2026-01-08 14:30:50
This commit is contained in:
@@ -1331,7 +1331,7 @@
|
||||
{"id":"bd-mv6h","title":"Add test coverage for external dep edge cases","description":"During code review of bd-zmmy, identified missing test coverage:\n\n1. RemoveDependency with external ref target (will fail - see bd-a3sj)\n2. GetBlockedIssues with mix of local and external blockers\n3. GetDependencyTree with external deps\n4. AddDependency cycle detection with external refs (should be skipped?)\n5. External dep resolution with WAL mode database\n6. External dep resolution when target project has no .beads directory\n7. External dep resolution with invalid external: format variations\n\nPriority 2 because bd-a3sj is a real bug that tests would catch.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-21T23:45:37.50093-08:00","updated_at":"2025-12-22T22:32:09.515096-08:00","closed_at":"2025-12-22T22:32:09.515096-08:00","dependencies":[{"issue_id":"bd-mv6h","depends_on_id":"bd-zmmy","type":"discovered-from","created_at":"2025-12-21T23:45:37.501495-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-mwl7","title":"Mol Mall: Formula marketplace using GitHub as backend","description":"Create a marketplace for sharing molecule formulas using GitHub repos as the hosting backend.\n\n## Why GitHub?\n\nGitHub solves multiple problems at once:\n- **Hosting**: Raw file URLs for formula.json\n- **Versioning**: Git tags (v1.0.0, v1.2.0)\n- **Auth**: GitHub tokens for private formulas\n- **Discovery**: GitHub search, topics, stars\n- **Collaboration**: PRs for contributions, issues for bugs\n- **Organizations**: Natural scoping (@anthropic/, @gastown/)\n\n## URL Scheme\n\n```bash\n# Direct GitHub URL\nbd mol install github.com/anthropics/mol-code-review\n\n# With version tag\nbd mol install github.com/anthropics/mol-code-review@v1.2.0\n\n# Shorthand (via registry lookup)\nbd mol install @anthropic/mol-code-review\n```\n\n## Architecture\n\n### Distributed Model (like Go modules)\nEach formula lives in its own repo:\n```\ngithub.com/anthropics/mol-code-review/\n├── formula.json # The formula\n├── README.md # Documentation\n└── CHANGELOG.md # Version history\n```\n\n### Optional Registry (for discovery)\n```\ngithub.com/anthropics/mol-mall/\n└── registry.json # Index pointing to formula repos\n```\n\n## Child Issues\n\n1. `bd mol export` - Proto → Formula file\n2. `bd mol promote` - Distilled proto → Catalog proto (one step)\n3. `bd mol install` - GitHub → Local proto\n4. `bd mol update` - Check for newer versions\n5. `bd mol search` - Find formulas (GitHub API)\n6. `bd mol publish` - Push formula to GitHub repo\n7. Formula versioning - Version field + git tag integration\n8. Installation tracking - .beads/installed.json\n\n## ID Namespace Design\n\n| Entity | ID Format | Example |\n|--------|-----------|---------|\n| Formula (GitHub) | `github.com/org/repo` | `github.com/anthropics/mol-code-review` |\n| Catalog proto (local) | `mol-name` | `mol-code-review` |\n| Distilled proto | `\u003cdb\u003e-proto-xxx` | `bd-proto-a7f` |\n| Poured instance | `\u003cdb\u003e-mol-xxx` | `gt-mol-b8c` |\n| Wisp instance | `\u003cdb\u003e-wisp-xxx` | `hq-wisp-d9e` |\n","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-25T12:05:05.848017-08:00","updated_at":"2025-12-25T12:09:39.767832-08:00","closed_at":"2025-12-25T12:09:39.767832-08:00"}
|
||||
{"id":"bd-my64","title":"Pre-push hook and daemon export produce different JSONL","description":"After committing and pushing, git status shows .beads/beads.jsonl as dirty. Investigation shows:\n\n1. Pre-push hook ran successfully and exported DB → JSONL\n2. Push completed\n3. Shortly after, daemon exported DB → JSONL again with different content\n4. Diff shows comments added to old issues (bd-23a8, bd-6049, bd-87a0)\n\nTimeline:\n- Commit c731c45 \"Update beads JSONL\"\n- Pre-push hook exported JSONL\n- Push succeeded\n- Daemon PID 33314 exported again with different content\n\nQuestions:\n1. Did someone run a command between commit and daemon export?\n2. Is there a timing issue where pre-push hook doesn't capture all DB changes?\n3. Should pre-commit hook flush daemon changes before committing?\n\nThe comments appear to be from Nov 5 (created_at: 2025-11-05T08:38:46Z) but are only appearing in JSONL now. This suggests the DB had these comments but they weren't exported during pre-push.\n\nPossible causes:\n- Pre-push hook uses BEADS_NO_DAEMON=1 which might skip pending writes\n- Daemon has unflushed changes in memory\n- Race condition between pre-push export and daemon's periodic export","notes":"Improved fix based on oracle code review:\n1. Pre-push now flushes pending changes first (prevents debounce race)\n2. Uses git status --porcelain to catch all change types\n3. Handles both beads.jsonl and issues.jsonl\n4. Works even if bd not installed (git-only check)","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-06T18:49:54.570993-08:00","updated_at":"2025-11-06T19:01:14.549032-08:00","closed_at":"2025-11-06T18:57:42.710282-08:00"}
|
||||
{"id":"bd-mydeg","title":"Review PR #961: Fix daemon JSON output for dep","description":"Review and verify PR #961 (steveyegge/beads)\n\nPR: https://github.com/steveyegge/beads/pull/961\nAuthor: peterkc\n\nFixes bd dep add/remove --json returning empty output in daemon mode.\n- gh pr view 961 --repo steveyegge/beads\n- gh pr diff 961 --repo steveyegge/beads\n- If good: gh pr merge 961 --repo steveyegge/beads --squash","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-08T14:30:22.804372-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-08T14:30:22.804372-08:00"}
|
||||
{"id":"bd-mydeg","title":"Review PR #961: Fix daemon JSON output for dep","description":"dispatched_by: beads/crew/emma\n\nReview and verify PR #961 (steveyegge/beads)\n\nPR: https://github.com/steveyegge/beads/pull/961\nAuthor: peterkc\n\nFixes bd dep add/remove --json returning empty output in daemon mode.\n- gh pr view 961 --repo steveyegge/beads\n- gh pr diff 961 --repo steveyegge/beads\n- If good: gh pr merge 961 --repo steveyegge/beads --squash","status":"hooked","priority":2,"issue_type":"task","assignee":"beads/crew/fang","created_at":"2026-01-08T14:30:22.804372-08:00","created_by":"beads/crew/emma","updated_at":"2026-01-08T14:30:49.730767-08:00"}
|
||||
{"id":"bd-mypl","title":"Default bd list to non-closed issues","description":"Change bd list default from showing all issues to showing only actionable issues (open, in_progress, blocked, deferred). This addresses GH#788 where agents get context blown out by closed issues.\n\nCurrent: bd list shows everything including closed\nProposed: bd list shows non-closed by default\n\nThis is the core fix - other enhancements depend on this change.","notes":"## Implementation Plan\n\n### Code Changes (cmd/bd/list.go)\n\n1. **Add new filter logic in Run function** (~line 393-399):\n```go\n// Default to non-closed if no status filter specified\nif status == \"\" \u0026\u0026 \\!cmd.Flags().Changed(\"all\") {\n // Show actionable issues by default (GH#788)\n filter.ExcludeStatus = []types.Status{\"closed\"}\n}\n```\n\n2. **Need to add ExcludeStatus to IssueFilter** (internal/types/types.go):\n```go\ntype IssueFilter struct {\n // ... existing fields ...\n ExcludeStatus []Status // Exclude these statuses\n}\n```\n\n3. **Update SearchIssues query** (internal/storage/sqlite/issues.go):\n```go\nif len(filter.ExcludeStatus) \u003e 0 {\n placeholders := make([]string, len(filter.ExcludeStatus))\n for i, s := range filter.ExcludeStatus {\n placeholders[i] = \"?\"\n args = append(args, string(s))\n }\n conditions = append(conditions, \n fmt.Sprintf(\"status NOT IN (%s)\", strings.Join(placeholders, \",\")))\n}\n```\n\n### Testing\n- Verify `bd list` shows open, in_progress, blocked, deferred (not closed)\n- Verify `bd list --status=closed` still works\n- Verify `bd list --all` shows everything (requires bd-34q1)\n\n### Backwards Compatibility\n- Scripts using `bd list | grep` may get fewer results\n- Document in changelog: \"bd list now defaults to non-closed issues\"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-29T15:25:06.38667-08:00","created_by":"stevey","updated_at":"2025-12-29T17:53:30.217188-08:00","closed_at":"2025-12-29T17:53:30.217188-08:00","close_reason":"Implemented in single commit","labels":["gh:788"]}
|
||||
{"id":"bd-n0l8j","title":"Session ended: gt-beads-crew-fang","status":"closed","priority":2,"issue_type":"event","created_at":"2026-01-07T21:42:10.708451-08:00","created_by":"beads/crew/fang","updated_at":"2026-01-07T21:42:15.897669-08:00","closed_at":"2026-01-07T21:42:15.897669-08:00","close_reason":"auto-closed session event"}
|
||||
{"id":"bd-n25","title":"Speed up main_test.go - tests hang indefinitely due to nil rootCtx","description":"## Problem\n\nmain_test.go tests are hanging indefinitely, making them unusable and blocking development.\n\n## Root Cause\n\nTests that call flushToJSONL() or autoImportIfNewer() hang forever because:\n- rootCtx is nil in test environment (defined in cmd/bd/main.go:67)\n- flushToJSONL() uses rootCtx for DB operations (autoflush.go:503)\n- When rootCtx is nil, DB calls timeout/hang indefinitely\n\n## Affected Tests (10+)\n\n- TestAutoFlushOnExit\n- TestAutoFlushJSONLContent \n- TestAutoFlushErrorHandling\n- TestAutoImportIfNewer\n- TestAutoImportDisabled\n- TestAutoImportWithUpdate\n- TestAutoImportNoUpdate\n- TestAutoImportMergeConflict\n- TestAutoImportConflictMarkerFalsePositive\n- TestAutoImportClosedAtInvariant\n\n## Proof\n\n```bash\n# Before fix: TestAutoFlushJSONLContent HANGS (killed after 2+ min)\n# After adding rootCtx init: Completes in 0.04s\n# Speedup: ∞ → 0.04s\n```\n\n## Solution\n\nSee MAIN_TEST_OPTIMIZATION_PLAN.md for complete fix plan.\n\n**Quick Fix (5 min)**: Add to each hanging test:\n```go\nctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)\ndefer cancel()\noldRootCtx := rootCtx\nrootCtx = ctx\ndefer func() { rootCtx = oldRootCtx }()\n```\n\n**Full Optimization (40 min total)**:\n1. Fix rootCtx (5 min) - unblocks tests\n2. Reduce sleep durations 10x (2 min) - saves ~280ms\n3. Use in-memory DBs (10 min) - saves ~1s\n4. Share test fixtures (15 min) - saves ~1.2s\n5. Fix skipped debounce test (5 min)\n\n## Expected Results\n\n- Tests go from hanging → \u003c5s total runtime\n- Keep critical integration test coverage\n- Tests caught real bugs: bd-270, bd-206, bd-160\n\n## Files\n\n- Analysis: MAIN_TEST_REFACTOR_NOTES.md\n- Solution: MAIN_TEST_OPTIMIZATION_PLAN.md\n- Tests: cmd/bd/main_test.go (18 tests, 1322 LOC)\n\n## Priority\n\nP1 - Blocking development, tests unusable in current state","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-21T18:27:48.942814-05:00","updated_at":"2025-11-21T18:44:21.944901-05:00","closed_at":"2025-11-21T18:44:21.944901-05:00"}
|
||||
|
||||
Reference in New Issue
Block a user