← Results index

Replace Beads task management with GitHub Issues

2026-08-23T06:00:00Z Maintenance completed Quantmodel now selects, claims, blocks, comments, and ships work through GitHub Issues. Native sub-issues and blocked-by links replace Beads hierarchy, fenced leases recover dead workers, trusted comments reopen work, and PRs must close the issue they address.

Objective

Retire Beads as the durable task control plane and replace it with GitHub Issues, including migration of every existing record, pipeline/worker cutover, comment-driven follow-up, human pause mentions, and PR-linked closure.

Approach

Added research.pipeline.github as the task provider, persisted pipeline envelopes on git refs, and claimed work with fenced worker leases rather than assignee-only locks. Migrated 367 Beads records to labeled issues with native sub-issue and blocked_by links, then deleted the Beads datastore, hooks, adapters, wrappers, and skill. Workers, discovery, dashboard, PR helpers, and agent docs now speak issue numbers.

Web plan:

Browser evidence: tests/test_github_tasks_dashboard.py and tests/test_github_tasks_dashboard_browser.py Static/local boundary: public site keeps 301 aliases for old task JSON/JS paths; live queue/lease UI is python3 -m research.reports github-tasks Exception: a public catalog page would expose private issue titles, owners, and worker leases. Audience is operators. Path is the local dashboard plus gh/research.pipeline.github. Reconsider if a redacted public status board is requested.

Files changed

Validation

Results

GitHub Issues is the only durable task surface. Dead-worker leases expire and can be reclaimed. Trusted comments on open or closed issues queue follow-up. PRs fail closed without exactly one Closes #<issue>. Beads runtime files are gone.

Source artifact: research/results/905.md