diff --git a/CHANGELOG.md b/CHANGELOG.md index 47cbedfa..76425be9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,16 +9,27 @@ All notable changes to this project will be documented in this file. --- -## [Unreleased] +## [0.43.0] - 2026-03-28 ### Added +- Spec-Kit v0.4.x adapter alignment: extension catalog detection (`scan_extensions`), preset scanning (`scan_presets`), hook event detection (`scan_hook_events`), and 3-tier version detection (CLI → heuristic → None). +- `ToolCapabilities` model expanded with `extensions`, `extension_commands`, `presets`, `hook_events`, and `detected_version_source` fields for v0.4.x metadata. +- BridgeConfig presets (`preset_speckit_classic`, `preset_speckit_specify`, `preset_speckit_modern`) now map all 7 Spec-Kit slash commands: `/speckit.specify`, `/speckit.plan`, `/speckit.tasks`, `/speckit.implement`, `/speckit.constitution`, `/speckit.clarify`, `/speckit.analyze`. +- 44 new unit/integration tests covering extension catalogs, version detection, preset scanning, hook events, and full `get_capabilities()` flow. - CI: `scripts/check-docs-commands.py` and `scripts/check-cross-site-links.py` with `hatch run docs-validate` (command examples vs CLI; modules URLs warn-only when live site lags); workflow runs validation plus `tests/unit/docs/`. - Documentation: `docs/reference/documentation-url-contract.md` and navigation links describing how core and modules published URLs relate; OpenSpec spec updates for cross-site linking expectations. - Documentation: converted 20 module-owned guide and tutorial pages under `docs/` to thin handoff summaries with canonical links to `modules.specfact.io`; added `docs/reference/core-to-modules-handoff-urls.md` mapping core permalinks to modules URLs. +### Changed + +- `SpecKitAdapter.get_capabilities()` refactored with helper methods (`_detect_layout`, `_detect_version`, `_extract_extension_fields`) to reduce cyclomatic complexity. +- Logging in `speckit.py` and `speckit_scanner.py` switched from `logging.getLogger` to `get_bridge_logger` per production command path convention. + +--- + ## [0.42.6] - 2026-03-26 ### Fixed diff --git a/pyproject.toml b/pyproject.toml index 3427bbd8..4a10b501 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "specfact-cli" -version = "0.42.6" +version = "0.43.0" description = "The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases." readme = "README.md" requires-python = ">=3.11" diff --git a/setup.py b/setup.py index b9cb503c..2ef6485e 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ if __name__ == "__main__": _setup = setup( name="specfact-cli", - version="0.42.6", + version="0.43.0", description=( "The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with " "validation and contract enforcement for new projects and long-lived codebases." @@ -23,7 +23,7 @@ "cryptography>=43.0.0", "cffi>=1.17.1", "typer>=0.15.0", - "rich>=14.0.0", + "rich>=13.5.2,<13.6.0", "jinja2>=3.1.0", "networkx>=3.2", "gitpython>=3.1.0", diff --git a/src/__init__.py b/src/__init__.py index 123f4b38..fd5b13be 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -3,4 +3,4 @@ """ # Package version: keep in sync with pyproject.toml, setup.py, src/specfact_cli/__init__.py -__version__ = "0.42.6" +__version__ = "0.43.0" diff --git a/src/specfact_cli/__init__.py b/src/specfact_cli/__init__.py index 9d7aa16c..fcc02078 100644 --- a/src/specfact_cli/__init__.py +++ b/src/specfact_cli/__init__.py @@ -42,6 +42,6 @@ def _bootstrap_bundle_paths() -> None: _bootstrap_bundle_paths() -__version__ = "0.42.6" +__version__ = "0.43.0" __all__ = ["__version__"]