bd sync: 2025-12-30 01:54:04

This commit is contained in:
Steve Yegge
2025-12-30 01:54:04 -08:00
parent 9acb275526
commit 4389d4fcd2
2 changed files with 14 additions and 2 deletions

View File

@@ -14,6 +14,7 @@
{"id":"gt-082","title":"Worker cleanup: Beads sync on shutdown","description":"Add beads sync verification to worker cleanup checklist and Witness verification.\n\n## Update to Decommission Checklist (gt-sd6)\n\nAdd to pre-done verification:\n- bd sync --status must show 'Up to date'\n- git status .beads/ must show no changes\n\n## Beads Edge Cases\n\nUncommitted beads changes:\n bd sync\n git add .beads/\n git commit -m 'beads: final sync'\n\nBeads sync conflict (rare):\n git fetch origin main\n git checkout main -- .beads/\n bd sync --force\n git add .beads/\n git commit -m 'beads: resolve sync conflict'\n\n## Update to Witness Verification (gt-f8v)\n\nWhen capturing worker state:\n town capture \u003cpolecat\u003e \"bd sync --status \u0026\u0026 git status .beads/\"\n\nCheck for:\n- bd sync --status shows 'Up to date'\n- git status .beads/ shows no changes\n\nIf beads not synced, nudge:\n WITNESS CHECK: Beads not synced. Run 'bd sync' then commit .beads/. Signal done when complete.","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-15T19:47:21.757756-08:00","updated_at":"2025-12-27T21:29:54.598466-08:00","dependencies":[{"issue_id":"gt-082","depends_on_id":"gt-l3c","type":"blocks","created_at":"2025-12-15T19:47:35.977804-08:00","created_by":"daemon"}],"deleted_at":"2025-12-27T21:29:54.598466-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-09hq0","title":"Digest: mol-deacon-patrol","description":"Patrol 18: All clear","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T00:05:21.881552-08:00","updated_at":"2025-12-25T00:05:21.881552-08:00","closed_at":"2025-12-25T00:05:21.881524-08:00"}
{"id":"gt-09i4","title":"Unify tmux session lifecycle: prefer exec-over-shell pattern","description":"## Context\n\nWhen `gt crew at` is run from INSIDE the target session, it uses `execClaude()` which\nreplaces the shell with Claude directly. This is actually preferable behavior:\n- Cleaner exit (no intermediate shell prompt)\n- More reliable for programmatic worker recycling\n- Better UX for humans\n\nBut currently this only happens accidentally when you run `gt crew at` while already\nin the session at a shell prompt.\n\n## Current behavior\n\n1. Session created: `tmux new-session` starts with shell\n2. Claude started via `send-keys` → shell spawns claude as child\n3. Exit claude → return to shell → exit shell → session ends\n\nWith exec path (only if already in session):\n1. `execClaude()` replaces shell with claude\n2. Exit claude → session ends (no intermediate shell)\n\n## Desired behavior\n\nConsider making exec-the-shell the DEFAULT for all crew/persistent sessions:\n- Spawn session with shell\n- Wait for ready\n- Use `respawn-pane -k` with claude command (kills shell, starts claude directly)\n\nThis gives the cleaner lifecycle without requiring the user to be inside the session.\n\n## Related\n\nPart of tmux control plane unification - ability to manage workers from any session.","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T14:24:34.371414-08:00","updated_at":"2025-12-27T21:29:55.492782-08:00","deleted_at":"2025-12-27T21:29:55.492782-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-0a0vr","title":"Merge: furiosa-1767087671424","description":"branch: polecat/furiosa-1767087671424\ntarget: main\nsource_issue: furiosa-1767087671424\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-30T01:53:07.728514-08:00","created_by":"gastown/polecats/furiosa","updated_at":"2025-12-30T01:53:07.728514-08:00"}
{"id":"gt-0a90","title":"Add gt hook command (wrapper for bd hook)","description":"Add a thin wrapper command `gt hook` that calls `bd hook` to inspect what's pinned to an agent's hook.\n\n## Usage\n\n```bash\ngt hook # Show what's on current agent's hook\ngt hook --agent deacon # Show Deacon's hook\ngt hook --agent gastown/furiosa # Show polecat's hook\n```\n\n## Implementation\n\nThin wrapper in gt that:\n1. Determines current agent identity\n2. Calls `bd hook [--agent \u003cname\u003e]`\n3. Formats output for gt context\n\n## Why gt wrapper?\n\n- Consistent with gt ecosystem (gt mail, gt status, etc.)\n- Can add gt-specific context (session status, etc.)\n- Easier discovery for gt users\n\n## Related\n\n- bd hook command (implemented by Dave)\n- Chemistry UX design: gastown/mayor/rig/docs/chemistry-design-changes.md","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-22T02:37:02.429497-08:00","updated_at":"2025-12-22T02:37:02.429497-08:00"}
{"id":"gt-0asj","title":"Merge: gt-5af.5","description":"branch: polecat/Scabrous\ntarget: main\nsource_issue: gt-5af.5\nrig: gastown","status":"tombstone","priority":1,"issue_type":"merge-request","created_at":"2025-12-19T17:50:25.227909-08:00","updated_at":"2025-12-27T21:27:22.700495-08:00","deleted_at":"2025-12-27T21:27:22.700495-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
{"id":"gt-0atys","title":"Digest: mol-deacon-patrol","description":"Patrol 10: Nominal - halfway point","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-24T23:50:19.218794-08:00","updated_at":"2025-12-27T21:26:04.148881-08:00","deleted_at":"2025-12-27T21:26:04.148881-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
@@ -1131,7 +1132,7 @@
{"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-tvwnz\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-30T01:37:56.668682-08:00","closed_at":"2025-12-30T00:27:10.927465-08:00","close_reason":"nuked","deleted_at":"2025-12-30T00:27:10.888813-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-lfi2d\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-30T01:42:54.064701-08:00","closed_at":"2025-12-30T01:16:59.263603-08:00","close_reason":"nuked","deleted_at":"2025-12-30T01:16:59.226661-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-csbjj\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-30T01:41:13.275909-08:00","closed_at":"2025-12-30T01:16:59.407479-08:00","close_reason":"nuked","deleted_at":"2025-12-30T01:16:59.373752-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-csbjj\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-30T01:53:07.994456-08:00","closed_at":"2025-12-30T01:16:59.407479-08:00","close_reason":"nuked","deleted_at":"2025-12-30T01:16:59.373752-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-s94gq\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-30T01:50:53.570498-08:00","closed_at":"2025-12-30T01:16:59.549222-08:00","close_reason":"nuked","deleted_at":"2025-12-30T01:16:59.515591-08:00","deleted_by":"batch delete","delete_reason":"batch delete","original_type":"agent"}
@@ -2015,7 +2016,7 @@
{"id":"gt-sw95t","title":"Digest: mol-deacon-patrol","description":"P20: stable - handoff triggered","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-25T20:15:29.507422-08:00","updated_at":"2025-12-27T21:26:02.212221-08:00","deleted_at":"2025-12-27T21:26:02.212221-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-swqfx","title":"Digest: mol-deacon-patrol","description":"Patrol 17","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T14:57:10.122945-08:00","updated_at":"2025-12-26T14:57:10.122945-08:00","closed_at":"2025-12-26T14:57:10.122884-08:00"}
{"id":"gt-swrw","title":"Merge: gt-3x0z.4","description":"branch: polecat/rictus\ntarget: main\nsource_issue: gt-3x0z.4\nrig: gastown","status":"tombstone","priority":1,"issue_type":"merge-request","created_at":"2025-12-21T16:18:10.46877-08:00","updated_at":"2025-12-27T21:27:22.593005-08:00","deleted_at":"2025-12-27T21:27:22.593005-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"merge-request"}
{"id":"gt-sxa64","title":"ZFC #5: Move merge/conflict decisions from Go to Refinery agent","description":"**ZFC Violation:** internal/refinery/manager.go:389-517\n\nGo code currently makes engineering decisions in ProcessMR():\n- Detect conflicts via string matching\n- Decide to abort merge\n- Decide to roll back on test failure\n- Decide retry strategy\n\n**Current anti-pattern:**\n```go\nif strings.Contains(errStr, \"CONFLICT\") {\n result.Conflict = true\n _ = m.gitRun(\"merge\", \"--abort\")\n // Go decides what to do\n}\n```\n\n**ZFC-compliant solution:**\nRefinery AGENT runs the merge loop:\n- Agent attempts merge\n- Agent detects conflict and decides: retry, notify polecat, escalate\n- Agent runs tests and decides: proceed, rollback, retry\n- Go provides git operations, agent makes decisions\n\n**Relates to:** Day 3.4 (Refinery processes MERGE_READY mail) but needs explicit agent decision-making\n\nReference: ~/gt/docs/zfc-violations-audit.md #5","status":"hooked","priority":2,"issue_type":"task","assignee":"gastown/polecats/rictus","created_at":"2025-12-27T21:32:23.552661-08:00","created_by":"mayor","updated_at":"2025-12-30T01:45:35.51981-08:00","dependencies":[{"issue_id":"gt-sxa64","depends_on_id":"gt-7uhts","type":"blocks","created_at":"2025-12-27T21:32:40.334932-08:00","created_by":"daemon"}]}
{"id":"gt-sxa64","title":"ZFC #5: Move merge/conflict decisions from Go to Refinery agent","description":"**ZFC Violation:** internal/refinery/manager.go:389-517\n\nGo code currently makes engineering decisions in ProcessMR():\n- Detect conflicts via string matching\n- Decide to abort merge\n- Decide to roll back on test failure\n- Decide retry strategy\n\n**Current anti-pattern:**\n```go\nif strings.Contains(errStr, \"CONFLICT\") {\n result.Conflict = true\n _ = m.gitRun(\"merge\", \"--abort\")\n // Go decides what to do\n}\n```\n\n**ZFC-compliant solution:**\nRefinery AGENT runs the merge loop:\n- Agent attempts merge\n- Agent detects conflict and decides: retry, notify polecat, escalate\n- Agent runs tests and decides: proceed, rollback, retry\n- Go provides git operations, agent makes decisions\n\n**Relates to:** Day 3.4 (Refinery processes MERGE_READY mail) but needs explicit agent decision-making\n\nReference: ~/gt/docs/zfc-violations-audit.md #5","status":"closed","priority":2,"issue_type":"task","assignee":"gastown/polecats/rictus","created_at":"2025-12-27T21:32:23.552661-08:00","created_by":"mayor","updated_at":"2025-12-30T01:53:59.518214-08:00","closed_at":"2025-12-30T01:53:59.518214-08:00","close_reason":"Implemented ZFC #5: ProcessMR deprecated, agent runs git commands directly and makes all merge/conflict decisions. Role template updated with ZFC compliance section.","dependencies":[{"issue_id":"gt-sxa64","depends_on_id":"gt-7uhts","type":"blocks","created_at":"2025-12-27T21:32:40.334932-08:00","created_by":"daemon"}]}
{"id":"gt-sxr05","title":"Merge: dementus-1767073385126","description":"attached_args: Code review this merge request\n\nbranch: polecat/dementus-1767073385126\ntarget: main\nsource_issue: dementus-1767073385126\nrig: gastown","status":"closed","priority":2,"issue_type":"merge-request","assignee":"gastown/polecats/keeper","created_at":"2025-12-29T21:58:08.802876-08:00","created_by":"gastown/polecats/dementus","updated_at":"2025-12-29T22:02:36.324886-08:00","closed_at":"2025-12-29T22:02:36.324886-08:00","close_reason":"REJECTED: The swarm fix (gt-qd9p0) is already on main (commit 10e79789). This branch is stale and would revert important changes if merged (hookIssue support from 81b250ee, overseer validation from 32a623f8). No merge needed - work already complete."}
{"id":"gt-sye","title":"Mayor startup protocol prompting","description":"Add startup protocol to Mayor CLAUDE.md template.\n\n## On Session Start\n\n1. Check for handoff:\n town inbox | grep \"Session Handoff\"\n\n2. If handoff found:\n - Read it: town read \u003cmsg-id\u003e\n - Process pending escalations (highest priority)\n - Check status of noted swarms\n - Verify rig health matches notes\n - Continue with documented next steps\n\n3. If no handoff:\n town status # Overall health\n town rigs # Each rig\n bd ready # Work items\n town inbox # Any messages\n Build your own picture of current state.\n\n4. After processing handoff:\n - Archive or delete the handoff message\n - You now own the current state\n\n## Handoff Best Practices\n\n- Be specific: 'Toast has merge conflict in auth/middleware.go' not 'Toast is stuck'\n- Include context: Why decisions are pending, what you were thinking\n- Prioritize next steps: What is most urgent\n- Note time-sensitive items: Anything that might have changed since handoff","status":"tombstone","priority":1,"issue_type":"task","created_at":"2025-12-15T20:15:27.915484-08:00","updated_at":"2025-12-27T21:29:54.546761-08:00","dependencies":[{"issue_id":"gt-sye","depends_on_id":"gt-u82","type":"blocks","created_at":"2025-12-15T20:15:39.459108-08:00","created_by":"daemon"}],"deleted_at":"2025-12-27T21:29:54.546761-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"}
{"id":"gt-szsq","title":"gt spawn --create should auto-add polecat if missing","description":"## Problem\n\n`gt spawn gastown --issue gt-xxx --create` fails if no polecats exist.\n\n## Current Behavior\n\n```\nError: auto-select polecat: no available polecats in rig 'gastown'\n```\n\n## Expected Behavior\n\n`--create` should:\n1. Create a new polecat if none exist\n2. Or create the specified polecat if `gt spawn gastown/NewName --create`\n\n## Workaround\n\nMust manually run `gt polecat add gastown Name` first.\n\n## Principle\n\nAgent UX should be forgiving - if I say spawn with --create, make it work.","status":"tombstone","priority":1,"issue_type":"bug","created_at":"2025-12-18T21:52:07.75062-08:00","updated_at":"2025-12-27T21:29:54.092218-08:00","deleted_at":"2025-12-27T21:29:54.092218-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"bug"}

11
.beads/mq/gt-0a0vr.json Normal file
View File

@@ -0,0 +1,11 @@
{
"id": "gt-0a0vr",
"branch": "polecat/furiosa-1767087671424",
"target": "main",
"source_issue": "furiosa-1767087671424",
"worker": "",
"rig": "gastown",
"title": "Merge: furiosa-1767087671424",
"priority": 2,
"created_at": "2025-12-30T01:53:07.730594-08:00"
}