Перейти до основного вмісту

Changelog

What's new on alvo.energy

What we shipped and when — newest first. Each entry describes what changed for the user. Categories help you scan.

Trust

Linked source chips + freshness timestamps

  • Every chip in the AI brief Sources row is clickable — jumps to the data card that fed it (#coupling, #multi-zone, #system-ops, #balancing, #dam).
  • ENTSO-E live cards now show a self-updating "updated N min ago" badge that ticks every 30s.
  • Smooth-scroll on click; scroll-margin honors the sticky topbar.
Polish

Loading skeletons + mobile polish + OG image

  • /app and /account render structural skeletons during SSR fan-out — no more blank wait screen.
  • Mobile polish: AI brief chip row never overflows phone viewport, topbar tighter on narrow screens.
  • Refreshed OG image: proof points (OREE live · ENTSO-E live · AI brief · Audit trail) instead of vague marketing.
Performance

ISR for static pages + a11y skip-link

  • 20 pages (legal, glossary, help, developers, offline) now statically prerender with ISR (6h–24h revalidate) — instant TTFB.
  • Skip-to-content link surfaces on keyboard focus; proper id="main-content" on every top-level page.
  • Source chips converted to semantic <ul>/<li> with aria-labelledby.
Polish

PDF / Excel export polish + day-shape sparkline

  • PDF now carries a branded footer (alvo.energy + contacts + rationale ID), pilot badge, and an inline SVG day-shape curve between the summary and plan tables.
  • Excel gained a dedicated Cover sheet (headline + contacts + disclaimer); data sheets ship with auto-filter + frozen header.
  • Rationale ID from the audit trail now lives in PDF footer + Excel cover — for reconciliation with the event log.
AI brief

AI brief credibility boost

  • Data coverage now credits ENTSO-E EU coupling (+8), regional DAM (+8), UA system context (+3) — these three signals were live on /app but the scorer ignored them.
  • Decision quality: live EU context adds +8 and a "multi-zone benchmark anchor" reason.
  • Decision sensitivity: live EU adds +6 and a "cross-market check" entry.
  • "Sources that fed this brief" chip row with type icons (OREE / ENTSO-E / NEURC / NBU / weather).
Platform

/sla, /aup, /glossary shipped

  • /sla — uptime targets (best-effort 99.5% pilot → 99.9% GA), P1–P4 support tiers, service credits.
  • /aup — Acceptable Use Policy with explicit REMIT manipulation ban, rate limits, escalation policy.
  • /glossary — bilingual term dictionary (DAM/IDM/BM/OREE/UEEX/ENTSO-E) with client-side search and per-term permalinks.
Data

ENTSO-E switched live on prod

  • EU Coupling (A11) — cross-border flows UA↔PL/SK/HU/RO/DE-LU.
  • Multi-zone Regional DAM (A44) — regional EU prices alongside UA.
  • UA Energy System (A65+A75) — total load + generation mix (UA TSO not yet publishing → fixture).
  • Negative-cache on upstream failure (60s TTL) — we don't slam ENTSO-E during rate-limits.
Ops

Legal pack + staging environment

  • Terms / Imprint / DPA / sub-processors registry — full legal foundation.
  • Staging dev.alvo.energy with its own compose stack on the same droplet (cost-efficient).
  • GitHub flow: push to `dev` → auto-deploy stage, push to `main` → auto-deploy prod.
  • Off-site backup framework (DO Spaces / B2 / SFTP, optional GPG).
Platform

RBAC enforcement + native auth + billing seam

  • RBAC enforcement (`ALVO_RBAC_ENFORCED=true`) on prod — owner/trader/analyst/risk/auditor permission matrix.
  • Integration test for AuthGuard + Reflector wiring over the HTTP layer — catches the silent-noop regression.
  • Native bilingual /login + register + password reset + MFA — replaces WorkOS hosted UI.
  • Provider-agnostic billing seam: LiqPay (UAH) + Paddle (EUR), inert until ALVO_*_KEY env vars are set.