v0.2.1 — multi-spec & dry-run fixes
PATCH bug-fix release over v0.2.0. No new features — both fixes landed on main after the v0.2.0 tag, so the cataloged v0.2.0 still carried the multi-spec collision bug. The GitHub source ZIP at this tag is the install artifact.
Fixed
- #10 — spec-scoped phase Subtask identity (fixes cross-spec collision on multi-spec repos). The feature-003 unified level loop matched a phase Subtask by its
task-phase:Nidentity label alone;task-phase:Nis a phase number (unique only within a spec), so across a multi-spec repo every spec's "Phase N" matched the same Subtask — specs 2..N updated spec 1's Subtask instead of creating their own. The phase find is now parent-scoped (parent = <story> AND labels = task-phase:N), restoring 001 behaviour. No label-scheme change; single-spec boards are unaffected; a plainreconcile.sh --allself-heals a mis-scoped board.- Empty
taskList→ HTTP 400 INVALID_INPUT guard: a## Phasewith zero task lines no longer renders a childless ADFtaskList(which Jira rejects) — a paragraph placeholder is emitted, and everytaskItemcarries non-empty content. - Field-level error detail: a non-2xx write now surfaces the Jira response body (
errorMessages/errors) in the failure line.
- Empty
- #9 — dry-run of an unmirrored spec no longer spuriously exits 3: a
--dry-runcreate synthesizes theDRY-0placeholder key; the post-create reconciles read against it, which 404s on a live Jira → fail-closedrc 3→ the whole dry-run exited 3 even though the board was fully readable. The existence-check read is now skipped for theDRY-0placeholder (scoped toDRY-0only — a real key still fails closed).
Install: specify extension add jira-sync --from https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.2.1.zip