refactor: Simplify wisp architecture - badges not separate storage
Wisps are now just issues with Wisp=true flag in the main database, not exported to JSONL. Removes all references to .beads-wisp/ directory. - Update docs: CLAUDE.md, CLI_REFERENCE.md, MOLECULES.md, DELETIONS.md - Update code comments: wisp.go - Update changelog and info.go version notes 🤖 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,13 +275,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- `bd wisp create <proto>` - Instantiate proto as ephemeral wisp (solid→vapor)
|
||||
- `bd wisp list` - List all wisps with stale detection
|
||||
- `bd wisp gc` - Garbage collect orphaned wisps
|
||||
- Wisps live in `.beads-wisp/` (gitignored), never sync to remote
|
||||
- Wisps have Wisp=true flag and are not exported to JSONL (never sync)
|
||||
|
||||
- **Chemistry UX commands** - Phase-aware molecule operations
|
||||
- `bd pour <proto>` - Instantiate proto as persistent mol (solid→liquid)
|
||||
- `bd mol bond --wisp` - Force spawn as vapor when attaching to mol
|
||||
- `bd mol bond --pour` - Force spawn as liquid when attaching to wisp
|
||||
- Cross-store squash: condense wisp to digest in main storage
|
||||
- Squash clears Wisp flag, promoting to persistent (exported to JSONL)
|
||||
|
||||
- **Cross-project dependencies** (bd-66w1, bd-om4a) - Reference issues across repos
|
||||
- `external:<repo>:<id>` dependency syntax
|
||||
@@ -302,7 +302,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Wisp storage initialization** - NewWispStorage now copies issue_prefix from main db
|
||||
- **Wisp flag handling** - Wisps now use Wisp=true flag in main database (not exported to JSONL)
|
||||
- **Prefix validation in multi-repo mode** (GH#686) - Skip validation for external repos
|
||||
- **Empty config values** (GH#680, GH#684) - Handle gracefully in getRepoConfig()
|
||||
- **Doctor UX improvements** (GH#687) - Better diagnostics and daemon integration
|
||||
|
||||
@@ -317,7 +317,7 @@ bd uses a molecular chemistry metaphor for template instantiation:
|
||||
|-------|---------|--------|----------|
|
||||
| **Proto** (solid) | Built-in | N/A | Reusable templates |
|
||||
| **Mol** (liquid) | `.beads/` | Yes | Persistent work |
|
||||
| **Wisp** (vapor) | `.beads-wisp/` | No | Ephemeral operations |
|
||||
| **Wisp** (vapor) | `.beads/` (Wisp=true) | No | Ephemeral operations |
|
||||
|
||||
**Instantiation commands:**
|
||||
|
||||
@@ -326,7 +326,7 @@ bd uses a molecular chemistry metaphor for template instantiation:
|
||||
bd pour <proto> --var key=value # Create in .beads/
|
||||
|
||||
# Wisp: proto → ephemeral wisp (vapor phase)
|
||||
bd wisp create <proto> --var key=value # Create in .beads-wisp/
|
||||
bd wisp create <proto> --var key=value # Wisp=true, not exported to JSONL
|
||||
|
||||
# List available templates
|
||||
bd mol list --json
|
||||
|
||||
@@ -341,7 +341,7 @@ var versionChanges = []VersionChange{
|
||||
"NEW: Chemistry UX - bd pour, bd mol bond --wisp/--pour for phase control",
|
||||
"NEW: Cross-project deps - external:<repo>:<id> syntax, bd ship command",
|
||||
"BREAKING: bd repo add/remove now writes to .beads/config.yaml (not DB)",
|
||||
"FIX: Wisp storage auto-copies issue_prefix from main database",
|
||||
"FIX: Wisps use Wisp=true flag in main database (not exported to JSONL)",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -75,9 +75,9 @@ var wispCreateCmd = &cobra.Command{
|
||||
Long: `Create a wisp from a proto - sublimation from solid to vapor.
|
||||
|
||||
This is the chemistry-inspired command for creating ephemeral work from templates.
|
||||
The resulting wisp lives in .beads-wisp/ (ephemeral storage) and is NOT synced.
|
||||
The resulting wisp is stored in the main database with Wisp=true and NOT exported to JSONL.
|
||||
|
||||
Phase transition: Proto (solid) -> wisp -> Wisp (vapor)
|
||||
Phase transition: Proto (solid) -> Wisp (vapor)
|
||||
|
||||
Use wisp create for:
|
||||
- Patrol cycles (deacon, witness)
|
||||
@@ -86,8 +86,8 @@ Use wisp create for:
|
||||
- Routine operations with no audit value
|
||||
|
||||
The wisp will:
|
||||
- Be stored in .beads-wisp/ (gitignored)
|
||||
- NOT sync to remote
|
||||
- Be stored in main database with Wisp=true flag
|
||||
- NOT be exported to JSONL (and thus not synced via git)
|
||||
- Either evaporate (burn) or condense to digest (squash)
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -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/` | `bd wisp create` |
|
||||
| Vapor | Wisp | `.beads/` (Wisp=true, not exported) | `bd wisp create` |
|
||||
|
||||
### Proto/Template Commands
|
||||
|
||||
|
||||
@@ -230,11 +230,10 @@ This is intentional, not a bug. See [ARCHITECTURE.md](ARCHITECTURE.md#wisps-and-
|
||||
|
||||
### If You Need Wisp History
|
||||
|
||||
Wisps exist in local git history (SQLite database commits) until garbage collected. Future enhancements may include:
|
||||
Wisps are stored in the main database with `Wisp=true` flag and are not exported to JSONL. They exist in local SQLite until garbage collected or squashed. Future enhancements may include:
|
||||
|
||||
- Separate ephemeral repository for wisp storage
|
||||
- Explicit migration step to promote wisps to permanent storage
|
||||
- Configurable wisp retention policies
|
||||
- Automatic staleness detection based on dependency graph pressure
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ For reusable workflows, beads uses a chemistry metaphor:
|
||||
|-------|------|---------|--------|---------|
|
||||
| **Solid** | Proto | `.beads/` | Yes | Frozen template |
|
||||
| **Liquid** | Mol | `.beads/` | Yes | Active persistent work |
|
||||
| **Vapor** | Wisp | `.beads-wisp/` | No | Ephemeral operations |
|
||||
| **Vapor** | Wisp | `.beads/` (Wisp=true) | No | Ephemeral operations |
|
||||
|
||||
### Phase Commands
|
||||
|
||||
|
||||
Reference in New Issue
Block a user