feat: Distinct prefixes for protos, molecules, wisps (bd-hobo)

Added type-specific ID prefixes for better visual recognition:
- `bd pour` now generates IDs with "mol-" prefix
- `bd wisp create` now generates IDs with "wisp-" prefix
- Regular issues continue using the configured prefix

Implementation:
- Added IDPrefix field to types.Issue (internal, not exported to JSONL)
- Added Prefix field to CloneOptions for spawning operations
- Added IDPrefix to RPC CreateArgs for daemon communication
- Updated storage layer to use issue.IDPrefix when generating IDs
- Updated pour.go and wisp.go to pass appropriate prefixes

This enables instant visual recognition of entity types and prevents
accidental modification of templates.

🤖 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-25 02:05:06 -08:00
parent a643b9ab67
commit f78fe883d0
10 changed files with 38 additions and 14 deletions

View File

@@ -824,7 +824,7 @@ func TestSpawnWithBasicAttach(t *testing.T) {
}
vars := map[string]string{"feature": "auth"}
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, vars, "", "test", true)
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, vars, "", "test", true, "")
if err != nil {
t.Fatalf("Failed to spawn primary: %v", err)
}
@@ -934,7 +934,7 @@ func TestSpawnWithMultipleAttachments(t *testing.T) {
t.Fatalf("Failed to load primary subgraph: %v", err)
}
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, nil, "", "test", true)
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, nil, "", "test", true, "")
if err != nil {
t.Fatalf("Failed to spawn primary: %v", err)
}
@@ -1052,7 +1052,7 @@ func TestSpawnAttachTypes(t *testing.T) {
t.Fatalf("Failed to load primary subgraph: %v", err)
}
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, nil, "", "test", true)
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, nil, "", "test", true, "")
if err != nil {
t.Fatalf("Failed to spawn primary: %v", err)
}
@@ -1212,7 +1212,7 @@ func TestSpawnVariableAggregation(t *testing.T) {
}
// Spawn primary with variables
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, vars, "", "test", true)
spawnResult, err := spawnMolecule(ctx, s, primarySubgraph, vars, "", "test", true, "")
if err != nil {
t.Fatalf("Failed to spawn primary: %v", err)
}