feat: Rename 'wisp' to 'ephemeral' in beads API (bd-o18s)
BREAKING CHANGE: API field and CLI command renamed - types.Issue.Wisp → types.Issue.Ephemeral - JSON field: "wisp" → "ephemeral" - CLI: bd wisp → bd ephemeral - Flags: --wisp → --ephemeral - ID prefix: wisp → eph The SQLite column already uses 'ephemeral' so no schema migration needed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -275,7 +275,7 @@ open ──▶ in_progress ──▶ closed
|
||||
|
||||
```
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
│ bd wisp create │───▶│ Wisp Issues │───▶│ bd mol squash │
|
||||
│ bd ephemeral create │───▶│ Wisp Issues │───▶│ bd mol squash │
|
||||
│ (from template) │ │ (local-only) │ │ (→ digest) │
|
||||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||||
```
|
||||
|
||||
@@ -351,7 +351,7 @@ Beads uses a chemistry metaphor for template-based workflows. See [MOLECULES.md]
|
||||
|-------|-------|---------|---------|
|
||||
| Solid | Proto | `.beads/` | `bd mol catalog` |
|
||||
| Liquid | Mol | `.beads/` | `bd pour` |
|
||||
| Vapor | Wisp | `.beads/` (Wisp=true, not exported) | `bd wisp create` |
|
||||
| Vapor | Wisp | `.beads/` (Wisp=true, not exported) | `bd ephemeral create` |
|
||||
|
||||
### Proto/Template Commands
|
||||
|
||||
@@ -385,17 +385,17 @@ bd pour <proto-id> --attach <other-proto> --json
|
||||
### Wisp Commands
|
||||
|
||||
```bash
|
||||
# Instantiate proto as ephemeral wisp (solid → vapor)
|
||||
bd wisp create <proto-id> --var key=value --json
|
||||
# Instantiate proto as ephemeral issue (solid → vapor)
|
||||
bd ephemeral create <proto-id> --var key=value --json
|
||||
|
||||
# List all wisps
|
||||
bd wisp list --json
|
||||
bd wisp list --all --json # Include closed
|
||||
bd ephemeral list --json
|
||||
bd ephemeral list --all --json # Include closed
|
||||
|
||||
# Garbage collect orphaned wisps
|
||||
bd wisp gc --json
|
||||
bd wisp gc --age 24h --json # Custom age threshold
|
||||
bd wisp gc --dry-run # Preview what would be cleaned
|
||||
bd ephemeral gc --json
|
||||
bd ephemeral gc --age 24h --json # Custom age threshold
|
||||
bd ephemeral gc --dry-run # Preview what would be cleaned
|
||||
```
|
||||
|
||||
### Bonding (Combining Work)
|
||||
@@ -424,29 +424,29 @@ bd mol bond <A> <B> --dry-run
|
||||
|
||||
```bash
|
||||
# Compress wisp to permanent digest
|
||||
bd mol squash <wisp-id> --json
|
||||
bd mol squash <ephemeral-id> --json
|
||||
|
||||
# With agent-provided summary
|
||||
bd mol squash <wisp-id> --summary "Work completed" --json
|
||||
bd mol squash <ephemeral-id> --summary "Work completed" --json
|
||||
|
||||
# Preview
|
||||
bd mol squash <wisp-id> --dry-run
|
||||
bd mol squash <ephemeral-id> --dry-run
|
||||
|
||||
# Keep wisp children after squash
|
||||
bd mol squash <wisp-id> --keep-children --json
|
||||
bd mol squash <ephemeral-id> --keep-children --json
|
||||
```
|
||||
|
||||
### Burn (Discard Wisp)
|
||||
|
||||
```bash
|
||||
# Delete wisp without digest (destructive)
|
||||
bd mol burn <wisp-id> --json
|
||||
bd mol burn <ephemeral-id> --json
|
||||
|
||||
# Preview
|
||||
bd mol burn <wisp-id> --dry-run
|
||||
bd mol burn <ephemeral-id> --dry-run
|
||||
|
||||
# Skip confirmation
|
||||
bd mol burn <wisp-id> --force --json
|
||||
bd mol burn <ephemeral-id> --force --json
|
||||
```
|
||||
|
||||
**Note:** Most mol commands require `--no-daemon` flag when daemon is running.
|
||||
|
||||
@@ -202,7 +202,7 @@ The 1-hour grace period ensures tombstones propagate even with minor clock drift
|
||||
|
||||
## Wisps: Intentional Tombstone Bypass
|
||||
|
||||
**Wisps** (ephemeral issues created by `bd wisp create`) are intentionally excluded from tombstone tracking.
|
||||
**Wisps** (ephemeral issues created by `bd ephemeral create`) are intentionally excluded from tombstone tracking.
|
||||
|
||||
### Why Wisps Don't Need Tombstones
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ For reusable workflows, beads uses a chemistry metaphor:
|
||||
|
||||
```bash
|
||||
bd pour <proto> # Proto → Mol (persistent instance)
|
||||
bd wisp create <proto> # Proto → Wisp (ephemeral instance)
|
||||
bd ephemeral create <proto> # Proto → Wisp (ephemeral instance)
|
||||
bd mol squash <id> # Mol/Wisp → Digest (permanent record)
|
||||
bd mol burn <id> # Wisp → nothing (discard)
|
||||
```
|
||||
@@ -227,10 +227,10 @@ bd close <id> --reason "Done"
|
||||
Wisps accumulate if not squashed/burned:
|
||||
|
||||
```bash
|
||||
bd wisp list # Check for orphans
|
||||
bd ephemeral list # Check for orphans
|
||||
bd mol squash <id> # Create digest
|
||||
bd mol burn <id> # Or discard
|
||||
bd wisp gc # Garbage collect old wisps
|
||||
bd ephemeral gc # Garbage collect old wisps
|
||||
```
|
||||
|
||||
## Layer Cake Architecture
|
||||
@@ -273,7 +273,7 @@ bd dep tree <id> # Show dependency tree
|
||||
|
||||
```bash
|
||||
bd pour <proto> --var k=v # Template → persistent mol
|
||||
bd wisp create <proto> # Template → ephemeral wisp
|
||||
bd ephemeral create <proto> # Template → ephemeral wisp
|
||||
bd mol bond A B # Connect work graphs
|
||||
bd mol squash <id> # Compress to digest
|
||||
bd mol burn <id> # Discard without record
|
||||
|
||||
Reference in New Issue
Block a user