bd sync: 2025-12-23 04:52:40

This commit is contained in:
Steve Yegge
2025-12-23 04:52:40 -08:00
parent 84aa69207a
commit 1ff8c5ba6c

View File

@@ -558,7 +558,7 @@
{"id":"gt-nti8","title":"Polecats should not push branches to remote","description":"## Current Behavior\n\nPolecats push their branches to origin (e.g., `polecat/furiosa`), which pollutes the remote with many short-lived branches.\n\n## Desired Behavior\n\nPolecats should only commit locally. The Refinery handles all remote pushes:\n1. Polecat works on local `polecat/\u003cname\u003e` branch\n2. Polecat signals done (state → idle)\n3. Refinery pulls from local polecat branch\n4. Refinery runs tests, merges to main\n5. Refinery pushes main to remote\n6. If PR review needed, Refinery creates the PR\n\n## Benefits\n\n- Clean remote (no branch pollution)\n- Clear responsibility (Refinery is the quality gate)\n- Simpler cleanup (local branches deleted with worktree)\n- Less noise in GitHub UI\n\n## Trade-offs\n\n- If polecat crashes before Refinery merges, code is lost locally\n- But beads issue remains open, another polecat can redo the work\n- This is acceptable for ephemeral workers\n\n## Implementation\n\nIn polecat CLAUDE.md or landing protocol:\n- Remove `git push origin HEAD` from workflow\n- Replace with just `git commit` + signal done\n- Refinery handles the rest","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-21T14:13:48.804954-08:00","updated_at":"2025-12-21T14:13:48.804954-08:00"}
{"id":"gt-nz6t","title":"Remove unused style helper functions","description":"internal/style/style.go defines RenderSuccess, RenderWarning, RenderError, and RenderInfo helper functions that are never used. Code uses style.Success.Render() directly instead. Either use the helpers consistently or remove them.","status":"closed","priority":4,"issue_type":"task","created_at":"2025-12-21T21:34:43.822193-08:00","updated_at":"2025-12-21T21:50:45.224202-08:00","closed_at":"2025-12-21T21:50:45.224202-08:00","close_reason":"Removed 4 unused style helper functions (RenderSuccess, RenderWarning, RenderError, RenderInfo)"}
{"id":"gt-o29j","title":"inspect-workers","description":"Capture output for each working polecat.\n\n```bash\ngt peek \u003crig\u003e/\u003cpolecat\u003e\n```\n\nNeeds: survey-workers","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T01:41:54.506324-08:00","updated_at":"2025-12-23T04:39:39.684381-08:00","closed_at":"2025-12-23T04:39:39.684381-08:00","close_reason":"Parent gt-751s superseded by Christmas Ornament pattern","dependencies":[{"issue_id":"gt-o29j","depends_on_id":"gt-751s","type":"parent-child","created_at":"2025-12-23T01:41:54.56996-08:00","created_by":"stevey"},{"issue_id":"gt-o29j","depends_on_id":"gt-ep7f","type":"blocks","created_at":"2025-12-23T01:41:54.577076-08:00","created_by":"stevey"}]}
{"id":"gt-o3is","title":"gt sling pinToHook doesn't set pinned boolean field","description":"## Bug\n\nWhen `gt sling` pins work to an agent's hook, it calls `pinToHook()` which:\n1. Creates/finds a handoff bead via `GetOrCreateHandoffBead()`\n2. Sets `Status: \"pinned\"` (a status string)\n3. Calls `AttachMolecule()` to store attachment info in description\n\nBut it **never**:\n- Sets the `pinned: true` boolean field\n- Sets the `assignee` field to the target agent\n\nThis means `bd hook` and `gt mol status` don't see the pinned work because they filter by:\n- `pinned: true` (boolean field)\n- `assignee: \u003cagent\u003e`\n\n## Repro\n```bash\ngt sling bd-xyz beads/crew/dave\n# Reports: Pinned to crew hook\n\nbd hook --agent dave\n# Shows empty - no pinned issues\n```\n\n## Fix\nIn `pinToHook()` or the beads wrapper, after calling `GetOrCreateHandoffBead()`:\n1. Call `bd pin \u003cissue-id\u003e` to set the boolean field\n2. Call `bd update \u003cissue-id\u003e --assignee \u003cagent\u003e`\n\nOr add a `Pin()` method to the gastown beads wrapper that handles both.","status":"open","priority":1,"issue_type":"bug","created_at":"2025-12-23T04:41:12.668958-08:00","updated_at":"2025-12-23T04:41:12.668958-08:00"}
{"id":"gt-o3is","title":"gt sling pinToHook doesn't set pinned boolean field","description":"## Bug\n\nWhen `gt sling` pins work to an agent's hook via subprocess, `bd pin` reports success but the `pinned` boolean field is never set in the database.\n\n## Investigation\n\n1. `bd pin` works correctly from command line\n2. `bd pin` via `exec.Command()` in Go subprocess prints success message (\"📌 Pinned...\") but doesn't update the database\n3. Even with `--no-daemon` flag, the issue persists\n4. The same `bd` binary is used in both cases\n5. The same working directory is used\n6. The assignee field IS being set correctly\n\n## Repro\n```bash\n# Manual - works:\nbd pin bd-xyz --for dave\nbd show bd-xyz --json | jq '.[0].pinned' # true\n\n# Via gt sling - fails:\ngt sling bd-xyz beads/crew/dave\n# Prints: 📌 Pinned bd-xyz to dave's hook\nbd show bd-xyz --json | jq '.[0].pinned' # null\n```\n\n## Root Cause\n\nUnknown. The bd pin command outputs success but the database isn't updated. Possibly related to:\n- Transaction handling in bd pin\n- Redirect file handling in subprocess context\n- WAL/journal mode differences\n\n## Workaround\n\nFor now, the handoff bead attachment (`AttachMolecule`) is the primary mechanism for tracking what's on an agent's hook. The `bd hook` command will show empty until this is fixed.\n\n## Files\n\n- gastown: internal/cmd/sling.go (pinToHook)\n- gastown: internal/beads/beads.go (Pin method)\n- beads: cmd/bd/pin.go (bd pin implementation)","status":"open","priority":1,"issue_type":"bug","created_at":"2025-12-23T04:41:12.668958-08:00","updated_at":"2025-12-23T04:50:44.353992-08:00"}
{"id":"gt-oc2","title":"Daemon: proper rig discovery","description":"Currently discovers rigs by scanning tmux session names for gt-*-witness pattern. Should instead:\n- Read rigs from mayor/rigs.json\n- Or scan town directory for .gastown subdirs\n- Handle rigs that exist but don't have running witnesses","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-18T13:38:15.825299-08:00","updated_at":"2025-12-19T17:22:52.554474-08:00","closed_at":"2025-12-19T16:28:39.497935-08:00","dependencies":[{"issue_id":"gt-oc2","depends_on_id":"gt-99m","type":"blocks","created_at":"2025-12-18T13:38:26.826697-08:00","created_by":"daemon"}]}
{"id":"gt-odvf","title":"Document bd mol bond/squash/burn CLI","description":"Create CLI reference documentation for molecule commands:\n\n## bd mol bond\n\nInstantiate a proto into a runnable molecule.\n\n```bash\nbd mol bond \u003cproto-id\u003e [--wisp] [--assignee=\u003caddr\u003e]\n```\n\n- Default: creates a Mol (durable, in main beads)\n- --wisp: creates a Wisp (ephemeral, in .beads-ephemeral/)\n- --assignee: who will execute this molecule\n\n## bd mol squash\n\nComplete a molecule and generate digest.\n\n```bash\nbd mol squash \u003cmol-id\u003e --summary='...'\n```\n\n- For Mol: creates digest in git history\n- For Wisp: evaporates (no permanent record)\n- --summary: required summary of what was accomplished\n\n## bd mol burn\n\nAbandon a molecule without completing.\n\n```bash\nbd mol burn \u003cmol-id\u003e [--reason='...']\n```\n\n- Discards molecule state\n- No digest created\n- Use when molecule is no longer needed","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-21T16:33:06.462105-08:00","updated_at":"2025-12-23T02:14:23.810794-08:00","closed_at":"2025-12-23T02:14:23.810794-08:00","close_reason":"Already documented in docs/molecules.md lines 70-235","dependencies":[{"issue_id":"gt-odvf","depends_on_id":"gt-62hm","type":"blocks","created_at":"2025-12-21T16:33:17.530156-08:00","created_by":"daemon"}]}
{"id":"gt-odvr","title":"Merge: gt-r6td","description":"branch: polecat/furiosa\ntarget: main\nsource_issue: gt-r6td\nrig: gastown","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-22T22:54:01.000047-08:00","updated_at":"2025-12-22T22:55:43.764376-08:00","closed_at":"2025-12-22T22:55:43.764376-08:00","close_reason":"Merged to main"}