# Changelog

## [1.0.0] - 2026-06-09

Initial release — a broad SCADA / industrial-control platform for energy & utilities.

### Added
- **Sites & assets** — sites by sector (electric/gas/water/renewable); assets with operating state and lockout/tagout
  (`create_site`, `list_sites`, `create_asset`, `get_asset`, `list_assets`, `set_asset_state`, `set_lockout`)
- **Tags & telemetry** — typed points (analog/status/setpoint/control), reading ingest with a historian, and trend summaries
  (`create_tag`, `get_tag`, `list_tags`, `ingest_reading`, `tag_history`, `tag_trend`)
- **Alarms** — auto-raise/clear on thresholds plus a manual lifecycle (active→acknowledged→cleared)
  (`list_alarms`, `raise_alarm`, `acknowledge_alarm`, `clear_alarm`)
- **Control (safety-critical)** — a 6-check interlock chain; `issue_command` applies a value only on an all-pass, records rejections; `check_interlocks` dry-run
  (`check_interlocks`, `issue_command`, `command_history`)
- **Outages** — auto-triaged priority (safety hazard → P1) and a priority-ordered queue
  (`report_outage`, `update_outage_status`, `outage_queue`)
- **Maintenance** — work orders with scheduling and assignment
  (`create_work_order`, `update_work_order`, `list_work_orders`, `audit_log`)
- 27 tools total; `risk_level = "critical"`. Control writes (`issue_command`, `set_lockout`, `set_asset_state`) are `external_write` + approval-gated; full command audit trail.
- 16 tests (12 integration + 4 manifest) covering all six interlocks; verified end-to-end over MCP stdio.

### Safety note
This is an in-memory reference engine. Production deployments must additionally enforce control interlocks at the RTU/PLC/field level and through hardware protection — software gates are defense-in-depth, not a substitute.
