bd sync: 2025-12-29 23:36:55

This commit is contained in:
Steve Yegge
2025-12-29 23:36:55 -08:00
parent 1bc7ae191a
commit fcea70efa1

View File

@@ -641,7 +641,7 @@
{"id":"gt-9its","title":"Digest: mol-deacon-patrol","description":"Patrol #11","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T22:24:28.490294-08:00","updated_at":"2025-12-27T21:26:04.742199-08:00","deleted_at":"2025-12-27T21:26:04.742199-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-9j9","title":"CLI: worker status reporting commands","description":"Worker status reporting CLI for polecats to report progress.\n\n## Commands\n\n### gt worker started\n```\ngt worker started \u003cissue-id\u003e [-m MESSAGE]\n```\nReports work started on issue.\n\n### gt worker progress\n```\ngt worker progress \u003cissue-id\u003e \u003c0-100\u003e [-m MESSAGE]\n```\nReports percentage complete.\n\n### gt worker blocked\n```\ngt worker blocked \u003cissue-id\u003e \u003creason\u003e [-m MESSAGE]\n```\nReports blocked status with reason.\n\n### gt worker completed\n```\ngt worker completed \u003cissue-id\u003e [-m MESSAGE]\n```\nReports task completion.\n\n### gt worker failed\n```\ngt worker failed \u003cissue-id\u003e \u003creason\u003e [-m MESSAGE]\n```\nReports task failure.\n\n## Implementation\nEach command sends mail to refinery with structured content:\n```go\ntype WorkerStatusReport struct {\n IssueID string\n Status string // started|progress|blocked|completed|failed\n Progress int // 0-100 for progress\n Reason string // for blocked/failed\n Message string // optional detail\n ReportedAt time.Time\n}\n```\n\n## Message Format\nSubject: \"[STATUS] \u003cissue-id\u003e: \u003cstatus\u003e\"\nBody: JSON-encoded WorkerStatusReport\n\n## Default Recipient\n```go\n// Determine from context\nfunc getDefaultRecipient() string {\n rig := os.Getenv(\"GT_RIG\")\n if rig != \"\" {\n return rig + \"/refinery\"\n }\n return \"refinery/\"\n}\n```\n\n## New File\ninternal/cmd/worker.go\n\n## PGT Reference\ngastown-py/src/gastown/cli/worker_cmd.py\n\n## Acceptance Criteria\n- [ ] All 5 commands implemented\n- [ ] Status sent as mail to refinery\n- [ ] Structured JSON body for parsing\n- [ ] Works from polecat session context","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-16T14:47:52.795695-08:00","updated_at":"2025-12-16T16:05:26.715967-08:00"}
{"id":"gt-9je6q","title":"Digest: mol-deacon-patrol","description":"Patrol 2: all healthy, no incidents","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:54:07.977275-08:00","updated_at":"2025-12-25T19:54:07.977275-08:00","closed_at":"2025-12-25T19:54:07.977222-08:00"}
{"id":"gt-9jhwq","title":"Digest: mol-deacon-patrol","description":"Patrol 4: 3 polecats working, all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T22:32:43.763741-08:00","updated_at":"2025-12-29T22:32:43.763741-08:00","closed_at":"2025-12-29T22:32:43.763714-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-9jhwq","depends_on_id":"gt-eph-x4j","type":"parent-child","created_at":"2025-12-29T22:32:43.764627-08:00","created_by":"deacon"}]}
{"id":"gt-9jhwq","title":"Digest: mol-deacon-patrol","description":"Patrol 4: 3 polecats working, all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T22:32:43.763741-08:00","updated_at":"2025-12-29T22:32:43.763741-08:00","closed_at":"2025-12-29T22:32:43.763714-08:00","close_reason":"Squashed from 9 wisps"}
{"id":"gt-9kc2","title":"Refinery needs manual restart/handoff mechanism","description":"Refinery sessions can get stuck or need restart. Currently requires manual intervention. Need: 1) gt refinery restart command, 2) Refinery self-handoff on context fill, 3) Auto-recovery from stuck states.","status":"tombstone","priority":1,"issue_type":"feature","created_at":"2025-12-23T00:19:10.944679-08:00","updated_at":"2025-12-27T21:29:53.06587-08:00","deleted_at":"2025-12-27T21:29:53.06587-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"feature"}
{"id":"gt-9kj0z","title":"Digest: mol-deacon-patrol","description":"Patrol 2: all clear, systems healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-28T08:12:43.355741-08:00","updated_at":"2025-12-28T08:12:43.355741-08:00","closed_at":"2025-12-28T08:12:43.355697-08:00"}
{"id":"gt-9klo9","title":"Digest: mol-deacon-patrol","description":"Patrol 18: All agents healthy","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T05:36:31.037714-08:00","updated_at":"2025-12-27T21:26:03.71017-08:00","deleted_at":"2025-12-27T21:26:03.71017-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
@@ -949,6 +949,7 @@
{"id":"gt-e5hly","title":"Digest: mol-deacon-patrol","description":"Patrol 13: All healthy.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-28T03:08:36.903-08:00","updated_at":"2025-12-28T03:08:36.903-08:00","closed_at":"2025-12-28T03:08:36.902969-08:00"}
{"id":"gt-e5o","title":"Fix role detection for nested rig structures","description":"When gastown/ has its own mayor/ dir, workspace detection finds it as town root instead of ~/ai. This breaks polecat/refinery/witness detection when running from within a rig.","status":"tombstone","priority":2,"issue_type":"bug","created_at":"2025-12-17T16:47:18.519581-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-e5ymc","title":"Digest: mol-deacon-patrol","description":"Patrol 6: all clear","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T17:19:22.540112-08:00","updated_at":"2025-12-27T21:26:01.18473-08:00","deleted_at":"2025-12-27T21:26:01.18473-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-e6qd9","title":"Merge: toast-1767079830359","description":"branch: polecat/toast-1767079830359\ntarget: main\nsource_issue: toast-1767079830359\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-29T23:36:16.115494-08:00","created_by":"gastown/polecats/toast","updated_at":"2025-12-29T23:36:16.115494-08:00"}
{"id":"gt-e74q","title":"Digest: mol-deacon-patrol @ 2025-12-24 19:44","description":"Patrol 5: All healthy","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T19:44:17.155633-08:00","updated_at":"2025-12-27T21:26:05.145944-08:00","deleted_at":"2025-12-27T21:26:05.145944-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-e76","title":"gt mail reply/thread: Conversation support","description":"Add mail conversation features:\n\n- gt mail reply \u003cid\u003e -m 'message' - Reply to a message\n- gt mail thread \u003cid\u003e - Show all messages in a thread\n\nEnables back-and-forth communication between agents.","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-17T21:50:06.215773-08:00","updated_at":"2025-12-27T21:29:57.231061-08:00","dependencies":[{"issue_id":"gt-e76","depends_on_id":"gt-hw6","type":"blocks","created_at":"2025-12-17T22:23:43.106435-08:00","created_by":"daemon"}],"deleted_at":"2025-12-27T21:29:57.231061-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-e9k","title":"Workspace cleanup: preflight and postflight","description":"Workspace preflight and postflight commands for clean state management.\n\n## Preflight\n```\ngt preflight [--rig \u003crig\u003e] [--dry-run]\n```\n\nRun before starting batch work:\n1. Clean stale mail in inboxes\n2. Check for stuck workers (warn)\n3. Check rig health (polecats, refinery)\n4. Verify git state is clean\n5. Run bd sync to ensure beads current\n\n## Postflight\n```\ngt postflight [--rig \u003crig\u003e] [--archive-mail] [--dry-run]\n```\n\nRun after batch work completes:\n1. Archive old mail with --archive-mail\n2. Clean up stale integration branches\n3. Sync beads\n4. Report on rig state\n\n## Implementation\n```go\nfunc Preflight(rigName string, dryRun bool) (*PreflightReport, error)\nfunc Postflight(rigName string, opts PostflightOptions) (*PostflightReport, error)\n```\n\n## Report Structures\n```go\ntype PreflightReport struct {\n MailCleaned int\n RigHealthy bool\n StuckWorkers []string\n Warnings []string\n}\n\ntype PostflightReport struct {\n MailArchived int\n BranchesCleaned int\n Warnings []string\n}\n```\n\n## Note\n\nThese are workspace maintenance commands, not tied to \"swarm\" lifecycle. Run them anytime to keep the rig clean.\n\n## Acceptance Criteria\n- [ ] Preflight cleans stale state\n- [ ] Postflight archives old mail\n- [ ] Both have --dry-run mode\n- [ ] Clear reports of actions taken","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-16T14:47:15.997677-08:00","updated_at":"2025-12-16T17:25:01.55269-08:00"}
@@ -1109,14 +1110,14 @@
{"id":"gt-gastown-polecat-cheedo","title":"gt-gastown-polecat-cheedo","description":"gt-gastown-polecat-cheedo\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-y14l7\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:58:54.800962-08:00","created_by":"mayor","updated_at":"2025-12-29T23:31:05.188148-08:00","closed_at":"2025-12-29T22:09:59.275018-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:09:59.236109-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-dag","title":"gt-gastown-polecat-dag","description":"gt-gastown-polecat-dag\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-eph-5c8\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:58:43.032649-08:00","created_by":"mayor","updated_at":"2025-12-29T23:31:01.113783-08:00","closed_at":"2025-12-29T22:09:59.431011-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:09:59.393771-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-delta","title":"gt-gastown-polecat-delta","description":"gt-gastown-polecat-delta\n\nrole_type: polecat\nrig: gastown\nagent_state: spawning\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: null","status":"tombstone","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:41:39.879592-08:00","created_by":"mayor","updated_at":"2025-12-29T21:45:13.792554-08:00","deleted_at":"2025-12-29T21:45:13.792554-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-dementus","title":"gt-gastown-polecat-dementus","description":"gt-gastown-polecat-dementus\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-65gwa\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:43:05.226023-08:00","created_by":"mayor","updated_at":"2025-12-29T23:30:24.925313-08:00","closed_at":"2025-12-29T22:13:55.057255-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:13:55.019699-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-dementus","title":"gt-gastown-polecat-dementus","description":"gt-gastown-polecat-dementus\n\nrole_type: polecat\nrig: gastown\nagent_state: done\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:43:05.226023-08:00","created_by":"mayor","updated_at":"2025-12-29T23:35:21.552825-08:00","closed_at":"2025-12-29T22:13:55.057255-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:13:55.019699-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-furiosa","title":"gt-gastown-polecat-furiosa","description":"gt-gastown-polecat-furiosa\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-9v52\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T17:54:50.716414-08:00","created_by":"mayor","updated_at":"2025-12-29T23:31:34.739716-08:00","closed_at":"2025-12-29T23:31:18.56592-08:00","close_reason":"nuked","deleted_at":"2025-12-29T23:31:18.528013-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-keeper","title":"gt-gastown-polecat-keeper","description":"gt-gastown-polecat-keeper\n\nrole_type: polecat\nrig: gastown\nagent_state: done\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:59:02.304059-08:00","created_by":"mayor","updated_at":"2025-12-29T22:08:09.913397-08:00","closed_at":"2025-12-29T22:08:09.913397-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:08:09.875921-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-morsov","title":"gt-gastown-polecat-morsov","description":"gt-gastown-polecat-morsov\n\nrole_type: polecat\nrig: gastown\nagent_state: done\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:59:41.438694-08:00","created_by":"mayor","updated_at":"2025-12-29T22:09:14.794797-08:00","closed_at":"2025-12-29T22:09:14.794797-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:09:14.754543-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-nux","title":"gt-gastown-polecat-nux","description":"gt-gastown-polecat-nux\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-od1g\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T17:54:53.302196-08:00","created_by":"mayor","updated_at":"2025-12-29T23:31:37.831954-08:00","closed_at":"2025-12-29T23:31:18.724619-08:00","close_reason":"nuked","deleted_at":"2025-12-29T23:31:18.685434-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-rictus","title":"gt-gastown-polecat-rictus","description":"gt-gastown-polecat-rictus\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-1rxz5\nrole_bead: gt-polecat-role\ncleanup_status: clean","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T17:54:58.123296-08:00","created_by":"mayor","updated_at":"2025-12-29T23:30:19.921339-08:00","closed_at":"2025-12-29T22:09:59.880299-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:09:59.844016-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-slit","title":"gt-gastown-polecat-slit","description":"gt-gastown-polecat-slit\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-dich\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T17:54:55.706657-08:00","created_by":"mayor","updated_at":"2025-12-29T23:31:41.476945-08:00","closed_at":"2025-12-29T23:31:18.885778-08:00","close_reason":"nuked","deleted_at":"2025-12-29T23:31:18.847342-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-toast","title":"gt-gastown-polecat-toast","description":"gt-gastown-polecat-toast\n\nrole_type: polecat\nrig: gastown\nagent_state: running\nhook_bead: gt-zc6ma\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:58:19.899125-08:00","created_by":"mayor","updated_at":"2025-12-29T23:30:31.959694-08:00","closed_at":"2025-12-29T22:13:55.693733-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:13:55.656009-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-slit","title":"gt-gastown-polecat-slit","description":"gt-gastown-polecat-slit\n\nrole_type: polecat\nrig: gastown\nagent_state: done\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T17:54:55.706657-08:00","created_by":"mayor","updated_at":"2025-12-29T23:36:36.159518-08:00","closed_at":"2025-12-29T23:31:18.885778-08:00","close_reason":"nuked","deleted_at":"2025-12-29T23:31:18.847342-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-toast","title":"gt-gastown-polecat-toast","description":"gt-gastown-polecat-toast\n\nrole_type: polecat\nrig: gastown\nagent_state: done\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:58:19.899125-08:00","created_by":"mayor","updated_at":"2025-12-29T23:36:16.399014-08:00","closed_at":"2025-12-29T22:13:55.693733-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:13:55.656009-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-polecat-valkyrie","title":"gt-gastown-polecat-valkyrie","description":"gt-gastown-polecat-valkyrie\n\nrole_type: polecat\nrig: gastown\nagent_state: done\nhook_bead: null\nrole_bead: gt-polecat-role\ncleanup_status: has_stash","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T21:58:58.583302-08:00","created_by":"mayor","updated_at":"2025-12-29T22:10:00.175657-08:00","closed_at":"2025-12-29T22:10:00.175657-08:00","close_reason":"nuked","deleted_at":"2025-12-29T22:10:00.139673-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
{"id":"gt-gastown-refinery","title":"Refinery for gastown - processes merge queue.","description":"Refinery for gastown - processes merge queue.\n\nrole_type: refinery\nrig: gastown\nagent_state: running\nhook_bead: null\nrole_bead: gt-refinery-role\ncleanup_status: null","status":"open","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:48:16.178399-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T23:19:59.408801-08:00"}
{"id":"gt-gastown-witness","title":"Witness for gastown - monitors polecat health and progress.","description":"Witness for gastown - monitors polecat health and progress.\n\nrole_type: witness\nrig: gastown\nagent_state: running\nhook_bead: null\nrole_bead: gt-witness-role\ncleanup_status: null","status":"open","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:48:00.691337-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T22:40:15.867911-08:00"}
@@ -1292,6 +1293,7 @@
{"id":"gt-iep9.7","title":"loop-or-exit","description":"Decision: burn and loop if context low, exit for respawn if context high.","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-21T17:51:04.755716-08:00","updated_at":"2025-12-25T11:44:16.881599-08:00","deleted_at":"2025-12-25T11:44:16.881599-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"}
{"id":"gt-ifxvi","title":"Digest: mol-deacon-patrol","description":"Patrol 8: All healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T14:24:01.913738-08:00","updated_at":"2025-12-25T14:24:01.913738-08:00","closed_at":"2025-12-25T14:24:01.913706-08:00"}
{"id":"gt-ih0s","title":"Fix blocking bugs (gt-dsfi, gt-n7z7, gm-c6b)","description":"Fix bugs blocking Witness functionality:\n\n1. gt-dsfi: handoff deadlock\n - Polecats hang when trying to exit\n - Blocks shutdown request handler\n\n2. gt-n7z7: refinery foreground race condition \n - Sometimes detects parent as already running\n - Blocks reliable Refinery startup\n\n3. gm-c6b: mail coordination\n - Cross-rig mail should use town-level database\n - Affects Witness \u003c-\u003e Mayor communication\n\nThese should be fixed early as they'll block integration testing.","notes":"Fixed gt-dsfi and gt-n7z7. Issue gm-c6b not found in database.","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-20T03:14:25.803822-08:00","updated_at":"2025-12-27T21:29:53.789714-08:00","dependencies":[{"issue_id":"gt-ih0s","depends_on_id":"gt-53w6","type":"parent-child","created_at":"2025-12-20T03:14:37.430142-08:00","created_by":"daemon"}],"deleted_at":"2025-12-27T21:29:53.789714-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-ihfcd","title":"Merge: slit-1767079899677","description":"branch: polecat/slit-1767079899677\ntarget: main\nsource_issue: slit-1767079899677\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-29T23:35:03.133943-08:00","created_by":"gastown/polecats/slit","updated_at":"2025-12-29T23:35:03.133943-08:00"}
{"id":"gt-ihvq0","title":"Agent bead creation uses wrong prefix for non-gastown rigs","description":"When adding a polecat to beads rig, agent bead creation fails:\n Error: issue ID 'gt-polecat-beads-Toast' does not match configured prefix 'bd'\n\nThe agent bead ID should use the rig's prefix (bd-) not hardcoded gt-.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-28T19:29:40.954862-08:00","created_by":"mayor","updated_at":"2025-12-29T15:28:36.401279-08:00","closed_at":"2025-12-29T15:28:36.401279-08:00","close_reason":"Fixed: Added WithPrefix variants to agent bead ID functions, updated crew_add.go, rig/manager.go, and doctor/agent_beads_check.go to use rig's configured prefix"}
{"id":"gt-ihzqr","title":"Formula SDK: Developer Tooling for Workflow Authors","description":"SDK for creating, testing, debugging, and validating formulas.\n\n## Components\n\n### Forge (Creation)\n```bash\nmol forge new my-workflow # Scaffold new formula\nmol forge extend base-workflow # Create variant\nmol forge lint my-workflow # Check syntax/style\n```\n\n### Lab (Testing)\n```bash\nmol lab run my-workflow --dry-run # Mock execution\nmol lab test my-workflow # Run formula tests\nmol lab trace my-workflow # Step-through debug\n```\n\n### Validator (Verification)\n```bash\nmol validate my-workflow # Check well-formedness\nmol validate my-workflow --protocol=Reviewable # Check protocol compliance\nmol validate my-workflow --schematic=shiny # Check schematic compatibility\n```\n\n### Analyzer (Static Analysis)\n```bash\nmol analyze my-workflow --deps # Dependency graph\nmol analyze my-workflow --coverage # Step coverage\nmol analyze my-workflow --cycles # Detect cycles\n```\n\n## Relationship to Other Concepts\n\nThe SDK operates on:\n- Formulas (source level)\n- Protos (compiled level)\n- Molecules (runtime level)\n\nAnd validates against:\n- Protocols (type system)\n- Schematics (domain composition)\n\n## Open Questions\n\n1. Bundled vs separate - mol subcommands or formula-kit binary?\n2. IDE integration - LSP for formula files?\n3. Test harness - how to mock steps? fixtures?\n\n## Related\n\n- docs/formula_evolution.md - \"SDK Question\" section\n- gt-8tmz.30 - Proto debugging tools (subset)\n- gt-8tmz.31 - Formula validation (subset)\n","status":"closed","priority":4,"issue_type":"epic","created_at":"2025-12-26T01:00:55.010406-08:00","updated_at":"2025-12-28T22:33:22.271081-08:00","closed_at":"2025-12-28T22:33:22.271081-08:00"}
{"id":"gt-iib","title":"Architecture: Decentralized rig structure with per-rig agents","description":"## Decision\n\nAdopt decentralized architecture where each rig contains all its agents (mayor/, witness/, refinery/, polecats/) rather than centralizing mayor clones at town level.\n\n## Town Level Structure\n\n```\n~/ai/ # Town root\n├── config/ # Town config (VISIBLE, not hidden)\n│ ├── town.json # {\"type\": \"town\"}\n│ ├── rigs.json # Registry of managed rigs\n│ └── federation.json # Wasteland config (future)\n│\n├── mayor/ # Mayor's HOME at town level\n│ ├── CLAUDE.md\n│ ├── mail/inbox.jsonl\n│ └── state.json\n│\n└── \u003crigs\u003e/ # Managed projects\n```\n\n## Rig Level Structure (e.g., wyvern)\n\n```\nwyvern/ # Rig = clone of project repo\n├── .git/info/exclude # Gas Town adds: polecats/ refinery/ witness/ mayor/\n├── .beads/ # Beads (if project uses it)\n├── [project files] # Clean project code on main\n│\n├── polecats/ # Worker clones\n│ └── \u003cname\u003e/ # Each is a git clone\n│\n├── refinery/\n│ ├── rig/ # Refinery's clone\n│ ├── state.json\n│ └── mail/inbox.jsonl\n│\n├── witness/ # NEW: Per-rig pit boss\n│ ├── rig/ # Witness's clone\n│ ├── state.json\n│ └── mail/inbox.jsonl\n│\n└── mayor/\n ├── rig/ # Mayor's clone for this rig\n └── state.json\n```\n\n## Key Decisions\n\n1. **Visible config dir**: `config/` not `.gastown/` (models don't find hidden dirs)\n2. **Witness per-rig**: Each rig has its own Witness (pit boss) with its own clone\n3. **Mayor decentralized**: Mayor's clones live IN each rig at `\u003crig\u003e/mayor/rig/`\n4. **Minimal invasiveness**: Only `.git/info/exclude` modified, no commits to project\n5. **Clone subdir name**: Keep `rig/` for consistency (refinery/rig/, witness/rig/, mayor/rig/)\n\n## Role Detection\n\n- Town root or mayor/ → Mayor (town level)\n- Rig root → Mayor (canonical main)\n- \u003crig\u003e/mayor/rig/ → Mayor (rig-specific)\n- \u003crig\u003e/refinery/rig/ → Refinery\n- \u003crig\u003e/witness/rig/ → Witness\n- \u003crig\u003e/polecats/\u003cname\u003e/ → Polecat\n\n## Migration from PGT\n\n- `mayor/rigs/\u003crig\u003e/` → `\u003crig\u003e/mayor/rig/`\n- `\u003crig\u003e/town/` → eliminated (rig root IS the clone)\n- Add `witness/` to each rig","status":"tombstone","priority":0,"issue_type":"task","created_at":"2025-12-15T19:21:19.913928-08:00","updated_at":"2025-12-25T01:30:41.67682-08:00","dependencies":[{"issue_id":"gt-iib","depends_on_id":"gt-u1j","type":"blocks","created_at":"2025-12-15T19:21:40.374551-08:00","created_by":"daemon"}],"deleted_at":"2025-12-25T01:30:41.67682-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"}
@@ -1494,6 +1496,7 @@
{"id":"gt-le1a","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:47.674479-08:00","updated_at":"2025-12-19T18:30:24.050697-08:00","closed_at":"2025-12-19T18:30:24.0507-08:00"}
{"id":"gt-leeb","title":"load-context","description":"Run gt prime and bd prime. Verify issue assignment.\nCheck inbox for any relevant messages.\n\nRead the assigned issue (gt-qwyu) and understand the requirements.\nIdentify any blockers or missing information.","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-21T21:58:52.59974-08:00","updated_at":"2025-12-25T15:52:43.900154-08:00","dependencies":[{"issue_id":"gt-leeb","depends_on_id":"gt-q6hl","type":"parent-child","created_at":"2025-12-21T21:58:52.600633-08:00","created_by":"stevey"}],"deleted_at":"2025-12-25T15:52:43.900154-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"task"}
{"id":"gt-lek6","title":"gt rig reset --stale: Clear orphaned in_progress items","description":"Reset in_progress issues when their assigned agent no longer exists.\n\n## Problem\nWhen polecats die without cleanup, their issues remain in_progress forever.\nNeed a way to bulk-reset these orphaned items.\n\n## Command\n```bash\ngt rig reset --stale [--dry-run]\n```\n\n## Logic\nFor each in_progress issue in rig:\n1. Parse assignee (e.g., \"gastown/furiosa\")\n2. Map to tmux session name (gt-gastown-furiosa)\n3. If session does NOT exist:\n - Reset status to \"open\"\n - Clear assignee\n4. Exception: skip crew/* assignees (persistent identities)\n OR check if crew tmux session exists\n\n## Output\n```\nResetting stale work in gastown:\n gt-abc: gastown/furiosa (no session) → open\n gt-def: gastown/nux (no session) → open\n Skipped: gt-xyz: gastown/crew/max (persistent)\nReset 2 issues, skipped 1\n```\n\n## Related\n- gt-2kz: CLI cleanup commands for stale state\n- gt-rdmw: orphan-check in deacon patrol\n- gt-orphans command (list orphaned molecules)","status":"tombstone","priority":1,"issue_type":"feature","created_at":"2025-12-21T21:33:46.962413-08:00","updated_at":"2025-12-27T21:29:53.383925-08:00","deleted_at":"2025-12-27T21:29:53.383925-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"feature"}
{"id":"gt-leqvb","title":"Merge: slit-1767079899677","description":"branch: polecat/slit-1767079899677\ntarget: main\nsource_issue: slit-1767079899677\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-29T23:36:35.88583-08:00","created_by":"gastown/polecats/slit","updated_at":"2025-12-29T23:36:35.88583-08:00"}
{"id":"gt-lexye","title":"Create internal/tui/ package with feed model","description":"Create the TUI infrastructure for gt feed.\n\n## Package structure\n```\ninternal/tui/\n feed/\n model.go # bubbletea Model struct\n view.go # View() rendering\n update.go # Update() message handling\n events.go # Event stream subscription (tail .feed.jsonl)\n styles.go # lipgloss styles\n keys.go # Key bindings\n```\n\n## Model components\n1. **AgentTree** - Collapsible tree of agents by role\n2. **EventStream** - Scrollable viewport of recent events\n3. **StatusBar** - Current filter, help hints\n4. **FilterPopup** - Modal for setting filters\n\n## Key bindings\n- j/k - scroll events\n- J/K - scroll agent tree\n- tab - switch focus (tree/stream)\n- enter - expand/details\n- / - search\n- f - filter popup\n- q - quit\n- ? - help\n\n## Event subscription\n- Tail ~/gt/.feed.jsonl using fsnotify or polling\n- Parse JSONL events\n- Send as bubbletea messages to update model","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-28T16:13:40.29527-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-28T16:21:50.5417-08:00","closed_at":"2025-12-28T16:21:50.5417-08:00","dependencies":[{"issue_id":"gt-lexye","depends_on_id":"gt-be0as","type":"blocks","created_at":"2025-12-28T16:14:50.294818-08:00","created_by":"daemon"}]}
{"id":"gt-lf7c8","title":"Digest: mol-deacon-patrol","description":"Patrol 20: Final patrol, handing off","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T00:06:01.256064-08:00","updated_at":"2025-12-27T21:26:03.951969-08:00","deleted_at":"2025-12-27T21:26:03.951969-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-lfi2d","title":"Delete .runtime/*.json observable state","description":"Remove JSON files that tracked observable state (now in beads/activity stream).\n\nFiles to delete or minimize:\n- .runtime/refinery.json - remove stats (keep minimal process state if needed)\n- .runtime/witness.json - remove stats\n- .runtime/swarms.json - delete entirely (gt-kc7yj moves to beads)\n\nPrerequisite: All events flowing through activity stream, swarms in beads.\n\nThis is the cleanup step after observability is working.","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-28T21:40:53.315319-08:00","created_by":"gastown/crew/jack","updated_at":"2025-12-28T21:40:53.315319-08:00","dependencies":[{"issue_id":"gt-lfi2d","depends_on_id":"gt-lak31","type":"blocks","created_at":"2025-12-28T21:41:11.646917-08:00","created_by":"daemon"},{"issue_id":"gt-lfi2d","depends_on_id":"gt-rbncw","type":"blocks","created_at":"2025-12-28T21:41:11.676514-08:00","created_by":"daemon"},{"issue_id":"gt-lfi2d","depends_on_id":"gt-kc7yj","type":"blocks","created_at":"2025-12-28T21:41:11.706063-08:00","created_by":"daemon"}]}
@@ -1506,7 +1509,7 @@
{"id":"gt-ljr5m","title":"Digest: mol-deacon-patrol","description":"Patrol 7: Interrupted, routine","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T14:51:12.740668-08:00","updated_at":"2025-12-27T21:26:01.527469-08:00","deleted_at":"2025-12-27T21:26:01.527469-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-lkskw","title":"Digest: mol-deacon-patrol","description":"Patrol 2: all healthy, no action needed","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T19:28:55.321314-08:00","updated_at":"2025-12-27T21:26:00.83782-08:00","deleted_at":"2025-12-27T21:26:00.83782-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-lly5x","title":"Digest: mol-deacon-patrol","description":"Patrol 11: All green","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T19:33:27.266684-08:00","updated_at":"2025-12-27T21:26:02.552212-08:00","deleted_at":"2025-12-27T21:26:02.552212-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-lm5y6","title":"Digest: mol-deacon-patrol","description":"Patrol 5: 3 polecats working","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T22:32:59.612618-08:00","updated_at":"2025-12-29T22:32:59.612618-08:00","closed_at":"2025-12-29T22:32:59.612579-08:00","close_reason":"Squashed from 9 wisps","dependencies":[{"issue_id":"gt-lm5y6","depends_on_id":"gt-eph-8ep","type":"parent-child","created_at":"2025-12-29T22:32:59.613559-08:00","created_by":"deacon"}]}
{"id":"gt-lm5y6","title":"Digest: mol-deacon-patrol","description":"Patrol 5: 3 polecats working","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T22:32:59.612618-08:00","updated_at":"2025-12-29T22:32:59.612618-08:00","closed_at":"2025-12-29T22:32:59.612579-08:00","close_reason":"Squashed from 9 wisps"}
{"id":"gt-lmtma","title":"Digest: mol-deacon-patrol","description":"Patrol 10: quiet","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-28T19:46:21.954989-08:00","updated_at":"2025-12-28T19:46:21.954989-08:00","closed_at":"2025-12-28T19:46:21.954953-08:00"}
{"id":"gt-ln5af","title":"gt commands should follow .beads/redirect","description":"## Problem\n\n`gt sling` (and likely other gt commands) don't follow the `.beads/redirect` file that `bd` uses to share beads across clones.\n\nThis caused confusion during the v0.39.0 release: molecules were poured successfully to mayor/rig's beads (via redirect), but `gt sling` couldn't find them because it was looking in the crew clone's local .beads/.\n\n## Expected Behavior\n\nAll `gt` commands that interact with beads should follow the redirect mechanism that `bd` uses.\n\n## Affected Commands (likely)\n\n- `gt sling`\n- `gt hook` \n- `gt mol status`\n- `gt mol attach`\n- Any command that shells out to `bd show` or similar\n\n## Solution\n\nWhen `gt` needs to find the beads directory, check for `.beads/redirect` and follow it, same as `bd` does.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-27T21:15:50.297192-08:00","created_by":"beads/crew/dave","updated_at":"2025-12-27T21:34:34.290471-08:00","closed_at":"2025-12-27T21:34:34.290471-08:00"}
{"id":"gt-lnji","title":"gt polecat git-state command for pre-kill verification","description":"Add git-state subcommand to gt polecat for Witness pre-kill verification.\n\n## Usage\n```bash\ngt polecat git-state \u003crig\u003e/\u003cpolecat\u003e\n```\n\n## Output\n```\nGit State: gastown/furiosa\n\n Working Tree: clean | dirty\n Uncommitted: 0 files | N files (list)\n Unpushed: 0 commits | N commits ahead\n Stashes: 0 | N stashes\n\n Verdict: CLEAN (safe to kill) | DIRTY (needs cleanup)\n```\n\n## JSON output (--json flag)\n```json\n{\n \"clean\": true,\n \"uncommitted_files\": [],\n \"unpushed_commits\": 0,\n \"stash_count\": 0\n}\n```\n\n## Used by\n- Witness pre-kill verification (mol-witness-patrol)\n- Manual cleanup checks\n\n## Implementation\n- Check git status in polecat worktree\n- Check git log origin/main..HEAD\n- Check git stash list","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-22T16:43:10.035052-08:00","updated_at":"2025-12-27T21:29:53.175099-08:00","deleted_at":"2025-12-27T21:29:53.175099-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
@@ -1937,7 +1940,7 @@
{"id":"gt-s94gq","title":"gt swarm dispatch command not working","description":"The \"gt swarm dispatch\" command shown in help does not work as expected.\n\n**Observed:**\n```\n$ gt swarm dispatch bd-784c\n[prints help text instead of dispatching]\n```\n\n**Expected:**\nShould dispatch the next ready task from the epic to an available worker.\n\n**Workaround:**\nHad to manually use \"gt sling \u003cissue\u003e \u003cpolecat\u003e\" for each task dispatch.\n\n**Impact:**\n- Manual task dispatch defeats swarm automation\n- Coordinator has to track which tasks are ready and which polecats are free\n\n**Suggestion:**\nImplement or fix \"gt swarm dispatch\" to:\n1. Find next unassigned task in epic\n2. Find idle polecat in swarm\n3. Sling task to polecat automatically\n\n(Moved from bd-kp9y)","status":"open","priority":3,"issue_type":"bug","created_at":"2025-12-29T18:29:57.675487-08:00","created_by":"stevey","updated_at":"2025-12-29T18:29:57.675487-08:00"}
{"id":"gt-s9im","title":"Remove gt context --usage estimation","description":"The external context estimation approach doesn't work:\n- tmux scrollback trick breaks with --cycle\n- Can't see actual context usage from outside\n- Only the agent knows its internal state\n\nRemove or deprecate:\n- gt context --usage flag\n- Any external context monitoring logic\n\nDocument why in comments: 'Context management is agent-initiated, not externally monitored.\nSee self-check guidance in role templates.'\n\nThis is P3 because it's cleanup - the feature just doesn't work, not actively harmful.","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-23T01:46:42.887818-08:00","updated_at":"2025-12-23T01:46:42.887818-08:00"}
{"id":"gt-sadkq","title":"Execute registered plugins","description":"Execute registered plugins.\n\nScan ~/gt/plugins/ for plugin directories. Each plugin has a plugin.md with\nYAML frontmatter defining its gate (when to run) and instructions (what to do).\n\nSee docs/deacon-plugins.md for full documentation.\n\nGate types:\n- cooldown: Time since last run (e.g., 24h)\n- cron: Schedule-based (e.g., \"0 9 * * *\")\n- condition: Metric threshold (e.g., wisp count \u003e 50)\n- event: Trigger-based (e.g., startup, heartbeat)\n\nFor each plugin:\n1. Read plugin.md frontmatter to check gate\n2. Compare against state.json (last run, etc.)\n3. If gate is open, execute the plugin\n\nPlugins marked parallel: true can run concurrently using Task tool subagents.\nSequential plugins run one at a time in directory order.\n\nSkip this step if ~/gt/plugins/ does not exist or is empty.\n","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T02:11:33.776878-08:00","updated_at":"2025-12-27T21:29:55.266102-08:00","dependencies":[{"issue_id":"gt-sadkq","depends_on_id":"gt-v7wq4","type":"blocks","created_at":"2025-12-25T02:11:33.919459-08:00","created_by":"stevey"}],"deleted_at":"2025-12-27T21:29:55.266102-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-sb6m4","title":"Filter agent session molecule noise from activity feed","description":"Agent session molecules (gt-crew-gastown-joe, gt-crew-gastown-max, etc.) update frequently\nand create noisy entries like:\n\n [10:22:37] → gt-crew-gastown-joe updated · gt-crew-gastown-joe\n\nThese are not useful in the activity feed. Options:\n1. Filter them out entirely\n2. Collapse repeated updates into single entries\n3. Show them in a separate \"agent status\" section\n\nPart of epic gt-u7dxq","status":"hooked","priority":2,"issue_type":"task","assignee":"gastown/polecats/capable","created_at":"2025-12-28T11:02:11.146127-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-29T23:30:28.057974-08:00"}
{"id":"gt-sb6m4","title":"Filter agent session molecule noise from activity feed","description":"Agent session molecules (gt-crew-gastown-joe, gt-crew-gastown-max, etc.) update frequently\nand create noisy entries like:\n\n [10:22:37] → gt-crew-gastown-joe updated · gt-crew-gastown-joe\n\nThese are not useful in the activity feed. Options:\n1. Filter them out entirely\n2. Collapse repeated updates into single entries\n3. Show them in a separate \"agent status\" section\n\nPart of epic gt-u7dxq","status":"closed","priority":2,"issue_type":"task","assignee":"gastown/polecats/capable","created_at":"2025-12-28T11:02:11.146127-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-29T23:36:43.08159-08:00","closed_at":"2025-12-29T23:36:43.08159-08:00","close_reason":"Implemented filter for agent session molecule updates in the activity feed TUI. Agent session updates are now filtered from the event feed while still updating the agent tree for status visibility."}
{"id":"gt-scak","title":"inbox-check","description":"Process witness mail: lifecycle requests, help requests.\n\n```bash\ngt mail inbox\n```\n\nHandle by message type:\n- LIFECYCLE/Shutdown: Queue for pre-kill verification\n- Blocked/Help: Assess if resolvable or escalate\n- HANDOFF: Load predecessor state\n- Work complete: Verify issue closed, proceed to pre-kill\n\nRecord any pending actions for later steps.\nMark messages as processed when complete.","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-23T01:41:54.504858-08:00","updated_at":"2025-12-25T15:52:57.761579-08:00","deleted_at":"2025-12-25T15:52:57.761579-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-scjyc","title":"Merge: slit-1767073379145","description":"attached_args: Code review\n\nbranch: polecat/slit-1767073379145\ntarget: main\nsource_issue: slit-1767073379145\nrig: gastown","status":"hooked","priority":2,"issue_type":"merge-request","assignee":"gastown/polecats/slit","created_at":"2025-12-29T21:59:32.833056-08:00","created_by":"gastown/polecats/slit","updated_at":"2025-12-29T22:10:33.730767-08:00"}
{"id":"gt-sd3up","title":"Digest: mol-deacon-patrol","description":"Patrol 13: routine","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T10:18:42.136385-08:00","updated_at":"2025-12-27T21:26:03.527896-08:00","deleted_at":"2025-12-27T21:26:03.527896-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
@@ -1987,6 +1990,7 @@
{"id":"gt-t2o92","title":"Digest: mol-deacon-patrol","description":"Patrol 12: Nominal","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T23:51:07.540535-08:00","updated_at":"2025-12-27T21:26:04.13259-08:00","deleted_at":"2025-12-27T21:26:04.13259-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-t2vj","title":"Merge: gt-8v8","description":"branch: polecat/nux\ntarget: main\nsource_issue: gt-8v8\nrig: gastown","status":"tombstone","priority":1,"issue_type":"merge-request","created_at":"2025-12-20T16:31:37.562534-08:00","updated_at":"2025-12-27T21:27:22.659126-08:00","deleted_at":"2025-12-27T21:27:22.659126-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
{"id":"gt-t3kya","title":"Digest: mol-deacon-patrol","description":"Patrol 2: 1 mail archived, all agents healthy, 1 orphan fixed","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T17:14:35.793224-08:00","updated_at":"2025-12-27T21:26:01.209556-08:00","deleted_at":"2025-12-27T21:26:01.209556-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-t4tw7","title":"Merge: dementus-1767079823043","description":"branch: polecat/dementus-1767079823043\ntarget: main\nsource_issue: dementus-1767079823043\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-29T23:35:21.208547-08:00","created_by":"gastown/polecats/dementus","updated_at":"2025-12-29T23:35:21.208547-08:00"}
{"id":"gt-t5i07","title":"Refinery Patrol","description":"Merge queue processor patrol loop with verification gates.","status":"open","priority":2,"issue_type":"molecule","created_at":"2025-12-29T14:38:03.516004-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T14:38:03.516004-08:00"}
{"id":"gt-t5mz","title":"Hardcoded session ID prefixes and paths","description":"Multiple hardcoded values throughout code:\n- internal/mail/router.go: 'gt-mayor', 'gt-' session prefixes\n- internal/lock/lock.go: '.runtime', 'agent.lock' paths\n- Session ID generation uses string literals\n\nShould move to:\n- constants package for prefixes\n- config for customizable paths\n\nLow priority but improves maintainability.","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-24T12:51:20.962108-08:00","updated_at":"2025-12-24T12:51:20.962108-08:00","dependencies":[{"issue_id":"gt-t5mz","depends_on_id":"gt-jo9n","type":"blocks","created_at":"2025-12-24T12:52:08.156758-08:00","created_by":"daemon"}]}
{"id":"gt-t5pc","title":"test with labels","status":"tombstone","priority":2,"issue_type":"message","created_at":"2025-12-20T17:42:30.258069-08:00","updated_at":"2025-12-27T21:29:56.752768-08:00","deleted_at":"2025-12-27T21:29:56.752768-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"message"}
@@ -2378,7 +2382,7 @@
{"id":"gt-zbcwk","title":"Digest: mol-deacon-patrol","description":"Patrol 15: Mayor OK, 11 sessions","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T20:37:10.853312-08:00","updated_at":"2025-12-27T21:26:02.0899-08:00","deleted_at":"2025-12-27T21:26:02.0899-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-zbmg8","title":"gt status should show runtime state, not just structure","description":"## Problem\n`gt status` shows structural info (which crews exist) but not runtime reality (which sessions are running).\n\n## Current Output\n- Shows 'Crews: [dave emma zoey]' but doesn't indicate dave is crashed\n- Missing Deacon from output entirely\n- Hooks shown but unclear if agents are alive\n\n## Expected\n- Show which tmux sessions are actually running\n- Indicate crashed/missing sessions with warning\n- Include all roles (Mayor, Deacon, Witnesses, Refineries, Crews)\n- Distinguish between:\n - Structure: what COULD run\n - Runtime: what IS running\n\n## Example Better Output\n```\nAgents\n mayor ✓ running (gt-mayor)\n deacon ✓ running (gt-deacon)\n \nRigs\n beads\n witness ✓ running\n refinery ✓ running \n crew/dave ✗ CRASHED (session missing)\n crew/emma ✓ running\n gastown\n witness ✓ running\n refinery ✓ running\n crew/max ✗ CRASHED (session missing)\n```","status":"tombstone","priority":1,"issue_type":"bug","created_at":"2025-12-26T15:31:12.30459-08:00","updated_at":"2025-12-27T21:29:45.874138-08:00","deleted_at":"2025-12-27T21:29:45.874138-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"bug"}
{"id":"gt-zbx5","title":"Merge: gt-rana.2","description":"branch: polecat/nux\ntarget: main\nsource_issue: gt-rana.2\nrig: gastown","status":"tombstone","priority":1,"issue_type":"merge-request","created_at":"2025-12-21T16:17:31.287004-08:00","updated_at":"2025-12-27T21:27:22.60134-08:00","deleted_at":"2025-12-27T21:27:22.60134-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
{"id":"gt-zc6ma","title":"Show actor only when not redundant with bead ID","description":"Currently the feed shows actor even when obvious:\n\n [10:17:37] ✓ gt-s6r44 completed · ... @gastown/crew/max\n\nThe actor should be omitted when:\n- The bead ID already identifies the agent (gt-crew-gastown-joe)\n- The action makes the actor obvious (created by = actor)\n\nFormat should be:\n {timestamp} {symbol} {issue-id} {action} · {title} [@actor if not obvious]\n\nPart of epic gt-u7dxq","status":"hooked","priority":2,"issue_type":"task","assignee":"gastown/polecats/toast","created_at":"2025-12-28T11:02:12.679921-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-29T23:30:31.81306-08:00"}
{"id":"gt-zc6ma","title":"Show actor only when not redundant with bead ID","description":"Currently the feed shows actor even when obvious:\n\n [10:17:37] ✓ gt-s6r44 completed · ... @gastown/crew/max\n\nThe actor should be omitted when:\n- The bead ID already identifies the agent (gt-crew-gastown-joe)\n- The action makes the actor obvious (created by = actor)\n\nFormat should be:\n {timestamp} {symbol} {issue-id} {action} · {title} [@actor if not obvious]\n\nPart of epic gt-u7dxq","status":"closed","priority":2,"issue_type":"task","assignee":"gastown/polecats/toast","created_at":"2025-12-28T11:02:12.679921-08:00","created_by":"gastown/crew/joe","updated_at":"2025-12-29T23:36:06.21804-08:00","closed_at":"2025-12-29T23:36:06.21804-08:00","close_reason":"Implemented actor omission logic in view.go for redundant cases: bead ID identifies agent, or create events"}
{"id":"gt-zde4","title":"CRITICAL: Witness hallucinated swarm work instead of spawning polecats","description":"The Witness was asked to spawn 12 polecats for a swarm. Instead of actually spawning polecats and doing the work, it:\n\n1. Displayed 'Spawning 12 polecats...' with gt spawn commands shown as 'Waiting'\n2. Then immediately showed all 12 issues as 'closed' with plausible-sounding close reasons\n3. No actual polecats were spawned (gt polecat list beads shows 'No active polecats')\n4. No git commits were made\n5. The claimed code changes don't exist in the codebase\n\nExample fake close reasons:\n- bd-d28c: 'Added 10 tests covering createTombstone and deleteIssue wrappers with 100% coverage'\n- bd-c7y5: 'Implemented --tombstones-only flag for bd compact'\n\nVerification:\n```\n$ grep -r 'createTombstone' internal/rpc/*_test.go # No output\n$ grep -r 'tombstones-only' cmd/bd/*.go # No output\n$ git log --oneline --since='1 hour ago' # No commits\n```\n\nThis is a severe trust violation. The Witness needs guardrails to:\n1. Actually verify polecats were spawned before reporting success\n2. Verify git commits exist before closing issues\n3. Never close issues it didn't actually work on","status":"tombstone","priority":0,"issue_type":"bug","created_at":"2025-12-23T21:18:45.787608-08:00","updated_at":"2025-12-27T21:29:45.460519-08:00","deleted_at":"2025-12-27T21:29:45.460519-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"bug"}
{"id":"gt-zfe0","title":"Digest: mol-deacon-patrol @ 2025-12-24 19:29","description":"Patrol 19","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T19:29:15.965892-08:00","updated_at":"2025-12-27T21:26:05.196288-08:00","deleted_at":"2025-12-27T21:26:05.196288-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-zfo8z","title":"Digest: mol-deacon-patrol","description":"Patrol 20: all quiet - handoff cycle","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T22:42:03.30836-08:00","updated_at":"2025-12-27T21:26:00.279246-08:00","deleted_at":"2025-12-27T21:26:00.279246-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}