docs: point markdown backlogs at Gitea issues (status lives in Gitea)
v2-ci / unit-tests (push) Waiting to run
v2-ci / unit-tests (push) Waiting to run
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
# System Review Remediation Implementation Plan
|
||||
|
||||
> **Status lives in Gitea.** Open items from this file are tracked as issues on gitea.dohertylan.com/dohertj2/lmxopcua
|
||||
> (label `migrated`, 2026-11-06). This file is a historical/design record — do not track status here; file new work as an issue.
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers-extended-cc:subagent-driven-development (recommended) or superpowers-extended-cc:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** Resolve every finding from the 2026-10-21 8-slice Fable system review of OtOpcUa (master `d51d35bd`): 1 Critical, ~25 High, ~60 Medium, ~85 Low. These are memory/resource leaks, unimplemented features, performance limiters, and concurrency/health-contract hazards.
|
||||
@@ -247,7 +250,7 @@ Merge order inside a wave is alphabetical by lane, rebasing as needed. Two lanes
|
||||
- **E2 Sandbox hardening** (`R05:10`, `R05:11`):
|
||||
- Deny `System.Threading` with an allow-list (`CancellationToken`, `Interlocked`, `Volatile`).
|
||||
- Deny `System.Type.GetType`/`GetMethod*`/`InvokeMember` and `System.Runtime.CompilerServices.RuntimeHelpers`.
|
||||
- Add an allocation budget: sample `GC.GetAllocatedBytesForCurrentThread` around each run and quarantine on breach (`Scripting:MaxAllocBytesPerRun`, default 64 MB). Document that a pre-emptive OOM still needs an out-of-process runner, and file a follow-up issue for that.
|
||||
- Add an allocation budget: sample `GC.GetAllocatedBytesForCurrentThread` around each run and quarantine on breach (`Scripting:MaxAllocBytesPerRun`, default 64 MB). Document that a pre-emptive OOM still needs an out-of-process runner, and file a follow-up issue for that (→ #750).
|
||||
- Tests: each forbidden form gets an `OTSCRIPT` diagnostic, and the Monaco editor parity test still matches.
|
||||
- **E3 Scripted-alarm engine** (`R05:1`, `3`, `6`, `7`, `9`, `12`):
|
||||
- Clear `_valueCache` in `LoadAsync`; move its write below the `_disposed` guard.
|
||||
@@ -335,7 +338,7 @@ Each lane owns `src/Drivers/<Driver>*/**` + its `tests/Drivers/<Driver>*`, its A
|
||||
- `NotSupportedException` ⇒ `BadNotSupported`, no health, reject at `FromTagConfig` (`H16`).
|
||||
- Table swap (`H13`); prune semaphores on index change (`L7`).
|
||||
- **Array write encode** (`U10`); `IBatchSubscribable`.
|
||||
- Document the PLC-5 write capability gap with a hardware follow-up issue (`U6`).
|
||||
- Document the PLC-5 write capability gap with a hardware follow-up issue (`U6`) (→ #752).
|
||||
|
||||
### Lane TwinCAT
|
||||
- Per-registration isolation with dead-registration retry (`R07:H11`).
|
||||
@@ -399,7 +402,7 @@ Each lane owns `src/Drivers/<Driver>*/**` + its `tests/Drivers/<Driver>*`, its A
|
||||
**MQTT:**
|
||||
- Failed SUBSCRIBE ⇒ pending set retried on reconnect/reconcile, `SubscribeAsync` throws on a transport failure (`R06:M-1`).
|
||||
- **Wire `birthObservationWindowSeconds`** into `MqttDriverBrowser.OpenBudget` + discovery UntilStable (`M-4`).
|
||||
- Array leaves not bindable, plus a Sparkplug-array-read feature issue (`M-5`).
|
||||
- Array leaves not bindable, plus a Sparkplug-array-read feature issue (`M-5`) (→ #754).
|
||||
- Prune `LastValueCache` on Register (`M-2`).
|
||||
- Dispose the failed connection (`M-3`).
|
||||
- Wildcard topic trie (`M-6`); static UTF-8 encoder (`M-7`).
|
||||
@@ -409,7 +412,7 @@ Each lane owns `src/Drivers/<Driver>*/**` + its `tests/Drivers/<Driver>*`, its A
|
||||
- Row cap with a `TOP/LIMIT N+1` dialect + config-error status (`S-1`).
|
||||
- Rate-limited warnings (`S-6`); plan cache (`S-7`).
|
||||
- Dispose `_gate` (`S-3`).
|
||||
- `Query` model refused at the deploy gate via the parser + feature issues for MySql/Odbc/allowWrites (`S-4`).
|
||||
- `Query` model refused at the deploy gate via the parser + feature issues for MySql/Odbc/allowWrites (`S-4`) (→ #753).
|
||||
- `IS_NULLABLE` in browse attributes (`S-5`).
|
||||
- Withhold JSON parser text (`S-8`); `IBatchSubscribable`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user