Skip to content

Releases: FatStinkyPanda/mcp-agentic-context

v2.4.0 — Blueprint Complete: the swarm reconciler closes the loop

Choose a tag to compare

@FatStinkyPanda FatStinkyPanda released this 12 Jun 19:49

v2.4.0 — The Blueprint Complete

All 20 items of the 100-concurrent-agent scale blueprint are now shipped. Fittingly, this final piece was selected by the fleet dispatcher itself — work next --start picked, claimed, and branched issue #2 with no human routing — and landed through the gated PR lifecycle (#8).

New: the swarm reconciler — the closer of last resort

Crashed agents leave GitHub-side residue no local janitor can reach. Every 10 minutes (plus manual dispatch and repository_dispatch[agent-sync]), agent-reconcile.yml runs a level-triggered, idempotent pass:

  • One batched GraphQL read of all open issues, labels, and comments.
  • Re-seed state:available onto open issues that lost every coordination label — abandoned work re-enters the claimable pool automatically.
  • Dedupe racing agent-impact comment families, keeping the lowest id; human comments are untouchable.
  • Each mutation is individually idempotent and logged as ndjson (the Action run is an audit trail). Runs on GITHUB_TOKEN only: event-inert and a separate rate budget from the agent fleet's shared token.
  • Tests prove the core property: a reconciled state re-plans to zero actions.

The complete loop, as of this release

File an agent-task issue (machine-parsable form, born claimable) → work next routes it to an idle agent (impact-overlap-aware, fleet-decorrelated) → atomic cross-machine checkout (label CAS) → branch → gated PR landing (auto-merge behind required CI checks, content-based merge-race guard) → reconciler sweeps any residue → self-updating installs deliver the result to every user at their next session start (auto-update default-on, backup + new-engine selftest + auto-rollback).

This is also the first release delivered through the v2.3.0 update system — if you're on v2.3.0, your agents have already seen the [UPDATE] notice.

Suite: 155 tests, selftest 60 checks, swarm invariants verified per-commit on ubuntu and windows. Full details in CHANGELOG.md.

v2.3.0 — The Update Era: self-updating installs + the complete GitHub-native work lifecycle

Choose a tag to compare

@FatStinkyPanda FatStinkyPanda released this 12 Jun 19:21

v2.3.0 — The Update Era

Installed copies of mcp-agentic-context now keep themselves current, and the GitHub-native work lifecycle is complete. Fittingly, every feature in this release was built through that lifecycle: filed as form-issues, checked out with the atomic label CAS, landed through auto-merged pull requests behind the required CI checks (issues #1, #3, #6 → PRs #4, #5, #7).

Self-update system

  • mcp update — one command: downloads the latest release, backs up the install, overlays the payload (manifest-tracked upstream deletions), and requires the new engine to pass its own selftest in a throwaway store — failures roll back automatically and preserve the broken payload for diagnosis.
  • mcp update --check / --status — cached 24h, gh CLI or anonymous API, always silent offline.
  • Automatic notification: session-start commands (state, autocontext, doctor) and the collab_status MCP tool print a one-line [UPDATE] notice — agents see new releases where they already look.
  • Auto-update enabled by default (update --disable-auto to opt out): the notice authorizes agents to apply updates unprompted; when disabled, it tells them to ask first (--yes to proceed).
  • Junction/symlink installs update the canonical target; MCP git hooks are refreshed; the two newest backups are retained.

GitHub-native lifecycle, completed

  • Atomic cross-machine claims: work start removes the issue's state:available label — GitHub's one-winner primitive — so exactly one machine wins a checkout on a shared login. work verify self-drops lost checkouts.
  • PR landing path: work submit opens/adopts THE pull request (Closes #N) and arms auto-merge behind required checks; work land finalizes — with a content-based merge-race guard born from a real lost-commit incident in production use.
  • Fleet self-organization: work next [--start] picks the best non-conflicting ready issue (impact-closure overlap vs active checkouts, priority, blast radius, per-agent decorrelation).
  • Machine-parsable issues: the agent-task form (auto-labels state:available) + a shared parser whose template↔parser contract is pinned by CI; open Blocked by dependencies refuse checkout.
  • Shared gh transport: team issue list from a 45s-TTL cache (one lease-elected refresher) + a shared rate-limit penalty gate — a 403/429 backs the whole fleet off with jitter.
  • collab github-setup [--apply] also enables allow_auto_merge now.

Hardening (every item found by the gates in real use)

  • Engine-grade retry budgets for transient Windows denials, sized for loaded 100-agent machines.
  • Branch creation tolerates slow/failing post-checkout hooks; gated pushes get multi-minute budgets.
  • The issue-impact workflow queues instead of cancelling itself (one label batch emits two events).
  • Race-smoke barrier sized for saturated machines.

Selftest: 60 checks. Suite: 150 tests. Full details in CHANGELOG.md.

v2.2.0 — The 100-Concurrent-Agent Release: first-class multi-agent collaboration

Choose a tag to compare

@FatStinkyPanda FatStinkyPanda released this 12 Jun 16:02

v2.2.0 — The 100-Concurrent-Agent Release

Multi-agent collaboration is now first-class: GitHub-native, atomically safe with many agents on one device or across machines, and E2E-verified on every commit. This release also rolls up the previously untagged v2.1.0 coordination primitives (leases, claims, journal, identity-collision detection).

GitHub-native work lifecycle

  • A GitHub issue is the unit of work: collab work list / start / verify / submit / land / done / drop / tick.
  • work start wins an atomic cross-machine claim by removing the state:available label — GitHub's one-winner primitive (the losing machine gets a 404 and leaks no local state) — then assigns, labels (in-progress, agent:<callsign>), creates the matching source-area claim, and journals the checkout.
  • work verify re-confirms a checkout at loop start / before pushing; lost checkouts self-drop so two machines never finish the same issue.
  • work submit pushes the issue branch, opens (or crash-safely adopts) THE pull request — Closes #N — and arms auto-merge behind the required CI checks. work land finalizes merged PRs (releases everything, deletes the remote branch) and heals behind/unarmed ones. At scale, agents never push the default branch directly.
  • collab github-setup [--apply] provisions any repo in one command: coordination labels, state:available seeding, and the master-gate ruleset (PR + required CI contexts, strict up-to-date, no force-push, admin break-glass). It refuses to apply when the pinned contexts don't match real check runs — a typo can never hard-block all merging.
  • Auto-impact GitHub Actions keep ONE self-healing comment on every in-progress issue and every PR: importers, transitive dependents, affected tests, and a conflict radar against other in-progress issues.

Many agents on one device: seats

  • .mcp/seat.json binds a workdir to a call-sign (create-once O_EXCL); identity resolves env > seat > hostname, so N sessions on one laptop can never silently merge into one hostname identity.
  • collab seat new <callsign> provisions a git-worktree seat in one command; collab join <callsign> = seat + heartbeat + engine probe + team status.
  • Cross-workdir use of one identity is refused at the lease/claim/work layer (structural enforcement, not etiquette).

Atomic store, fenced leases

  • Every store write is an O_EXCL create, an atomic temp+rename replace, or a rename-to-unique-tombstone take: readers never see partial JSON, exactly one contender wins any CAS, removals verify what they removed and restore on mismatch.
  • Leases carry monotonic fence numbers (sidecar high-water mark survives release, break, and crash). Renew is a take-verify-recreate CAS that can never resurrect an expired lease; lease valid --fence N proves the incarnation before irreversible acts; corrupt leases recover instead of deadlocking.
  • Per-writer journal segments (<identity>.<pid>.ndjson, one O_APPEND syscall per event) with merged tails; janitor GC (lease-elected) reaps stale presence, orphaned claims, abandoned checkouts, and strays; maildir mailboxes with claim-by-rename exactly-once consumption — transiently unreadable mail is restored, never destroyed.

E2E testing on every commit

  • collab selftest: 51 checks in a throwaway store, including a real multi-process race smoke.
  • collab swarmtest: N real OS processes prove lease mutual exclusion (including fencing under forced expiry), journal exactly-once, claim/checkout single-winner, and collision detection — runs at 6 processes in the pre-push hook, 16 in CI on ubuntu AND windows, and 100 nightly (hammer mode) with auto-filed swarm-regression issues.
  • Rewritten hooks: pre-commit is a pure E2E gate (never mutates the tree); pre-push runs selftest + the full suite + a swarm + the security audit.

Windows platform hardening (each found by the new gates)

  • Two concurrent os.replace calls to one destination can both report success — deterministic rename destinations are not a CAS; every tombstone/claim name embeds pid+random.
  • NTFS delete-pending makes O_EXCL creates raise PermissionError — treated as busy, never broken.
  • Readers retry transient sharing violations; "unparseable + young" means mid-write, not corrupt.

Full details in CHANGELOG.md and the collab story in the README.

v2.0.2 - single-file review and autocontext fixes

Choose a tag to compare

@FatStinkyPanda FatStinkyPanda released this 11 Jun 06:16

Patch release. review and security now work on single-file paths (previously they silently scanned 0 files and reported PASSED); a lone JS/TS file resolves its owning project and eslint targets just that file. autocontext labels code fences with the real language instead of python, and caps each memory value at 400 chars so a verbose legacy snapshot cannot consume the memory budget. Includes guidance for purging legacy pre-scoping snapshot pollution from shared memory stores. 134 tests passing.

v2.0.1 - impact, review, security, and todos as first-class MCP tools

Choose a tag to compare

@FatStinkyPanda FatStinkyPanda released this 11 Jun 05:38

Four commands promoted to native Model Context Protocol tools, each with when-to-use steering: impact (what breaks if this file changes - transitive dependents and affected tests, TS/JS and pnpm-workspace aware), review (pre-commit gate; runs the repo's own eslint and tsc on JS/TS projects and merges findings), security (pre-push gate; secrets/injection audit plus pnpm audit dependency vulnerabilities), and todos (priority-ordered TODO/FIXME listing). All tool outputs are capped at 20k chars so a pathological report cannot flood agent context. Ten native tools total at ~1.1k tokens of schemas per session. 128 tests passing. See CHANGELOG.md.

v2.0.0 - Large-codebase readiness and MCP-native integration

Choose a tag to compare

@FatStinkyPanda FatStinkyPanda released this 11 Jun 04:50

Multi-language semantic search (TS/TSX/JS + 25 languages), incremental auto-fresh indexing (0.3s no-change re-index on 32k files), warm serve daemon (~0.4s searches), a real Model Context Protocol server with steered tool descriptions, self-advertising installs (CLAUDE.md/AGENTS.md/.mcp.json), restored heal/graph/hybrid-search/predict-context/hook-guardian commands, project-scoped memory, JS toolchain integration for review/security, flattened first-class repo layout, CI on Linux and Windows, 125 tests. See CHANGELOG.md for details.