Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .specfuse/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.31.1
0.32.0
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,26 @@ Entries below cover only work landing from FEAT-2026-0064 onward.

## [Unreleased]

## [0.32.0+umbrella.0.17.0] - 2026-11-03

### Fixed

- The roadmap lint checks a Blocked-by fragment into a YAML or JSON decision file when `decisions.entryKey` names the key holding each entry id; without the key, behavior is unchanged. (#3567)

### Changed

- close-discipline §3 and `/fix-bug` tell agents to run `changelog_fragments add` instead of hand-editing `CHANGELOG.md`. (FEAT-LOOP-2026-0249)
- `ids migrate --all --apply` rewrites the `trace` of a `changelog.d/` fragment to the new ID; filenames are left unchanged. (FEAT-LOOP-2026-0249)
- `scripts/bump_version.py` `release()` folds `changelog.d/` fragments into `Unreleased` before stamping and removes them afterward, all-or-nothing; adopter release scripts must call `collate` before stamping. (FEAT-LOOP-2026-0249)
- The `close-k` requirement, `specfuse lint --closing` and the terminal auto-close guard accept an entry in `CHANGELOG.md` or a valid `changelog.d/` fragment through one shared reader; refusals name both locations. (FEAT-LOOP-2026-0249)

### Added

- In `fragments` mode each entry is a `changelog.d/<trace>-<slug>.md` file (`class` and `trace` in frontmatter, one-line body), so concurrent PRs no longer conflict on `CHANGELOG.md`. (FEAT-LOOP-2026-0249)
- New `changelog-fragments` verification gate runs `changelog_fragments check` and fails on a malformed fragment at PR time; adopters add the same gate to their own `verification.yml`. (FEAT-LOOP-2026-0249)
- New `changelog.mode: single | fragments` key in `.specfuse/layout.yml`; absent means `single`, any other value fails `layout validate`. (FEAT-LOOP-2026-0249)
- New `python3 -m specfuse.loop.changelog_fragments` CLI with `add`, `collate` and `check` subcommands; `add` is the one writer and routes by `changelog.mode`. (FEAT-LOOP-2026-0249)

## [0.31.1+umbrella.0.17.0] - 2026-10-30

### Fixed
Expand Down
5 changes: 0 additions & 5 deletions changelog.d/3567-the-roadmap-lint-checks-a-blocked-by-fra.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "specfuse-loop"
version = "0.31.1"
version = "0.32.0"
description = "Local-first executor for the Specfuse Plan + Work Unit gate-cycle methodology."
readme = "README.md"
requires-python = ">=3.10"
Expand Down
2 changes: 1 addition & 1 deletion specfuse/loop/data/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.31.1
0.32.0
2 changes: 1 addition & 1 deletion specfuse/loop/loop.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@
REPO_ROOT = SPECFUSE_DIR.parent
FEATURES_DIR = SPECFUSE_DIR / "features"
VERIFICATION_PATH = SPECFUSE_DIR / "verification.yml"
DRIVER_VERSION = "0.31.1"
DRIVER_VERSION = "0.32.0"
# Oldest scaffold layout this driver can drive. init.sh stamps the scaffold's own
# version into `.specfuse/VERSION`; check_scaffold_version() fails loud at startup if
# the consumer's scaffold is older than this, pointing at `specfuse upgrade`. Bump
Expand Down
Loading