From 23cda8e24ac873f2c2bd04a3d44af74199cda4e2 Mon Sep 17 00:00:00 2001 From: Ari Sulistiono Date: Fri, 16 Oct 2026 07:49:19 +0700 Subject: [PATCH] docs(workbench): record accepted P0 wire-budget and orphan-response hardening --- docs/WORKBENCH_CURRENT_HANDOFF.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/WORKBENCH_CURRENT_HANDOFF.md b/docs/WORKBENCH_CURRENT_HANDOFF.md index b1dfb8e99..aba62d60c 100644 --- a/docs/WORKBENCH_CURRENT_HANDOFF.md +++ b/docs/WORKBENCH_CURRENT_HANDOFF.md @@ -4,6 +4,15 @@ > **Primary strategy and ownership contract:** [WORKBENCH_ARSAS_GUI_SSOT_STRATEGY.md](WORKBENCH_ARSAS_GUI_SSOT_STRATEGY.md). > **Scope:** installed native ARStack Workbench in apps/ied_simulator. Not a web app, WPF clone, or the separate ESP32-P4/SMV Studio track. +## Latest accepted P0 checkpoint — 2026-10-16 (WIB) + +- **Main HEAD after integration:** `aae37327d8e9c40314f4a86b6127a12d38248420` (merge of #187). This supersedes the older baseline in the historical section below; always re-query GitHub before further writes. +- **[PR #185](https://github.com/masarray/arstack61850/pull/185) MERGED** at `8fba05d19e02d94af333fae02313f7430a6696e1`, exact PR head `3903d88623a4dfe66320967d0da8bd8c512dc7e7`, **12/12 exact-head workflow SUCCESS** and no unresolved reviews. Native Workbench exposes immutable measured GetNameList/GVAA/DataSetDirectory/RCB Read confirmed-request counts on completed live discovery. No additional wire traffic, GUI polling, or protocol concurrency. Post-merge CI should be verified separately at the merge SHA; exact-PR evidence is not an installed-package or field IED test. +- **[PR #187](https://github.com/masarray/arstack61850/pull/187) MERGED** at `aae37327d8e9c40314f4a86b6127a12d38248420`, exact PR head `882dd307a2452ca3c0d62f9d3779e8588a5dc7db`, **13/13 exact-head workflow SUCCESS** (GCC, Clang, MSVC, native Qt, interoperability, security, naming guard), zero unresolved review threads. Fixes a confirmed-response integrity hazard: an out-of-order/unexpected invoke ID or an idle-orphan cached response must not acknowledge a future, unsent request. The serial runtime faults and closes the association instead of replaying stale evidence. Added two targeted MMS runtime negative tests; all 48 CTest cases passed on Linux GCC and Clang. No Write/Control/GI/RCB enable, extra Read, new polling, or naive concurrency. +- **Transport ownership audit:** `exchange_confirmed`, `poll_once`, and `try_poll_once_for` call a synchronous association-owned receive primitive. The thread-safe invoke queue is **not** a thread-safe transport dispatcher; no safe simultaneous confirmed exchange or receive route exists. The negotiated `maximum_outstanding_calling` is decoded and retained but not yet enforced as an in-flight window. InformationReport routing remains separately bounded; cancellation, timeout, reconnect, and per-exchange send receipt must retain their established semantics. Detailed source audit is recorded in [PR #187 discussion](https://github.com/masarray/arstack61850/pull/187). +- **Next P0 engineering slice:** Only after an explicit association-owned send/receive dispatcher, invoke lifecycle registration, bounded negotiated concurrency, frame-write serialization, cancellation/reconnect fences and deterministic model parity tests exist, consider opt-in concurrent GetNameList chains. Prefer a measured non-concurrent optimization or additional negative regression first. Compare exact LD/LN/DO/DA, ordered FCDA, RCB, type coverage, wire-budget, failure behavior, CPU/latency and time-to-first-model on the same device. +- **Acceptance still open:** post-merge exact main check completion, installed Windows Workbench verification, real relay/IED trials, and hardware ESP32-P4/SV/PTP qualification. Native Workbench `apps/ied_simulator` and separate Studio `apps/arstack_studio` remain distinct products. No physical interop or speedup claim has been established. + ## P0 MMS Discovery interoperability and failure containment — 2026-10-16 - **Integrated baseline**: main `6cc64b384b643fe85b71b9e2082daa1e805766c8`. Source remains the portable IEC 61850 C++ engine under `src/mms/` and `include/ariec61850/mms/`, consumed by the native Qt Workbench; the ESP32-P4 SV Studio is a separate product.