bd sync: 2025-12-30 15:54:09
This commit is contained in:
@@ -332,7 +332,7 @@
|
||||
{"id":"bd-e1085716","title":"bd validate - Comprehensive health check","description":"Run all validation checks in one command.\n\nChecks:\n- Duplicates\n- Orphaned dependencies\n- Test pollution\n- Git conflicts\n\nSupports --fix-all for auto-repair.\n\nDepends on bd-cbed9619.1, bd-0dcea000, bd-31aab707, bd-9826b69a.\n\nFiles: cmd/bd/validate.go (new)","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-10-29T23:05:13.980679-07:00","updated_at":"2025-12-25T01:21:01.952723-08:00","deleted_at":"2025-12-25T01:21:01.952723-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"}
|
||||
{"id":"bd-e7ou","title":"Fix --as flag: uses title instead of ID in mol bond","description":"In bondProtoProto, the --as flag is documented as 'Custom ID for compound proto' but the implementation uses it as the title, not the issue ID.\n\n**Current behavior (mol.go:637-638):**\n```go\nif customID != '' {\n compoundTitle = customID // Used as title, not ID\n}\n```\n\n**Options:**\n1. Change flag description to say 'Custom title' (documentation fix)\n2. Actually use it as a custom ID prefix or full ID (feature change)\n3. Add separate --title flag and make --as actually set ID\n\nRecommend option 1 for simplest fix - change 'Custom ID' to 'Custom title' in the flag description.","status":"closed","priority":3,"issue_type":"bug","created_at":"2025-12-21T10:22:59.069368-08:00","updated_at":"2025-12-21T21:18:48.514513-08:00","closed_at":"2025-12-21T21:18:48.514513-08:00"}
|
||||
{"id":"bd-e8kq","title":"Consolidate migrate-* commands into migrate subcommands","description":"Move migrate-hash-ids, migrate-issues, migrate-sync, migrate-tombstones under 'migrate' as subcommands. Reduces 5 top-level commands to 1.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-28T12:59:09.187369-08:00","created_by":"stevey","updated_at":"2025-12-28T13:02:51.321846-08:00","closed_at":"2025-12-28T13:02:51.321848-08:00"}
|
||||
{"id":"bd-ecmd","title":"Add type: event for state transitions","description":"Events capture operational state changes as immutable records.\n\nFields needed:\n- event_type: string (namespaced category like patrol.muted, agent.started) \n- actor: string (entity URI who caused this)\n- target: string (entity URI or bead ID affected)\n- payload: object (event-specific JSON data)\n\nExample:\n id: evt-x7k2\n type: event\n event_type: patrol.muted\n actor: human:overseer\n target: agent:deacon\n payload: {reason: fixing deadlock, until: gt-abc1}\n\nThis enables:\n- bd activity --follow showing events\n- bd list --type=event --target=agent:deacon\n- Full audit trail for operational state\n- HOP-compatible transaction records","status":"hooked","priority":1,"issue_type":"feature","assignee":"beads/polecats/obsidian","created_at":"2025-12-30T15:15:23.440095-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T15:48:18.940686-08:00"}
|
||||
{"id":"bd-ecmd","title":"Add type: event for state transitions","description":"Events capture operational state changes as immutable records.\n\nFields needed:\n- event_type: string (namespaced category like patrol.muted, agent.started) \n- actor: string (entity URI who caused this)\n- target: string (entity URI or bead ID affected)\n- payload: object (event-specific JSON data)\n\nExample:\n id: evt-x7k2\n type: event\n event_type: patrol.muted\n actor: human:overseer\n target: agent:deacon\n payload: {reason: fixing deadlock, until: gt-abc1}\n\nThis enables:\n- bd activity --follow showing events\n- bd list --type=event --target=agent:deacon\n- Full audit trail for operational state\n- HOP-compatible transaction records","status":"closed","priority":1,"issue_type":"feature","assignee":"beads/polecats/obsidian","created_at":"2025-12-30T15:15:23.440095-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T15:54:09.224-08:00","closed_at":"2025-12-30T15:54:09.224-08:00","close_reason":"Implemented event type with event_kind, actor, target, and payload fields"}
|
||||
{"id":"bd-efo6","title":"Test cross-rig issue creation","description":"Testing --rig flag from town root","status":"tombstone","priority":3,"issue_type":"task","created_at":"2025-12-27T00:43:21.006012-08:00","created_by":"stevey","updated_at":"2025-12-27T00:43:27.389223-08:00","deleted_at":"2025-12-27T00:43:27.389223-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"bd-eijl","title":"bd ship command for publishing capabilities","description":"Add `bd ship \u003ccapability\u003e` command that:\n\n1. Finds issue with `export:\u003ccapability\u003e` label\n2. Validates issue is closed (or --force to override)\n3. Adds `provides:\u003ccapability\u003e` label\n4. Protects `provides:*` namespace (only bd ship can add these labels)\n\nExample:\n```bash\nbd ship mol-run-assignee\n# Output: Shipped mol-run-assignee (bd-xyz)\n```\n\nPart of cross-project dependency system.\nSee: gastown/docs/cross-project-deps.md","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-21T22:37:19.123024-08:00","updated_at":"2025-12-21T23:11:47.498859-08:00","closed_at":"2025-12-21T23:11:47.498859-08:00"}
|
||||
{"id":"bd-eko4","title":"Add pre-migration orphan cleanup to avoid chicken-and-egg fix failure","description":"## Problem\n\nWhen the database has orphaned foreign key references (dependencies or labels pointing to non-existent issues), the migration invariant check fails, preventing the database from opening. This creates a chicken-and-egg problem:\n\n1. `bd doctor --fix` tries to open the database\n2. Opening triggers migrations with invariant checks\n3. Invariant check fails due to orphaned refs\n4. Fix never runs because database won't open\n\n## Root Cause\n\nAggressive tombstone deletion (e.g., deleting ~1000 old tombstones) left behind orphaned:\n- 218+ dependencies where issue_id not in issues\n- 222+ dependencies where depends_on_id not in issues \n- 30+ labels where issue_id not in issues\n\n## Current Workaround\n\nDirect SQL to clean up before bd can run:\n```sql\nDELETE FROM dependencies WHERE NOT EXISTS (SELECT 1 FROM issues WHERE id = issue_id);\nDELETE FROM dependencies WHERE NOT EXISTS (SELECT 1 FROM issues WHERE id = depends_on_id) AND depends_on_id NOT LIKE 'external:%';\nDELETE FROM labels WHERE NOT EXISTS (SELECT 1 FROM issues WHERE id = issue_id);\n```\n\n## Proposed Fix\n\nAdd a pre-migration cleanup step that runs BEFORE invariant checks:\n1. Option A: Run orphan cleanup as part of migrations (before invariant check)\n2. Option B: Add `bd doctor --force-fix` that bypasses invariant checks\n3. Option C: Have invariant check auto-clean orphans instead of failing\n\nOption A is cleanest - orphan cleanup should be part of normal migration.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-28T23:18:24.65227-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-29T13:46:30.625571-08:00","closed_at":"2025-12-29T13:46:30.625571-08:00","close_reason":"Implemented Option A: CleanOrphanedRefs runs before captureSnapshot in RunMigrations, preventing chicken-and-egg problem"}
|
||||
|
||||
Reference in New Issue
Block a user