Skip to content

Releases

v0.2.2 — direct claim recovery with force explanations

Choose a tag to compare

@ebursztein ebursztein released this 18 Oct 19:03
7d596bc

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" })
  • force is a trimmed explanation string (1–500 characters), not a boolean. It overrides ownership immediately without an inactivity or completion threshold. item_takeover supports 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

Choose a tag to compare

@ebursztein ebursztein released this 18 Oct 18:16
8bf712c

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

Choose a tag to compare

@ebursztein ebursztein released this 18 Oct 17:59
01c4544

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

Choose a tag to compare

@ebursztein ebursztein released this 22 Sep 00:25

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

Choose a tag to compare

@ebursztein ebursztein released this 15 Aug 19:21
7d694d3

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

Choose a tag to compare

@ebursztein ebursztein released this 07 Aug 19:14
b41d4ba

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

Choose a tag to compare

@ebursztein ebursztein released this 07 Aug 18:36
e663db9

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; only manual gates take agent evidence. Specs that cannot fail (true, :, exit 0, bare echo) are rejected at declaration, while echo ok && npm test still 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_close runs 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.
  • help replaced by next_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_close no longer closes over a subsprint that never got items. item_deprecate takes a subsprint id as the way out.
  • sprint_resume returns a bounded briefing: 1358 chars against the 7896 of overview+next it 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:coverage runs; it previously failed on healthy code.
  • item_get reports the files the commit actually touched and flags undeclared ones as scope drift.

223 tests, typecheck clean.

Sprinty 0.1.15

Choose a tag to compare

@ebursztein ebursztein released this 15 Jul 20:29
8672414

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_dir to <git_dir>/.sprinty when 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

Choose a tag to compare

@ebursztein ebursztein released this 03 Jul 13:30
67e04e6

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

Choose a tag to compare

@ebursztein ebursztein released this 29 Jun 16:15

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