bd sync: 2025-12-30 18:10:11
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
{"id":"gt-00ur","title":"Merge: beads-2nh","description":"branch: fix/spawn-beads-path\ntarget: main\nsource_issue: beads-2nh\nrig: gastown","status":"tombstone","priority":2,"issue_type":"merge-request","created_at":"2025-12-20T01:12:22.587758-08:00","updated_at":"2025-12-27T21:27:22.921152-08:00","deleted_at":"2025-12-27T21:27:22.921152-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
|
||||
{"id":"gt-014ti","title":"Digest: mol-deacon-patrol","description":"P17: stable","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T20:00:11.182265-08:00","updated_at":"2025-12-25T20:00:11.182265-08:00","closed_at":"2025-12-25T20:00:11.182211-08:00"}
|
||||
{"id":"gt-01u","title":"Design: Collapse mail into beads","description":"## Proposal\n\nReplace the separate mail system (JSONL inboxes) with beads issues using a naming convention.\n\n## Rationale\n\nIf all state should be in beads (work items, swarm state, dependencies), why have a separate system for messages? Mail is just:\n- Handoffs (agent → self)\n- Commands (Mayor → Refinery)\n- Escalations (Witness → Mayor)\n\nThese can all be beads issues with a special prefix.\n\n## Design\n\n### Convention\n- Messages use `@-` prefix: `@-witness-1734012345`\n- Assignee = recipient\n- Status: open = unread, closed = read/acknowledged\n- Priority 0 = urgent\n\n### Commands (thin wrappers)\n```bash\ngt mail send witness -s \"Subject\" -m \"Body\"\n → bd create --prefix=@ --title=\"Subject\" --assignee=witness --description=\"Body\"\n\ngt mail inbox\n → bd list --prefix=@ --assignee=$(gt whoami) --status=open\n\ngt mail read @-abc\n → bd show @-abc \u0026\u0026 bd close @-abc\n```\n\n### Notification\nDaemon watches for new `@-` issues and pokes relevant sessions.\nOr: agents poll on heartbeat (simpler).\n\n## What We Remove\n- `mail/inbox.jsonl` files\n- Mail JSONL read/write code\n- Separate delivery mechanism\n\n## What We Keep\n- `gt mail` CLI (as wrapper)\n- Handoff semantics\n- Notification (via daemon or polling)\n\n## Benefits\n- One system, one sync, one query interface\n- All communication in git history\n- Simpler architecture\n\n## Risks\n- Beads prefix filtering must be efficient\n- Namespace collision with user prefixes\n- Performance for high-frequency messages (probably fine for handoffs)\n\n## Decision Point\nDo we need first-class mail support in beads (`bd mail` commands) or is convention sufficient?","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-16T02:10:18.32879-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":"task"}
|
||||
{"id":"gt-02431","title":"Implement queue:name address type for claim-based mail delivery","description":"Add support for queue:name addresses in the mail router.\n\nSEMANTICS:\n- Messages to queue:name create ONE copy in a shared location\n- Workers eligible for the queue (per messaging.json) can claim messages\n- Claimed message is removed from queue, moved to claimer inbox\n- If claimer fails to process, message can be released back to queue\n\nUSE CASE:\nPolecat completion notifications - Witness OR Deacon should handle, not both.\n\nIMPLEMENTATION:\n1. Add isQueueAddress() / parseQueueName() helpers\n2. Add sendToQueue() - creates message in queue location\n3. Add gt mail claim \u003cqueue\u003e - claims oldest unclaimed message\n4. Add gt mail release \u003cmsg-id\u003e - releases back to queue\n5. Track claim state in message metadata\n\nCONFIG (already in messaging.json schema):\nqueues.cleanup/gastown.workers = [gastown/witness, deacon/]\nqueues.cleanup/gastown.max_claims = 0","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-30T18:09:48.429168-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:09:48.429168-08:00","dependencies":[{"issue_id":"gt-02431","depends_on_id":"gt-9guv2","type":"blocks","created_at":"2025-12-30T18:10:10.612148-08:00","created_by":"gastown/crew/max"}]}
|
||||
{"id":"gt-02or","title":"Digest: mol-deacon-patrol","description":"Patrol 10: Routine","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T22:37:21.062369-08:00","updated_at":"2025-12-27T21:26:04.601701-08:00","deleted_at":"2025-12-27T21:26:04.601701-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-038es","title":"Digest: mol-deacon-patrol","description":"Patrol 2: routine, all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T18:35:42.688017-08:00","updated_at":"2025-12-26T18:35:42.688017-08:00","closed_at":"2025-12-26T18:35:42.687972-08:00"}
|
||||
{"id":"gt-03lbg","title":"Digest: mol-deacon-patrol","description":"Patrol 3: all healthy","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T20:00:06.469283-08:00","updated_at":"2025-12-27T21:26:00.669501-08:00","deleted_at":"2025-12-27T21:26:00.669501-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
@@ -226,6 +227,7 @@
|
||||
{"id":"gt-3tcdb","title":"Digest: mol-deacon-patrol","description":"Patrol cycle 6: routine","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T15:40:03.230009-08:00","updated_at":"2025-12-27T21:26:01.42769-08:00","deleted_at":"2025-12-27T21:26:01.42769-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-3tssq.1","title":"Polecat Arm (arm-toast)","description":"Single polecat inspection and action cycle.\n\nThis molecule is bonded dynamically by mol-witness-patrol's survey-workers step.\nEach polecat being monitored gets one arm that runs in parallel with other arms.\n\n## Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| polecat_name | Yes | Name of the polecat to inspect |\n| rig | Yes | Rig containing the polecat |\n\n## Step: capture\nCapture recent tmux output for toast.\n\n```bash\ntmux capture-pane -t gt-gastown-toast -p | tail -50\n```\n\nRecord:\n- Last activity timestamp (when was last tool call?)\n- Visible errors or stack traces\n- Completion indicators (\"Done\", \"Finished\", etc.)\n\n## Step: assess\nCategorize polecat state based on captured output.\n\nStates:\n- **working**: Recent tool calls, active processing\n- **idle**: At prompt, no recent activity\n- **error**: Showing errors or stack traces\n- **requesting_shutdown**: Sent LIFECYCLE/Shutdown mail\n- **done**: Showing completion indicators\n\nCalculate: minutes since last activity.\nNeeds: capture\n\n## Step: load-history\nRead nudge history for toast from patrol state.\n\n```\nnudge_count = state.nudges[toast].count\nlast_nudge_time = state.nudges[toast].timestamp\n```\n\nThis data was loaded by the parent patrol's load-state step and passed\nto the arm via the bonding context.\nNeeds: assess\n\n## Step: decide\nApply the nudge matrix to determine action for toast.\n\n| State | Idle Time | Nudge Count | Action |\n|-------|-----------|-------------|--------|\n| working | any | any | none |\n| idle | \u003c10min | any | none |\n| idle | 10-15min | 0 | nudge-1 (gentle) |\n| idle | 15-20min | 1 | nudge-2 (direct) |\n| idle | 20+min | 2 | nudge-3 (final) |\n| idle | any | 3 | escalate |\n| error | any | any | assess-severity |\n| requesting_shutdown | any | any | pre-kill-verify |\n| done | any | any | pre-kill-verify |\n\nNudge text:\n1. \"How's progress? Need any help?\"\n2. \"Please wrap up soon. What's blocking you?\"\n3. \"Final check. Will escalate in 5 min if no response.\"\n\nRecord decision and rationale.\nNeeds: load-history\n\n## Step: execute\nTake the decided action for toast.\n\n**nudge-N**:\n```bash\ntmux send-keys -t gt-gastown-toast \"{{nudge_text}}\" Enter\n```\n\n**pre-kill-verify**:\n```bash\ncd polecats/toast\ngit status # Must be clean\ngit log origin/main..HEAD # Check for unpushed\nbd show \u003cassigned-issue\u003e # Verify closed/deferred\n```\nIf clean: kill session, remove worktree, delete branch\nIf dirty: record failure, retry next cycle\n\n**escalate**:\n```bash\ngt mail send mayor/ -s \"Escalation: toast stuck\" -m \"...\"\n```\n\n**none**: No action needed.\n\nRecord: action taken, result, updated nudge count.\nNeeds: decide\n\n## Output\n\nThe arm completes with:\n- action_taken: none | nudge-1 | nudge-2 | nudge-3 | killed | escalated\n- result: success | failed | pending\n- updated_state: New nudge count and timestamp for toast\n\nThis data feeds back to the parent patrol's aggregate step.\n---\nbonded_from: mol-polecat-arm\nbonded_to: gt-3tssq\nbonded_ref: arm-toast\nbonded_at: 2025-12-23T10:00:00Z\n","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T00:57:47.407091-08:00","updated_at":"2025-12-27T21:29:55.360003-08:00","deleted_at":"2025-12-27T21:29:55.360003-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-3twz","title":"Digest: mol-deacon-patrol","description":"Patrol 2: All systems nominal","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T23:46:05.137994-08:00","updated_at":"2025-12-27T21:26:04.218842-08:00","deleted_at":"2025-12-27T21:26:04.218842-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-3txyh","title":"Add nudge channels for real-time fan-out messaging","description":"Add channel support to gt nudge for real-time fan-out.\n\n## Semantics\n- Ephemeral, real-time (tmux send-keys)\n- Fan-out to all channel members\n- Parallel to list:name but for nudge instead of mail\n\n## Use Case\n\"Everyone send yourself gt handoff now\" - real-time coordination.\n\n## Syntax\ngt nudge channel:workers \"gt handoff\"\ngt nudge channel:witnesses \"Swarm incoming\"\n\n## Implementation\n1. Add nudge_channels to MessagingConfig schema\n2. Extend gt nudge to recognize channel:name syntax\n3. Expand channel to member list, nudge each\n\n## Config Addition to messaging.json\n```json\n\"nudge_channels\": {\n \"workers\": [\"gastown/polecats/*\", \"gastown/crew/*\"],\n \"witnesses\": [\"*/witness\"],\n \"all\": [\"@town\", \"@rig/*\"]\n}\n```\n\n## Relation to gt broadcast\ngt broadcast is a one-off \"everyone\" nudge.\nNudge channels are named, configured subsets.\n\nCould potentially deprecate gt broadcast in favor of:\ngt nudge channel:all \"message\"","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-30T18:09:31.934896-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:09:31.934896-08:00","dependencies":[{"issue_id":"gt-3txyh","depends_on_id":"gt-9guv2","type":"blocks","created_at":"2025-12-30T18:10:10.675789-08:00","created_by":"gastown/crew/max"}]}
|
||||
{"id":"gt-3tz","title":"CLI: polecat commands (add, list, wake, sleep, decommission)","description":"GGT is missing most polecat management commands that PGT has.\n\nMissing Commands:\n- gt polecat add \u003crig\u003e \u003cname\u003e - Add polecat to rig (creates clone)\n- gt polecat list [\u003crig\u003e] - List polecats with state\n- gt polecat info \u003cpolecat\u003e - Show detailed info\n- gt polecat wake \u003cpolecat\u003e - Mark available\n- gt polecat sleep \u003cpolecat\u003e - Mark unavailable \n- gt polecat decommission \u003cpolecat\u003e - Remove polecat safely\n\nPGT Reference: gastown-py/src/gastown/cli/polecat_cmd.py\n\nNotes:\n- spawn exists but doesn't cover management\n- wake/sleep are in polecat manager but not CLI\n- decommission should check for uncommitted work","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-16T14:46:31.326692-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":"task"}
|
||||
{"id":"gt-3ubur","title":"Digest: mol-deacon-patrol","description":"Patrol complete: inbox clear, no gates, all agents healthy, no orphans","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T22:29:06.80036-08:00","updated_at":"2025-12-27T21:26:00.440344-08:00","deleted_at":"2025-12-27T21:26:00.440344-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-3ue68","title":"Digest: mol-deacon-patrol","description":"Patrol 2: all healthy, beads swarm active","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-28T15:50:54.637503-08:00","updated_at":"2025-12-28T15:50:54.637503-08:00","closed_at":"2025-12-28T15:50:54.637463-08:00"}
|
||||
@@ -676,6 +678,7 @@
|
||||
{"id":"gt-9e8q","title":"Digest: mol-deacon-patrol","description":"Patrol 14","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T23:10:11.832142-08:00","updated_at":"2025-12-27T21:26:04.425053-08:00","deleted_at":"2025-12-27T21:26:04.425053-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-9g6md","title":"Merge: nux-1767082300311","description":"branch: polecat/nux-1767082300311\ntarget: main\nsource_issue: nux-1767082300311\nrig: gastown","status":"closed","priority":2,"issue_type":"merge-request","created_at":"2025-12-30T00:18:32.957664-08:00","created_by":"gastown/polecats/nux","updated_at":"2025-12-30T01:01:04.277856-08:00","closed_at":"2025-12-30T01:01:04.277856-08:00","close_reason":"Already merged to main"}
|
||||
{"id":"gt-9g82","title":"Polecat wisp architecture: Proto → Wisp → Mol pattern","description":"Design the three-layer architecture for polecat lifecycle:\n\n## The Insight\n\nPolecats should run a ONE-SHOT WISP (not looping like patrols):\n\n**Step 1: Onboard**\n- Read full polecat protocol (polecat.md template)\n- Learn Gas Town operation, exit strategies, molecule protocol\n- This is the 'how to be a polecat' education\n\n**Step 2: Execute Mol**\n- Run the assigned molecule (the actual work item)\n- Could span multiple sessions via session continuity\n- The mol is pure work content (epic, issue, feature)\n\n**Step 3: Cleanup**\n- Run final step of the wisp\n- Self-delete / request shutdown\n\n## Three Layers\n\n- **Proto**: polecat.md template (instructions for being a polecat)\n- **Wisp**: One-shot harness instantiated from proto (wraps the mol)\n- **Mol**: The work item (issue/epic being processed)\n\n## Why This Matters\n\n1. **Separation of concerns**: Protocol (how) vs Work (what)\n2. **Reusability**: Same wisp harness wraps any mol\n3. **Extensibility**: Plugin points for custom behavior\n4. **Session continuity**: Wisp handles multi-session, not the mol\n5. **Blurred control/data planes**: Intentional in Gas Town\n\n## Design Questions\n\n1. How does proto (polecat.md) become a wisp instance?\n2. What are the plugin/extension points?\n3. Should all 'engineer in a box' mols use proto → wisp → mol?\n4. How does this relate to refinery/deacon patterns?","status":"tombstone","priority":1,"issue_type":"epic","created_at":"2025-12-22T15:54:17.446941-08:00","updated_at":"2025-12-27T21:29:53.192117-08:00","deleted_at":"2025-12-27T21:29:53.192117-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"epic"}
|
||||
{"id":"gt-9guv2","title":"Messaging Channels: Unified list/queue/announce/nudge system","description":"Implement the full messaging channel system for Gas Town.\n\nTWO PARALLEL SYSTEMS:\n1. Durable (polling): mail - list, queue, announce\n2. Real-time (ephemeral): nudge - channels\n\nARCHITECTURE:\n- Config: ~/gt/config/messaging.json (town-level)\n- Messages: beads (.beads/issues.jsonl with type=message)\n\nCHANNEL TYPES:\n- list:name - Fan-out, each recipient gets copy (DONE)\n- queue:name - Claim-based, exactly-once processing (gt-02431)\n- announce:name - Bulletin board, read-only (gt-cqvgt)\n- nudge channel:name - Real-time fan-out (gt-3txyh)\n\nPRIORITY ORDER:\n1. Queues - solves real polecat cleanup race condition\n2. Nudge channels - gt broadcast mostly works but channels add precision\n3. Announces - nice-to-have bulletin boards","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-30T18:10:03.23413-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:10:03.23413-08:00"}
|
||||
{"id":"gt-9h40s","title":"Digest: mol-deacon-patrol","description":"Patrol 17: clear","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-26T18:17:31.839529-08:00","updated_at":"2025-12-27T21:26:00.963428-08:00","deleted_at":"2025-12-27T21:26:00.963428-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-9hfky","title":"Merge: toast-1767140378007","description":"branch: polecat/toast-1767140378007\ntarget: main\nsource_issue: toast-1767140378007\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-30T16:28:18.45737-08:00","created_by":"gastown/polecats/toast","updated_at":"2025-12-30T16:28:18.45737-08:00"}
|
||||
{"id":"gt-9hwkn","title":"Messaging infrastructure: lists, queues, channels","description":"Multi-recipient and broadcast messaging for Gas Town.\n\n## Phases\n\n**Phase 1 - Foundation**: Config directory (gt-i6jvc)\n**Phase 1 - Core**: list:, queue:, @group (requires agent-as-bead for @group)\n**Phase 2 - Channels**: announce:, #channel, gt channel publish\n\n## Addressing Syntax\n\n| Prefix | Resolution | Storage | Claim? |\n|--------|------------|---------|--------|\n| `@group` | Dynamic (bead queries) | Fan-out (N copies) | No |\n| `list:name` | Static config | Fan-out (N copies) | No |\n| `queue:name` | Static config | Shared (1 copy) | Yes |\n| `announce:name` | Static config | Shared (1 copy) | No |\n| `#channel` | Dynamic (tmux) | None (ephemeral) | No |\n\n## Alignment with Agent-as-Bead\n\n@group resolution now uses agent bead queries:\n- @rig/gastown → bd list --type=agent --rig=gastown\n- @witnesses → bd list --type=agent --role_type=witness\n\nThis replaces the originally planned filesystem scanner (gt-xo05b, now closed).\n\n## Independent Work\n\nConfig-based features (list:, queue:, announce:) can proceed without agent identity.\nOnly @group requires the agent schema from Pillar 1.","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-26T14:51:18.855183-08:00","updated_at":"2025-12-27T22:17:21.485287-08:00"}
|
||||
@@ -911,6 +914,7 @@
|
||||
{"id":"gt-cpm2","title":"Automatic spawn for ready work","description":"Auto-spawn polecats for ready work:\n\nWhen Witness has capacity (active_workers \u003c max_workers):\n1. Query bd ready for unblocked issues\n2. Filter to rig-appropriate work (by prefix or epic)\n3. For each ready issue up to capacity:\n - gt spawn --issue \u003cid\u003e\n - Track that we spawned for this issue\n\nConfiguration (in rig config.json):\n- max_workers: 4 (default)\n- spawn_delay: 5s between spawns\n- auto_spawn: true/false\n\nThis enables 'fire and forget' swarming:\n- Mayor creates epic with children\n- Mayor tells Witness to work epic\n- Witness spawns polecats automatically\n- Witness cleans up as they complete","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-20T03:14:24.724136-08:00","updated_at":"2025-12-27T21:29:53.798185-08:00","dependencies":[{"issue_id":"gt-cpm2","depends_on_id":"gt-53w6","type":"parent-child","created_at":"2025-12-20T03:14:37.365334-08:00","created_by":"daemon"},{"issue_id":"gt-cpm2","depends_on_id":"gt-mxyj","type":"blocks","created_at":"2025-12-20T03:14:38.957826-08:00","created_by":"daemon"}],"deleted_at":"2025-12-27T21:29:53.798185-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-cppy0","title":"Digest: mol-deacon-patrol","description":"Patrol 20: All healthy, handoff triggered","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T15:24:01.602815-08:00","updated_at":"2025-12-27T21:26:03.132568-08:00","deleted_at":"2025-12-27T21:26:03.132568-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-cpxxv","title":"Merge: organic-1767106082951","description":"branch: polecat/organic-1767106082951\ntarget: main\nsource_issue: organic-1767106082951\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-30T10:42:25.2268-08:00","created_by":"gastown/polecats/organic","updated_at":"2025-12-30T10:42:25.2268-08:00"}
|
||||
{"id":"gt-cqvgt","title":"Implement announce:name address type for bulletin-board messaging","description":"Add support for announce:name addresses for read-only bulletin boards.\n\nSEMANTICS:\n- Messages to announce:name create ONE copy in shared location\n- All eligible readers can read (no claiming, no removal)\n- Messages retained up to retain_count, oldest pruned\n- No inbox pollution - readers check the announce channel explicitly\n\nUSE CASE:\nLow urgency broadcast that does not need ack, e.g. clean up your branches.\n\nIMPLEMENTATION:\n1. Add isAnnounceAddress() / parseAnnounceName() helpers\n2. Add sendToAnnounce() - creates message in announce location\n3. Add gt mail announces - list available announce channels\n4. Add gt mail read-announce \u003cchannel\u003e - read messages from channel\n5. Add retention pruning on new message\n\nCONFIG (already in messaging.json schema):\nannounces.alerts.readers = [@town]\nannounces.alerts.retain_count = 100","status":"open","priority":3,"issue_type":"feature","created_at":"2025-12-30T18:09:49.463812-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:09:49.463812-08:00","dependencies":[{"issue_id":"gt-cqvgt","depends_on_id":"gt-9guv2","type":"blocks","created_at":"2025-12-30T18:10:10.644919-08:00","created_by":"gastown/crew/max"}]}
|
||||
{"id":"gt-cr0","title":"Consolidate design docs into beads descriptions","description":"The markdown design docs (swarm-shutdown-design.md, polecat-beads-access-design.md, mayor-handoff-design.md) will decay. Extract key decisions and prompting templates into the beads descriptions themselves, then archive or remove the markdown files. Beads are the source of truth.","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-15T20:24:05.45131-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":"task"}
|
||||
{"id":"gt-cr9","title":"Harness Design \u0026 Documentation","description":"The harness (Gas Town installation directory) needs design cleanup, documentation, and tooling.\n\n## Current Problems\n\n1. **Shared harness confusion**: ~/ai is shared by PGT and GGT with overlapping structures\n - PGT uses ~/ai/mayor/ as town-level Mayor home\n - GGT Mayor works in ~/ai/mayor/rigs/gastown/\n - ~/ai/gastown/ has both .gastown/ (PGT) and mayor/ (git clone)\n\n2. **Beads redirect**: ~/ai/.beads/redirect → mayor/rigs/gastown/.beads\n - This is specific to GGT's decentralized structure\n - Should be documented as an example\n\n3. **architecture.md**: Verify rig-level mayor/rig/ is shown correctly\n\n4. **No harness creation tooling**: Users must manually set up\n\n## Proposed Work\n\n- Document what a harness IS (installation directory)\n- Create harness creation command or template repo\n- Update architecture.md if needed \n- Create example harness configuration for docs\n- Resolve PGT/GGT sharing issue","status":"tombstone","priority":1,"issue_type":"epic","created_at":"2025-12-17T17:15:08.769961-08:00","updated_at":"2025-12-27T21:29:54.253374-08:00","deleted_at":"2025-12-27T21:29:54.253374-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"epic"}
|
||||
{"id":"gt-crew-gastown-fang","title":"Crew worker fang in gastown - human-managed persistent workspace.","description":"Crew worker fang in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: idle\nhook_bead: null\nrole_bead: gt-crew-gastown-fang-role\ncleanup_status: null","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T13:00:25.364965-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T14:30:47.614031-08:00","closed_at":"2025-12-29T14:30:47.614031-08:00","close_reason":"Migrated to canonical naming: gt-gastown-crew-\u003cname\u003e"}
|
||||
@@ -1154,7 +1158,7 @@
|
||||
{"id":"gt-gastown-crew-fang","title":"Crew worker fang in gastown - human-managed persistent workspace.","description":"Crew worker fang in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: idle\nhook_bead: null\nrole_bead: gt-crew-role\ncleanup_status: null","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:48:31.614218-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T14:56:24.101811-08:00","closed_at":"2025-12-29T14:56:24.101811-08:00","close_reason":"Crew moved to beads rig"}
|
||||
{"id":"gt-gastown-crew-grip","title":"Crew worker grip in gastown - human-managed persistent workspace.","description":"Crew worker grip in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: idle\nhook_bead: null\nrole_bead: gt-crew-role\ncleanup_status: null","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:48:47.052927-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T14:56:24.095719-08:00","closed_at":"2025-12-29T14:56:24.095719-08:00","close_reason":"Crew moved to beads rig"}
|
||||
{"id":"gt-gastown-crew-jack","title":"Crew worker jack in gastown - human-managed persistent workspace.","description":"Crew worker jack in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: running\nhook_bead: null\nrole_bead: gt-crew-role\ncleanup_status: null","status":"open","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:49:02.451898-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:05:03.272065-08:00"}
|
||||
{"id":"gt-gastown-crew-joe","title":"Crew worker joe in gastown - human-managed persistent workspace.","description":"Crew worker joe in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: running\nhook_bead: gt-7aw1m\nrole_bead: gt-crew-role\ncleanup_status: null","status":"open","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:49:17.861869-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T13:35:38.325819-08:00"}
|
||||
{"id":"gt-gastown-crew-joe","title":"Crew worker joe in gastown - human-managed persistent workspace.","description":"Crew worker joe in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: running\nhook_bead: gt-7aw1m\nrole_bead: gt-crew-role\ncleanup_status: null","status":"open","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:49:17.861869-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:05:56.389671-08:00"}
|
||||
{"id":"gt-gastown-crew-max","title":"Crew worker max in gastown - human-managed persistent workspace.","description":"Crew worker max in gastown - human-managed persistent workspace.\n\nrole_type: crew\nrig: gastown\nagent_state: running\nhook_bead: \nrole_bead: gt-crew-role\ncleanup_status: null","status":"open","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:49:33.272043-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-30T18:04:09.644301-08:00"}
|
||||
{"id":"gt-gastown-crew-wolf","title":"Crew worker wolf in gastown","status":"closed","priority":2,"issue_type":"agent","created_at":"2025-12-29T14:52:01.595469-08:00","created_by":"gastown/crew/max","updated_at":"2025-12-29T14:56:24.107543-08:00","closed_at":"2025-12-29T14:56:24.107543-08:00","close_reason":"Crew moved to beads rig"}
|
||||
{"id":"gt-gastown-polecat-ace","title":"gt-gastown-polecat-ace","description":"gt-gastown-polecat-ace\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:45.180508-08:00","created_by":"mayor","updated_at":"2025-12-30T15:19:18.82823-08:00","closed_at":"2025-12-30T15:19:18.82823-08:00","close_reason":"nuked","deleted_at":"2025-12-30T15:19:18.796028-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
|
||||
@@ -1293,6 +1297,7 @@
|
||||
{"id":"gt-hlaaf","title":"Day 1.7: Define per-rig agent bead ID pattern","description":"Document and implement the agent bead ID pattern for per-rig agents.\n\nPattern: gt-\u003crole\u003e-\u003crig\u003e\nExamples:\n- gt-witness-gastown\n- gt-refinery-gastown\n- gt-refinery-beads\n- gt-polecat-gastown-nux\n\nTown-level agents (no rig):\n- gt-mayor\n- gt-deacon\n\nThis pattern enables:\n- Consistent lookup: bd show gt-witness-gastown\n- Routing: routes.jsonl maps prefixes\n- Filtering: bd list --type=agent --rig=gastown\n\nUpdate:\n- agent-as-bead.md with examples\n- bd create --type=agent to validate pattern","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-27T22:01:43.64279-08:00","created_by":"mayor","updated_at":"2025-12-28T00:09:45.958118-08:00","closed_at":"2025-12-28T00:09:45.958118-08:00","dependencies":[{"issue_id":"gt-hlaaf","depends_on_id":"gt-ikyo1","type":"blocks","created_at":"2025-12-27T22:02:45.168539-08:00","created_by":"daemon"},{"issue_id":"gt-hlaaf","depends_on_id":"gt-d0jqp","type":"parent-child","created_at":"2025-12-27T23:32:42.479886-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-hlz0e","title":"Digest: mol-deacon-patrol","description":"Patrol 11: routine","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T10:18:13.342103-08:00","updated_at":"2025-12-27T21:26:03.54429-08:00","deleted_at":"2025-12-27T21:26:03.54429-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
|
||||
{"id":"gt-hoyd","title":"Merge: gt-rana.1","description":"branch: polecat/rictus\ntarget: main\nsource_issue: gt-rana.1\nrig: gastown","status":"tombstone","priority":1,"issue_type":"merge-request","created_at":"2025-12-21T15:51:03.089517-08:00","updated_at":"2025-12-27T21:27:22.617826-08:00","deleted_at":"2025-12-27T21:27:22.617826-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
|
||||
{"id":"gt-hpcyt","title":"Add merge queue observability","description":"## Problem\n\nThe per-rig merge queue (refinery) lacks visibility into its operational state.\nOperators can't easily tell:\n- When the queue is backing up (items waiting)\n- When it's empty/idle\n- Queue depth over time\n- Processing rate\n\n## Requirements\n\n- Surface queue depth (pending items count)\n- Show current processing state (idle, processing, blocked)\n- Indicate when queue is backing up (growing faster than draining)\n- Make this accessible via `gt status` or similar command\n\n## Possible Approaches\n\n1. Add queue stats to `gt status` output\n2. Create dedicated `gt mq status` command\n3. Emit metrics/events that can be consumed\n4. Add to witness monitoring scope","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-30T18:10:06.45809-08:00","created_by":"gastown/crew/jack","updated_at":"2025-12-30T18:10:06.45809-08:00"}
|
||||
{"id":"gt-hpmb1","title":"Digest: mol-deacon-patrol","description":"Patrol 16: all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T22:35:44.801254-08:00","updated_at":"2025-12-29T22:35:44.801254-08:00","closed_at":"2025-12-29T22:35:44.801217-08:00","dependencies":[{"issue_id":"gt-hpmb1","depends_on_id":"gt-eph-016","type":"parent-child","created_at":"2025-12-29T22:35:44.802203-08:00","created_by":"deacon"}]}
|
||||
{"id":"gt-hpy9","title":"Merge: gt-o3is","description":"branch: polecat/furiosa\ntarget: main\nsource_issue: gt-o3is\nrig: gastown","status":"tombstone","priority":1,"issue_type":"merge-request","created_at":"2025-12-23T19:32:41.142903-08:00","updated_at":"2025-12-27T21:27:22.426782-08:00","deleted_at":"2025-12-27T21:27:22.426782-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
|
||||
{"id":"gt-hq9lx","title":"Digest: mol-deacon-patrol","description":"Patrol 13: all healthy","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-29T22:35:09.497504-08:00","updated_at":"2025-12-29T22:35:09.497504-08:00","closed_at":"2025-12-29T22:35:09.497473-08:00"}
|
||||
|
||||
Reference in New Issue
Block a user