Skip to content

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
· 24 commits to master since this release

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.