Repository navigation
Releases
v0.2.2 — direct claim recovery with force explanations
Interrupted or terminated agents no longer require waiting for a stall before their work can be reassigned:
item_claim({ id: "S04-005", force: "Previous agent terminated" })forceis a trimmed explanation string (1–500 characters), not a boolean. It overrides ownership immediately without an inactivity or completion threshold.item_takeoversupports the same option.- Rejections explain the unmet ownership or stall condition and show the explicit override option. Ownership history records the reason, and prior owners cannot write after reassignment.
- Regression coverage includes immediate and inactive-session recovery, invalid explanations, concurrent forced handovers, and stale writes from resumed owners.
- Includes the React dashboard refresh already on main and synchronized client/plugin manifests.
Upgrade the MCP command to npx -y sprinty-mcp@0.2.2 and restart the MCP connection. Existing sprint ledgers remain compatible.
Validation: package build, server and dashboard typechecks, full test suite, skill synchronization, and package-content checks.
v0.2.1 — automatic agent identity and claim discovery
Sprinty 0.2.1 removes identity bookkeeping from normal client workflows and adds agent/claim discovery.
agent_list()lists names, activity state, last activity, and claimed-item counts.items_claimed({ mine: true })finds your claims automatically, with timing, progress, and potential-stall reasons. Both tools are paginated.- Separate MCP processes keep automatic connection identity. Stable native session IDs recover identity and ownership across MCP restarts when supplied by the client or launcher.
- The Claude plugin bundles a PreToolUse hook that supplies native session/subagent IDs for shared connections. Credentials are persisted privately inside the gitignored sprint data directory; agents do not need to remember tokens.
- Updated canonical skills, client bundles, and README release highlights.
Upgrade
Restart your MCP connection using npx -y sprinty-mcp@0.2.1. Update/reload the Claude plugin to install its new hook; MCP-only installation does not include hooks. Explicit tokens remain available for other shared clients. Without a stable native caller ID, a new MCP process receives a new identity.
Validation covers shared caller isolation, exclusive ownership, native identity recovery across real process restart, claim filtering, private credential files, the Claude hook, and response-size/performance budgets.
v0.2.0 — concurrent agents and activity-aware ETA
Sprinty 0.2.0 adds safe collaboration for multiple agents sharing a local sprint.
- Named agent sessions with opaque identity tokens, exclusive item claims, generation fencing, explicit release and explained handovers.
- Claim timing and potential-stall warnings after an hour of owner inactivity or three other item completions without progress.
- One activity-aware ETA shared by tools and dashboard, with sleep-resistant effort samples, parallel workers, dependencies, and paused/awaiting-handover states.
- Cross-process write locking, journaled transactions and recovery, pinned sprint attachments, and asynchronous gates with stale-result protection.
- Dashboard ownership, stall and handover visibility, plus updated client guidance.
Using the new collaboration tools
Restart your Sprinty MCP connection after updating to sprinty-mcp@0.2.0. Resume the existing sprint, retain the returned agent token, and claim an item before editing or completing it. Agents sharing a connection must use separate tokens; agents sharing a sprint must use the same canonical repository and data directory. Use agent_heartbeat during long work intervals. Existing unattributed ledgers remain readable; ETA learns from new activity-aware completions.
The React UI migration is not part of this release.
v0.1.19 — synchronized progress and recoverable gates
What changed
- Fixed dashboard progress polling so closed items update the progress bar immediately.
- Kept completion-chart totals and finished-item counts aligned with current sprint state.
- Allowed completed items to revise executable gates and gate timeouts before close.
- Made final gate reruns honor item-specific timeouts, including disabled timeouts.
- Added auditable
sprint_close({ force: true }), limited to bypassing executable-gate failures while preserving ledger and coverage requirements.
Verification
- 242 tests passed from a clean worktree.
- Typecheck, production build, response budgets, and npm package dry-run passed.
v0.1.18 — flexible gates and automatic changelogs
Highlights
- Configure or disable per-item gate timeouts.
- Update a specific item by ID with a deliberately limited mutable field set.
- Correct the commit attached to completed items.
- Generate the canonical changelog automatically when a sprint closes.
- Fix completion ETA calculations and harden scheduler-sensitive response timing gates.
Full test, typecheck, package, and CI gates passed before release.
v0.1.17 — portable Agent Plugins package
Sprinty now ships a portable Agent Plugins package at the repository root, so Cursor, VS Code, Kiro, GitHub Copilot and ChatGPT/Codex can load the skills and the MCP server without a client-specific bundle.
The standard places plugin.json, mcp.json and skills/ at the plugin root. skills/ was already the canonical copy here, so this adds two manifests rather than another duplicate of the skill text. Both are validated against the published 1.0.0 JSON schemas.
Claude Code and Gemini CLI are not Agent Plugins clients today and continue to use their existing bundles.
Also raises the test timeout: item_done executes gates for real and the e2e suite drives a live MCP subprocess, so tests now do seconds of genuine work.
v0.1.16 — gates that actually run
Sprinty used to take the agent's word for it. item_done accepted gate_results as assertions, and spec: "true" passed every check in the system — it was the default in ~150 places across the test suite.
Breaking
- Gates execute.
item_done({ id, commit_id, changelog }). Sprinty runs the item's executable gates and records their real output; onlymanualgates take agent evidence. Specs that cannot fail (true,:,exit 0, bareecho) are rejected at declaration, whileecho ok && npm teststill passes. - 5s item gate budget. A gate that overruns is killed and marked
timed_out— distinct from failed, because nothing was proven either way. It does not block the item;sprint_closeruns it in full, and the response warns with both ways out. - Spikes removed. They were never registered as MCP tools, so no client could reach them.
helpreplaced bynext_tools. The old static string was the largest field in most responses and built ids from a regex fallback, so on a fresh sprint it suggested calls that error with Unknown.
Fixes
sprint_closeno longer closes over a subsprint that never got items.item_deprecatetakes a subsprint id as the way out.sprint_resumereturns a bounded briefing: 1358 chars against the 7896 ofoverview+nextit replaces.- Note ids are minted rather than derived from ledger position, so concurrent writers cannot collide. Existing ledgers keep their ids.
- Ledger appends are O(1): 4000 appends went from ~11s to 135ms.
- Dashboard static-asset guard no longer admits prefix-sharing sibling directories via
%2f. npm run test:coverageruns; it previously failed on healthy code.item_getreports the files the commit actually touched and flags undeclared ones as scope drift.
223 tests, typecheck clean.
Sprinty 0.1.15
Sprinty 0.1.15
- Adds
info()as the canonical first-call orientation tool, including unbound sprint discovery and dashboard state. - Supports compact discovery across multiple Sprinty data directories.
- Defaults
data_dirto<git_dir>/.sprintywhen an explicit Git directory is provided. - Aligns Codex, Claude, Gemini, plugin, and skill guidance with the public MCP tool manifest.
Publishing is performed by the repository's trusted GitHub Actions workflow after the full test suite passes.
sprinty-mcp 0.1.14
Fixed
- Stop the dashboard completion chart from stretching past the final completed item.
- Use done-to-done completion cadence for ETA statistics.
Validation
- npm test
- npm pack --dry-run
sprinty-mcp 0.1.13
Fixed
- Fixed dashboard changelog doughnut legend labels and placed the legend below the chart.
- Fixed dashboard chart windows so recent activity and completion projections stay within the sprint window.
- Kept MCP response acknowledgements compact enough for the response-size gates.
Changed
- Restored Changelog stats as a Chart.js doughnut and kept Code stats as a compact table.
- Renamed dashboard summary cards to Changelog stats and Code stats.
- Bumped npm, Codex, Claude, and Gemini package manifests to 0.1.13.
Verified
- npm test
- npm run build
- npm pack --dry-run