From ba153d0a9feea7aa78badfa35365b8a5eb00bdcb Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Mon, 24 Nov 2025 00:07:33 -0800 Subject: [PATCH] bd sync: 2025-11-24 00:07:33 --- .beads/beads.jsonl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.beads/beads.jsonl b/.beads/beads.jsonl index ecda52d6..ba3c3344 100644 --- a/.beads/beads.jsonl +++ b/.beads/beads.jsonl @@ -23,7 +23,7 @@ {"id":"bd-9cdc","content_hash":"8fcd4366fd76c0db14c73d0c2623abae40ad4c31a2ca663c15f8d3d52ee572d0","title":"Update docs for import bug fix","description":"Update AGENTS.md, README.md, TROUBLESHOOTING.md with import.orphan_handling config documentation. Document resurrection behavior, tombstones, config modes. Add troubleshooting section for import failures with deleted parents.","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-04T12:32:30.770415-08:00","updated_at":"2025-11-04T12:32:30.770415-08:00","source_repo":"."} {"id":"bd-9e23","content_hash":"fa94af8126d5d8c816a6f83d5ad191ebdb954687abb87ce30e4f67eee4f1a9ce","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":"open","priority":4,"issue_type":"chore","created_at":"2025-11-02T15:32:30.242357-08:00","updated_at":"2025-11-02T15:32:30.242357-08:00","source_repo":"."} {"id":"bd-9li4","content_hash":"7ae7b885e82a2de333584c01f690dbc3ecb924603f18e316f5c91cc44e2256f8","title":"Create Docker image for Agent Mail","description":"Containerize Agent Mail server for easy deployment.\n\nAcceptance Criteria:\n- Dockerfile with Python 3.14\n- Health check endpoint\n- Volume mount for storage\n- Environment variable configuration\n- Multi-arch builds (amd64, arm64)\n\nFile: deployment/agent-mail/Dockerfile","status":"open","priority":3,"issue_type":"task","created_at":"2025-11-07T22:43:43.231964-08:00","updated_at":"2025-11-07T22:43:43.231964-08:00","source_repo":"."} -{"id":"bd-9lwr","content_hash":"1fe4b1e3a507ef7f658edbcf02d5c72efd2ff1070ff0947da6e6159bf9ce8541","title":"Document inconsistent error handling strategy across codebase","description":"**Scope:** Cross-cutting pattern across cmd/bd (create.go, init.go, sync.go, daemon_sync.go)\n\n**Issue:** Three different error handling patterns used inconsistently:\n\n**Pattern A: Exit immediately**\n```go\nif err := store.CreateIssue(...) {\n fmt.Fprintf(os.Stderr, \"Error: %v\\n\", err)\n os.Exit(1)\n}\n```\n\n**Pattern B: Warn and continue**\n```go\nif err := createConfigYaml(...) {\n fmt.Fprintf(os.Stderr, \"Warning: %v\\n\", err)\n // Non-fatal - continue anyway\n}\n```\n\n**Pattern C: Silent ignore**\n```go\n_ = store.Close()\n```\n\n**Impact:**\n- Makes error handling non-deterministic\n- Hard to test error paths\n- Inconsistent user experience\n\n**Task:**\n1. Document when each pattern should be used\n2. Add decision tree/flowchart to developer docs\n3. Consider creating error handling helpers to enforce consistency\n4. Audit codebase and refactor outliers","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-23T19:46:52.861673-08:00","updated_at":"2025-11-23T19:46:52.861673-08:00","source_repo":"."} +{"id":"bd-9lwr","content_hash":"9411d095f758c140f0d94933e2d9c8ccec3c06d5193183b0699e88dd78834c26","title":"Document inconsistent error handling strategy across codebase","description":"**Scope:** Cross-cutting pattern across cmd/bd (create.go, init.go, sync.go, daemon_sync.go)\n\n**Issue:** Three different error handling patterns used inconsistently:\n\n**Pattern A: Exit immediately**\n```go\nif err := store.CreateIssue(...) {\n fmt.Fprintf(os.Stderr, \"Error: %v\\n\", err)\n os.Exit(1)\n}\n```\n\n**Pattern B: Warn and continue**\n```go\nif err := createConfigYaml(...) {\n fmt.Fprintf(os.Stderr, \"Warning: %v\\n\", err)\n // Non-fatal - continue anyway\n}\n```\n\n**Pattern C: Silent ignore**\n```go\n_ = store.Close()\n```\n\n**Impact:**\n- Makes error handling non-deterministic\n- Hard to test error paths\n- Inconsistent user experience\n\n**Task:**\n1. Document when each pattern should be used\n2. Add decision tree/flowchart to developer docs\n3. Consider creating error handling helpers to enforce consistency\n4. Audit codebase and refactor outliers","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-23T19:46:52.861673-08:00","updated_at":"2025-11-24T00:06:37.086708-08:00","closed_at":"2025-11-24T00:06:37.086708-08:00","source_repo":"."} {"id":"bd-9msn","content_hash":"22e4a8227a7caf2577820ea8ac0f10754ac28c15af389cb01e55e5132052adb3","title":"Add monitoring and alerting","description":"Observability for production Agent Mail server.\n\nAcceptance Criteria:\n- Health check endpoint (/health)\n- Prometheus metrics export\n- Grafana dashboard\n- Alerts for server downtime\n- Alerts for high error rate\n- Log aggregation config\n\nFile: deployment/agent-mail/monitoring/","status":"closed","priority":3,"issue_type":"task","created_at":"2025-11-07T22:43:43.354117-08:00","updated_at":"2025-11-23T23:52:29.995609-08:00","closed_at":"2025-11-23T23:38:56.81073-08:00","source_repo":".","dependencies":[{"issue_id":"bd-9msn","depends_on_id":"bd-z3s3","type":"blocks","created_at":"2025-11-07T23:04:28.050074-08:00","created_by":"daemon"}]} {"id":"bd-afd","content_hash":"46a8ca9dad1de72d3cd2903ea0bf908622eb3a62bb2de4bba0816da5434a3d23","title":"bd doctor --fix should auto-fix metadata.json jsonl_export mismatch","description":"## Root Cause\n\nThe version tracking code (cmd/bd/version_tracking.go:33-38) auto-recreates metadata.json using DefaultConfig() if it doesn't exist. DefaultConfig() hardcodes jsonl_export to 'issues.jsonl', but many repos (including beads itself) use 'beads.jsonl'.\n\nWhen metadata.json goes missing (git clean, merge conflict, rebase, etc.), the next bd command recreates it with the wrong filename, causing a mismatch with the actual JSONL file.\n\n## Impact\n\nThis affects ANY user whose metadata.json gets deleted and who uses a non-default JSONL filename. Normal git operations can trigger this.\n\n## Fix Requirements\n\n1. bd doctor --fix should auto-detect and fix the mismatch (check which .jsonl file exists, update metadata.json)\n2. Version tracking should detect actual JSONL file instead of using hardcoded default\n3. DefaultConfig() should scan for existing .jsonl files before defaulting\n4. Daemon should auto-detect config changes without restart\n\n## Related Code\n\n- internal/configfile/configfile.go:18-23 (DefaultConfig hardcodes issues.jsonl)\n- cmd/bd/version_tracking.go:33-38 (auto-creates config with default) \n- internal/beads/beads.go:245-246 (FindJSONLPath defaults to issues.jsonl)","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-23T22:57:34.03414-08:00","updated_at":"2025-11-23T23:11:15.270911-08:00","closed_at":"2025-11-23T23:11:15.270911-08:00","source_repo":"."} {"id":"bd-b0c8","content_hash":"87b423a42d509b9405b52b089b2ba92b33a90ad472d6d9094986b48715399a99","title":"Research hooks/skills approach for enforcing issue descriptions","description":"## Solution: Hooks/Skills (mentioned in discussion)\n\nResearch the hooks/skills system mentioned by riordanpawley in discussion #366:\nhttps://www.reddit.com/r/ClaudeAI/s/wrn2tjkMHX\n\n## Investigation Tasks\n\n1. Review the Reddit post to understand the approach\n2. Determine if beads hooks can enforce validation\n3. Check if Claude Code skills/hooks can intercept MCP calls\n4. Assess feasibility and user burden\n\n## Notes\n\nFrom discussion #366:\n\u003e I'm using a skills/hooks system to get Claude to do that kind of thing right similar to https://www.reddit.com/r/ClaudeAI/s/wrn2tjkMHX\n\nThis might be a client-side solution rather than server-side.\n\n## Deliverable\n\nDocument findings in issue notes, with recommendation on whether to pursue this approach.","status":"open","priority":3,"issue_type":"task","created_at":"2025-11-23T14:01:01.57079-08:00","updated_at":"2025-11-23T14:01:01.57079-08:00","source_repo":"."}