Skip to content

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

Description

@sepehr-safari

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.tsbuildSessionTimeline(events: Event[]): Session[] correlating events by transactionId (ADR-0006), with connectorId and stationId as secondary groupings
  • packages/core/src/detection.tsdetectFailures(events: Event[], sessions: Session[]): Failure[] implementing 3 rules:
    1. FAILED_AUTHORIZATIONAuthorize response with idTagInfo.status = "Invalid"
    2. CONNECTOR_FAULTStatusNotification with status = "Faulted" during an active session
    3. STATION_OFFLINE_DURING_SESSION — session has StartTransaction but no StopTransaction, or connector transitions to Unavailable/Offline during an active transaction
  • packages/core/src/summarizer.tssummarizeSession(session: Session): SessionSummary producing overview stats (event count, duration, failure count, action sequence)
  • packages/core/src/validator.tsvalidateMessage(event: Event): ValidationResult checking OCPP 1.6 JSON message structure compliance
  • Unit tests for all modules, 70%+ coverage

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions