bd sync: 2025-12-22 00:54:24
This commit is contained in:
@@ -246,7 +246,7 @@
|
||||
{"id":"bd-kwjh.1","title":".beads-ephemeral/ storage backend","description":"Implement ephemeral storage layer for wisps.\n\n## Requirements\n- New storage location: .beads-ephemeral/issues.jsonl (sibling to .beads/)\n- Gitignored by default (add to .beads/.gitignore)\n- Same JSONL format as regular beads\n- Config option: ephemeral.directory (relative path)\n- ephemeral.enabled config flag\n\n## Storage Behavior\n- Ephemeral issues have `ephemeral: true` field\n- No sync to remote (local only)\n- No daemon tracking needed (transient)\n\n## Implementation\n- Add EphemeralStore in storage package\n- Initialize on demand when --ephemeral flag used\n- Share Issue struct, just different storage path","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-22T00:06:46.706026-08:00","updated_at":"2025-12-22T00:08:26.009875-08:00","dependencies":[{"issue_id":"bd-kwjh.1","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:06:46.706461-08:00","created_by":"daemon"}],"deleted_at":"2025-12-22T00:08:26.009875-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"bd-kwjh.2","title":".beads-ephemeral/ storage backend","description":"Implement ephemeral storage layer for wisps.\n\n## Requirements\n- New storage location: .beads-ephemeral/issues.jsonl (sibling to .beads/)\n- Gitignored by default (add to .beads/.gitignore)\n- Same JSONL format as regular beads\n- Config option: ephemeral.directory (relative path)\n- ephemeral.enabled config flag\n\n## Storage Behavior\n- Ephemeral issues have ephemeral: true field\n- No sync to remote (local only)\n- No daemon tracking needed (transient)\n\n## Implementation\n- Add EphemeralStore in storage package\n- Initialize on demand when --ephemeral flag used\n- Share Issue struct, just different storage path","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-22T00:06:56.248345-08:00","updated_at":"2025-12-22T00:13:51.281427-08:00","closed_at":"2025-12-22T00:13:51.281427-08:00","close_reason":"Implemented ephemeral storage backend: FindEphemeralDir, FindEphemeralDatabasePath, NewEphemeralStorage, EnsureEphemeralGitignore, IsEphemeralDatabase with tests","dependencies":[{"issue_id":"bd-kwjh.2","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:06:56.248725-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-kwjh.3","title":"bd mol bond --ephemeral flag","description":"Add --ephemeral flag to bd mol bond command.\n\n## Behavior\n- `bd mol bond \u003cproto\u003e --ephemeral` creates molecule in .beads-ephemeral/\n- Without flag, creates in .beads/ (current behavior)\n- Ephemeral molecules have `ephemeral: true` in their issue record\n\n## Implementation\n- Add --ephemeral bool flag to mol bond command\n- Route to EphemeralStore when flag set\n- Set ephemeral:true on created issue\n\n## Testing\n- Test mol bond creates in correct location\n- Test ephemeral flag is persisted\n- Test regular mol bond still works","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-22T00:07:26.591728-08:00","updated_at":"2025-12-22T00:17:42.50719-08:00","closed_at":"2025-12-22T00:17:42.50719-08:00","close_reason":"Implemented --ephemeral flag for mol bond: routes spawned molecules to .beads-ephemeral/, updates gitignore, updated help text","dependencies":[{"issue_id":"bd-kwjh.3","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:07:26.592102-08:00","created_by":"daemon"},{"issue_id":"bd-kwjh.3","depends_on_id":"bd-kwjh.2","type":"blocks","created_at":"2025-12-22T00:07:26.592866-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-kwjh.4","title":"bd mol squash handles wisp→digest","description":"Update bd mol squash to handle ephemeral molecules.\n\n## Behavior for Ephemeral Molecules\n1. Delete wisp from .beads-ephemeral/\n2. Create digest issue in .beads/ (permanent)\n3. Digest has type:digest and squashed_from field\n\n## Digest Format\n```json\n{\n \"id\": \"\u003cparent\u003e.digest-NNN\",\n \"type\": \"digest\",\n \"title\": \"\u003cproto\u003e cycle @ \u003ctimestamp\u003e\",\n \"description\": \"\u003csummary from --summary flag\u003e\",\n \"parent\": \"\u003cproto-id\u003e\",\n \"squashed_from\": \"\u003cwisp-id\u003e\"\n}\n```\n\n## Implementation\n- Detect if molecule is ephemeral (check storage location or flag)\n- Delete from ephemeral store\n- Create digest in permanent store\n- Return digest ID\n\n## Testing\n- Test squash of ephemeral mol creates digest\n- Test wisp is deleted after squash\n- Test digest is queryable","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-22T00:07:27.685116-08:00","updated_at":"2025-12-22T00:07:27.685116-08:00","dependencies":[{"issue_id":"bd-kwjh.4","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:07:27.686798-08:00","created_by":"daemon"},{"issue_id":"bd-kwjh.4","depends_on_id":"bd-kwjh.2","type":"blocks","created_at":"2025-12-22T00:07:27.687773-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-kwjh.4","title":"bd mol squash handles wisp→digest","description":"Update bd mol squash to handle ephemeral molecules.\n\n## Behavior for Ephemeral Molecules\n1. Delete wisp from .beads-ephemeral/\n2. Create digest issue in .beads/ (permanent)\n3. Digest has type:digest and squashed_from field\n\n## Digest Format\n```json\n{\n \"id\": \"\u003cparent\u003e.digest-NNN\",\n \"type\": \"digest\",\n \"title\": \"\u003cproto\u003e cycle @ \u003ctimestamp\u003e\",\n \"description\": \"\u003csummary from --summary flag\u003e\",\n \"parent\": \"\u003cproto-id\u003e\",\n \"squashed_from\": \"\u003cwisp-id\u003e\"\n}\n```\n\n## Implementation\n- Detect if molecule is ephemeral (check storage location or flag)\n- Delete from ephemeral store\n- Create digest in permanent store\n- Return digest ID\n\n## Testing\n- Test squash of ephemeral mol creates digest\n- Test wisp is deleted after squash\n- Test digest is queryable","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-22T00:07:27.685116-08:00","updated_at":"2025-12-22T00:53:55.74082-08:00","closed_at":"2025-12-22T00:53:55.74082-08:00","close_reason":"Implemented cross-store wisp→digest squash with tests","dependencies":[{"issue_id":"bd-kwjh.4","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:07:27.686798-08:00","created_by":"daemon"},{"issue_id":"bd-kwjh.4","depends_on_id":"bd-kwjh.2","type":"blocks","created_at":"2025-12-22T00:07:27.687773-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-kwjh.5","title":"bd wisp list command","description":"Add bd wisp list command to show ephemeral molecules.\n\n## Usage\n```bash\nbd wisp list # List all wisps in current context\nbd wisp list --json # JSON output\nbd wisp list --all # Include orphaned wisps\n```\n\n## Output\n- Shows in-progress ephemeral molecules\n- Columns: ID, Title, Started, Last Update, Status\n- Warns about orphaned wisps (old updated_at)\n\n## Implementation\n- New 'wisp' command group\n- Read from .beads-ephemeral/issues.jsonl\n- Filter to ephemeral:true issues","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-22T00:07:29.514936-08:00","updated_at":"2025-12-22T00:07:29.514936-08:00","dependencies":[{"issue_id":"bd-kwjh.5","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:07:29.515301-08:00","created_by":"daemon"},{"issue_id":"bd-kwjh.5","depends_on_id":"bd-kwjh.2","type":"blocks","created_at":"2025-12-22T00:07:29.516134-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-kwjh.6","title":"bd wisp gc command","description":"Add bd wisp gc command to garbage collect orphaned wisps.\n\n## Usage\n```bash\nbd wisp gc # Clean orphaned wisps\nbd wisp gc --dry-run # Show what would be cleaned\nbd wisp gc --age 1h # Custom orphan threshold (default: 1h)\n```\n\n## Orphan Detection\nA wisp is orphaned if:\n- process_id field exists AND process is dead\n- OR updated_at older than threshold AND not complete\n- AND molecule status is not complete/abandoned\n\n## Behavior\n- Delete orphaned wisps (no digest created)\n- Report count of cleaned wisps\n- --dry-run shows candidates without deleting\n\n## Implementation\n- Add 'gc' subcommand to wisp group\n- Process detection via os.FindProcess or /proc\n- Configurable age threshold","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-22T00:07:30.861155-08:00","updated_at":"2025-12-22T00:07:30.861155-08:00","dependencies":[{"issue_id":"bd-kwjh.6","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:07:30.862681-08:00","created_by":"daemon"},{"issue_id":"bd-kwjh.6","depends_on_id":"bd-kwjh.2","type":"blocks","created_at":"2025-12-22T00:07:30.863721-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-kwjh.7","title":"bd mol burn deletes ephemeral without digest","description":"Update bd mol burn to handle ephemeral molecules.\n\n## Behavior for Ephemeral Molecules\n- Delete wisp from .beads-ephemeral/\n- NO digest created (unlike squash)\n- Used for abandoned/crashed cycles\n\n## Difference from Squash\n| Command | Ephemeral Behavior |\n|---------|-------------------|\n| squash | Delete wisp, create digest |\n| burn | Delete wisp, no trace |\n\n## Implementation\n- Detect if molecule is ephemeral\n- Delete from ephemeral store\n- Skip digest creation","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-22T00:07:32.020144-08:00","updated_at":"2025-12-22T00:07:32.020144-08:00","dependencies":[{"issue_id":"bd-kwjh.7","depends_on_id":"bd-kwjh","type":"parent-child","created_at":"2025-12-22T00:07:32.022117-08:00","created_by":"daemon"},{"issue_id":"bd-kwjh.7","depends_on_id":"bd-kwjh.2","type":"blocks","created_at":"2025-12-22T00:07:32.023217-08:00","created_by":"daemon"}]}
|
||||
|
||||
Reference in New Issue
Block a user