Skip to content

feat(core): session timeline + failure detection + summarizer + validator - #34

Merged
sepehr-safari merged 1 commit into
mainfrom
feat/core-timeline-detection
Jul 7, 2026
Merged

feat(core): session timeline + failure detection + summarizer + validator#34
sepehr-safari merged 1 commit into
mainfrom
feat/core-timeline-detection

Conversation

@sepehr-safari

Copy link
Copy Markdown
Member

Summary

Implements the session timeline builder, three failure detection rules, session summarizer, and OCPP message validator.

Closes #21

Changes

New files

  • packages/core/src/timeline.tsbuildSessionTimeline() correlating events by transactionId (ADR-0006), with connectorId and stationId as secondary groupings
  • packages/core/src/detection.tsdetectFailures() implementing 3 rules:
    1. FAILED_AUTHORIZATION — Authorize response with idTagInfo.status = "Invalid"
    2. CONNECTOR_FAULT — StatusNotification with status = "Faulted" during active session
    3. STATION_OFFLINE_DURING_SESSION — session has StartTransaction but no StopTransaction, or connector transitions to Unavailable/Offline during active transaction
  • packages/core/src/summarizer.tssummarizeSession() / summarizeSessions() producing overview stats (event count, duration, failure count, action sequence)
  • packages/core/src/validator.tsvalidateMessage() / validateMessages() checking OCPP 1.6 JSON message structure compliance
  • 40 new unit tests (10 timeline + 11 detection + 5 summarizer + 14 validator)

Updated files

  • packages/core/src/index.ts — barrel exports for all new modules
  • CURRENT_STATE.md — updated to reflect v0.1.0 progress

Test Coverage

  • All 3 detection rules tested against existing fixtures
  • Timeline builder tested with single session, multiple sessions, empty events, missing StopTransaction
  • Summarizer tested with real fixture data
  • Validator tested with valid messages, invalid structure, type inconsistency, response matching

Verification

  • pnpm lint — ✅
  • pnpm typecheck — ✅
  • pnpm test — ✅ (147 tests, all passing)
  • pnpm build — ✅
  • pnpm format:check — ✅

…ator

- buildSessionTimeline() correlates events into sessions by transactionId (ADR-0006)
- detectFailures() implements 3 rules: FAILED_AUTHORIZATION,
  CONNECTOR_FAULT, STATION_OFFLINE_DURING_SESSION
- summarizeSession()/summarizeSessions() produce overview statistics
- validateMessage()/validateMessages() check OCPP 1.6 JSON structural compliance
- 40 new unit tests (10 timeline + 11 detection + 5 summarizer + 14 validator)

Closes #21
@sepehr-safari sepehr-safari added this to the v0.1.0 — Inspector MVP milestone Jul 7, 2026
@sepehr-safari sepehr-safari added type:feature New feature or enhancement package:core @ocpp-debugkit/core labels Jul 7, 2026
@sepehr-safari
sepehr-safari merged commit f2cef5d into main Jul 7, 2026
1 check passed
@sepehr-safari
sepehr-safari deleted the feat/core-timeline-detection branch July 7, 2026 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package:core @ocpp-debugkit/core type:feature New feature or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(core): session timeline + failure detection + summarizer + validator

1 participant