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:
Steve Yegge
2025-12-26 21:07:37 -08:00
parent 89be2a9d7f
commit ea8ae11002
34 changed files with 277 additions and 276 deletions

View File

@@ -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) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
```

View File

@@ -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.

View File

@@ -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

View File

@@ -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