Skip to content

ADRs en

EnerOS Bot edited this page Jul 5, 2026 · 1 revision

中文 | English

ADRs (Architecture Decision Records Index)

Maintained version: v0.51.2 | Last updated: 2026-07-06

EnerOS uses ADR (Architecture Decision Records) to record major architecture decisions. Each ADR contains: Context → Decision → Status → Consequences.

Full ADR files at docs/adr/.


ADR List (19 records)

# Title Decision Summary Status
0001 Record architecture decisions Adopt ADR template for major architecture decisions Accepted
0002 Position as Power-Native Agent OS EnerOS positioned as Power-Native AgentOS, not general-purpose OS Accepted
0003 v0.28.0 plugin-daemon process isolation Plugins loaded in standalone daemon process, IPC communication Accepted
0004 TOML scenario script engine TOML scenario definition + 7 action types Accepted
0005 CNPOWER native Rust port Python cnpower → Rust eneros-cnpower, zero Python dependency Accepted
0006 Multi-tenant namespace isolation <tenant_id>:<resource_id> isolation, cross-tenant default deny Accepted
0007 Zero-trust mTLS and security enhancement 4 new crates (trust/audit/ids/compliance) Accepted
0008 Operations automation SLO/AIOps/Ops three layers + 25 endpoints + 3 daemons Accepted
0009 High availability enhancement Multi-region active-active + WAL replication + DR orchestration + CRDT/LWW Accepted
0010 Agent intelligence advancement 5 modules: collab/learning/decomposition/strategy/explain Accepted
0011 Grid analysis advancement Dynamic state estimation + real-time stability + EMTP + harmonics + equivalence Accepted
0012 IoT ubiquitous access MQTT/CoAP/LwM2M + sensor aggregation + edge OTA Accepted
0013 Visualization and interaction enhancement 3D glTF + NL + reports + PWA + mobile Accepted
0014 Internationalization and compliance Fluent i18n + GDPR/PIPL/CCPA + DL/T 698/645 Accepted
0015 RT type-level and safety type-level Validated + NoAlloc + WCET + lockfree Accepted
0016 v0.50.0 power MVP vertical loop enerosctl demo 9-step loop + 7 tech debt cleanup Accepted
0017 LLM Agent real-scenario verification 100 scenarios + 4 hard metrics + Ollama qwen2.5:14b Accepted
0018 LLM Agent semantic correctness verification 11 expectation rules + 3 matching dimensions + 20-round main test Accepted
0019 v0.51.0 algorithm accuracy + protocol fuzz FD solver + MATPOWER + 4-protocol fuzz + proptest Accepted

Status Definitions

  • Accepted — Adopted, in effect
  • Proposed — Proposed, pending discussion
  • Deprecated — Deprecated, replaced by subsequent ADR
  • Superseded — Replaced by subsequent ADR (history retained)

When to Write a New ADR

Per ADR-0001 and project memory rules, structural changes require a new ADR:

  • Add / remove / rename a crate
  • Modify eneros-core public types or error enums
  • Modify core Trait signatures
  • Adjust layered dependency direction
  • Add protocol adapter / HAL backend
  • Introduce new security model or trust boundary
  • Introduce new execution domain or scheduling policy

ADR template:

# ADR-00NN: <Title>

## Status
Accepted / Proposed / Deprecated / Superseded by ADR-00MM

## Context
<Why is this decision needed? What is the current state? What is the problem?>

## Decision
<What did we decide? Why? What alternatives were considered?>

## Consequences
<Positive consequences / Negative consequences / Risks and mitigations>

Next Steps

Clone this wiki locally