Commit Graph

463 Commits

Author SHA1 Message Date
Steve Yegge
095f71109b bd sync: 2025-12-21 17:23:59 2025-12-21 17:23:59 -08:00
Steve Yegge
fa7ae262ab bd sync: beads state 2025-12-21 17:23:51 -08:00
Steve Yegge
849ba242a9 fix(mq): push branch to origin before creating MR
CRITICAL FIX: Both `gt done` and `gt mq submit` were creating MR
records without pushing the branch to origin first. When polecat
worktrees were deleted, the unpushed branches were lost forever.

This caused 12 MQ items to become orphaned - merge requests existed
but their branches had vanished.

The fix adds a mandatory `git push origin <branch>` before creating
the MR record. If push fails, the MR is not created.

Fixes: gt-aqku

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:23:22 -08:00
Steve Yegge
7badab8a71 bd sync: rig beads state 2025-12-21 17:23:20 -08:00
Steve Yegge
5affaa5b6f bd sync: 2025-12-21 17:21:59 2025-12-21 17:23:20 -08:00
Steve Yegge
f4f22529df bd sync: 2025-12-21 16:49:30 2025-12-21 17:23:20 -08:00
Steve Yegge
5a67e22900 bd sync: 2025-12-21 16:49:10 2025-12-21 17:23:20 -08:00
Steve Yegge
41dcdf3404 bd sync: 2025-12-21 16:47:03 2025-12-21 17:23:20 -08:00
Steve Yegge
915c781d93 bd sync: 2025-12-21 16:39:04 2025-12-21 17:23:20 -08:00
Steve Yegge
c8e85e6423 bd sync: 2025-12-21 16:38:41 2025-12-21 17:23:20 -08:00
Steve Yegge
37e52ace76 bd sync: 2025-12-21 16:38:18 2025-12-21 17:23:20 -08:00
Steve Yegge
56a77e148b bd sync: 2025-12-21 16:37:55 2025-12-21 17:23:20 -08:00
Steve Yegge
34333fe3ba bd sync: 2025-12-21 16:37:32 2025-12-21 17:23:20 -08:00
Steve Yegge
2fb9ee67a5 feat(deacon): Add patrol runner context and prime support
Updates Deacon CLAUDE.md template with patrol execution instructions:
- Patrol molecule workflow (mol-deacon-patrol)
- Startup protocol: check for attached molecule, resume or bond
- Patrol execution loop: execute steps, close, loop or exit
- Nondeterministic idempotence for handoff

Enhances gt prime for Deacon:
- Adds patrol status section showing attached/naked state
- Shows molecule progress when patrol is in progress
- Includes Deacon-specific startup directive

Also adds standalone prompts/roles/deacon.md for reference.

Closes: gt-rana.4

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 16:47:47 -08:00
Steve Yegge
177eacf1d2 docs: Add bd mol bond/squash/burn CLI reference to molecules.md
Added comprehensive CLI reference documentation for the three molecule
lifecycle commands:

- bd mol bond: Instantiate proto into Mol (durable) or Wisp (ephemeral)
- bd mol squash: Complete molecule and generate digest
- bd mol burn: Abandon molecule without digest

Includes argument tables, behavior descriptions, examples, and a
lifecycle diagram showing the steam engine metaphor mapping.

Closes: gt-odvf

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 16:47:02 -08:00
Steve Yegge
0b25f4343b docs: Add molecule phase lifecycle diagram to architecture.md
Add visual diagram showing Proto → Mol/Wisp → Digest state transitions
with the "states of matter" metaphor (crystal → liquid/gas → distillate).

Document when to use Mol (durable) vs Wisp (ephemeral) based on audit
requirements and work importance.

Closes: gt-c6zs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 16:46:25 -08:00
Steve Yegge
bab5336be5 bd sync: 2025-12-21 16:37:09 2025-12-21 16:46:25 -08:00
Steve Yegge
4756aeec06 bd sync: 2025-12-21 16:35:21 2025-12-21 16:46:25 -08:00
Steve Yegge
844d3ceb1d bd sync: 2025-12-21 16:33:32 2025-12-21 16:46:25 -08:00
Steve Yegge
6d552d9840 bd sync: 2025-12-21 16:28:21 2025-12-21 16:46:25 -08:00
Steve Yegge
9827884548 bd sync: 2025-12-21 16:27:58 2025-12-21 16:46:25 -08:00
Steve Yegge
75dd428bad bd sync: 2025-12-21 16:17:35 2025-12-21 16:46:25 -08:00
Steve Yegge
7ba8c44dec bd sync: 2025-12-21 16:17:25 2025-12-21 16:46:25 -08:00
Steve Yegge
edcca1e8a3 bd sync: 2025-12-21 16:12:06 2025-12-21 16:46:25 -08:00
Steve Yegge
e871a084bf feat(tmux): add role icons to left side of status bar
Shows icon before brackets: 😺 [gastown/Rictus] polecat

Existing sessions need restart to see the change.
2025-12-21 16:33:37 -08:00
Steve Yegge
b7ffcb6a06 fix(tmux): add 🎩 icon to mayor status line 2025-12-21 16:28:04 -08:00
Steve Yegge
3579c2cdd3 fix(icons): use 👷 construction worker for crew 2025-12-21 16:26:25 -08:00
Steve Yegge
8140e77da8 fix(icons): use simple 💻 for crew (ZWJ emoji broke tmux) 2025-12-21 16:24:43 -08:00
Steve Yegge
8bde425bc5 feat(spawn): implement ephemeral molecule bonding
When --molecule is specified with gt spawn:
- Generate ephemeral instance ID (eph-abc123 format)
- Ensure .beads-ephemeral/ directory exists and is initialized
- Create ephemeral parent issue linking back to source issue
- Instantiate molecule steps in ephemeral beads
- Include ephemeral context in work assignment mail

This implements gt-3x0z.4 (Phase 2.1: gt spawn --molecule bonds in ephemeral).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 16:18:25 -08:00
Steve Yegge
4761d09b52 bd sync: 2025-12-21 16:05:59 2025-12-21 16:18:25 -08:00
Steve Yegge
8241541599 bd sync: 2025-12-21 16:04:30 2025-12-21 16:18:25 -08:00
Steve Yegge
e601271044 bd sync: 2025-12-21 15:55:26 2025-12-21 16:18:25 -08:00
Steve Yegge
107b6bf16b feat(daemon): add attachment detection for Deacon patrol system
Implements gt-rana.2: Daemon attachment detection

- Add Labels field to beads.Issue struct to parse label arrays
- Add attachment APIs: AttachMolecule, DetachMolecule, GetAttachment
- Add helper methods: HasAttachment, IsNaked for checking attachment state
- Add checkDeaconAttachment to daemon heartbeat cycle
- When Deacon's pinned bead is naked (no attached molecule):
  - Find or create mol-deacon-patrol template
  - Instantiate patrol molecule with steps as child issues
  - Attach molecule to Deacon's pinned bead
  - Nudge Deacon to start patrol loop
- Add comprehensive tests for attachment functionality

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 16:15:46 -08:00
Steve Yegge
0dab88e8bf feat(icons): centralize agent icons and add to all displays
- Mayor: 🎩 (top hat)
- Deacon: 🦉 (owl)
- Witness: 👁 (eye)
- Refinery: 🏭 (factory)
- Crew: 🧑‍💻 (technologist)
- Polecat: 😺 (happy cat)

Icons now show in:
- tmux status lines for all agent types
- gt status rig indicators
- gt witness status output
- gt agents popup menu
2025-12-21 16:10:20 -08:00
Steve Yegge
ca93a45b7d feat(doctor): add ephemeral beads health checks
Add gt doctor checks for ephemeral beads repos:
- ephemeral-exists: Verify .beads-ephemeral/ exists for each rig (fixable)
- ephemeral-git: Verify it's a valid git repo (fixable)
- ephemeral-orphans: Detect molecules >24h old (needs manual review)
- ephemeral-size: Warn if repo >100MB
- ephemeral-stale: Detect molecules with no activity in last hour

Implements gt-3x0z.3.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 16:04:31 -08:00
Steve Yegge
a0de2b1f47 bd sync: 2025-12-21 15:51:49 2025-12-21 16:04:31 -08:00
Steve Yegge
8fbd2205fd bd sync: 2025-12-21 15:48:07 2025-12-21 16:04:31 -08:00
Steve Yegge
7ee798c533 style: update agent icons (top hat, tower, cat face) 2025-12-21 16:00:37 -08:00
Steve Yegge
2e59c002e8 feat(beads): add attachment fields for pinned beads (gt-rana.1)
Implement AttachmentFields to track molecule attachments on pinned/handoff beads:
- AttachedMolecule: root issue ID of attached molecule
- AttachedAt: timestamp when attached

API:
- AttachMolecule(pinnedBeadID, moleculeID) - attach
- DetachMolecule(pinnedBeadID) - detach
- GetAttachment(pinnedBeadID) - query
- ParseAttachmentFields(issue) - parse from description
- FormatAttachmentFields(fields) - format for description

Includes comprehensive tests for parsing and API.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 15:53:15 -08:00
Steve Yegge
9c2adb9734 fix(tmux): correct witness session name pattern (gt-witness-<rig>) 2025-12-21 15:50:22 -08:00
Steve Yegge
51d536514a refactor: rename ephemeral to wisp (beads v0.33.1 terminology)
Update .beads-ephemeral/ to .beads-wisp/ per beads v0.33.1:
- Renamed initEphemeralBeads to initWispBeads
- Changed directory from .beads-ephemeral/ to .beads-wisp/
- Changed config from ephemeral: true to wisp: true
- Updated help text and output messages
- Updated tests

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 15:49:09 -08:00
Steve Yegge
b67141f3fc feat: add .beads-ephemeral/ creation to gt rig add
During rig initialization, now creates a .beads-ephemeral/ directory:
- Initialized as a git repo (for local versioning)
- Contains config.yaml with ephemeral: true
- Automatically added to rig .gitignore

This provides a local-only beads database for runtime tracking of
wisps and molecules, separate from the synced .beads/ database.

Closes gt-3x0z.1

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 15:49:09 -08:00
Steve Yegge
ef2b2e00a0 feat(tmux): add witness and refinery status line displays
- Witness shows polecat count under management (👁 N polecats)
- Refinery shows MQ length and processing status (🏭 MQ: N or 🏭 idle)
- Both show mail count when messages pending

Closes: gt-bd2l, gt-zayu
2025-12-21 15:48:14 -08:00
Steve Yegge
fb0d8c1bb9 feat(mol): add deacon-patrol molecule definition
Define the Deacon patrol molecule in builtin_molecules.go with 7 steps:
1. inbox-check - Handle callbacks from agents
2. health-scan - Ping Witnesses and Refineries
3. plugin-run - Execute registered plugins
4. orphan-check - Find abandoned work (uses wisp terminology)
5. session-gc - Clean dead sessions and wisp artifacts
6. context-check - Check own context limit
7. loop-or-exit - Burn and let daemon respawn, or exit if context high

Added DeaconPatrolMolecule() to BuiltinMolecules() list and added
corresponding test in builtin_molecules_test.go.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 15:47:10 -08:00
Steve Yegge
0fc74de3a3 bd sync: 2025-12-21 15:40:36 2025-12-21 15:40:36 -08:00
Steve Yegge
fe0c21b477 bd sync: 2025-12-21 15:37:59 2025-12-21 15:37:59 -08:00
Steve Yegge
f22b19588c bd sync: 2025-12-21 15:29:13 2025-12-21 15:29:57 -08:00
Steve Yegge
a49032ca5b bd sync: 2025-12-21 15:28:54 2025-12-21 15:29:57 -08:00
Steve Yegge
da94d8ee94 bd sync: 2025-12-21 15:28:35 2025-12-21 15:29:57 -08:00
Steve Yegge
99d4293c8c bd sync: 2025-12-21 15:28:17 2025-12-21 15:29:57 -08:00