bd sync: 2025-12-26 15:51:39
This commit is contained in:
@@ -67,7 +67,7 @@
|
||||
{"id":"gt-1ky","title":"CLI: workspace commands (init, add, list)","description":"GGT needs workspace management commands beyond install.\n\n## Commands (beyond gt-f9x.3 install)\n\n### gt workspace list\nList all rigs in current workspace.\n```\ngt workspace list [--json]\n```\nEssentially `gt rig list` but framed as workspace view.\n\n### gt workspace add\nAdd existing rig to workspace (alternative to gt rig add).\n```\ngt workspace add \u003cgit-url\u003e [--name NAME]\n```\n\n### gt onboard\nInteractive first-time setup wizard.\n```\ngt onboard\n```\n- Prompts for workspace location\n- Creates structure via gt install\n- Offers to add first rig\n\n## Note\nMay be redundant with gt-f9x.3 (install) and gt-u1j.16 (rig commands).\nConsider if this is needed or should be closed as covered by those.\n\n## PGT Reference\ngastown-py/src/gastown/cli/workspace_cmd.py","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-16T14:47:38.070203-08:00","updated_at":"2025-12-16T16:03:49.715667-08:00"}
|
||||
{"id":"gt-1l7h","title":"Digest: mol-deacon-patrol @ 2025-12-24 19:47","description":"Patrol 16: All healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T19:47:28.476069-08:00","updated_at":"2025-12-24T19:47:28.476069-08:00","closed_at":"2025-12-24T19:47:28.47598-08:00","close_reason":"Squashed from wisp gt-u80 (9 issues)"}
|
||||
{"id":"gt-1le","title":"town handoff command (optional)","description":"CLI commands for session handoff workflow (optional convenience).\n\n## Commands\n\n### gt handoff\nGenerate handoff interactively.\n```\ngt handoff [--send]\n```\n- Collects current state (status, inbox, beads)\n- Prompts for additional notes\n- --send: Mail to self and exit\n\n### gt resume\nCheck for and display pending handoff.\n```\ngt resume\n```\n- Checks inbox for handoff message\n- Displays formatted handoff if found\n- Suggests next actions\n\n## Implementation\n\nThese are convenience wrappers. The same workflow can be done manually:\n```bash\n# Manual handoff\ntown status \u003e /tmp/handoff\ntown inbox \u003e\u003e /tmp/handoff\nbd ready \u003e\u003e /tmp/handoff\n# Edit and send\ntown mail send mayor/ -s \"Session Handoff\" -f /tmp/handoff\n```\n\n## Priority\n\nP2 - Optional. Manual workflow works fine. Nice to have for UX.\n\n## Notes\n\nPart of session cycling workflow designed in [deleted:gt-u82].","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-15T20:15:31.954724-08:00","updated_at":"2025-12-25T01:30:41.735893-08:00","dependencies":[{"issue_id":"gt-1le","depends_on_id":"gt-u82","type":"blocks","created_at":"2025-12-15T20:15:39.647043-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-1py3y","title":"Unify gt sling and gt spawn with --args support","description":"## Summary\n\nSimplify the command set by merging `gt spawn` functionality into `gt sling`, and add `--args` for natural language formula instructions.\n\n## Current State\n\n- `gt sling` - targets existing agents (mayor, crew, witness, etc.)\n- `gt spawn` - creates new polecat sessions with work\n\nThis split is confusing. Users just want to assign work.\n\n## Proposed Changes\n\n### 1. Auto-spawn polecats when target is a rig\n\n```bash\ngt sling beads-release mayor # existing agent\ngt sling beads-release gastown # auto-spawn polecat in rig\ngt sling beads-release # auto-spawn in current rig\n```\n\nWhen target is a rig (not a specific agent), sling spawns a polecat.\n\n### 2. Add --args for natural language instructions\n\n```bash\ngt sling beads-release --args \"patch release\"\ngt sling beads-release --args \"minor release, skip changelog\"\ngt sling code-review --args \"focus on security issues\"\n```\n\nThe `--args` string gets stored in SlungWork and included in the agent's prompt context. This provides infinite flexibility without schema maintenance - the LLM executor interprets the instructions.\n\n### 3. Deprecate gt spawn (or make it an alias)\n\n`gt spawn` becomes an implementation detail or alias for `gt sling` with rig target.\n\n## Implementation Notes\n\n- Add `Args` field to `SlungWork` struct in `internal/wisp/types.go`\n- Add `--args` flag to `gt sling`\n- Add polecat spawning logic when target resolves to a rig\n- Update `gt prime` to show args in context\n- Consider keeping `gt spawn` as alias for backwards compatibility\n\n## Context from session\n\n- Already implemented `gt mol step done` for auto-continuing molecule steps\n- The beads-release formula exists and works, just needs easier parameterization\n- User's key insight: \"the executor is an LLM, why are we pretending it needs structured parameters?\"","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-26T13:35:55.902844-08:00","updated_at":"2025-12-26T13:35:55.902844-08:00"}
|
||||
{"id":"gt-1py3y","title":"Unify gt sling and gt spawn with --args support","description":"## Summary\n\nSimplify the command set by merging `gt spawn` functionality into `gt sling`, and add `--args` for natural language formula instructions.\n\n## Current State\n\n- `gt sling` - targets existing agents (mayor, crew, witness, etc.)\n- `gt spawn` - creates new polecat sessions with work\n\nThis split is confusing. Users just want to assign work.\n\n## Proposed Changes\n\n### 1. Auto-spawn polecats when target is a rig\n\n```bash\ngt sling beads-release mayor # existing agent\ngt sling beads-release gastown # auto-spawn polecat in rig\ngt sling beads-release # auto-spawn in current rig\n```\n\nWhen target is a rig (not a specific agent), sling spawns a polecat.\n\n### 2. Add --args for natural language instructions\n\n```bash\ngt sling beads-release --args \"patch release\"\ngt sling beads-release --args \"minor release, skip changelog\"\ngt sling code-review --args \"focus on security issues\"\n```\n\nThe `--args` string gets stored in SlungWork and included in the agent's prompt context. This provides infinite flexibility without schema maintenance - the LLM executor interprets the instructions.\n\n### 3. Deprecate gt spawn (or make it an alias)\n\n`gt spawn` becomes an implementation detail or alias for `gt sling` with rig target.\n\n## Implementation Notes\n\n- Add `Args` field to `SlungWork` struct in `internal/wisp/types.go`\n- Add `--args` flag to `gt sling`\n- Add polecat spawning logic when target resolves to a rig\n- Update `gt prime` to show args in context\n- Consider keeping `gt spawn` as alias for backwards compatibility\n\n## Context from session\n\n- Already implemented `gt mol step done` for auto-continuing molecule steps\n- The beads-release formula exists and works, just needs easier parameterization\n- User's key insight: \"the executor is an LLM, why are we pretending it needs structured parameters?\"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-26T13:35:55.902844-08:00","updated_at":"2025-12-26T15:51:21.360561-08:00","closed_at":"2025-12-26T15:51:21.360561-08:00","close_reason":"Implemented auto-spawn for rig targets in gt sling","comments":[{"id":3,"issue_id":"gt-1py3y","author":"mayor","text":"## Implementation Complete\n\n### Changes Made\n\n1. **Auto-spawn polecats when target is rig** (sling.go)\n - Added `IsRigName()` helper to detect rig-only targets\n - Added `SpawnPolecatForSling()` for lightweight polecat creation\n - When `gt sling \u003cbead\u003e \u003crig\u003e` is used, auto-spawns fresh polecat\n\n2. **Updated documentation** \n - sling help explains auto-spawn behavior and when to use spawn instead\n - spawn help points to sling as simpler alternative\n\n### Design Decision\n\nRather than making spawn a true alias, kept them as distinct commands:\n- **sling**: Light spawn - just hook + nudge (quick dispatch)\n- **spawn**: Full workflow with mol-polecat-work, mail, witness notification\n\nThis gives users the simple option (sling) while preserving the structured workflow (spawn) for complex cases needing crash recovery.","created_at":"2025-12-26T23:51:16Z"}]}
|
||||
{"id":"gt-1qti","title":"Mayor restart loop: auto-prime and mail check on attach","description":"When mayor session cycles (after /exit, gt mayor attach reconnects), the new session lacks context.\n\n## Current Behavior\n- Mayor exits, shell script loop restarts claude\n- New session starts cold - no gt prime, no mail check\n- Mayor is disoriented, doesn't know prior context\n- Strong 'antimemetic properties' - we discuss fixing it, then forget\n\n## Expected Behavior\nAfter restart, mayor should automatically:\n1. Run gt prime (load role context)\n2. Check gt mail inbox (find handoff messages)\n3. Look for 🤝 HANDOFF messages from predecessor\n\n## Possible Fixes\n1. Startup hook in Claude Code settings that runs gt prime\n2. CLAUDE.md instructions that say 'FIRST THING: run gt prime'\n3. Shell script wrapper that injects context before attach\n4. Modify gt mayor attach to inject prime command\n\n## Related\n- gt-vci: Mayor handoff mail template\n- gt-sye: Mayor startup protocol prompting","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-19T14:44:43.188588-08:00","updated_at":"2025-12-19T17:22:52.550264-08:00","closed_at":"2025-12-19T16:03:20.714077-08:00"}
|
||||
{"id":"gt-1su","title":"Spawn inject: Enter not submitted after multiline paste","description":"When gt spawn injects a multiline context (85+ lines), Claude Code shows \n'[Pasted text #1 +85 lines]' but the prompt is not submitted.\n\nThe tmux SendKeys function does include 'Enter' but it appears to not work\nfor long pasted text:\n\n```go\nfunc (t *Tmux) SendKeys(session, keys string) error {\n _, err := t.run(\"send-keys\", \"-t\", session, keys, \"Enter\")\n return err\n}\n```\n\nPossible fixes:\n1. Use tmux paste-buffer instead of send-keys for long text\n2. Send Enter separately after the text\n3. Use bracketed paste mode correctly\n\nReproduction:\n```bash\ngt spawn gastown/Nux --issue gt-u1j.13 --create\n# Session shows pasted text but waits at prompt\n```","status":"tombstone","priority":1,"issue_type":"bug","created_at":"2025-12-17T14:09:20.774203-08:00","updated_at":"2025-12-25T01:30:41.67682-08:00","deleted_at":"2025-12-25T01:30:41.67682-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"bug"}
|
||||
{"id":"gt-1tqy","title":"Digest: mol-deacon-patrol","description":"Patrol 15","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:10:24.121681-08:00","updated_at":"2025-12-24T23:10:24.121681-08:00","closed_at":"2025-12-24T23:10:24.121649-08:00"}
|
||||
@@ -581,6 +581,7 @@
|
||||
{"id":"gt-bmjw","title":"gt polecat add: should handle existing branch gracefully","description":"## Problem\n\n`gt polecat add gastown Nux` fails if the branch `polecat/Nux` already exists.\n\n## Current Behavior\n\n```\nfatal: a branch named 'polecat/Nux' already exists\n```\n\n## Expected Behavior\n\nShould either:\n1. Reuse the existing branch\n2. Or prompt to delete/recreate\n3. Or auto-suffix: polecat/Nux-2\n\n## Context\n\nBranch may exist from previous polecat that was removed but branch wasn't cleaned up.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-18T21:52:09.361672-08:00","updated_at":"2025-12-20T03:08:48.858604-08:00","closed_at":"2025-12-20T03:08:48.858604-08:00"}
|
||||
{"id":"gt-bnch","title":"Human escalation: notify overseer when self-heal fails","description":"Lightweight escalation extracted from Deacon epic (gt-5af).\n\n**Implementation**: Config in town.json or similar:\n```yaml\nescalation:\n contact: steve@example.com # or slack webhook\n triggers:\n - daemon_cant_restart\n - session_missing_5min\n```\n\n**Trigger points**:\n- Go daemon can't restart a session after N attempts\n- Agent detects it's stuck and can't recover\n- Witness can't reach polecat\n\n**Mechanism**: \n- Simple: `gt mail send --human` already exists\n- Enhanced: email/slack via external script\n\n**Weight**: Small config + one code path in daemon\n**Value**: High for unattended operation - human gets notified instead of silent failure","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-20T20:40:46.661514-08:00","updated_at":"2025-12-20T20:40:46.661514-08:00"}
|
||||
{"id":"gt-bnik","title":"gt nudge should accept partial/fuzzy session names","description":"Currently gt nudge requires the exact tmux session name (e.g., gt-gastown-crew-max). Should be more forgiving:\n\n1. Accept partial matches when unambiguous (e.g., 'max' → gt-gastown-crew-max)\n2. Accept shorthand like 'gastown/max' or 'crew/max'\n3. Show helpful error with suggestions when ambiguous\n\nExamples that should work:\n- gt nudge max '...' → matches gt-gastown-crew-max\n- gt nudge gastown/max '...' → matches gt-gastown-crew-max\n- gt nudge beads-dave '...' → matches gt-beads-crew-dave","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-12-20T17:53:44.834337-08:00","updated_at":"2025-12-25T21:00:26.024623-08:00","closed_at":"2025-12-25T21:00:26.024623-08:00","close_reason":"P3 polish features. Not essential for v0.1."}
|
||||
{"id":"gt-bnlev","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 20: final cycle before handoff","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:48:49.95776-08:00","updated_at":"2025-12-26T15:48:49.95776-08:00","closed_at":"2025-12-26T15:48:49.957717-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-bnlev","depends_on_id":"gt-wisp-8nh","type":"parent-child","created_at":"2025-12-26T15:48:49.958594-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-bqbw","title":"detectSender() doesn't recognize crew workers","description":"## Problem\n\ndetectSender() in internal/cmd/mail.go only checks for /polecats/ directories. Crew workers in /crew/\u003cname\u003e/ fall through to the default 'mayor/', so:\n- gt mail inbox shows mayor's inbox instead of the crew worker's\n- gt mail send sets the wrong From address\n\n## Fix\n\nAdd crew worker detection before the /polecats/ check:\n\nif strings.Contains(cwd, \"/crew/\") {\n parts := strings.Split(cwd, \"/crew/\")\n ...\n return fmt.Sprintf(\"%s/crew/%s\", rigName, crewMember)\n}\n\n## Affected\n- Any crew worker running gt mail inbox without explicit address\n- Crew worker handoffs (wrong sender)","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-18T20:09:42.556373-08:00","updated_at":"2025-12-19T01:33:49.861756-08:00","closed_at":"2025-12-19T01:33:49.861756-08:00"}
|
||||
{"id":"gt-brg8r","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 13: routine","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T13:27:46.024924-08:00","updated_at":"2025-12-26T13:27:46.024924-08:00","closed_at":"2025-12-26T13:27:46.024879-08:00","close_reason":"Squashed from 9 wisps"}
|
||||
{"id":"gt-btiy","title":"Digest: mol-deacon-patrol @ 2025-12-24 19:26","description":"Patrol 11: 8 sessions OK","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T19:26:07.651546-08:00","updated_at":"2025-12-24T19:26:07.651546-08:00","closed_at":"2025-12-24T19:26:07.651487-08:00","close_reason":"Squashed from wisp gt-18i (9 issues)"}
|
||||
@@ -723,7 +724,7 @@
|
||||
{"id":"gt-eu9","title":"Witness session cycling and handoff","description":"Add session cycling and handoff protocol to Witness CLAUDE.md template.\n\n## Session Cycling Protocol\n\n```markdown\n## Session Cycling\n\nYour context will fill over long swarms. Proactively cycle when:\n- Running for many hours\n- Losing track of which workers you've checked\n- Responses getting slower\n- About to start complex operation\n\n### Handoff Protocol\n\n1. **Capture current state**:\n```bash\ntown list . # Worker states\ntown all beads # Pending verifications \ntown inbox # Unprocessed messages\n```\n\n2. **Compose handoff note**:\n```\n[HANDOFF_TYPE]: witness_cycle\n[TIMESTAMP]: \u003cnow\u003e\n[RIG]: \u003crig\u003e\n\n## Active Workers\n\u003clist workers and status\u003e\n\n## Pending Verifications\n\u003cworkers signaled done but not verified\u003e\n\n## Recent Actions\n\u003clast 3-5 actions\u003e\n\n## Warnings/Notes\n\u003canything next session should know\u003e\n\n## Next Steps\n\u003cwhat should happen next\u003e\n```\n\n3. **Send handoff**:\n```bash\ntown mail send \u003crig\u003e/witness -s \"Session Handoff\" -m \"\u003cnote\u003e\"\n```\n\n4. **Exit cleanly**: End session, daemon spawns fresh one.\n\n### On Fresh Session Start\n\n1. Check for handoff: `town inbox | grep \"Session Handoff\"`\n2. If found, read it and resume from handoff state\n3. If not found, do full status check\n```\n\n## Implementation\n\nAdd to WITNESS_CLAUDE.md template.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-15T19:48:55.484911-08:00","updated_at":"2025-12-25T21:01:03.681156-08:00","closed_at":"2025-12-25T21:01:03.681156-08:00","close_reason":"Old prompting and configuration tasks. Templates and beads-sync work.","dependencies":[{"issue_id":"gt-eu9","depends_on_id":"gt-82y","type":"blocks","created_at":"2025-12-15T19:49:05.846443-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-euiap","title":"Digest: mol-deacon-patrol","description":"Patrol 1: All agents healthy (Mayor, 2 Witnesses, 2 Refineries), no callbacks, no orphans","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T00:44:09.814515-08:00","updated_at":"2025-12-25T00:44:09.814515-08:00","closed_at":"2025-12-25T00:44:09.814476-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-evtm5","title":"Digest: mol-deacon-patrol","description":"Patrol 3: Quiet, all agents healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T07:25:05.193077-08:00","updated_at":"2025-12-25T07:25:05.193077-08:00","closed_at":"2025-12-25T07:25:05.193041-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-ewzon","title":"Implement town activity logging","description":"Add centralized logging for Gas Town agent lifecycle events.\n\n## Events to Log\n- spawn: new agent created\n- wake: agent resumed \n- nudge: message injected\n- handoff: agent handed off (intentional restart)\n- done: agent finished work\n- crash: agent exited unexpectedly\n- kill: agent killed intentionally\n\n## Implementation\n- Add internal/log/town.go with LogEvent() function\n- Log to ~/gt/logs/town.log or .beads/town.log\n- Add gt log command to view/tail/filter logs\n- Include timestamps, agent identity, context\n\n## Log Format\n```\n2025-12-26 15:30:45 [spawn] gastown/crew/max spawned for gt-xyz\n2025-12-26 15:31:02 [nudge] gastown/crew/max nudged with \"start work\"\n2025-12-26 15:45:33 [crash] gastown/crew/max exited unexpectedly (signal 9)\n```","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-26T15:29:40.075343-08:00","updated_at":"2025-12-26T15:29:40.075343-08:00"}
|
||||
{"id":"gt-ewzon","title":"Implement town activity logging","description":"Add centralized logging for Gas Town agent lifecycle events.\n\n## Events to Log\n- spawn: new agent created\n- wake: agent resumed \n- nudge: message injected\n- handoff: agent handed off (intentional restart)\n- done: agent finished work\n- crash: agent exited unexpectedly\n- kill: agent killed intentionally\n\n## Implementation\n- Add internal/log/town.go with LogEvent() function\n- Log to ~/gt/logs/town.log or .beads/town.log\n- Add gt log command to view/tail/filter logs\n- Include timestamps, agent identity, context\n\n## Log Format\n```\n2025-12-26 15:30:45 [spawn] gastown/crew/max spawned for gt-xyz\n2025-12-26 15:31:02 [nudge] gastown/crew/max nudged with \"start work\"\n2025-12-26 15:45:33 [crash] gastown/crew/max exited unexpectedly (signal 9)\n```","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-26T15:29:40.075343-08:00","updated_at":"2025-12-26T15:51:34.576465-08:00","closed_at":"2025-12-26T15:51:34.576465-08:00","close_reason":"Closed"}
|
||||
{"id":"gt-ey5f","title":"Polecat template: condense Work Protocol section","description":"The Work Protocol section summarizes the entire mol-polecat-work molecule. This is too verbose and will go stale as the molecule evolves. Condense to essential guidance only, let the molecule itself provide the steps.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T16:56:49.045886-08:00","updated_at":"2025-12-23T17:09:02.133528-08:00","closed_at":"2025-12-23T17:09:02.133528-08:00","close_reason":"Completed in commit 1931ec7","dependencies":[{"issue_id":"gt-ey5f","depends_on_id":"gt-t9u7","type":"parent-child","created_at":"2025-12-23T16:57:16.531624-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-eya9s","title":"Digest: mol-deacon-patrol","description":"Patrol 17: All clear","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T00:05:03.826486-08:00","updated_at":"2025-12-25T00:05:03.826486-08:00","closed_at":"2025-12-25T00:05:03.826456-08:00"}
|
||||
{"id":"gt-eyi2","title":"Activity feed from wisp state: gt patrol status","description":"Enable mayor and gt tool to quickly see what patrol agents are doing.\n\n## Problem\n\nThe mayor and gt tool cannot quickly see what the deacon (or other patrol agents) are doing.\nNeed a way to extract an activity feed from the current wisp state.\n\n## Desired Commands\n\n- gt patrol status: Show current patrol state (step, timing, cycle count)\n- gt patrol history: Show recent patrol cycles (from digests)\n- gt patrol feed: Live tail of patrol activity\n\n## Data Sources\n\n- .beads-wisp/issues.jsonl: Current wisp with step progress\n- .beads/issues.jsonl: Digests from squashed patrols\n- heartbeat.json: Last activity timestamp\n\n## Use Cases\n\n1. Mayor checking deacon: Is the deacon doing anything?\n2. Debugging hangs: What step is it stuck on?\n3. Operator monitoring: Dashboard of patrol health\n4. Summaries for handoffs: Auto-generate patrol digest\n\n## Related\n\n- gt-id36: Deacon Kernel\n- gt-3x0z: Wisp Molecule Integration","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-22T03:04:15.726155-08:00","updated_at":"2025-12-25T21:00:14.31512-08:00","closed_at":"2025-12-25T21:00:14.31512-08:00","close_reason":"Nice-to-have or covered by core patrol lifecycle work."}
|
||||
@@ -897,6 +898,7 @@
|
||||
{"id":"gt-hxp56","title":"Digest: mol-deacon-patrol","description":"Patrol 12: All clear","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T16:13:56.522072-08:00","updated_at":"2025-12-25T16:13:56.522072-08:00","closed_at":"2025-12-25T16:13:56.522043-08:00"}
|
||||
{"id":"gt-hyj5t","title":"Digest: mol-deacon-patrol","description":"Patrol 1: No mail, all agents healthy (mayor/witnesses/refineries OK), 0 polecats active, 2 orphaned mols for removed furiosa polecat noted","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T07:23:29.892203-08:00","updated_at":"2025-12-25T07:23:29.892203-08:00","closed_at":"2025-12-25T07:23:29.892166-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-hzr","title":"gt witness: Witness management commands","description":"Add 'gt witness' command group for witness lifecycle management.\n\nSubcommands:\n- gt witness start [rig] - Start witness for a rig\n- gt witness stop [rig] - Stop witness\n- gt witness status [rig] - Show witness status\n- gt witness attach [rig] - Attach to witness session\n\nWitness monitors polecats and handles:\n- Idle detection and cleanup\n- Session health checks\n- Nudging stuck agents","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-17T21:47:32.210917-08:00","updated_at":"2025-12-19T12:05:27.343254-08:00","closed_at":"2025-12-19T12:05:27.343254-08:00","dependencies":[{"issue_id":"gt-hzr","depends_on_id":"gt-hw6","type":"blocks","created_at":"2025-12-17T22:23:42.955006-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-i3deo","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 18: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:48:00.534606-08:00","updated_at":"2025-12-26T15:48:00.534606-08:00","closed_at":"2025-12-26T15:48:00.534551-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-i3deo","depends_on_id":"gt-wisp-ywh","type":"parent-child","created_at":"2025-12-26T15:48:00.535463-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-i4i2","title":"Update deacon.md.tmpl with correct molecule commands","description":"The deacon prompt references commands that don't exist:\n- gt mol bond → should be bd mol run or gt mol arm\n- gt mol status → needs gt mol command tree first\n\nUpdate after gt mol command tree is implemented.\n\nDepends on: gt mol command tree issue","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-22T13:12:26.401739-08:00","updated_at":"2025-12-22T13:19:50.641767-08:00","closed_at":"2025-12-22T13:19:50.641767-08:00","close_reason":"Updated deacon.md with correct commands: gt mol status, bd mol spawn, gt mol squash","dependencies":[{"issue_id":"gt-i4i2","depends_on_id":"gt-x74c","type":"blocks","created_at":"2025-12-22T13:12:35.69774-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-i4kq","title":"Update templates for Propulsion Principle","description":"Overhaul agent prompts to embody the Universal Gas Town Propulsion Principle:\n\n\u003e If you find something on your hook, YOU RUN IT.\n\nTemplates to update:\n- [ ] deacon.md.tmpl - Check hook first, no decision logic\n- [ ] polecat.md.tmpl - Propulsion startup, follow molecule\n- [ ] witness.md.tmpl - Sling wisps when spawning agents\n- [ ] refinery.md.tmpl - Accept slung epics\n\nKey changes:\n1. Remove 'should I run this?' decision points\n2. Add 'check your hook' as step 1 of startup\n3. Make molecule-following the default mode\n4. Simplify - agents don't think, they execute","status":"closed","priority":1,"issue_type":"task","assignee":"gastown/slit","created_at":"2025-12-22T03:17:46.464968-08:00","updated_at":"2025-12-22T23:44:05.155061-08:00","closed_at":"2025-12-22T23:44:05.155061-08:00","close_reason":"All four templates updated with Propulsion Principle","dependencies":[{"issue_id":"gt-i4kq","depends_on_id":"gt-4ev4","type":"blocks","created_at":"2025-12-22T12:10:42.245621-08:00","created_by":"daemon"},{"issue_id":"gt-i4kq","depends_on_id":"gt-uym5","type":"blocks","created_at":"2025-12-22T12:10:42.320803-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-i4lo","title":"mol-polecat-work","description":"Full polecat lifecycle from assignment to decommission.\n\nThis proto enables nondeterministic idempotence for polecat work.\nA polecat that crashes after any step can restart, read its molecule state,\nand continue from the last completed step. No work is lost.\n\nVariables:\n- gt-test123 - The source issue ID being worked on","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-21T21:48:26.320963-08:00","updated_at":"2025-12-25T11:13:37.598677-08:00","closed_at":"2025-12-25T11:13:37.598677-08:00","close_reason":"Stale test molecule from Dec 21 (gt-test123)"}
|
||||
@@ -948,6 +950,7 @@
|
||||
{"id":"gt-ingm.4","title":"Rewrite role templates without step lists","description":"Update:\n- prompts/roles/deacon.md\n- prompts/roles/refinery.md\n- prompts/roles/witness.md\n\nTemplates should describe HOW to run patrols (propulsion principle, bd mol current, bd close --continue) not WHAT the steps are. Steps come from proto beads.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T12:38:14.388135-08:00","updated_at":"2025-12-25T20:54:18.973046-08:00","closed_at":"2025-12-25T20:54:18.973046-08:00","close_reason":"Orphaned: referenced in commit but not closed","dependencies":[{"issue_id":"gt-ingm.4","depends_on_id":"gt-ingm.2","type":"blocks","created_at":"2025-12-24T12:38:24.049212-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-ingm.5","title":"Standardize bd mol vs gt mol commands","description":"Audit all docs and templates for command usage.\n\nClarify:\n- gt mol = Gas Town wrapper (what does it add?)\n- bd mol = Beads molecule commands (authoritative)\n\nIf gt mol is thin wrapper, consider removing.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T12:38:15.50826-08:00","updated_at":"2025-12-25T22:54:55.898859-08:00","closed_at":"2025-12-25T22:54:55.898859-08:00","close_reason":"Audited: gt mol has orchestrator commands (attach, status, etc), bd mol has data commands. Fixed one doc ref."}
|
||||
{"id":"gt-ingm.6","title":"Remove spawn - use pour/wisp only (see bd-8y9t)","description":"Remove bd mol spawn entirely from vocabulary.\n\nReplace all references with:\n- bd pour \u003cproto\u003e - Create persistent mol (liquid)\n- bd wisp \u003cproto\u003e - Create ephemeral wisp (vapor)\n\n'spawn' doesn't fit the chemistry metaphor. Two phase transitions (pour/wisp) are clearer than one command with flags.\n\nSee bd-XXX for Beads-side removal.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T12:38:16.595926-08:00","updated_at":"2025-12-25T22:54:55.990767-08:00","closed_at":"2025-12-25T22:54:55.990767-08:00","close_reason":"bd mol spawn already removed - replaced by bd pour and bd wisp create"}
|
||||
{"id":"gt-ioglq","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 11: nominal (6 steps)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:45:12.015686-08:00","updated_at":"2025-12-26T15:45:12.015686-08:00","closed_at":"2025-12-26T15:45:12.015647-08:00","close_reason":"Squashed from 6 wisps","dependencies":[{"issue_id":"gt-ioglq","depends_on_id":"gt-wisp-6bo","type":"parent-child","created_at":"2025-12-26T15:45:12.016509-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-ioij","title":"mol-town-shutdown: Full Gas Town reset molecule","description":"## Summary\nMolecule for clean town shutdown/restart. Sling it to Mayor when ready to reboot.\n\n## Steps\n1. Clear all inboxes (witness, refinery, crew - all rigs)\n2. Unhook all agents (remove stale molecule attachments)\n3. Kill any active polecats\n4. Stop daemon\n5. Rotate/archive logs\n6. bd sync + git push\n7. Send Mayor handoff (what's next)\n8. Restart daemon fresh\n\n## Invocation\n```\ngt hook mol-town-shutdown # attach it\n# Mayor runs it on next session\n```\n\n## Related\n- Patrol cleanup (continuous) vs shutdown (nuclear)\n- See gt-xxx for patrol hygiene","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-24T17:25:45.295151-08:00","updated_at":"2025-12-25T22:59:49.419867-08:00","closed_at":"2025-12-25T22:59:49.419867-08:00","close_reason":"Formula created: mol-town-shutdown with 7 steps for clean town reboot"}
|
||||
{"id":"gt-iq486","title":"Digest: mol-deacon-patrol","description":"Patrol 17: all clear","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T11:05:59.619474-08:00","updated_at":"2025-12-25T11:05:59.619474-08:00","closed_at":"2025-12-25T11:05:59.619445-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-is4fi","title":"Refactor formula transformation pipeline to shared helper","description":"The formula transformation pipeline (control flow, advice, expansions, aspects) is duplicated between cook.go and mol_bond.go. Should be extracted to a shared function in the formula package.\n\nCurrent duplication in:\n- cmd/bd/cook.go:96-136\n- cmd/bd/mol_bond.go:598-633\n\nSuggested approach:\n- Add formula.Transform(resolved *Formula, parser *Parser) (*Formula, error) \n- Handles all transformation steps in order\n- Both cook.go and mol_bond.go call this single function","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-25T16:50:55.343049-08:00","updated_at":"2025-12-25T16:50:55.343049-08:00","dependencies":[{"issue_id":"gt-is4fi","depends_on_id":"gt-8tmz.25","type":"discovered-from","created_at":"2025-12-25T16:50:55.344455-08:00","created_by":"daemon"}]}
|
||||
@@ -1282,6 +1285,7 @@
|
||||
{"id":"gt-q5qoq","title":"Digest: mol-deacon-patrol","description":"Patrol 12: Quiet","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:17:53.371675-08:00","updated_at":"2025-12-25T19:17:53.371675-08:00","closed_at":"2025-12-25T19:17:53.371624-08:00"}
|
||||
{"id":"gt-q6lg","title":"mol-crew-session: Startup/shutdown protocols for crew workers","description":"Crew workers (like joe, max) don't have patrol molecules keeping them fresh. When gt gets rebuilt, they have stale binaries that cause hangs and bugs.\n\n## Problem\n\n- Crew binaries get stale when gt is rebuilt elsewhere\n- No automatic pull/rebase/rebuild on session start\n- No standardized shutdown protocol (sync, push, handoff)\n\n## Solution: mol-crew-session\n\nA molecule template for crew sessions:\n\n### Startup Phase\n1. `git pull --rebase` - get latest code\n2. `bd sync` - sync beads\n3. `go build -o gt ./cmd/gt` - rebuild gt (if in gastown)\n4. `gt prime` - load context\n\n### Work Phase \n- Open-ended human interaction\n- No molecule steps - just work until done\n\n### Shutdown Phase\n1. `git status` - check for uncommitted changes\n2. `bd sync` - sync beads\n3. `git push` - push code\n4. Handoff if incomplete work\n\n## Implementation\n\n1. Define mol-crew-session in builtin_molecules.go\n2. Update crew CLAUDE.md to reference the protocol\n3. Optionally: gt prime auto-runs startup steps\n\n## Dependencies\n\n- Should implement after deacon/witness/polecat patrols are stable\n- Consider: gt-3x0z.10 (Witness patrol molecules)\n\n## Related\n\n- gt-3x0z.9: Deacon wisp patrol (done)\n- fix-gt script: Current workaround for binary freshness","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-22T02:48:25.658692-08:00","updated_at":"2025-12-22T02:48:25.658692-08:00"}
|
||||
{"id":"gt-q8du","title":"Configuration in Beads: use pinned beads for rig/agent config","description":"## Summary\n\nMove configuration from JSON files into Beads data plane using pinned beads.\n\n## Motivation\n\n- Config becomes versionable and syncable like issues\n- Agents can read config via `bd show`\n- Unified data model for everything\n- Supports the 'Beads as Universal Data Plane' vision (gt-aqm)\n\n## Config Types to Migrate\n\n### Rig-level (pinned per rig)\n- Theme/colors for tmux status line\n- Default branch naming conventions\n- Merge queue settings\n- Witness thresholds\n\n### Agent-level (pinned per role)\n- Handoffs (already planned - gt-cu7r)\n- Agent preferences\n- Current focus/context\n\n### Town-level (pinned at town root)\n- Cross-rig settings\n- Federation config\n- Global themes\n\n## Implementation\n\n1. Implement StatusPinned (beads-6v2) ✓ in progress\n2. Create config pinned beads on rig init\n3. Add `bd config get/set` commands that read/write pinned beads\n4. Migrate existing config.json fields\n\n## Naming Convention\n\n```\n\u003cprefix\u003e-cfg-\u003cscope\u003e\ngt-cfg-theme # gastown theme\nbd-cfg-merge # beads merge settings\ngm-cfg-town # town-level config\n```\n\n## Dependencies\n\n- beads-6v2: Add StatusPinned to beads schema\n- gm-w13: Pinned Beads epic","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-18T21:58:59.898116-08:00","updated_at":"2025-12-25T21:02:04.082348-08:00","closed_at":"2025-12-25T21:02:04.082348-08:00","close_reason":"Future features or design docs. Not essential for v0.1 autonomous patrols."}
|
||||
{"id":"gt-q9jj3","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 12: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:45:35.574924-08:00","updated_at":"2025-12-26T15:45:35.574924-08:00","closed_at":"2025-12-26T15:45:35.574872-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-q9jj3","depends_on_id":"gt-wisp-86q","type":"parent-child","created_at":"2025-12-26T15:45:35.575876-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-qaca","title":"Merge: gt-5af.2","description":"branch: polecat/Doof\ntarget: main\nsource_issue: gt-5af.2\nrig: gastown","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-19T17:29:36.838038-08:00","updated_at":"2025-12-20T23:17:25.79048-08:00","closed_at":"2025-12-20T23:17:25.79048-08:00","close_reason":"Branches nuked, MRs obsolete"}
|
||||
{"id":"gt-qao","title":"CLI: mayor commands (start, attach, stop, status)","description":"Mayor management CLI commands.\n\n## Commands\n\n### gt mayor start\n```\ngt mayor start [--continue] [--agent AGENT]\n```\n- --continue: Resume from previous session (check for handoff mail)\n- --agent: claude (default) or other agent type\n\n### gt mayor attach\n```\ngt mayor attach\n```\nAttach to running Mayor session.\n\n### gt mayor stop\n```\ngt mayor stop [--grace-period N]\n```\nStop Mayor session with optional grace period.\n\n### gt mayor status\n```\ngt mayor status [--json]\n```\nShow Mayor running status.\n\n## Session Management\nSession name: `gt-mayor`\nWorking directory: `\u003ctown\u003e/mayor/rig/` or `\u003ctown\u003e/mayor/`\n\n## Implementation\nSimilar to session commands but for special Mayor context.\n\n```go\nfunc getMayorPath(townRoot string) string {\n return filepath.Join(townRoot, \"mayor\")\n}\n\nfunc getMayorSessionName() string {\n return \"gt-mayor\"\n}\n```\n\n## New File\ninternal/cmd/mayor.go\n\n## PGT Reference\ngastown-py/src/gastown/cli/mayor_cmd.py\n\n## Acceptance Criteria\n- [ ] gt mayor start launches Mayor session\n- [ ] gt mayor attach works\n- [ ] gt mayor stop with grace period\n- [ ] gt mayor status shows running state","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-16T14:47:54.721035-08:00","updated_at":"2025-12-16T16:05:45.226324-08:00"}
|
||||
{"id":"gt-qbdb","title":"Work on ga-lzh: Add gt witness attach command. Allow atta...","description":"Work on ga-lzh: Add gt witness attach command. Allow attaching to witness session for a rig, similar to gt mayor attach. When done, submit MR (not PR) to integration branch for Refinery.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-19T22:58:44.945425-08:00","updated_at":"2025-12-19T23:19:24.42686-08:00","closed_at":"2025-12-19T23:19:24.42686-08:00"}
|
||||
@@ -1356,7 +1360,7 @@
|
||||
{"id":"gt-rbasx","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 5: routine, healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T13:23:16.720779-08:00","updated_at":"2025-12-26T13:23:16.720779-08:00","closed_at":"2025-12-26T13:23:16.720737-08:00","close_reason":"Squashed from 9 wisps"}
|
||||
{"id":"gt-rbp6.1","title":"Test Polecat Arm","description":"Test child for bonding pattern","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T21:32:00.648392-08:00","updated_at":"2025-12-25T01:33:00.320016-08:00","closed_at":"2025-12-25T01:33:00.320016-08:00","close_reason":"Test pollution cleanup"}
|
||||
{"id":"gt-rectf","title":"Digest: mol-deacon-patrol","description":"P11","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T14:25:17.043804-08:00","updated_at":"2025-12-26T14:25:17.043804-08:00","closed_at":"2025-12-26T14:25:17.04375-08:00","close_reason":"Squashed from 9 wisps"}
|
||||
{"id":"gt-rgd9x","title":"Deprecate hook files, use pinned beads for propulsion","description":"## Problem\n\nWe have TWO mechanisms for 'work on hook':\n1. Hook files (.beads/hook-\u003cagent\u003e.json) - explicit state files\n2. Pinned beads (status=pinned, assignee=agent) - discoverable via query\n\nThis violates Gas Town's 'discovery over explicit state' principle.\n\n## Current State\n\n- Hook files created by gt hook, gt sling, gt handoff \u003cbead\u003e\n- Contain SlungWork struct with BeadID, Subject, Context, Args, Formula\n- Burned after pickup\n- Only work if explicitly created with bead ID argument\n\nMeanwhile:\n- Pinned beads already work (Dave's propulsion succeeded)\n- But outputAttachmentStatus() excludes Mayor (line 536 in prime.go)\n- Handoff mail already carries context\n\n## Proposed Changes\n\n1. **Remove hook file mechanism entirely**\n - Delete internal/wisp/io.go hook read/write functions\n - Remove .beads/hook-*.json file creation\n\n2. **Use pinned beads universally**\n - gt hook \u003cbead\u003e → bd update \u003cbead\u003e --status=pinned --assignee=\u003cself\u003e\n - gt sling \u003cbead\u003e → pin + nudge\n - gt handoff \u003cbead\u003e → pin + mail + restart\n\n3. **Extend discovery to all roles**\n - Fix line 536 in prime.go: remove Crew/Polecat restriction\n - All roles check for pinned beads on startup\n\n4. **Handle Args field**\n - Store in bead description, OR\n - Add args field to bead schema, OR\n - Put in handoff mail body\n\n## Benefits\n\n- Single source of truth (beads)\n- Discovery over explicit state\n- No file management (create/burn cycle)\n- Works across clones automatically (beads sync)\n\n## Files to Modify\n\n- internal/cmd/prime.go (line 536 - extend to all roles)\n- internal/cmd/hook.go (use bd update instead of wisp.WriteSlungWork)\n- internal/cmd/sling.go (use bd update instead of wisp.WriteSlungWork)\n- internal/cmd/handoff.go (use bd update instead of hookBeadForHandoff)\n- internal/wisp/ (deprecate hook file functions)\n\n## See Also\n\n- PROPULSION-FIX.md in ~/gt for full analysis","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-26T15:36:31.396028-08:00","updated_at":"2025-12-26T15:36:31.396028-08:00"}
|
||||
{"id":"gt-rgd9x","title":"Deprecate hook files, use pinned beads for propulsion","description":"## Problem\n\nWe have TWO mechanisms for 'work on hook':\n1. Hook files (.beads/hook-\u003cagent\u003e.json) - explicit state files\n2. Pinned beads (status=pinned, assignee=agent) - discoverable via query\n\nThis violates Gas Town's 'discovery over explicit state' principle.\n\n## Current State\n\n- Hook files created by gt hook, gt sling, gt handoff \u003cbead\u003e\n- Contain SlungWork struct with BeadID, Subject, Context, Args, Formula\n- Burned after pickup\n- Only work if explicitly created with bead ID argument\n\nMeanwhile:\n- Pinned beads already work (Dave's propulsion succeeded)\n- But outputAttachmentStatus() excludes Mayor (line 536 in prime.go)\n- Handoff mail already carries context\n\n## Proposed Changes\n\n1. **Remove hook file mechanism entirely**\n - Delete internal/wisp/io.go hook read/write functions\n - Remove .beads/hook-*.json file creation\n\n2. **Use pinned beads universally**\n - gt hook \u003cbead\u003e → bd update \u003cbead\u003e --status=pinned --assignee=\u003cself\u003e\n - gt sling \u003cbead\u003e → pin + nudge\n - gt handoff \u003cbead\u003e → pin + mail + restart\n\n3. **Extend discovery to all roles**\n - Fix line 536 in prime.go: remove Crew/Polecat restriction\n - All roles check for pinned beads on startup\n\n4. **Handle Args field**\n - Store in bead description, OR\n - Add args field to bead schema, OR\n - Put in handoff mail body\n\n## Benefits\n\n- Single source of truth (beads)\n- Discovery over explicit state\n- No file management (create/burn cycle)\n- Works across clones automatically (beads sync)\n\n## Files to Modify\n\n- internal/cmd/prime.go (line 536 - extend to all roles)\n- internal/cmd/hook.go (use bd update instead of wisp.WriteSlungWork)\n- internal/cmd/sling.go (use bd update instead of wisp.WriteSlungWork)\n- internal/cmd/handoff.go (use bd update instead of hookBeadForHandoff)\n- internal/wisp/ (deprecate hook file functions)\n\n## See Also\n\n- PROPULSION-FIX.md in ~/gt for full analysis","status":"in_progress","priority":1,"issue_type":"feature","created_at":"2025-12-26T15:36:31.396028-08:00","updated_at":"2025-12-26T15:45:02.575184-08:00"}
|
||||
{"id":"gt-rhfji","title":"gt up: set BD_ACTOR env var when spawning agents","description":"When gt spawns agents (polecats, crew, patrol roles), it should set BD_ACTOR env var so that bd commands (like `bd hook`) know the agent identity.\n\nCurrently gt sets GT_ROLE but bd can't check that (no coupling to gt). bd already checks BD_ACTOR, so gt just needs to set it.\n\nPlaces to update:\n- `gt up` for polecats/crew\n- Deacon, Witness, Refinery spawning\n- Any other agent spawn points\n\nRelated: closed bd-fej5 in beads repo as obsolete (fix belongs here).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T12:41:21.092758-08:00","updated_at":"2025-12-25T13:26:47.176904-08:00","closed_at":"2025-12-25T13:26:47.176904-08:00","close_reason":"Closed"}
|
||||
{"id":"gt-rivr","title":"Activity Feed TUI","description":"Terminal UI for browsing Gas Town activity. Shows hierarchical view of rigs, workers, and their current state. Features: live updates, expandable details, molecule progress (step X of Y). Built with bubbletea/lipgloss. Design doc: history/activity-feed-tui-design.md","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-23T16:26:45.667677-08:00","updated_at":"2025-12-25T20:59:04.552316-08:00","closed_at":"2025-12-25T20:59:04.552316-08:00","close_reason":"TUI is nice-to-have polish. Not essential for v0.1 autonomous patrols."}
|
||||
{"id":"gt-rixa","title":"Bug: parseLifecycleRequest always matches 'cycle' due to LIFECYCLE prefix","description":"In lifecycle.go, parseLifecycleRequest checks strings.Contains(title, \"cycle\") first, but the prefix \"LIFECYCLE:\" contains the word \"cycle\". This means ALL lifecycle messages match the cycle action, making restart and shutdown unreachable. Fix: check for restart/shutdown before cycle, or use word boundaries.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-19T16:17:16.083512-08:00","updated_at":"2025-12-25T20:54:19.096667-08:00","closed_at":"2025-12-25T20:54:19.096667-08:00","close_reason":"Orphaned: referenced in commit but not closed"}
|
||||
@@ -1497,9 +1501,11 @@
|
||||
{"id":"gt-u56bb","title":"Digest: mol-deacon-patrol","description":"Patrol 20: Mayor OK, 11 sessions","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T20:37:45.08665-08:00","updated_at":"2025-12-25T20:37:45.08665-08:00","closed_at":"2025-12-25T20:37:45.086608-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-u818","title":"Witness Plugin System","description":"Patrol extensions via molecule bonding.\n\n## Core Insight\n\nPlugins ARE molecules. No separate format needed.\n\n## How It Works\n\n```\nmol-witness-patrol\n │\n ├── survey-workers\n │\n ├── plugin-run ←── bonds registered plugin molecules\n │ │\n │ ├── mol-mood-check (if registered)\n │ ├── mol-security-scan (if registered)\n │ └── mol-custom-X (user-installed)\n │\n └── aggregate (WaitsFor: all-children)\n```\n\n## Plugin Molecule Structure\n\nA plugin is just a molecule proto with specific labels:\n\n```json\n{\n \"id\": \"mol-mood-check\",\n \"title\": \"Polecat Mood Check\",\n \"description\": \"Assess polecat emotional state from output. Vars: {{polecat_name}}, {{captured_output}}\",\n \"labels\": [\"template\", \"plugin\", \"witness\", \"tier:haiku\"],\n \"issue_type\": \"task\"\n}\n```\n\nLabels encode metadata:\n- `plugin` - marks as bondable plugin\n- `witness` / `deacon` / `refinery` - which patrol can use it\n- `tier:haiku` / `tier:sonnet` - model tier hint\n\n## Registration\n\nPlugins registered in rig config or molecules.jsonl:\n\n```bash\n# Install from Mol Mall\nbd mol install mol-mood-check\n\n# Or add to ~/.beads/molecules.jsonl manually\n```\n\n## Execution\n\nThe `plugin-run` step in patrol:\n\n```bash\n# For each registered plugin molecule matching this patrol:\nbd mol bond mol-mood-check $PATROL_WISP \\\n --ref mood-{{polecat_name}} \\\n --var polecat_name=$POLECAT \\\n --var captured_output=\"$OUTPUT\"\n```\n\n## CLI\n\n- `bd mol list --label plugin` - List available plugins\n- `bd mol install \u003cid\u003e` - Install from Mol Mall\n- `gt patrol plugins \u003crole\u003e` - Show plugins for a patrol role\n\n## Benefits\n\n- No YAML schema to maintain\n- No separate plugin loading code\n- Plugins are versioned, synced, auditable (they are beads)\n- Distribution via Mol Mall (molecules.jsonl registry)\n- Same {{var}} substitution as all molecules","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-21T16:16:53.886931-08:00","updated_at":"2025-12-25T21:00:00.654095-08:00","closed_at":"2025-12-25T21:00:00.654095-08:00","close_reason":"Future features. Witness plugins, code review molecule, and Mol Mall are post-v0.1."}
|
||||
{"id":"gt-u82","title":"Design: Mayor session cycling and handoff","description":"Design for Mayor session cycling and structured handoff.\n\n## Overview\n\nMayor coordinates across all rigs and runs for extended periods. Needs session cycling pattern with structured handoff notes.\n\n## Key Elements\n\n1. Session cycling recognition (when to cycle)\n2. Handoff note format (structured state capture)\n3. Handoff delivery (mail to self)\n4. Fresh session startup (reading and resuming)\n\n## Subtasks (implementation)\n\n- gt-g2d: Mayor session cycling prompting\n- gt-sye: Mayor startup protocol prompting\n- gt-vci: Mayor handoff mail template\n- gt-1le: town handoff command (optional, P2)\n\n**Design complete.** Each subtask has full specification in its description.","status":"tombstone","priority":1,"issue_type":"epic","created_at":"2025-12-15T20:03:16.125725-08:00","updated_at":"2025-12-25T01:30:41.67682-08:00","deleted_at":"2025-12-25T01:30:41.67682-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"epic"}
|
||||
{"id":"gt-u8df5","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 13: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:45:59.223504-08:00","updated_at":"2025-12-26T15:45:59.223504-08:00","closed_at":"2025-12-26T15:45:59.223473-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-u8df5","depends_on_id":"gt-wisp-b7t","type":"parent-child","created_at":"2025-12-26T15:45:59.224201-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-u8ybw","title":"Digest: mol-deacon-patrol","description":"Patrol 18: Nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:53:19.814904-08:00","updated_at":"2025-12-24T23:53:19.814904-08:00","closed_at":"2025-12-24T23:53:19.81487-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-ua5f","title":"Digest: mol-deacon-patrol","description":"Patrol: read mayor handoff (gt-mzal boot design), all agents up, furiosa working gt-oiv0, note: gt-4eim orphaned (angharad gone)","status":"closed","priority":4,"issue_type":"task","created_at":"2025-12-22T21:29:07.064593-08:00","updated_at":"2025-12-22T21:29:07.064593-08:00","closed_at":"2025-12-22T21:29:07.064557-08:00","close_reason":"Squashed from 5 wisps"}
|
||||
{"id":"gt-uadg","title":"Digest: mol-deacon-patrol","description":"Patrol complete: all agents healthy, no lifecycle requests, 9 in-progress items noted","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:20:11.959796-08:00","updated_at":"2025-12-24T23:20:11.959796-08:00","closed_at":"2025-12-24T23:20:11.959761-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-uapyg","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 15: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:46:42.564849-08:00","updated_at":"2025-12-26T15:46:42.564849-08:00","closed_at":"2025-12-26T15:46:42.564806-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-uapyg","depends_on_id":"gt-wisp-s73","type":"parent-child","created_at":"2025-12-26T15:46:42.565658-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-ubd4","title":"Merge: gt-tnca.1","description":"branch: polecat/immortan\ntarget: main\nsource_issue: gt-tnca.1\nrig: gastown","status":"closed","priority":2,"issue_type":"merge-request","created_at":"2025-12-23T00:18:22.782233-08:00","updated_at":"2025-12-23T01:16:15.707696-08:00","closed_at":"2025-12-23T01:16:15.707696-08:00","close_reason":"Merged to main"}
|
||||
{"id":"gt-ud2at","title":"Digest: mol-deacon-patrol","description":"Patrol 18: All healthy","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T13:34:07.199119-08:00","updated_at":"2025-12-25T15:52:58.533098-08:00","deleted_at":"2025-12-25T15:52:58.533098-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-uhc3","title":"gt mq list shows empty when MRs exist","description":"The gt mq list command returns empty results even when merge requests exist in the queue.","status":"open","priority":2,"issue_type":"bug","created_at":"2025-12-21T17:51:18.712633-08:00","updated_at":"2025-12-21T17:51:18.712633-08:00"}
|
||||
@@ -1553,6 +1559,7 @@
|
||||
{"id":"gt-vmm9","title":"Digest: mol-deacon-patrol @ 2025-12-24 19:26","description":"Patrol 13: quiet","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T19:26:56.830842-08:00","updated_at":"2025-12-24T19:26:56.830842-08:00","closed_at":"2025-12-24T19:26:56.830768-08:00","close_reason":"Squashed from wisp gt-s46 (9 issues)"}
|
||||
{"id":"gt-vnp9","title":"tmux notifications: display-message too subtle, use send-keys instead","description":"## Problem\n\n`tmux display-message` notifications are not visible enough - they appear briefly in the status bar and are easy to miss.\n\n## Current Behavior\n\nrouter.go uses:\n```go\nr.tmux.DisplayMessageDefault(sessionID, notification)\n```\n\n## What Works\n\nSending echo commands directly to the terminal:\n```bash\ntmux send-keys -t \u003csession\u003e \"echo '📬 NEW MAIL from mayor'\" Enter\n```\n\n## Proposed Fix\n\nChange notification method to send visible output to the terminal, perhaps with a box/banner:\n```\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n📬 NEW MAIL from mayor\nSubject: \u003csubject\u003e\nRun: bd mail inbox\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n```\n\n## Considerations\n\n- This interrupts the terminal output (acceptable for important mail)\n- Could check if Claude is mid-response and queue notification\n- Or use tmux popup if available","notes":"Additional issues:\n1. Enter key not sent properly when chained with send-keys\n2. Need to debounce and send Enter separately\n3. Correct pattern: send text, sleep briefly, then send Enter","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-18T21:35:28.542985-08:00","updated_at":"2025-12-19T12:00:29.342381-08:00","closed_at":"2025-12-19T12:00:29.342381-08:00"}
|
||||
{"id":"gt-vqhc","title":"gt sling/handoff fails: slashes in agent identity create invalid hook paths","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-24T23:24:49.495017-08:00","updated_at":"2025-12-24T23:26:18.493355-08:00","closed_at":"2025-12-24T23:26:18.493355-08:00","close_reason":"Fixed: HookFilename now sanitizes slashes to underscores"}
|
||||
{"id":"gt-vqpmf","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 14: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:46:20.527809-08:00","updated_at":"2025-12-26T15:46:20.527809-08:00","closed_at":"2025-12-26T15:46:20.527752-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-vqpmf","depends_on_id":"gt-wisp-ano","type":"parent-child","created_at":"2025-12-26T15:46:20.52866-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-vv4i","title":"Polecat template: move session close checklist into molecule steps","description":"Template has prose checklists for 'Before Signaling Done' and 'SESSION CLOSE PROTOCOL'. These should be encoded as tail steps in the polecat molecule, not repeated as prose in CLAUDE.md. Reduces duplication and ensures the steps are actually followed.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T16:56:50.666492-08:00","updated_at":"2025-12-23T17:09:02.141194-08:00","closed_at":"2025-12-23T17:09:02.141194-08:00","close_reason":"Completed in commit 1931ec7","dependencies":[{"issue_id":"gt-vv4i","depends_on_id":"gt-t9u7","type":"parent-child","created_at":"2025-12-23T16:57:16.612852-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-vz2xs","title":"Digest: mol-deacon-patrol","description":"Patrol 10: Halfway check, all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T00:33:04.470774-08:00","updated_at":"2025-12-25T00:33:04.470774-08:00","closed_at":"2025-12-25T00:33:04.470745-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-vzic","title":"README missing prerequisites section (tmux required)","description":"The README.md does not mention that tmux is required.\nAll agent sessions use tmux, but fresh users have no way to know this.\n\nAdd prerequisites section:\n- Go 1.23+\n- Git\n- tmux (required for agent sessions)\n- Claude Code CLI (for agents)","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-24T12:50:28.988771-08:00","updated_at":"2025-12-24T23:26:59.0004-08:00","closed_at":"2025-12-24T23:26:59.0004-08:00","close_reason":"Added Prerequisites section to README","dependencies":[{"issue_id":"gt-vzic","depends_on_id":"gt-jo9n","type":"blocks","created_at":"2025-12-24T12:52:04.860313-08:00","created_by":"daemon"}]}
|
||||
@@ -1589,6 +1596,7 @@
|
||||
{"id":"gt-wisp-q5d","title":"Survey all polecats (fanout)","description":"List polecats and bond mol-polecat-arm for each one.\n\n```bash\n# Get list of polecats\ngt polecat list \u003crig\u003e\n```\n\nFor each polecat discovered, dynamically bond an inspection arm:\n\n```bash\n# Bond mol-polecat-arm for each polecat\nfor polecat in $(gt polecat list \u003crig\u003e --names); do\n bd mol bond mol-polecat-arm $PATROL_WISP_ID \\\n --ref arm-$polecat \\\n --var polecat_name=$polecat \\\n --var rig=\u003crig\u003e\ndone\n```\n\nThis creates child wisps like:\n- patrol-x7k.arm-ace (5 steps)\n- patrol-x7k.arm-nux (5 steps)\n- patrol-x7k.arm-toast (5 steps)\n\nEach arm runs in PARALLEL. The aggregate step will wait for all to complete.\n\nIf no polecats are found, this step completes immediately with no children.\n","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:54:36.822584-08:00","updated_at":"2025-12-26T13:09:27.22818-08:00","closed_at":"2025-12-26T13:09:27.22818-08:00","close_reason":"Stale protomolecule/wisp reification; patrols now run as ephemeral wisps","dependencies":[{"issue_id":"gt-wisp-q5d","depends_on_id":"gt-wisp-48l","type":"parent-child","created_at":"2025-12-25T19:54:37.034999-08:00","created_by":"gastown/witness"},{"issue_id":"gt-wisp-q5d","depends_on_id":"gt-wisp-5yy","type":"blocks","created_at":"2025-12-25T19:54:37.049799-08:00","created_by":"gastown/witness"}]}
|
||||
{"id":"gt-wisp-qx6","title":"mol-witness-patrol","description":"Per-rig worker monitor patrol loop using the Christmas Ornament pattern.\n\nThe Witness is the Pit Boss for your rig. You watch polecats, nudge them toward\ncompletion, verify clean git state before kills, and escalate stuck workers.\n\n**You do NOT do implementation work.** Your job is oversight, not coding.\n\nThis molecule uses dynamic bonding to spawn mol-polecat-arm for each worker,\nenabling parallel inspection with a fanout gate for aggregation.\n\n## The Christmas Ornament Shape\n\n```\n ★ mol-witness-patrol (trunk)\n /|\\\n ┌────────┘ │ └────────┐\n PREFLIGHT DISCOVERY CLEANUP\n │ │ │\n inbox-check survey aggregate (WaitsFor: all-children)\n check-refnry │ save-state\n load-state │ generate-summary\n ↓ context-check\n ┌───────┼───────┐ burn-or-loop\n ● ● ● mol-polecat-arm (dynamic)\n ace nux toast\n```\n","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-25T19:48:34.05296-08:00","updated_at":"2025-12-25T19:48:34.05296-08:00","dependencies":[{"issue_id":"gt-wisp-qx6","depends_on_id":"mol-polecat-arm","type":"blocks","created_at":"2025-12-25T19:52:41.801146-08:00","created_by":"gastown/witness"}]}
|
||||
{"id":"gt-wisp-yj8","title":"Burn and respawn or loop","description":"End of patrol cycle decision.\n\nIf context is LOW:\n- Burn this wisp (no audit trail needed for patrol cycles)\n- Sleep briefly to avoid tight loop (30-60 seconds)\n- Return to inbox-check step\n\nIf context is HIGH:\n- Burn wisp with summary digest\n- Exit cleanly (daemon will respawn fresh Witness)\n\n```bash\nbd mol burn # Destroy ephemeral wisp\n```\n\nThe daemon ensures Witness is always running.\n","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:54:36.820851-08:00","updated_at":"2025-12-26T13:09:27.271792-08:00","closed_at":"2025-12-26T13:09:27.271792-08:00","close_reason":"Stale protomolecule/wisp reification; patrols now run as ephemeral wisps","dependencies":[{"issue_id":"gt-wisp-yj8","depends_on_id":"gt-wisp-48l","type":"parent-child","created_at":"2025-12-25T19:54:36.852513-08:00","created_by":"gastown/witness"},{"issue_id":"gt-wisp-yj8","depends_on_id":"gt-wisp-3fc","type":"blocks","created_at":"2025-12-25T19:54:36.86625-08:00","created_by":"gastown/witness"}]}
|
||||
{"id":"gt-wiu7y","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 17: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:47:37.442727-08:00","updated_at":"2025-12-26T15:47:37.442727-08:00","closed_at":"2025-12-26T15:47:37.442683-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-wiu7y","depends_on_id":"gt-wisp-e8l","type":"parent-child","created_at":"2025-12-26T15:47:37.443588-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-wjd6q","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 10: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:44:33.548312-08:00","updated_at":"2025-12-26T15:44:33.548312-08:00","closed_at":"2025-12-26T15:44:33.548265-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-wjd6q","depends_on_id":"gt-wisp-tnj","type":"parent-child","created_at":"2025-12-26T15:44:33.549164-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-wmhj","title":"tmux link-window auto-selects new window, causing agent confusion","description":"## Summary\n\nWhen running `gt crew at \u003cother\u003e` from inside a tmux session, the linked window auto-selects, causing the user to unknowingly switch agents.\n\n## Root Cause\n\n`internal/tmux/tmux.go:535-538` - `LinkWindow` doesn't use `-d` flag:\n```go\n_, err := t.run(\"link-window\", \"-s\", source) // Missing -d!\n```\n\nBy default, `tmux link-window` selects the newly linked window.\n\n## Reproduction\n\n1. Be in Max's tmux session talking to Max\n2. Ask Max to run `gt crew at joe`\n3. Max creates Joe's session and links it\n4. User is now in Joe's window without realizing it\n5. Max appears to have 'disappeared'\n\n## Fix\n\nAdd `-d` flag to prevent auto-selection:\n```go\n_, err := t.run(\"link-window\", \"-s\", source, \"-d\")\n```\n\n## Related\n\n- gt-09i4: Unify tmux session lifecycle (broader epic Max filed)\n","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-24T14:33:40.40319-08:00","updated_at":"2025-12-24T14:34:01.227518-08:00","closed_at":"2025-12-24T14:34:01.227518-08:00","close_reason":"Fixed by adding -d flag to link-window"}
|
||||
{"id":"gt-woitj","title":"Digest: mol-deacon-patrol","description":"Patrol 4: All agents healthy, routine","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T01:06:29.731567-08:00","updated_at":"2025-12-25T01:06:29.731567-08:00","closed_at":"2025-12-25T01:06:29.731535-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
@@ -1614,6 +1622,7 @@
|
||||
{"id":"gt-x2ygo","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 3: routine check, all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T13:22:00.324654-08:00","updated_at":"2025-12-26T13:22:00.324654-08:00","closed_at":"2025-12-26T13:22:00.324622-08:00","close_reason":"Squashed from 9 wisps"}
|
||||
{"id":"gt-x74c","title":"gt mol command tree: status, catalog, burn, squash","description":"Add gt mol subcommand as agent-side API for molecule operations.\n\nCommands needed:\n- gt mol status - What's on my hook? (pinned molecule, current step, progress)\n- gt mol catalog - List available protos (delegate to bd mol catalog)\n- gt mol burn - Burn current attachment\n- gt mol squash - Squash current molecule to digest\n\nThis completes the agent-side API and makes the docs (sling-design.md, propulsion-principle.md) match reality.\n\nBlocks: deacon.md.tmpl update (can't use gt mol status until it exists)","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-22T13:12:23.710855-08:00","updated_at":"2025-12-22T13:16:16.543031-08:00","closed_at":"2025-12-22T13:16:16.543031-08:00","close_reason":"Implemented gt mol catalog, burn, squash commands. Status already existed."}
|
||||
{"id":"gt-x7c","title":"Work assignment mail not received by polecat","description":"When gt spawn sends a work assignment:\n\n1. gt spawn says '✓ Work assignment sent'\n2. Polecat runs 'gt mail inbox' \n3. Shows '0 messages, 0 unread'\n\nThe work assignment mail never arrived at the polecat's inbox.\n\n## Observed in session\n- Spawned polecat dementus on gt-th7\n- Polecat checked inbox: empty\n- Polecat couldn't find issue (separate sync bug)\n\n## Possible causes\n- Mail routing issue for polecat addresses\n- gt spawn not actually sending mail\n- Mail sent to wrong address format","notes":"This was likely caused by stale beads in old polecats. With gt-9nf (fresh polecats), polecats now use shared rig beads via redirect file, eliminating sync issues. Mail routing uses town beads correctly.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-20T15:18:12.39878-08:00","updated_at":"2025-12-21T10:16:00.862028-08:00","closed_at":"2025-12-21T10:16:00.862028-08:00","close_reason":"Fixed by gt-9nf: fresh polecats use shared beads, mail routes correctly to town beads"}
|
||||
{"id":"gt-x7n8a","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 19: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:48:24.957934-08:00","updated_at":"2025-12-26T15:48:24.957934-08:00","closed_at":"2025-12-26T15:48:24.957883-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-x7n8a","depends_on_id":"gt-wisp-15x","type":"parent-child","created_at":"2025-12-26T15:48:24.958864-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-x9m7","title":"Molecule converge: iterate until AI says done","description":"Work isn't 'done' until AI is confident it's done. Fixes the 85% problem.\n\n**From VC**: internal/iterative/converge.go - 3-7 iterations with AI convergence detection. ~600 lines.\nTarget: 20%+ more issues discovered. Observed: ~25% average improvement.\n\n**Gas Town implementation**: Molecule converge config:\n```yaml\nconverge:\n strategy: ai\n min_iterations: 3\n max_iterations: 7\n confidence: 0.85\n```\n\nPolecat iterates, AI checks convergence. Stop when AI is confident or max reached.\n\n**Value**: Raw agents get to ~85% and stop. Iteration catches the remaining 15%.\n\n**VC metrics**: Convergence rate \u003e70%, mean 4-5 iterations for complex work.","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-20T20:30:18.671862-08:00","updated_at":"2025-12-20T20:30:18.671862-08:00","dependencies":[{"issue_id":"gt-x9m7","depends_on_id":"gt-zhpa","type":"parent-child","created_at":"2025-12-20T20:30:27.728971-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-x9nf","title":"Digest: mol-deacon-patrol","description":"Old test patrol cycle - cleanup","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-22T02:07:15.850595-08:00","updated_at":"2025-12-25T15:52:57.591633-08:00","close_reason":"Squashed from 6 wisps","deleted_at":"2025-12-25T15:52:57.591633-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-x9tk","title":"Merge: gt-j6s8","description":"branch: polecat/dementus\ntarget: main\nsource_issue: gt-j6s8\nrig: gastown","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-23T01:15:22.372353-08:00","updated_at":"2025-12-23T01:16:15.714552-08:00","closed_at":"2025-12-23T01:16:15.714552-08:00","close_reason":"Merged to main"}
|
||||
@@ -1655,6 +1664,7 @@
|
||||
{"id":"gt-y9gj3","title":"Digest: mol-deacon-patrol","description":"Patrol 2: All healthy, routine","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T10:14:49.293338-08:00","updated_at":"2025-12-25T10:14:49.293338-08:00","closed_at":"2025-12-25T10:14:49.293307-08:00"}
|
||||
{"id":"gt-y9vm3","title":"Digest: mol-deacon-patrol","description":"Patrol 4: 9 sessions healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T07:25:34.660496-08:00","updated_at":"2025-12-25T07:25:34.660496-08:00","closed_at":"2025-12-25T07:25:34.660465-08:00","close_reason":"Squashed from 8 wisps"}
|
||||
{"id":"gt-yd98","title":"Molecule format bridge: convert embedded markdown to child issues","description":"## Problem\n\nTwo molecule formats exist:\n1. **Old (gastown builtin)**: Steps embedded as markdown in Description field, parsed by ParseMoleculeSteps()\n2. **New (bd mol)**: Steps as child issues in proper beads DAG\n\nThe daemon's InstantiateMolecule() uses the old format. bd mol spawn uses the new format.\n\n## Options\n\n### Option A: Require child issues (new format)\n- Update daemon to use bd mol spawn instead of InstantiateMolecule\n- Deprecate embedded markdown format\n- Pro: One format, simpler\n- Con: Breaking change for existing molecules\n\n### Option B: Build a bridge\n- In InstantiateMolecule, detect format:\n - If Description has ## Step: markers → parse to child issues\n - If issue has children with template label → use directly\n- Convert old format to new format on instantiation\n- Pro: Backward compatible\n- Con: More complexity\n\n## Recommendation\n\nOption B - build the bridge. On instantiation, convert markdown steps to child issues. This unifies execution while preserving authoring flexibility.","status":"closed","priority":1,"issue_type":"task","assignee":"gastown/valkyrie","created_at":"2025-12-21T17:55:15.751168-08:00","updated_at":"2025-12-23T01:16:16.766608-08:00","closed_at":"2025-12-23T01:16:16.766608-08:00","close_reason":"Merged to main"}
|
||||
{"id":"gt-ydbqv","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 16: nominal","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T15:47:14.007718-08:00","updated_at":"2025-12-26T15:47:14.007718-08:00","closed_at":"2025-12-26T15:47:14.007675-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-ydbqv","depends_on_id":"gt-wisp-17t","type":"parent-child","created_at":"2025-12-26T15:47:14.008574-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-ye8l","title":"Merge: gt-3x1","description":"branch: polecat/Slit\ntarget: main\nsource_issue: gt-3x1\nrig: gastown","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-19T14:53:52.344849-08:00","updated_at":"2025-12-20T23:17:25.78961-08:00","closed_at":"2025-12-20T23:17:25.78961-08:00","close_reason":"Branches nuked, MRs obsolete"}
|
||||
{"id":"gt-yewf","title":"Role prompts have mismatched startup protocols","description":"Different role prompts describe different startup protocols:\n\n- deacon.md: Check gt mol status, spawn if none: bd mol spawn\n- refinery.md: Check bd list --status=in_progress, bond if none: gt mol bond\n- polecat.md: Check bd mol current\n\nThese should use consistent terminology and commands.\nThe propulsion principle should be applied uniformly.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-24T12:51:22.22295-08:00","updated_at":"2025-12-24T23:38:48.27495-08:00","closed_at":"2025-12-24T23:38:48.27495-08:00","close_reason":"Fixed: All role prompts now use consistent propulsion protocol (gt mol status → check hook → role-specific continuation). Old bd mol spawn/current commands removed.","dependencies":[{"issue_id":"gt-yewf","depends_on_id":"gt-jo9n","type":"blocks","created_at":"2025-12-24T12:52:07.728283-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-yg6u3","title":"Digest: mol-deacon-patrol","description":"Patrol 7: Quiet","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T07:26:30.255841-08:00","updated_at":"2025-12-25T07:26:30.255841-08:00","closed_at":"2025-12-25T07:26:30.255812-08:00"}
|
||||
|
||||
Reference in New Issue
Block a user