diff --git a/CHANGELOG.md b/CHANGELOG.md index bc4795f..0d508c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,12 +11,24 @@ This project uses a lightweight changelog format: ## Unreleased +## 0.3.1 - 2026-06-15 + ### Added - OSS community baseline with contribution, conduct, governance, security, support, and roadmap docs. - GitHub issue templates, pull request template, and CI workflow. - Release checklist, CODEOWNERS, repository hygiene ignores, and GitHub Actions update automation. +### Changed + +- Standardized local verification, release, and provider bridge examples on `python3`. +- Strengthened marketplace plugin path tests to verify every entry resolves inside the repository. + +### Fixed + +- Fixed the goal ledger so failed or blocked stories are never reported as complete. +- Reopened failed or blocked stories through `next` before advancing later pending stories. + ## 0.3.0 ### Added diff --git a/plugins/codex-fable5/.codex-plugin/plugin.json b/plugins/codex-fable5/.codex-plugin/plugin.json index b429f0c..3ff5daf 100644 --- a/plugins/codex-fable5/.codex-plugin/plugin.json +++ b/plugins/codex-fable5/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "codex-fable5", - "version": "0.3.0", + "version": "0.3.1", "description": "Fable-style Codex workflow with source-section coverage, goal gates, verification grounding, VFF routing, and optional provider bridge guidance.", "author": { "name": "Codex Fable5 Maintainers" diff --git a/tests/test_scripts.py b/tests/test_scripts.py index 7642f84..5177117 100644 --- a/tests/test_scripts.py +++ b/tests/test_scripts.py @@ -84,6 +84,16 @@ def test_license_metadata_declares_agpl_or_later(self) -> None: self.assertIn("AGPL-3.0-or-later", readme) self.assertIn("AGPL-3.0-or-later", notice) + def test_plugin_version_is_documented_in_changelog(self) -> None: + plugin = json.loads( + (ROOT / "plugins" / "codex-fable5" / ".codex-plugin" / "plugin.json").read_text( + encoding="utf-8" + ) + ) + changelog = (ROOT / "CHANGELOG.md").read_text(encoding="utf-8") + + self.assertIn(f"## {plugin['version']}", changelog) + def test_oss_community_files_exist(self) -> None: required_paths = [ "CODE_OF_CONDUCT.md",