Steve Yegge
7d4a5de697
Refactor burn/squash cleanup to recursive helper (gt-psj76.1)
...
Extract closeDescendants() helper that:
- Recursively closes all descendants (not just direct children)
- Logs errors instead of silent failure
- Uses distinct variable names (no shadowing)
- Is reused by both burn and squash
This handles nested molecules from the Christmas Ornament pattern.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-25 21:30:38 -08:00
Steve Yegge
a293b0f152
Fix burn/squash to close step issues (gt-psj76.1)
...
When burning or squashing a molecule, now also closes all child step
issues. Previously only the molecule attachment was detached, leaving
orphaned step issues that accumulated over time.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-25 21:14:32 -08:00
Steve Yegge
38d6f95f66
Update remaining commands to use env-aware role detection (gt-1xsah)
...
- mail.go: gt mail send --self uses GetRoleWithContext
- molecule_attach.go: detectCurrentAgent uses GetRoleWithContext
- molecule_attach_from_mail.go: uses GetRoleWithContext
- molecule_lifecycle.go: burn/squash use GetRoleWithContext
- rig.go: gt rig reset uses GetRoleWithContext
All role detection now checks GT_ROLE env var first.
2025-12-25 01:06:32 -08:00
Steve Yegge
031a27c062
feat: add WaitsFor parsing and mol bond command (gt-odfr, gt-isje)
...
WaitsFor parsing:
- Add WaitsFor []string field to MoleculeStep struct
- Parse WaitsFor lines in molecule descriptions
- Enables fanout gate semantics (e.g., WaitsFor: all-children)
- Case-insensitive parsing like Needs/Tier
mol bond command:
- Add gt mol bond for dynamic child molecule creation
- Supports --parent, --ref, and --var flags
- Enables Christmas Ornament pattern for parallel child execution
- Creates child issue with expanded template variables
- Instantiates proto steps under the bonded child
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-23 21:44:25 -08:00
Steve Yegge
9fa4a42030
feat: add audit trail for detach operations (gt-h6eq.8)
...
Add DetachMoleculeWithAudit() function that logs detach operations
to .beads/audit.log in JSONL format. Each entry captures:
- timestamp
- operation type (detach, burn, squash)
- pinned_bead_id
- detached_molecule
- detached_by (agent identity)
- reason (optional)
- previous_state
Updated callers:
- runMoleculeDetach: logs "detach" operation
- runMoleculeBurn: logs "burn" operation with reason
- runMoleculeSquash: logs "squash" operation with digest ID
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-23 11:40:06 -08:00
Steve Yegge
78507ff326
refactor(cmd): split molecule.go into focused files
...
Split the 1929-line molecule.go into 5 focused files:
- molecule.go (376): command definitions, init(), loadMoleculeCatalog
- molecule_status.go (673): status, progress, current commands
- molecule_list.go (432): list, show, export, parse, instances
- molecule_lifecycle.go (359): instantiate, catalog, burn, squash
- molecule_attach.go (128): attach, detach, attachment
No functional changes - pure refactoring for maintainability.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-23 01:38:34 -08:00