diff --git a/CHANGELOG.md b/CHANGELOG.md index d568757..2f41c41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0] — 2026-06-30 + +**Colour/climate entity assembly and GA-intent noise reduction.** Two feature tracks +shipped together, both driven by real ETS projects: full colour-light (RGBW/RGB/CCT) and +KNX `climate` entity generation with a status-pairing (B1) correctness fix, and a GA-intent +classifier that stops intentional non-functional addresses from raising false errors. On a +real 685-GA Zennio project the intent work cut false errors **29 → 6** and missing-status +noise **79 → 45** while preserving all 12 genuine `dpt_mismatch_co` catches. + ### Added - **Colour lights, climate entities and a status-pairing fix** (Track A), driven by the real signed demo and a 685-GA Zennio project. @@ -127,7 +136,8 @@ Initial public beta. - Tested end-to-end on a synthetic project only; real-world `.knxproj` testing is ongoing (see the call for testers in the README). -[Unreleased]: https://github.com/NickoScope/nickol-knx-mcp/compare/v0.1.2...HEAD +[Unreleased]: https://github.com/NickoScope/nickol-knx-mcp/compare/v0.2.0...HEAD +[0.2.0]: https://github.com/NickoScope/nickol-knx-mcp/compare/v0.1.2...v0.2.0 [0.1.2]: https://github.com/NickoScope/nickol-knx-mcp/compare/v0.1.1...v0.1.2 [0.1.1]: https://github.com/NickoScope/nickol-knx-mcp/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/NickoScope/nickol-knx-mcp/releases/tag/v0.1.0 diff --git a/nickol_knx_mcp/__init__.py b/nickol_knx_mcp/__init__.py index c4ba04d..6f7513c 100644 --- a/nickol_knx_mcp/__init__.py +++ b/nickol_knx_mcp/__init__.py @@ -1,2 +1,2 @@ """nickol-knx-mcp: design-time KNX/ETS project assistant MCP server.""" -__version__ = "0.1.0" +__version__ = "0.2.0" diff --git a/pyproject.toml b/pyproject.toml index 9047a7f..5a3ec00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "nickol-knx-mcp" -version = "0.1.2" +version = "0.2.0" description = "Design-time KNX/ETS6 project assistant as an MCP server (parse .knxproj, validate, generate HA YAML + ETS CSV/XML). No live bus access." readme = "README.md" requires-python = ">=3.10" diff --git a/tests/test_pipeline.py b/tests/test_pipeline.py index 05056f7..b7f5f25 100644 --- a/tests/test_pipeline.py +++ b/tests/test_pipeline.py @@ -253,7 +253,7 @@ print("OK: full light entity (no dup switch); 1.001/1.017 cover; datetime -> rev # --------------------------------------------------------------------------- # # Regression (Track D): GA-intent classification removes real-project NOISE. -# Patterns taken verbatim from the real Minsk (Zennio) project, where reserve +# Patterns taken verbatim from a real large Zennio project, where reserve # spares + internal logic GAs produced ~29 false errors and dozens of false # missing-status warnings. Non-functional GAs must be reclassified, while a real # functional problem must STILL be flagged (no over-suppression). @@ -316,7 +316,7 @@ print("OK: reserve/logic/scratch de-noised; real DPT + status problems preserved # --------------------------------------------------------------------------- # # Regression (Track A): colour light assembly + B1 (no borrowed brightness_state) -# + climate assembly. Patterns from the real signed demo / Minsk projects. +# + climate assembly. Patterns from the real signed demo / a real Zennio project. # --------------------------------------------------------------------------- # print("\n=== REGRESSION: colour light + B1 status borrow + climate (Track A) ===")