bd sync: 2025-12-21 16:42:12

This commit is contained in:
Steve Yegge
2025-12-21 16:42:12 -08:00
parent 66ce691e9e
commit 5206c86efb

View File

@@ -366,7 +366,7 @@
{"id":"gt-nriy","title":"Test: Alpha to Beta","description":"Sibling communication test","status":"open","priority":2,"issue_type":"message","assignee":"gastown-beta","created_at":"2025-12-20T21:44:00.731578-08:00","updated_at":"2025-12-20T21:44:00.731578-08:00","labels":["thread:thread-d94865313b74"],"sender":"Steve Yegge","wisp":true}
{"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-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":"in_progress","priority":2,"issue_type":"task","assignee":"gastown/slit","created_at":"2025-12-21T16:33:06.462105-08:00","updated_at":"2025-12-21T16:38:18.143702-08:00","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-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","assignee":"gastown/slit","created_at":"2025-12-21T16:33:06.462105-08:00","updated_at":"2025-12-21T16:41:55.641177-08:00","closed_at":"2025-12-21T16:41:55.641177-08:00","close_reason":"Added CLI reference documentation for bd mol bond/squash/burn to molecules.md","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-on46","title":"Work on gt-fix-bugs: Fix blocking infrastructure bugs. Se...","description":"Work on gt-fix-bugs: Fix blocking infrastructure bugs. See issue for details. Run 'bd show gt-fix-bugs' to see the full issue.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-20T03:47:14.322631-08:00","updated_at":"2025-12-20T03:52:16.049326-08:00","closed_at":"2025-12-20T03:52:16.049326-08:00"}
{"id":"gt-ouo","title":"gt swarm start: Does not spawn polecat sessions","description":"gt swarm start marks swarm as 'active' but doesn't start any polecat sessions.\n\nRepro:\n1. gt swarm create gastown --epic gt-hw6 --worker Toast --worker Nux\n2. gt swarm start gt-hw6\n3. gt session list - shows no new sessions\n\nExpected: Polecat sessions should start for each worker.\nActual: No sessions started, workers sit idle.","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-17T22:25:43.430981-08:00","updated_at":"2025-12-17T22:31:58.849531-08:00","closed_at":"2025-12-17T22:31:58.849531-08:00"}
{"id":"gt-ov2","title":"Refinery agent: merge queue processing loop","description":"The Refinery agent processes the merge queue, merging polecat work to main.\n\n## Interface\n\n```go\ntype Refinery struct {\n rig *Rig\n queue *MergeQueue\n git *Git\n mail *Mailbox\n config RefineryConfig\n}\n\ntype RefineryConfig struct {\n AutoMerge bool // Auto-merge passing MRs\n RunTests bool // Run tests before merge\n TestCommand string // Command to run tests\n RequireReview bool // Require review before merge (future)\n}\n\nfunc NewRefinery(rig *Rig, ...) *Refinery\n\n// Lifecycle\nfunc (r *Refinery) Start() error\nfunc (r *Refinery) Stop() error\nfunc (r *Refinery) IsRunning() bool\n\n// Processing\nfunc (r *Refinery) ProcessQueue() error\nfunc (r *Refinery) ProcessMR(mr *MergeRequest) error\n```\n\n## Processing Loop\n\n1. Check queue for pending MRs\n2. For each pending MR:\n a. Fetch polecat branch\n b. Attempt merge to refinery/rig (local main)\n c. Run tests if configured\n d. If pass: push to origin, mark merged\n e. If fail: mark rejected, notify polecat\n3. Sleep, repeat\n\n## Merge Strategy\n\n- Fast-forward when possible\n- Merge commit when not\n- On conflict: reject MR, polecat must rebase\n\n## Test Integration\n\nIf tests configured:\n```bash\ncd refinery/rig\ngit merge polecat/branch\n\u003ctest_command\u003e # e.g., go test ./...\n```\nResult determines merge/reject.\n\n## Notifications\n\nOn merge success:\n- Mail to polecat: \"Your work merged\"\n- Update bead if issue tracked\n\nOn merge failure:\n- Mail to polecat: \"Merge failed: \u003creason\u003e\"\n- Include conflict details if applicable\n\n## Dependencies\n\nNeeds: Rig management, Git wrapper, Mail system, Merge queue","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-15T23:22:08.498771-08:00","updated_at":"2025-12-16T14:20:35.032221-08:00","closed_at":"2025-12-16T14:20:35.032221-08:00","dependencies":[{"issue_id":"gt-ov2","depends_on_id":"gt-u1j.14","type":"blocks","created_at":"2025-12-15T23:22:21.801826-08:00","created_by":"daemon"},{"issue_id":"gt-ov2","depends_on_id":"gt-u1j.6","type":"blocks","created_at":"2025-12-15T23:22:21.89716-08:00","created_by":"daemon"}]}
@@ -494,6 +494,7 @@
{"id":"gt-ye8l","title":"Merge: gt-3x1","description":"branch: polecat/Slit\ntarget: main\nsource_issue: gt-3x1\nrig: gastown","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-19T14:53:52.344849-08:00","updated_at":"2025-12-20T23:17:25.78961-08:00","closed_at":"2025-12-20T23:17:25.78961-08:00","close_reason":"Branches nuked, MRs obsolete"}
{"id":"gt-yls","title":"Document merge queue architecture","description":"Update docs/architecture.md with:\n\n- Merge Queue section explaining Beads-native approach\n- Engineer role (renamed from Refinery)\n- Session restart protocol\n- gt mq command reference\n- Federation considerations for queue\n\nAlso update any references to .gastown/ → config/.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-16T23:02:41.533065-08:00","updated_at":"2025-12-17T13:43:41.657433-08:00","closed_at":"2025-12-17T13:43:41.657433-08:00","dependencies":[{"issue_id":"gt-yls","depends_on_id":"gt-h5n","type":"blocks","created_at":"2025-12-16T23:02:56.043373-08:00","created_by":"daemon"}]}
{"id":"gt-yx4","title":"Town root .beads has schema mismatch with bd","description":"The .beads directory at town root (/Users/stevey/gt/.beads) has an incompatible schema:\n\n```\nError: failed to open database: failed to initialize schema: sqlite3: SQL logic error: no such column: thread_id\n```\n\nMeanwhile, gastown/.beads (symlinked to mayor/rig/.beads) works fine.\n\n## Impact\n\n- gt mail inbox fails at town root\n- gt handoff sends mail to broken db\n- Daemon can't check its inbox\n\n## Options\n\n1. Delete town root .beads/beads.db and let it recreate\n2. Symlink town root .beads to gastown/.beads\n3. Run schema migration on existing db\n\n## Root Cause\n\nLikely a beads version upgrade that added thread_id column, but the town root db was created before that.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-18T14:31:35.559042-08:00","updated_at":"2025-12-19T00:39:32.211083-08:00","closed_at":"2025-12-19T00:39:32.211083-08:00"}
{"id":"gt-yzms","title":"Merge polecat/rictus: Add molecule phase lifecycle diagram","description":"Branch: polecat/rictus\n\nAdds molecule phase lifecycle diagram to architecture.md showing Proto → Mol/Wisp → Digest state transitions with the 'states of matter' metaphor. Also documents when to use Mol (durable) vs Wisp (ephemeral).\n\nCloses: gt-c6zs","status":"open","priority":1,"issue_type":"merge-request","created_at":"2025-12-21T16:41:58.139439-08:00","updated_at":"2025-12-21T16:42:05.410508-08:00"}
{"id":"gt-z4g","title":"Plugin: Plan-to-Epic converter","description":"## Purpose\n\nHelp users create beads epics from various planning inputs.\n\n## Inputs\n- Markdown task lists\n- GitHub issues\n- Linear/Jira exports\n- Free-form descriptions\n- Existing beads epics\n\n## Output\n- Beads epic with properly structured children\n- Dependencies set for wave ordering\n- Priorities assigned\n- Ready for `gt spawn --epic \u003cid\u003e`\n\n## Implementation Options\n\n### Option A: CLI Tool\n```bash\ngt plan import --from github --repo owner/repo --label batch-candidate\ngt plan import --from markdown tasks.md\ngt plan structure \u003cepic-id\u003e # analyze and add dependencies\n```\n\n### Option B: Plugin Agent\nA plugin at `\u003crig\u003e/plugins/plan-oracle/` that:\n- Receives planning requests via mail\n- Analyzes scope and requirements\n- Creates structured beads epic\n- Sets dependencies based on analysis\n\n### Option C: Interactive Mode\n```bash\ngt plan create\n# Walks through questions, creates epic interactively\n```\n\n## Axiom\n\nAs stated: 'The Planning phase should end in the creation of a workable Beads plan.'\n\nThis plugin bridges the gap between human planning and machine-executable work.\n\n## Priority\n\nP2 - Nice to have for MVP. Manual epic creation works for now.\n\n## Note\n\nNo \"swarm IDs\" - output is just a beads epic with children. Workers process it independently.","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-16T02:10:20.663549-08:00","updated_at":"2025-12-16T17:26:41.087304-08:00"}
{"id":"gt-zayu","title":"Refinery tmux status: show merge queue length","description":"Add refinery-specific status line showing:\n- MQ length (pending merges)\n- Currently processing item (if any)\n- Maybe: success/failure counts\n\nImplement in runRefineryStatusLine() in internal/cmd/statusline.go","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-21T15:40:30.569547-08:00","updated_at":"2025-12-21T15:47:49.493735-08:00","closed_at":"2025-12-21T15:47:49.493735-08:00","close_reason":"Implemented status line functions for witness and refinery"}
{"id":"gt-zbx5","title":"Merge: gt-rana.2","description":"branch: polecat/nux\ntarget: main\nsource_issue: gt-rana.2\nrig: gastown","status":"open","priority":1,"issue_type":"merge-request","created_at":"2025-12-21T16:17:31.287004-08:00","updated_at":"2025-12-21T16:17:31.287004-08:00"}