v0.4.0 — sub-DPT linter + KNX Secure posture
Two new lint dimensions: does the DPT sub-type match what the name promises, and is the project's KNX Secure posture consistent. This release adds a conservative sub-DPT sanity linter and a report-only KNX Data Secure posture summary (no key material ever touched), plus itemised QA findings in the handover pack.
Added
- A1 — sub-DPT sanity linter (surfaced by
check_dpt/analyze_allas thesubdpt_suspectfinding). When a GA name implies a specific DPT sub-type (temperature →9.001, power →14.056, brightness/position →5.001), the linter flags a wrong sub-type or a wrong main type. Multilingual, deliberately conservative — it only fires on unambiguous names. - A4 — KNX Data Secure posture (
secure_posture(), new MCP toolcheck_secure). Report-only summary: secured vs plaintext GA counts, middle groups mixing secure + plaintext objects, and a keyring (.knxkeys) handover checklist. Reads only the per-GASecurityflag — no key material is read, derived, or emitted. - KNX Secure posture section in the handover pack — section 5 of
handover.mdrewritten from a flat count into the full posture section (counts, mixed-group flag, keyring checklist). - Itemised QA findings in the handover pack — section 6 lists the actual 🔴 errors and 🟡 warnings (address + name, grouped by check), not just totals.