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 create <proto>` - Instantiate proto as ephemeral wisp (solid→vapor)
|
||||||
- `bd wisp list` - List all wisps with stale detection
|
- `bd wisp list` - List all wisps with stale detection
|
||||||
- `bd wisp gc` - Garbage collect orphaned wisps
|
- `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
|
- **Chemistry UX commands** - Phase-aware molecule operations
|
||||||
- `bd pour <proto>` - Instantiate proto as persistent mol (solid→liquid)
|
- `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 --wisp` - Force spawn as vapor when attaching to mol
|
||||||
- `bd mol bond --pour` - Force spawn as liquid when attaching to wisp
|
- `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
|
- **Cross-project dependencies** (bd-66w1, bd-om4a) - Reference issues across repos
|
||||||
- `external:<repo>:<id>` dependency syntax
|
- `external:<repo>:<id>` dependency syntax
|
||||||
@@ -302,7 +302,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### 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
|
- **Prefix validation in multi-repo mode** (GH#686) - Skip validation for external repos
|
||||||
- **Empty config values** (GH#680, GH#684) - Handle gracefully in getRepoConfig()
|
- **Empty config values** (GH#680, GH#684) - Handle gracefully in getRepoConfig()
|
||||||
- **Doctor UX improvements** (GH#687) - Better diagnostics and daemon integration
|
- **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 |
|
| **Proto** (solid) | Built-in | N/A | Reusable templates |
|
||||||
| **Mol** (liquid) | `.beads/` | Yes | Persistent work |
|
| **Mol** (liquid) | `.beads/` | Yes | Persistent work |
|
||||||
| **Wisp** (vapor) | `.beads-wisp/` | No | Ephemeral operations |
|
| **Wisp** (vapor) | `.beads/` (Wisp=true) | No | Ephemeral operations |
|
||||||
|
|
||||||
**Instantiation commands:**
|
**Instantiation commands:**
|
||||||
|
|
||||||
@@ -326,7 +326,7 @@ bd uses a molecular chemistry metaphor for template instantiation:
|
|||||||
bd pour <proto> --var key=value # Create in .beads/
|
bd pour <proto> --var key=value # Create in .beads/
|
||||||
|
|
||||||
# Wisp: proto → ephemeral wisp (vapor phase)
|
# 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
|
# List available templates
|
||||||
bd mol list --json
|
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: Chemistry UX - bd pour, bd mol bond --wisp/--pour for phase control",
|
||||||
"NEW: Cross-project deps - external:<repo>:<id> syntax, bd ship command",
|
"NEW: Cross-project deps - external:<repo>:<id> syntax, bd ship command",
|
||||||
"BREAKING: bd repo add/remove now writes to .beads/config.yaml (not DB)",
|
"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.
|
Long: `Create a wisp from a proto - sublimation from solid to vapor.
|
||||||
|
|
||||||
This is the chemistry-inspired command for creating ephemeral work from templates.
|
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:
|
Use wisp create for:
|
||||||
- Patrol cycles (deacon, witness)
|
- Patrol cycles (deacon, witness)
|
||||||
@@ -86,8 +86,8 @@ Use wisp create for:
|
|||||||
- Routine operations with no audit value
|
- Routine operations with no audit value
|
||||||
|
|
||||||
The wisp will:
|
The wisp will:
|
||||||
- Be stored in .beads-wisp/ (gitignored)
|
- Be stored in main database with Wisp=true flag
|
||||||
- NOT sync to remote
|
- NOT be exported to JSONL (and thus not synced via git)
|
||||||
- Either evaporate (burn) or condense to digest (squash)
|
- Either evaporate (burn) or condense to digest (squash)
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ Beads uses a chemistry metaphor for template-based workflows. See [MOLECULES.md]
|
|||||||
|-------|-------|---------|---------|
|
|-------|-------|---------|---------|
|
||||||
| Solid | Proto | `.beads/` | `bd mol catalog` |
|
| Solid | Proto | `.beads/` | `bd mol catalog` |
|
||||||
| Liquid | Mol | `.beads/` | `bd pour` |
|
| 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
|
### 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
|
### 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
|
- Configurable wisp retention policies
|
||||||
|
- Automatic staleness detection based on dependency graph pressure
|
||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ For reusable workflows, beads uses a chemistry metaphor:
|
|||||||
|-------|------|---------|--------|---------|
|
|-------|------|---------|--------|---------|
|
||||||
| **Solid** | Proto | `.beads/` | Yes | Frozen template |
|
| **Solid** | Proto | `.beads/` | Yes | Frozen template |
|
||||||
| **Liquid** | Mol | `.beads/` | Yes | Active persistent work |
|
| **Liquid** | Mol | `.beads/` | Yes | Active persistent work |
|
||||||
| **Vapor** | Wisp | `.beads-wisp/` | No | Ephemeral operations |
|
| **Vapor** | Wisp | `.beads/` (Wisp=true) | No | Ephemeral operations |
|
||||||
|
|
||||||
### Phase Commands
|
### Phase Commands
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user