Skip to content

Release v0.6.10: add beads artifact provider#97

Merged
wittekin merged 3 commits into
mainfrom
release/0.6.10
Apr 26, 2026
Merged

Release v0.6.10: add beads artifact provider#97
wittekin merged 3 commits into
mainfrom
release/0.6.10

Conversation

@wittekin
Copy link
Copy Markdown
Owner

Summary

  • Adds a new beads artifact provider (tasklist_provider and opportunity_provider) backed by direct subprocess calls to the bd CLI from https://github.com/gastownhall/beads — no LLM/MCP round-trip.
  • Adds optional capability protocols ReadyAwareTasklistProvider and DependencyLinker (both @runtime_checkable), plus a DependencyKind enum. Existing providers are unaffected; consumers feature-detect via isinstance(...).
  • Tasks appended with an opportunity_ref are auto-linked to their source opportunity via bd dep add ... --type discovered-from.

Test plan

  • 27 new unit tests in tests/test_beads_provider.py cover discovery, read/write paths, status mapping, snapshot rollback, dep linking (success + failure), and protocol conformance
  • Full suite green (2119 passed, 7 skipped)
  • ruff + mypy + vulture clean

Notes

  • Real-CLI E2E against a live bd install is left as a follow-up — _coerce_items is defensive about wrapper keys (issues/items/results/data), but exact JSON shape may surface a tweak on first use.
  • Orchestrator is not yet wired to consume ReadyAwareTasklistProvider. The protocol exists and beads implements it; picking a call site (likely the inner-loop task picker) is a follow-up.

🤖 Generated with Claude Code

wittekin and others added 3 commits April 14, 2026 18:06
Adds a `beads` provider for both `tasklist_provider` and
`opportunity_provider`, backed by direct subprocess calls to the `bd`
CLI from https://github.com/gastownhall/beads (no LLM/MCP loop).

Tasks appended with an `opportunity_ref` are auto-linked to their
source opportunity via `bd dep add ... --type discovered-from`,
preserving the build-from-opportunity relationship in the beads graph.

Adds two optional capability protocols — `ReadyAwareTasklistProvider`
and `DependencyLinker` — plus a `DependencyKind` enum. Both protocols
are `@runtime_checkable`; callers feature-detect with `isinstance(...)`
and fall back to the base contracts for providers without the capability.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 68.14516% with 79 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/millstone/artifact_providers/beads.py 65.00% 58 Missing and 19 partials ⚠️
src/millstone/artifact_providers/protocols.py 66.66% 0 Missing and 2 partials ⚠️

📢 Thoughts on this report? Let us know!

@wittekin wittekin merged commit d6b8f10 into main Apr 26, 2026
17 of 18 checks passed
@wittekin wittekin deleted the release/0.6.10 branch April 26, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants