Skip to content

feat: cross-rig prefix routing via routes.jsonl#3047

Closed
maphew wants to merge 4 commits intogastownhall:mainfrom
maphew:feat/cross-rig-routing-2954
Closed

feat: cross-rig prefix routing via routes.jsonl#3047
maphew wants to merge 4 commits intogastownhall:mainfrom
maphew:feat/cross-rig-routing-2954

Conversation

@maphew
Copy link
Copy Markdown
Collaborator

@maphew maphew commented Apr 5, 2026

Cherry-pick of #2954 onto upstream/main. Adds cross-rig prefix routing via routes.jsonl with associated doctor and vc behavior updates.

Summary

  • Cross-rig prefix routing: Adds resolveViaPrefixRouting to the issue resolution chain (local → prefix routing → contributor auto-routing). When an issue ID has a prefix mapped in routes.jsonl, it opens the target rig's database to resolve it.
  • Dolt Format auto-fix: bd doctor --fix can now seed the .bd-dolt-ok marker for pre-0.56 dolt databases.
  • bd vc commit includes config table: Switches from Commit() (which skips config) to CommitPending() (which includes config), matching what bd vc status shows.

Cohesion review

These three changes belong together as a "routing foundation bundle" — the prefix routing is the primary feature, the doctor fix removes a warning that would otherwise fire on rigs that use prefix routing, and the vc commit fix ensures config changes (including routing config) are properly committed.

Test plan

  • Build passes (CGO_ENABLED=0 go build ./...)
  • All routing and doctor tests pass
  • Full test suite passes (one pre-existing failure in TestInitGuard_FreshCloneWithMetadataJSON also fails on upstream/main)

🤖 Generated with Claude Code

outdoorsea and others added 4 commits April 5, 2026 16:42
…arker)

The "Dolt Format" doctor check detected pre-0.56 dolt databases but had
no automatic fix — it fell through to the default "No automatic fix
available" case. The remedy is trivial: create the .bd-dolt-ok marker
file, which is exactly what ensureDoltInit does non-destructively.

Add a DoltFormat fix function and wire it into the doctor_fix switch.
In server mode the .beads/dolt/.dolt/ directory is vestigial; seeding
the marker acknowledges the database without any destructive action.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
bd vc commit called store.Commit() which intentionally skips the config
table (GH#2455) to prevent sweeping stale config during auto-commits.
But bd vc commit is an explicit user action — it should commit everything
visible in bd vc status, including config changes from bd config set.

Switch to CommitPending which calls CommitWithConfig internally, ensuring
all dirty tables including config are committed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The paths are constructed internally from the beads directory, not from
user input. Add nolint:gosec annotations matching the rest of the codebase.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
bd create auto-commits in embedded mode, so a subsequent bd vc commit
may find nothing pending. CommitPending correctly returns committed=false
in this case. The test now accepts both outcomes, matching the pattern
used by commit_with_message.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@maphew
Copy link
Copy Markdown
Collaborator Author

maphew commented Apr 6, 2026

Closing this duplicate — approving the original PR #2954 directly instead. Note: rebase will need import additions in routed.go (see review comment).

@maphew maphew closed this Apr 6, 2026
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