github Priivacy-ai/spec-kitty v3.1.1a2

latest release: v3.1.1a3
pre-release5 hours ago

Fixed

  • spec-kitty init / any CLI command no longer dirties the git repo — every CLI invocation that touched status was unconditionally rewriting kitty-specs/*/status.json, even when nothing had changed, leaving ~60 files modified in git status. Root cause: materialize() stamped a fresh datetime.now(UTC) into materialized_at on every call. Fixed in reducer.py (3.1.1a1): materialized_at is now derived deterministically from the last event's at timestamp (or "" for features with no events), and a content-equality guard skips the write when the file is already up to date. Closes #524.

Added

  • Migration 3.1.1_normalize_status_json — one-shot upgrade migration that normalises all existing kitty-specs/*/status.json files to the new deterministic format. Runs automatically on spec-kitty upgrade for any project where the committed files still carry old wall-clock timestamps or the legacy feature_slug field. After the migration the skip-write guard in materialize() keeps all status snapshots stable indefinitely.

Changed

  • StatusSnapshot and ProgressResult serialisation no longer emits feature_slugwith_tracked_mission_slug_aliases previously injected a redundant feature_slug alias into every serialised snapshot. Now only mission_slug is written. Reading still accepts both keys for backward compat with existing files.

Don't miss a new spec-kitty release

NewReleases is sending notifications on new releases.