Skip to content

v3.6.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 10:34
· 171 commits to main since this release
d852bd0

[3.6.0] — 2026-06-05 — "Swarm Coordination"

Added

  • projscan collisions and MCP projscan_collision: detect change collisions across the repo's in-flight git worktrees (parallel agents). Flags same-file edits and dependency overlaps — where one worktree changes a file another worktree's change imports, via the import graph — before the branches merge. Local-first; needs at least two worktrees. First step of the 4.x agent-swarm coordination arc.
  • projscan claim and MCP projscan_claim: advisory claims/leases over files, directories, or symbols, shared across the repo's git worktrees so parallel agents see who owns what. Adding a claim surfaces contention when another agent already holds an overlapping target; claims can carry a lease (--ttl / ttl_seconds) so a crashed agent's claim auto-expires, and prune clears expired leases. Claims list and release explicitly. Local-first.
  • projscan merge-risk and MCP projscan_merge_risk: merge-risk preflight across in-flight worktrees — a safe integration order (merge the least-entangled branch first) and the files where conflict risk concentrates (changed by two or more worktrees). Builds on collision detection. Local-first.
  • projscan route and MCP projscan_route: map a stated goal (e.g. "what breaks if I rename X", "coordinate parallel agents") to the right projscan tool with the exact call, or list the full capability catalog. A discovery entry point over the tool surface — deterministic keyword routing, no inference.
  • projscan coordinate and MCP projscan_coordinate: one-call swarm coordination read that composes collisions, claims, and merge-risk into a readiness verdict (clear / caution / conflicted) with counts and the recommended integration order — the single entry point for the 4.x coordination arc.

Fixed

  • Semantic search now degrades to BM25 when the embedding model can't be loaded (offline, model-host rate limits, or a corrupt cache) instead of throwing, and a transient load failure no longer poisons the in-process model cache.