bd sync: 2025-12-23 11:51:21
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
{"id":"gt-1su","title":"Spawn inject: Enter not submitted after multiline paste","description":"When gt spawn injects a multiline context (85+ lines), Claude Code shows \n'[Pasted text #1 +85 lines]' but the prompt is not submitted.\n\nThe tmux SendKeys function does include 'Enter' but it appears to not work\nfor long pasted text:\n\n```go\nfunc (t *Tmux) SendKeys(session, keys string) error {\n _, err := t.run(\"send-keys\", \"-t\", session, keys, \"Enter\")\n return err\n}\n```\n\nPossible fixes:\n1. Use tmux paste-buffer instead of send-keys for long text\n2. Send Enter separately after the text\n3. Use bracketed paste mode correctly\n\nReproduction:\n```bash\ngt spawn gastown/Nux --issue gt-u1j.13 --create\n# Session shows pasted text but waits at prompt\n```","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-17T14:09:20.774203-08:00","updated_at":"2025-12-17T14:21:52.981381-08:00","closed_at":"2025-12-17T14:21:52.981381-08:00"}
|
||||
{"id":"gt-1u9","title":"Interactive prompts for destructive operations","description":"Add interactive confirmations for destructive operations.\n\n## Operations Needing Confirmation\n- `gt swarm cancel` - Cancels active swarm\n- `gt swarm land --force` - Force landing\n- `gt polecat decommission` - Removes polecat\n- `gt rig remove` - Removes rig\n- `gt stop --all` - Stops all sessions\n- `gt mail purge` - Permanently deletes mail\n\n## Implementation Options\n\n### Option 1: promptui library\n```go\nimport \"github.com/manifoldco/promptui\"\n\nprompt := promptui.Prompt{\n Label: \"Delete polecat Toast\",\n IsConfirm: true,\n}\nresult, err := prompt.Run()\n```\n\n### Option 2: Simple stdin\n```go\nfunc confirm(prompt string) bool {\n fmt.Printf(\"%s [y/N]: \", prompt)\n var response string\n fmt.Scanln(\u0026response)\n return strings.ToLower(response) == \"y\"\n}\n```\n\n## Bypass Flags\nAll confirmations skippable with --force or --yes:\n```go\nif !force \u0026\u0026 !confirm(\"Really cancel swarm?\") {\n return nil\n}\n```\n\n## Acceptance Criteria\n- [ ] Destructive ops prompt by default\n- [ ] --force or --yes bypasses\n- [ ] Clear prompt text explaining action\n- [ ] Non-interactive mode (piped input) auto-fails","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-16T14:48:51.551594-08:00","updated_at":"2025-12-16T16:06:54.283696-08:00"}
|
||||
{"id":"gt-1y0e","title":"🤝 HANDOFF: Investigate beads-sync divergence (221 files)","description":"## Context\n\ngt doctor now detects orphaned code on beads-sync branch. Running it shows:\n\n beads-sync-orphans: 221 file(s) on beads-sync not in main\n\nThis is in the gastown repo (checking from crew/max).\n\n## Background\n\n- Earlier today we recovered orphaned mail migration code lost in merge 96c773f\n- Recently simplified architecture: all workers use mayor/rig/.beads (redirects)\n- This simplification may have caused beads-sync branch to diverge unexpectedly\n\n## Investigation Steps\n\n1. From crew/max run: git diff main..beads-sync --stat\n2. Check if beads-sync should even exist anymore (was for multi-clone sync)\n3. If obsolete with redirect architecture, consider deleting it\n4. If it has legitimate changes, cherry-pick or merge to main\n\n## Key Question\n\nWith all workers using mayor/rig/.beads via redirects, is beads-sync still needed?\n\n## Commands\n\ngit log main..beads-sync --oneline | head -20\ngit diff main..beads-sync -- *.go | head -100","status":"open","priority":2,"issue_type":"message","assignee":"gastown-crew-max","created_at":"2025-12-20T22:38:49.242099-08:00","updated_at":"2025-12-20T22:38:49.242099-08:00","labels":["from:gastown/crew/max","thread:thread-0e1b148bc2d7"]}
|
||||
{"id":"gt-23ic","title":"Merge: gt-h6eq.3","description":"branch: polecat/dag\ntarget: main\nsource_issue: gt-h6eq.3\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-23T11:51:16.586184-08:00","updated_at":"2025-12-23T11:51:16.586184-08:00"}
|
||||
{"id":"gt-25bf","title":"Mail coordination should use town-level database","description":"gt mail send/inbox should use ~/gt/.beads (town root) not rig-local beads. Cross-rig mail coordination (Witness \u003c-\u003e Mayor, polecat \u003c-\u003e Witness) needs to be in a shared location.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-20T07:52:18.374322-08:00","updated_at":"2025-12-20T07:57:27.714073-08:00","closed_at":"2025-12-20T07:57:27.714073-08:00"}
|
||||
{"id":"gt-272b","title":"Work on gt-role-template: Refine witness/CLAUDE.md role t...","description":"Work on gt-role-template: Refine witness/CLAUDE.md role template. Run 'bd show gt-role-template' to see the full issue.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-20T07:44:10.203384-08:00","updated_at":"2025-12-20T07:46:55.666605-08:00","closed_at":"2025-12-20T07:46:55.666605-08:00"}
|
||||
{"id":"gt-2bz","title":"Swarm learning: Refinery merge queue automation","description":"Manually merging 15 polecat branches was painful and error-prone. Refinery should automate: detect completed work, run tests, merge to main, handle conflicts. This is core Refinery value prop.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-16T01:21:51.137974-08:00","updated_at":"2025-12-16T01:51:40.603737-08:00","closed_at":"2025-12-16T01:51:40.603737-08:00"}
|
||||
@@ -414,8 +415,8 @@
|
||||
{"id":"gt-h5n.9","title":"Per-epic config overrides: custom merge settings","description":"Allow per-epic merge configuration overrides.\n\nEpic can specify merge_config in its description:\n merge_config:\n run_tests: true\n test_command: 'go test -race ./...'\n on_conflict: assign_back\n\nWhen processing MRs for an epic:\n1. Load rig-level merge_queue config\n2. Check if epic has merge_config\n3. Merge epic config over rig config\n4. Use merged config for processing\n\nUse cases:\n- Risky refactors: more thorough testing\n- Urgent fixes: skip some checks\n- Experimental work: different test suite\n\nReference: docs/merge-queue-design.md#per-epic-overrides","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-17T13:52:02.32832-08:00","updated_at":"2025-12-17T13:52:02.32832-08:00","dependencies":[{"issue_id":"gt-h5n.9","depends_on_id":"gt-h5n","type":"parent-child","created_at":"2025-12-17T13:52:02.32997-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq","title":"Pinned beads architecture implementation","description":"Implement the pinned beads architecture from docs/pinned-beads-design.md\n\nPhases:\n1. Doctor checks for hook validation\n2. Dashboard visibility (gt hooks, gt dashboard)\n3. Protocol enforcement (self-pin, audit trail)\n4. Documentation updates","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-23T05:06:11.469558-08:00","updated_at":"2025-12-23T05:06:11.469558-08:00"}
|
||||
{"id":"gt-h6eq.1","title":"Add hook-singleton doctor check","description":"Add gt doctor check to ensure each agent has at most one handoff bead.\n\nCheck: hook-singleton\nError if: Multiple pinned beads with same '{role} Handoff' title\nFix suggestion: Delete duplicate(s) with bd close","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T05:07:03.489465-08:00","updated_at":"2025-12-23T11:46:14.378415-08:00","closed_at":"2025-12-23T11:46:14.378415-08:00","close_reason":"Closed","dependencies":[{"issue_id":"gt-h6eq.1","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:03.489947-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.2","title":"Add hook-attachment-valid doctor check","description":"Add gt doctor check to verify attached molecules exist and are not closed.\n\nCheck: hook-attachment-valid\nError if: Hook's attached_molecule field points to non-existent or closed issue\nFix suggestion: Clear attachment with gt mol detach","status":"in_progress","priority":2,"issue_type":"task","assignee":"gastown/furiosa","created_at":"2025-12-23T05:07:05.135043-08:00","updated_at":"2025-12-23T11:46:15.234531-08:00","dependencies":[{"issue_id":"gt-h6eq.2","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:05.138398-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.3","title":"Add orphaned-attachments doctor check","description":"Add gt doctor check for molecules attached to non-existent agents.\n\nCheck: orphaned-attachments\nWarning if: Handoff bead exists for agent that no longer has worktree\nFix suggestion: Re-sling to active agent or close molecule","status":"in_progress","priority":2,"issue_type":"task","assignee":"gastown/keeper","created_at":"2025-12-23T05:07:06.064426-08:00","updated_at":"2025-12-23T11:47:56.838675-08:00","dependencies":[{"issue_id":"gt-h6eq.3","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:06.066057-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.2","title":"Add hook-attachment-valid doctor check","description":"Add gt doctor check to verify attached molecules exist and are not closed.\n\nCheck: hook-attachment-valid\nError if: Hook's attached_molecule field points to non-existent or closed issue\nFix suggestion: Clear attachment with gt mol detach","status":"closed","priority":2,"issue_type":"task","assignee":"gastown/furiosa","created_at":"2025-12-23T05:07:05.135043-08:00","updated_at":"2025-12-23T11:49:00.812141-08:00","closed_at":"2025-12-23T11:49:00.812141-08:00","close_reason":"Closed","dependencies":[{"issue_id":"gt-h6eq.2","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:05.138398-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.3","title":"Add orphaned-attachments doctor check","description":"Add gt doctor check for molecules attached to non-existent agents.\n\nCheck: orphaned-attachments\nWarning if: Handoff bead exists for agent that no longer has worktree\nFix suggestion: Re-sling to active agent or close molecule","status":"closed","priority":2,"issue_type":"task","assignee":"gastown/keeper","created_at":"2025-12-23T05:07:06.064426-08:00","updated_at":"2025-12-23T11:51:15.346703-08:00","closed_at":"2025-12-23T11:51:15.346703-08:00","close_reason":"Closed","dependencies":[{"issue_id":"gt-h6eq.3","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:06.066057-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.4","title":"Add stale-attachments doctor check","description":"Add gt doctor check for work stale on hook without progress.\n\nCheck: stale-attachments\nWarning if: Attached molecule has no activity for \u003e24h\nSuggestion: Check agent status, consider nudge or reassignment","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-23T05:07:07.286083-08:00","updated_at":"2025-12-23T05:07:07.286083-08:00","dependencies":[{"issue_id":"gt-h6eq.4","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:07.287566-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.5","title":"Implement gt hooks command","description":"New command to show all hooks across a rig.\n\nUsage: gt hooks [rig]\n\nOutput shows:\n- All polecats and their hook status\n- Witness hook status \n- Refinery hook status\n- Crew member hook status\n- Progress bars for attached molecules","status":"closed","priority":2,"issue_type":"feature","assignee":"gastown/keeper","created_at":"2025-12-23T05:07:09.152693-08:00","updated_at":"2025-12-23T11:45:23.159532-08:00","closed_at":"2025-12-23T11:45:23.159532-08:00","close_reason":"Implemented gt hooks command with progress bars and JSON output","dependencies":[{"issue_id":"gt-h6eq.5","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:09.154337-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-h6eq.6","title":"Add hook status to gt status output","description":"Enhance gt status to show hook summary for each rig.\n\nCurrent: Shows rig list and basic counts\nNew: Also shows occupied hooks count and any stale attachments","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-12-23T05:07:11.290365-08:00","updated_at":"2025-12-23T11:42:07.201937-08:00","closed_at":"2025-12-23T11:42:07.201937-08:00","close_reason":"Implemented: added HookInfo struct, hook discovery, and output to gt status","dependencies":[{"issue_id":"gt-h6eq.6","depends_on_id":"gt-h6eq","type":"parent-child","created_at":"2025-12-23T05:07:11.291931-08:00","created_by":"daemon"}]}
|
||||
@@ -572,10 +573,11 @@
|
||||
{"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-nsyy","title":"Merge: gt-h6eq.7","description":"branch: polecat/dag\ntarget: main\nsource_issue: gt-h6eq.7\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-23T11:42:39.260767-08:00","updated_at":"2025-12-23T11:42:39.260767-08:00"}
|
||||
{"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-nvql","title":"max Handoff","description":"attached_molecule: gt-xdhg\nattached_at: 2025-12-23T19:47:59Z","status":"pinned","priority":2,"issue_type":"task","created_at":"2025-12-23T11:47:59.020501-08:00","updated_at":"2025-12-23T11:47:59.364574-08:00"}
|
||||
{"id":"gt-nvql","title":"max Handoff","description":"attached_molecule: gt-wvyi\nattached_at: 2025-12-23T19:51:20Z","status":"pinned","priority":2,"issue_type":"task","created_at":"2025-12-23T11:47:59.020501-08:00","updated_at":"2025-12-23T11:51:20.823125-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 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-o75l","title":"Merge: gt-h6eq.3","description":"branch: polecat/keeper\ntarget: main\nsource_issue: gt-h6eq.3\nrig: gastown","status":"open","priority":2,"issue_type":"merge-request","created_at":"2025-12-23T11:49:58.84455-08:00","updated_at":"2025-12-23T11:49:58.84455-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"}
|
||||
@@ -747,13 +749,14 @@
|
||||
{"id":"gt-wpg","title":"Replaceable notifications via Claude Code queue","description":"Leverage Claude Code's ability to replace queued text for notifications that supersede previous ones.\n\n## Problem\n\nIf daemon sends 10 heartbeats while agent is busy, agent returns to see 10 stacked messages. Wasteful and noisy.\n\n## Solution\n\nUse Claude Code's queue replacement for:\n- Heartbeat messages (only latest matters)\n- Status updates that supersede previous\n- Progress notifications\n\n## Implementation\n\nNotifications get a 'slot' identifier. New notification in same slot replaces old one:\n- Slot: 'heartbeat' → only one heartbeat queued at a time\n- Slot: 'status-\u003crig\u003e' → latest status per rig\n- No slot → stacks normally (for unique messages)\n\n## Research Needed\n\n- How does Claude Code expose queue replacement?\n- tmux send-keys behavior with pending input\n- Alternative: clear + resend pattern","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-18T14:19:29.821949-08:00","updated_at":"2025-12-20T13:19:00.398942-08:00","closed_at":"2025-12-20T13:19:00.398942-08:00","dependencies":[{"issue_id":"gt-wpg","depends_on_id":"gt-99m","type":"blocks","created_at":"2025-12-18T14:19:46.656972-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-wrw2","title":"Test2","description":"Testing gt mail","status":"open","priority":2,"issue_type":"message","assignee":"gastown-alpha","created_at":"2025-12-20T21:39:05.875792-08:00","updated_at":"2025-12-20T21:39:05.875792-08:00","labels":["thread:thread-1fd9f932cef0"],"sender":"Steve Yegge","wisp":true}
|
||||
{"id":"gt-wusk","title":"Layered context onboarding pattern","description":"Pattern from handoff discussion:\n\n## Pattern: Layered Context Onboarding\n\nTown CLAUDE.md (user/org) -\u003e Rig CLAUDE.md (project) -\u003e Role priming\n\n## Ultra-compressed HOP for workers (no reveal)\n\n- Permanent record: All work tracked. Outcomes matter.\n- Quality gates: Molecule steps exist for a reason.\n- Attribution: Completions build your track record.\n- Handoff clean: Leave state any worker can continue.\n\n## Recommendation\n\nCreate Town @AGENTS.md for shared worker context that all workers see.\nThis provides common behavioral guidance without revealing full HOP context.","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-20T00:55:11.984103-08:00","updated_at":"2025-12-20T00:55:11.984103-08:00"}
|
||||
{"id":"gt-wvyi","title":"sling pin test 2","status":"open","priority":2,"issue_type":"task","assignee":"max","created_at":"2025-12-23T11:51:01.899435-08:00","updated_at":"2025-12-23T11:51:21.025188-08:00"}
|
||||
{"id":"gt-x2cx","title":"gt handoff: Deadlock bug in runHandoff","notes":"Running 'gt handoff' from a polecat causes a deadlock:\n\nStack trace shows:\n- goroutine 1 [select (no cases)] in runHandoff\n- File: internal/cmd/handoff.go:125\n\nThe command successfully sends the shutdown request but then hangs with 'fatal error: all goroutines are asleep - deadlock!'","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-20T08:01:33.827354-08:00","updated_at":"2025-12-20T08:47:47.599975-08:00","closed_at":"2025-12-20T08:47:47.599975-08:00"}
|
||||
{"id":"gt-x74c","title":"gt mol command tree: status, catalog, burn, squash","description":"Add gt mol subcommand as agent-side API for molecule operations.\n\nCommands needed:\n- gt mol status - What's on my hook? (pinned molecule, current step, progress)\n- gt mol catalog - List available protos (delegate to bd mol catalog)\n- gt mol burn - Burn current attachment\n- gt mol squash - Squash current molecule to digest\n\nThis completes the agent-side API and makes the docs (sling-design.md, propulsion-principle.md) match reality.\n\nBlocks: deacon.md.tmpl update (can't use gt mol status until it exists)","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-22T13:12:23.710855-08:00","updated_at":"2025-12-22T13:16:16.543031-08:00","closed_at":"2025-12-22T13:16:16.543031-08:00","close_reason":"Implemented gt mol catalog, burn, squash commands. Status already existed."}
|
||||
{"id":"gt-x7c","title":"Work assignment mail not received by polecat","description":"When gt spawn sends a work assignment:\n\n1. gt spawn says '✓ Work assignment sent'\n2. Polecat runs 'gt mail inbox' \n3. Shows '0 messages, 0 unread'\n\nThe work assignment mail never arrived at the polecat's inbox.\n\n## Observed in session\n- Spawned polecat dementus on gt-th7\n- Polecat checked inbox: empty\n- Polecat couldn't find issue (separate sync bug)\n\n## Possible causes\n- Mail routing issue for polecat addresses\n- gt spawn not actually sending mail\n- Mail sent to wrong address format","notes":"This was likely caused by stale beads in old polecats. With gt-9nf (fresh polecats), polecats now use shared rig beads via redirect file, eliminating sync issues. Mail routing uses town beads correctly.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-20T15:18:12.39878-08:00","updated_at":"2025-12-21T10:16:00.862028-08:00","closed_at":"2025-12-21T10:16:00.862028-08:00","close_reason":"Fixed by gt-9nf: fresh polecats use shared beads, mail routes correctly to town beads"}
|
||||
{"id":"gt-x9m7","title":"Molecule converge: iterate until AI says done","description":"Work isn't 'done' until AI is confident it's done. Fixes the 85% problem.\n\n**From VC**: internal/iterative/converge.go - 3-7 iterations with AI convergence detection. ~600 lines.\nTarget: 20%+ more issues discovered. Observed: ~25% average improvement.\n\n**Gas Town implementation**: Molecule converge config:\n```yaml\nconverge:\n strategy: ai\n min_iterations: 3\n max_iterations: 7\n confidence: 0.85\n```\n\nPolecat iterates, AI checks convergence. Stop when AI is confident or max reached.\n\n**Value**: Raw agents get to ~85% and stop. Iteration catches the remaining 15%.\n\n**VC metrics**: Convergence rate \u003e70%, mean 4-5 iterations for complex work.","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-20T20:30:18.671862-08:00","updated_at":"2025-12-20T20:30:18.671862-08:00","dependencies":[{"issue_id":"gt-x9m7","depends_on_id":"gt-zhpa","type":"parent-child","created_at":"2025-12-20T20:30:27.728971-08:00","created_by":"daemon"}]}
|
||||
{"id":"gt-x9nf","title":"Digest: mol-deacon-patrol","description":"Old test patrol cycle - cleanup","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-22T02:07:15.850595-08:00","updated_at":"2025-12-22T02:07:15.850595-08:00","closed_at":"2025-12-22T02:07:15.850567-08:00","close_reason":"Squashed from 6 wisps","dependencies":[{"issue_id":"gt-x9nf","depends_on_id":"gt-hbnz","type":"parent-child","created_at":"2025-12-22T02:07:15.851081-08:00","created_by":"stevey"}]}
|
||||
{"id":"gt-x9tk","title":"Merge: gt-j6s8","description":"branch: polecat/dementus\ntarget: main\nsource_issue: gt-j6s8\nrig: gastown","status":"closed","priority":1,"issue_type":"merge-request","created_at":"2025-12-23T01:15:22.372353-08:00","updated_at":"2025-12-23T01:16:15.714552-08:00","closed_at":"2025-12-23T01:16:15.714552-08:00","close_reason":"Merged to main"}
|
||||
{"id":"gt-xdhg","title":"test sling pinned","status":"open","priority":2,"issue_type":"task","assignee":"max","created_at":"2025-12-23T11:47:46.118753-08:00","updated_at":"2025-12-23T11:47:59.571482-08:00"}
|
||||
{"id":"gt-xdhg","title":"test sling pinned","status":"closed","priority":2,"issue_type":"task","assignee":"testmax","created_at":"2025-12-23T11:47:46.118753-08:00","updated_at":"2025-12-23T11:50:14.766892-08:00","closed_at":"2025-12-23T11:50:14.766892-08:00","close_reason":"test issue for debugging gt-o3is"}
|
||||
{"id":"gt-xicq","title":"Work on ga-lue: Implement Witness as Claude agent. Conver...","description":"Work on ga-lue: Implement Witness as Claude agent. Convert from shell script to Claude agent that monitors polecats, nudges idle ones, handles escalations. When done, submit MR (not PR) to integration branch for Refinery.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-19T22:58:08.310674-08:00","updated_at":"2025-12-19T23:24:36.692209-08:00","closed_at":"2025-12-19T23:24:36.692209-08:00"}
|
||||
{"id":"gt-xkbm","title":"Merge: gt-g44u.1","description":"branch: polecat/Ace\ntarget: main\nsource_issue: gt-g44u.1\nrig: gastown","status":"closed","priority":0,"issue_type":"merge-request","created_at":"2025-12-19T16:04:14.367493-08:00","updated_at":"2025-12-19T17:35:38.210747-08:00","closed_at":"2025-12-19T17:35:38.210747-08:00"}
|
||||
{"id":"gt-xnql","title":"Define constants for magic strings","description":"Several magic strings are hardcoded throughout the codebase:\n- \"mayor\" appears in 20+ places as a path component\n- \"main\" branch name appears in 20+ places\n- \"beads-sync\" branch name in multiple files\n- \"rigs.json\" filename\n\nThese should be constants in a central location for maintainability.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-21T21:34:46.620322-08:00","updated_at":"2025-12-21T22:13:07.292513-08:00","closed_at":"2025-12-21T22:13:07.292513-08:00","close_reason":"Created internal/constants/constants.go with centralized definitions for:\n- Directory names (mayor, polecats, crew, etc.)\n- File names (rigs.json, town.json, state.json)\n- Git branches (main, beads-sync)\n- Session names (gt-mayor, gt-deacon)\n- Agent roles\n\nUpdated key files (rig_helpers.go, daemon.go, status.go) to use the new constants package. Full migration of all usages (~100 files) can be done incrementally."}
|
||||
|
||||
Reference in New Issue
Block a user