From 482b8c5b4bde69c22a30cff0e29d3f845460fdf6 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Wed, 26 Nov 2025 22:05:25 -0800 Subject: [PATCH] bd sync: flush pending changes --- .beads/issues.jsonl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index e73c3108..f3bf74c4 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -8,7 +8,7 @@ {"id":"bd-4aao","title":"Fix failing integration tests in beads-mcp","description":"The `beads-mcp` test suite has failures in `tests/test_bd_client_integration.py` (assertion error in `test_init_creates_beads_directory`) and errors in `tests/test_worktree_separate_dbs.py` (setup failures finding database). These need to be investigated and fixed to ensure a reliable CI baseline.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-20T18:53:28.4803-05:00","updated_at":"2025-11-25T21:39:20.967106-08:00","closed_at":"2025-11-25T21:39:20.967106-08:00"} {"id":"bd-4h3","title":"Add test coverage for internal/git package","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-20T21:21:23.497486-05:00","updated_at":"2025-11-20T21:21:23.497486-05:00","dependencies":[{"issue_id":"bd-4h3","depends_on_id":"bd-ge7","type":"blocks","created_at":"2025-11-20T21:21:31.277639-05:00","created_by":"daemon"}]} {"id":"bd-4l5","title":"bd prime: Detect ephemeral branches and adjust workflow output","description":"When 'bd prime' runs on a branch with no upstream (ephemeral branch), it should output a different SESSION CLOSE PROTOCOL.\n\n**Current output (wrong for ephemeral branches):**\n```\n[ ] 1. git status\n[ ] 2. git add \u003cfiles\u003e\n[ ] 3. bd sync\n[ ] 4. git commit -m \"...\"\n[ ] 5. bd sync\n[ ] 6. git push\n```\n\n**Needed output for ephemeral branches:**\n```\n[ ] 1. git status\n[ ] 2. git add \u003cfiles\u003e\n[ ] 3. bd sync --from-main (pull updates from main)\n[ ] 4. git commit -m \"...\"\n[ ] 5. (no push - branch is ephemeral)\n```\n\n**Detection:** `git rev-parse --abbrev-ref --symbolic-full-name @{u}` returns error code 128 if no upstream.\n\nAlso update Sync \u0026 Collaboration section to mention `bd sync --from-main` for ephemeral branches.\n\n**Use case:** Gastown polecats work on ephemeral local branches that are never pushed. Their code gets merged to main via local merge, and beads changes stay local (communicated via gm mail to Overseer).","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-11-25T16:55:24.984104-08:00","updated_at":"2025-11-25T17:12:46.604978-08:00","closed_at":"2025-11-25T17:12:46.604978-08:00"} -{"id":"bd-6xd","title":"Standardize on issues.jsonl as canonical filename","description":"## Background\n\nThe codebase has confused and contradictory references to both `issues.jsonl` and `beads.jsonl`. This arose from a misconception that `issues.jsonl` was polluted with 100k test issues, but analysis shows:\n\n- issues.jsonl git history: 253 blobs, 54 MB total (max blob 2.1 MB)\n- beads.jsonl git history: 1140 blobs, 353 MB total (6.5x larger!)\n\nThe 'pollution' was never as big as remembered. Meanwhile, 99% of user installs use `issues.jsonl`.\n\n## The Problem\n\nCode has contradictory comments:\n```go\n// cmd/bd/autoimport.go:88\n// Try canonical JSONL filenames in precedence order (issues.jsonl is canonical)\n\n// internal/configfile/configfile.go:24\nJSONLExport: \"beads.jsonl\", // Default to canonical name (was issues.jsonl)\n```\n\n## Current State\n\n### Code References (excluding tests)\n- `beads.jsonl`: 51 references in Go code\n- `issues.jsonl`: 84 references in Go code\n\n### Documentation References\n- `beads.jsonl`: 59 references\n- `issues.jsonl`: 62 references\n\n## Proposed Solution\n\n1. Make `issues.jsonl` the **only** canonical name\n2. Support `beads.jsonl` only as legacy (auto-migrate to issues.jsonl)\n3. Switch beads repo itself back to using issues.jsonl\n4. Update all code and docs for consistency\n\n## Files Requiring Changes\n\n### High Priority (logic changes)\n- `internal/configfile/configfile.go` - Change default from beads.jsonl to issues.jsonl\n- `internal/beads/beads.go` - Reverse preference order, prefer issues.jsonl\n- `cmd/bd/version_tracking.go` - Reverse preference order\n- `cmd/bd/doctor/fix/database_config.go` - Reverse preference order\n- `cmd/bd/autoimport.go` - Already prefers issues.jsonl (correct)\n- `cmd/bd/init.go` - Update gitattributes setup, comments\n\n### Medium Priority (user-facing messages)\n- `cmd/bd/import.go` - Update example paths in error messages\n- `cmd/bd/sync.go` - Update diff display path\n- `cmd/bd/status.go` - Update git log path\n- `cmd/bd/staleness.go` - Update help message\n- `cmd/bd/init_contributor.go` - Update output messages\n- `cmd/bd/clean.go` - Update help text\n- `cmd/bd/cleanup.go` - Update help text\n\n### Lower Priority (internal/comments)\n- `internal/importer/importer.go` - Update comments and paths\n- `cmd/bd/merge.go` - Update comment\n- `cmd/bd/doctor.go` - Multiple references\n- `cmd/bd/doctor/fix/sync.go` - Variable naming\n- `cmd/bd/doctor/fix/deletions.go` - Path reference\n\n### Documentation\n- README.md - ~8 references to update\n- docs/DELETIONS.md\n- docs/CLI_REFERENCE.md\n- docs/ARCHITECTURE.md\n- docs/TROUBLESHOOTING.md\n- docs/PROTECTED_BRANCHES.md\n- docs/GIT_INTEGRATION.md\n- docs/MULTI_REPO_AGENTS.md\n- docs/MULTI_REPO_MIGRATION.md\n- docs/TESTING.md (acknowledges the inconsistency)\n\n## Migration Strategy\n\n1. Add migration in `bd init`: if beads.jsonl exists and issues.jsonl doesn't, rename it\n2. Update `bd doctor` to detect and offer to fix the naming\n3. Keep reading beads.jsonl as fallback for one version cycle\n4. Remove beads.jsonl fallback in future version\n\n## For Beads Repo Itself\n\n1. `git mv .beads/beads.jsonl .beads/issues.jsonl`\n2. Update .gitattributes if present\n3. Commit with clear message","status":"in_progress","priority":2,"issue_type":"task","created_at":"2025-11-26T19:33:34.169595-08:00","updated_at":"2025-11-26T20:56:18.181866-08:00"} +{"id":"bd-6xd","title":"Standardize on issues.jsonl as canonical filename","description":"## Background\n\nThe codebase has confused and contradictory references to both `issues.jsonl` and `beads.jsonl`. This arose from a misconception that `issues.jsonl` was polluted with 100k test issues, but analysis shows:\n\n- issues.jsonl git history: 253 blobs, 54 MB total (max blob 2.1 MB)\n- beads.jsonl git history: 1140 blobs, 353 MB total (6.5x larger!)\n\nThe 'pollution' was never as big as remembered. Meanwhile, 99% of user installs use `issues.jsonl`.\n\n## The Problem\n\nCode has contradictory comments:\n```go\n// cmd/bd/autoimport.go:88\n// Try canonical JSONL filenames in precedence order (issues.jsonl is canonical)\n\n// internal/configfile/configfile.go:24\nJSONLExport: \"beads.jsonl\", // Default to canonical name (was issues.jsonl)\n```\n\n## Current State\n\n### Code References (excluding tests)\n- `beads.jsonl`: 51 references in Go code\n- `issues.jsonl`: 84 references in Go code\n\n### Documentation References\n- `beads.jsonl`: 59 references\n- `issues.jsonl`: 62 references\n\n## Proposed Solution\n\n1. Make `issues.jsonl` the **only** canonical name\n2. Support `beads.jsonl` only as legacy (auto-migrate to issues.jsonl)\n3. Switch beads repo itself back to using issues.jsonl\n4. Update all code and docs for consistency\n\n## Files Requiring Changes\n\n### High Priority (logic changes)\n- `internal/configfile/configfile.go` - Change default from beads.jsonl to issues.jsonl\n- `internal/beads/beads.go` - Reverse preference order, prefer issues.jsonl\n- `cmd/bd/version_tracking.go` - Reverse preference order\n- `cmd/bd/doctor/fix/database_config.go` - Reverse preference order\n- `cmd/bd/autoimport.go` - Already prefers issues.jsonl (correct)\n- `cmd/bd/init.go` - Update gitattributes setup, comments\n\n### Medium Priority (user-facing messages)\n- `cmd/bd/import.go` - Update example paths in error messages\n- `cmd/bd/sync.go` - Update diff display path\n- `cmd/bd/status.go` - Update git log path\n- `cmd/bd/staleness.go` - Update help message\n- `cmd/bd/init_contributor.go` - Update output messages\n- `cmd/bd/clean.go` - Update help text\n- `cmd/bd/cleanup.go` - Update help text\n\n### Lower Priority (internal/comments)\n- `internal/importer/importer.go` - Update comments and paths\n- `cmd/bd/merge.go` - Update comment\n- `cmd/bd/doctor.go` - Multiple references\n- `cmd/bd/doctor/fix/sync.go` - Variable naming\n- `cmd/bd/doctor/fix/deletions.go` - Path reference\n\n### Documentation\n- README.md - ~8 references to update\n- docs/DELETIONS.md\n- docs/CLI_REFERENCE.md\n- docs/ARCHITECTURE.md\n- docs/TROUBLESHOOTING.md\n- docs/PROTECTED_BRANCHES.md\n- docs/GIT_INTEGRATION.md\n- docs/MULTI_REPO_AGENTS.md\n- docs/MULTI_REPO_MIGRATION.md\n- docs/TESTING.md (acknowledges the inconsistency)\n\n## Migration Strategy\n\n1. Add migration in `bd init`: if beads.jsonl exists and issues.jsonl doesn't, rename it\n2. Update `bd doctor` to detect and offer to fix the naming\n3. Keep reading beads.jsonl as fallback for one version cycle\n4. Remove beads.jsonl fallback in future version\n\n## For Beads Repo Itself\n\n1. `git mv .beads/beads.jsonl .beads/issues.jsonl`\n2. Update .gitattributes if present\n3. Commit with clear message","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-26T19:33:34.169595-08:00","updated_at":"2025-11-26T21:00:34.038454-08:00","closed_at":"2025-11-26T21:00:34.038454-08:00"} {"id":"bd-736d","title":"Refactor path canonicalization into helper function","description":"The path canonicalization logic (filepath.Abs + EvalSymlinks) is duplicated in 3 places:\n- beads.go:131-137 (BEADS_DIR handling)\n- cmd/bd/main.go:446-451 (--no-db cleanup)\n- cmd/bd/nodb.go:26-31 (--no-db initialization)\n\nRefactoring suggestion:\nExtract to a helper function like:\n func canonicalizePath(path string) string\n\nThis would:\n- Reduce code duplication\n- Make the logic easier to maintain\n- Ensure consistent behavior across all path handling\n\nRelated to bd-e16b implementation.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-11-02T18:33:47.727443-08:00","updated_at":"2025-11-25T22:27:33.738672-08:00","closed_at":"2025-11-25T22:27:33.738672-08:00"} {"id":"bd-81a","title":"Add programmatic tip injection API","description":"Allow tips to be programmatically injected at runtime based on detected conditions. This enables dynamic tips (not just pre-defined ones) to be shown with custom priority and frequency.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-11-11T23:29:46.645583-08:00","updated_at":"2025-11-25T17:52:35.096882-08:00","closed_at":"2025-11-25T17:52:35.096882-08:00","dependencies":[{"issue_id":"bd-81a","depends_on_id":"bd-d4i","type":"blocks","created_at":"2025-11-11T23:29:46.646327-08:00","created_by":"daemon"}]} {"id":"bd-9e23","title":"Optimize Memory backend GetIssueByExternalRef with index","description":"Currently GetIssueByExternalRef in Memory storage uses O(n) linear search through all issues.\n\nCurrent code (memory.go:282-308):\nfor _, issue := range m.issues {\n if issue.ExternalRef != nil \u0026\u0026 *issue.ExternalRef == externalRef {\n return \u0026issueCopy, nil\n }\n}\n\nProposed optimization:\n- Add externalRefToID map[string]string to MemoryStorage\n- Maintain it in CreateIssue, UpdateIssue, DeleteIssue\n- Achieve O(1) lookup like SQLite's index\n\nImpact: Low (--no-db mode typically has smaller datasets)\nRelated: bd-1022","status":"closed","priority":4,"issue_type":"chore","created_at":"2025-11-02T15:32:30.242357-08:00","updated_at":"2025-11-26T11:14:49.172418-08:00","closed_at":"2025-11-26T11:14:49.172418-08:00"}