Scope
Build the analysis layer on top of the parser/normalizer: session timeline construction, three failure detection rules, session summarizer, and message validator.
Deliverables
Acceptance Criteria
buildSessionTimeline() correctly groups events into sessions by transactionId
- All 3 failure detection rules work on the existing fixtures (
normal-session, failed-auth, connector-fault)
summarizeSession() produces useful stats
validateMessage() catches structural OCPP message violations
- 70%+ coverage
Dependencies
Branch
feat/core-timeline-detection
Scope
Build the analysis layer on top of the parser/normalizer: session timeline construction, three failure detection rules, session summarizer, and message validator.
Deliverables
packages/core/src/timeline.ts—buildSessionTimeline(events: Event[]): Session[]correlating events bytransactionId(ADR-0006), withconnectorIdandstationIdas secondary groupingspackages/core/src/detection.ts—detectFailures(events: Event[], sessions: Session[]): Failure[]implementing 3 rules:Authorizeresponse withidTagInfo.status = "Invalid"StatusNotificationwithstatus = "Faulted"during an active sessionStartTransactionbut noStopTransaction, or connector transitions toUnavailable/Offlineduring an active transactionpackages/core/src/summarizer.ts—summarizeSession(session: Session): SessionSummaryproducing overview stats (event count, duration, failure count, action sequence)packages/core/src/validator.ts—validateMessage(event: Event): ValidationResultchecking OCPP 1.6 JSON message structure complianceAcceptance Criteria
buildSessionTimeline()correctly groups events into sessions bytransactionIdnormal-session,failed-auth,connector-fault)summarizeSession()produces useful statsvalidateMessage()catches structural OCPP message violationsDependencies
Branch
feat/core-timeline-detection