78 lines
5.2 KiB
Markdown
78 lines
5.2 KiB
Markdown
# V4 Unified RC1 - actual scope and release boundary
|
|
|
|
This release consolidates application data recovery, native delivery status, economic
|
|
family comparison, and optional verified archival. It is NOT a production actuation
|
|
release. No claim that all original product requirements or hardware acceptance are
|
|
complete. Sources are in the existing develop branch, not feature branches.
|
|
|
|
## Delivered code
|
|
|
|
* Audited recovery for the exact 100.0/100 splitToleranceW serialization defect.
|
|
The internal operator endpoint validates the two complete JSON representations,
|
|
their exact SHA256, installation, inventory, and every field. Only that numeric
|
|
representation may differ. Device-supplied arbitrary aliases are never accepted.
|
|
Existing rows/measurements are not rewritten. The original received mapping and
|
|
proof reference are recorded with the observation. A mixed 45/75 block and retries
|
|
are regression tested. Adoption requires an explicit deployment flag.
|
|
* Native normalization prevents recurrence. The sender preserves a separate last
|
|
successful receipt even during scheduled/backoff states, reports safe numeric HTTP
|
|
status (no response or credential text), and continues trying to deliver a durable
|
|
prefix if the current capture cannot be appended. No cursor reset or skipped block.
|
|
* Economic comparison is actually connected, not an empty score list. At the start
|
|
of a local calendar day the worker freezes comparable plans for families 3/13/23
|
|
with the then-known forecasts, prices and common battery/limit state. Completed
|
|
days are evaluated against subsequently acquired physical residual data. Initial
|
|
energy, losses, common terminal energy valuation and 15-minute demand charge are
|
|
included; monthly maxima are charged once over a comparison period, not per day.
|
|
GUI lookback/minimum days/coverage/switch margin are applied by the selector.
|
|
* v1 economic scope: one grid-charge-enabled battery, frozen day-ahead plans, with
|
|
local grid-target tracking simulated during the day. It is NOT a full receding-
|
|
horizon replay. Historical external SDL uses the then-recorded SDL request and is
|
|
clearly marked as an estimate, not independently measured delivery. Missing
|
|
actuals, unmatched contexts and breaches cannot become zero cost or a successful
|
|
comparison. Broader device topologies stay collecting; no fake equivalence.
|
|
* Lossless archive implementation and tests are present for acknowledged old native
|
|
outbox days and old server observations/plans. Archives are verified before plain
|
|
rows/files are retired. Active plans, acknowledged plans and unacknowledged data
|
|
are excluded. Archiving is OFF by default; enable only with an explicit storage
|
|
policy (native NetzfahrplanV4ArchivAktiv; server NETPLAN_V4_ARCHIVE_ENABLED=1).
|
|
Compressed archives are retained: this is not an external backup or infinite disk.
|
|
|
|
## Deployment is not data/model/actuator acceptance
|
|
|
|
Server entry: commissioning/deploy_unified_release.py. Default checks sources only.
|
|
--apply builds and tests a separate candidate context with no network/production
|
|
mounts before replacing the V4 service. It preserves the running plant allowlist,
|
|
backs up SQLite consistently, and uses a pinned built image. Only the V4 planner JS
|
|
asset is updated; unrelated GUI work, portal runtime, tariffs, forecasting, Symcon
|
|
and actuators are untouched. Rollback restores previous source/image; additive audit
|
|
rows remain. Database schema changes do not overwrite old observations.
|
|
|
|
--approve-numeric-mapping-compatibility explicitly authorizes the demonstrated pair
|
|
of equivalent configuration representations. Without it, strict original validation
|
|
remains and backlog containing the legacy serialization is still rejected.
|
|
|
|
Lihrenmoos native stage: /srv/agent/netplan-v4-unified-release/install.php.
|
|
This patches three data-only libraries, reloads the existing library, compares all
|
|
pre-existing properties and lets the existing data timer resume. No raw replay,
|
|
force-skip or actuator callback from the installer. Archiving stays disabled by default.
|
|
|
|
## Remaining product work - do not label as complete
|
|
|
|
1. The full production dispatcher is not installed. Earlier controlled-trial code
|
|
still has bounded pilot grants; continuous production authority and complete
|
|
corrected physical/virtual feedback integration are NOT delivered by this RC.
|
|
2. The actual host/container/kernel and field acceptance of this release are not
|
|
replaced by CLI mocks. Real source validity and independent command-loss behavior
|
|
are not asserted by a measurement algebra or an override.
|
|
3. The replay limitation above must be accepted as a beta feature, or extended to
|
|
continuous rolling reoptimization and additional asset types before advertising
|
|
the original full automatic-selection requirement.
|
|
4. Native multi-plant commissioning, external backups, retained archive lifecycle,
|
|
model quality on field data and publication authentication remain operational
|
|
release criteria. The tests do not demonstrate actual cost savings.
|
|
|
|
Do not re-run obsolete piecemeal installers after this release, bypass their source
|
|
checks, turn the previous grid schedule on, or turn 'productionReady' true manually.
|
|
The retained EV capacity is 161.44 kWh / 39 kW; SDL reserve is already outside EV.
|