Skip to content

Commit b6bc7ae

Browse files
committed
docs: bring CURRENT_STATE up to date with 0.4.3 and the scenario corpus work
The living document drifted through two paths that bypass a normal feature PR: the release PR is created by the changesets action and never touches this file, and issue-only work leaves no PR at all. Records the 0.4.3 release, and the 0.3.2 release from 2026-07-14 that was never logged either. Corrects the package status table, which had said 0.3.1 since the v0.4.0 release. Adds a section covering the external contribution pipeline: the second good-first-issue completing, the patch-not-minor changeset decision, the detection-rule coverage audit that found 3 of 16 rules with no scenario, the three issues opened to close it, the retarget of #108, and the station ID allocation. Also corrects an overclaim introduced in #135. PR #133 was described as the first external contribution to a good-first-issue. It is the second: #105 was labelled good-first-issue and Develop-KIM completed it in #114, shipped in 0.3.1. Notes the open design questions on #144 under pending decisions, which had claimed nothing was outstanding. Closes #145
1 parent a2c57ce commit b6bc7ae

1 file changed

Lines changed: 52 additions & 8 deletions

File tree

CURRENT_STATE.md

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
55
## Current Version
66

7-
`0.4.2`, STATUS_TRANSITION_VIOLATION per-connector fix (published 2026-07-22).
8-
The v0.4.x line is complete.
7+
`0.4.3`, firmware-update-success scenario (published 2026-07-28). The v0.4.x
8+
line is complete. `0.4.3` carries the second `good-first-issue` completed by an
9+
outside contributor, after `REPEATED_BOOT_NOTIFICATION` (Issue #105, PR #114) in
10+
`0.3.1`.
911

1012
## Active Milestone
1113

@@ -250,6 +252,12 @@ these fixes introduce is required across detection.
250252
-`@ocpp-debugkit/toolkit@0.3.1` published to npm
251253
- ✅ Git tag `v0.3.1` + GitHub release `v0.3.1` created
252254

255+
### v0.3.2 Release
256+
257+
-`@ocpp-debugkit/toolkit@0.3.2` published 2026-07-14, corrected the package
258+
README, which advertised 10 detection rules and 10 scenarios against the 16
259+
and 15 actually shipping (Issue #118, PR #119)
260+
253261
### Open OCPP Trace Input Adapter (PR #124)
254262

255263
-`parseOpenOcppTrace()` reads the Open OCPP Trace v1.1 interchange format
@@ -280,13 +288,14 @@ these fixes introduce is required across detection.
280288
scoped to cumulative energy registers per connector (Issue #127, PR #129)
281289
-`@ocpp-debugkit/toolkit@0.4.2` published 2026-07-22,
282290
`STATUS_TRANSITION_VIOLATION` tracked per connector (Issue #128, PR #131)
283-
- ✅ Git tags + GitHub releases `v0.4.0`, `v0.4.1`, `v0.4.2` created
291+
-`@ocpp-debugkit/toolkit@0.4.3` published 2026-07-28,
292+
`firmware-update-success` scenario (Issue #104, PR #133)
293+
- ✅ Git tags + GitHub releases `v0.4.0` through `v0.4.3` created
284294

285295
### Contributor Onboarding Fixes (Issue #134)
286296

287-
- ✅ First external contribution to a `good-first-issue` arrived (#133,
288-
firmware-update-success scenario for #104). Second external contributor after
289-
#114.
297+
- ✅ Second external contribution to a `good-first-issue` arrived (#133,
298+
firmware-update-success scenario for #104), after #114 for #105.
290299
-`CONTRIBUTING.md` now documents `pnpm format:check`, which CI enforced and
291300
the guide never named, with both command lists ordered to match the CI job
292301
- ✅ Hard-coded rule and scenario counts dropped from the architecture table
@@ -295,6 +304,36 @@ these fixes introduce is required across detection.
295304
IDs are documented as unique per scenario
296305
- ✅ Good-first-issues carry a one-open-claim-at-a-time policy
297306

307+
### External Contribution Pipeline (2026-07-26 to 2026-07-28)
308+
309+
- ✅ Second `good-first-issue` completed by an outside contributor: #133 for
310+
#104, shipped in `0.4.3`. The scenario registry is at 16. Two of the five
311+
original good-first-issues have now been completed, by two different people.
312+
- ✅ Scenario changesets sized as `patch`, not `minor` (Issue #142, PR #143).
313+
The changeset from #133 was a minor, which would have spent `0.5.0` on one
314+
scenario and pushed OCPP 2.0.1 to `0.6.0`. The convention is now written into
315+
`CONTRIBUTING.md`.
316+
- ✅ Detection-rule coverage audited: 13 of 16 rules had a scenario.
317+
`TIMEOUT_NO_HEARTBEAT`, `FIRMWARE_UPDATE_FAILURE` and
318+
`REPEATED_BOOT_NOTIFICATION` had none.
319+
- ✅ Three good-first-issues opened to close that gap (#137, #138, #139), each
320+
with its full trace specified and checked against the detection engine before
321+
publishing, so the specs are known to fire exactly one rule.
322+
-#108 (`meter-value-zero`) retargeted as a negative control. Its original
323+
`expectedFailures: ['METER_VALUE_ANOMALY']` could not hold: that rule fires
324+
only on negative or decreasing cumulative readings, and a flat series is
325+
neither.
326+
- ✅ Station IDs allocated per issue so parallel work cannot collide:
327+
`CS-SYNTHETIC-016` shipped in #133, `017` to #108, `018` to #137, `019` to
328+
#138, `020` to #139.
329+
- 🔜 #140 proposes the standing invariant that every detection rule ships with a
330+
scenario in the same PR, which is what stops this gap reopening.
331+
- 🔜 #144 proposes a `METER_VALUE_STUCK` rule for a register that never advances,
332+
the positive counterpart to #108.
333+
334+
Scenario arithmetic to the v1.0 target of 20+: 16 today, plus #108, #137, #138
335+
and #139 lands at 20, at which point all 16 detection rules are covered.
336+
298337
## What's Next
299338

300339
1. **v0.5.0 - OCPP 2.0.1 Support** - extend the engine beyond 1.6J: message
@@ -306,13 +345,18 @@ these fixes introduce is required across detection.
306345

307346
## Known Blockers / Decisions Pending
308347

309-
- None currently. All design decisions resolved in ADRs.
348+
- Nothing is blocked. One design question is open: #144 (`METER_VALUE_STUCK`)
349+
needs decisions on what counts as stuck, how to avoid reporting legitimate
350+
`SuspendedEV` / `SuspendedEVSE` flatlines, whether a register stuck at zero is
351+
a separate signal from one stuck at a non-zero value, and severity. It most
352+
likely wants the per-connector model arriving with v0.5.0, so it is not
353+
urgent.
310354

311355
## Package Status Table
312356

313357
| Package | Status | Version |
314358
|---------|--------|---------|
315-
| `@ocpp-debugkit/toolkit` | published | 0.3.1 |
359+
| `@ocpp-debugkit/toolkit` | published | 0.4.3 |
316360
| `@ocpp-debugkit/core` | deprecated | 0.1.1 |
317361
| `@ocpp-debugkit/scenarios` | deprecated | 0.1.1 |
318362
| `@ocpp-debugkit/reporter` | deprecated | 0.1.1 |

0 commit comments

Comments
 (0)