ARES

ADR-0004: The frontend consumes ARES contracts, never framework shapes

Status: Accepted Date: 2026-07-22 (recorded retroactively; stated in FOUNDATION)

Context

Upstream Hermes WebUI has no translation layer, and does not need one: one team owns both the agent and the UI, so payload shapes simply match.

ARES aggregates several runtimes whose payloads differ in field names, source vocabulary, and provenance. Without normalization, framework concepts leak into components and every new worker becomes a UI change.

Decision

frontend/src/shared/translators.ts converts backend payloads into ARES-owned contracts declared in frontend/src/shared/contracts.ts. Components consume only contracts. FOUNDATION states this as a hard boundary.

Consequences

Good:

Costs:

Rules

Revisit if

Never, while ARES supports more than one runtime. The layer is the reason the UI is worker-agnostic.