Commit Graph

473 Commits

Author SHA1 Message Date
Steve Yegge
e4d0616cc9 bd sync: 2025-12-21 18:04:59 2025-12-21 18:04:59 -08:00
Steve Yegge
0752a66059 bd sync: 2025-12-21 18:04:27 2025-12-21 18:04:27 -08:00
Steve Yegge
ed136f8b0a bd sync: 2025-12-21 17:53:43 2025-12-21 17:53:43 -08:00
Steve Yegge
a4337a133b docs: Add deacon plugin system design
- New docs/deacon-plugins.md with full plugin architecture
- Directory-based discovery at ~/gt/plugins/
- Gate types: cooldown, cron, condition, event
- Parallel execution support via Task tool subagents
- Updated mol-deacon-patrol plugin-run step to reference new docs

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:42:05 -08:00
Steve Yegge
ab49e13596 bd sync: 2025-12-21 17:30:06 2025-12-21 17:30:06 -08:00
Steve Yegge
01bdb95f4c bd sync: 2025-12-21 17:26:39 2025-12-21 17:26:39 -08:00
Steve Yegge
506bb48c73 bd sync: 2025-12-21 17:26:20 2025-12-21 17:26:20 -08:00
Steve Yegge
d471c1c080 bd sync: 2025-12-21 17:25:40 2025-12-21 17:25:40 -08:00
Steve Yegge
eea437c69e bd sync: 2025-12-21 17:25:15 2025-12-21 17:25:15 -08:00
Steve Yegge
6a77bfeed7 bd sync: 2025-12-21 17:25:07 2025-12-21 17:25:07 -08:00
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