github Priivacy-ai/spec-kitty v3.2.0rc38

pre-release5 hours ago

✨ Added

  • Added Implementation Concern Map terminology and work-package traceability
    across planning artifacts, generated task prompts, validation checks, docs,
    ADRs, glossary context, and agent snapshots.
  • Added tracked Op record storage under kitty-ops/, including
    ops-index.jsonl, lifecycle.jsonl, propagation-error records, best-effort
    op(...) auto-commit support, and spec-kitty doctor ops orphan reporting.
  • Added DocFX publishing polish, all-contributors normalization, and updated
    CLI/reference documentation for the 3.2 release candidate line.

🔧 Improved

  • Moved Op record storage from gitignored
    .kittify/events/profile-invocations/ to git-tracked kitty-ops/,
    including ops-index.jsonl, lifecycle.jsonl, and propagation errors.
    Pre-existing records under .kittify/events/profile-invocations/ are
    abandoned and not migrated.
  • Consolidated software-dev template source resolution and rejected stale
    template-root environment overrides so runtime fixtures and package defaults
    cannot silently diverge.
  • Tightened release workflow ownership around downstream consumer validation,
    release metadata, path filters, and GitHub Pages publishing support.

🐛 Fixed

  • Merge done-marking surface divergence (merge.py, coordination/surface_resolver.py):
    After spec-kitty merge, WPs that were approved would show as Completed: 0 (80.0%)
    instead of Completed: 1 (100%) when the mission carried a coordination_branch in
    meta.json. Root cause: _mark_wp_merged_done wrote done events to the coordination
    branch surface via BookkeepingTransaction (coord-branch-aware), while
    _assert_merged_wps_reached_done read back from the primary checkout via
    resolve_feature_dir_for_mission (topology-unaware). The two functions resolved to
    different filesytem paths — write never landed where read looked. Fix: introduced
    coordination.surface_resolver.resolve_status_surface(repo_root, mission_slug) as the
    single canonical surface resolver; _assert_merged_wps_reached_done now calls it instead
    of the topology-unaware resolver, eliminating the divergence. A full merge-path audit
    (inline comment in merge.py) confirms no other DIVERGENT sites. Parity ratchet added
    (four regression tests). Class recurrence of issue
    #1589 facet 3.
    Closes #1726.
    (#1672 parity ratchet)

  • Completed Op records are now best-effort auto-committed with op(...)
    commit messages, and spec-kitty doctor ops reports started-only orphan
    records.

  • spec-kitty merge (without --push) no longer checks or requires origin
    sync before performing local lane integration. A local target branch that
    is ahead of, behind, or diverged from its remote tracking branch does not
    block a local-only merge. This resolves issue #1706 where users with
    accumulated orchestration commits on local main could not run
    spec-kitty merge until they pushed to origin first.

  • Push-safety checks now fire only when --push is requested. The
    "behind" and "diverged" states block before local merge mutation with
    remediation guidance, while "ahead" remains push-safe.

  • MergeState now persists push_requested for correct resume semantics:
    a resumed merge respects the original invocation's push intent without
    requiring re-specification of --push.

  • spec-kitty next now preserves query startup latency behavior while runtime
    template-source cleanup is in effect.

Don't miss a new spec-kitty release

NewReleases is sending notifications on new releases.