From 4962fa57cbf0ba39b1ed2a7c2b7fd2291053dc2d Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 22 Oct 2026 08:29:14 -0400 Subject: [PATCH] docs(archreview): mark stream E/L rows done after merge; defer MxStatusDetailText test --- .../2026-10-21/remediation/00-tracking.md | 38 +++++++++---------- archreview/remediation/00-tracking.md | 6 +-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/archreview/2026-10-21/remediation/00-tracking.md b/archreview/2026-10-21/remediation/00-tracking.md index 704219a..93b6e4d 100644 --- a/archreview/2026-10-21/remediation/00-tracking.md +++ b/archreview/2026-10-21/remediation/00-tracking.md @@ -10,7 +10,7 @@ Tracks the findings of the 2026-10-21 system review and the cycle-1 findings tha - The review's own severity table is not in the repository. Only `R21-S1` carries a severity from the review (High); every other severity here is the triage estimate from the finding's impact and is open to correction. - The **Status** column is the single source of truth. Update it in the same change that lands the fix, and cite the finding ID in commit messages. -**Status legend:** `Done` · `Done (pending merge of stream E)` · `In progress (stream L)` · `Deferred` · `Won't fix` · `Open` · `Blocked (external)`. +**Status legend:** `Done` · `Done (merge 2013573)` · `Done (merge 2fad124)` · `Deferred` · `Won't fix` · `Open` · `Blocked (external)`. ## Execution model @@ -22,14 +22,14 @@ The review was remediated by ten parallel streams on branches `fix/review-2026-1 | B | `fix/review-2026-10-21-b` | WorkerClient (`R21-W1`) | Done, merged (`81d4cd8`) | | C | `fix/review-2026-10-21-c` | gRPC surface (`R21-G*`) | Done, merged (`3f9448f`) | | D | `fix/review-2026-10-21-d` | Dashboard (`R21-D*`) | Done, merged (`8212b0e`) | -| E | `fix/review-2026-10-21-e` | Worker (`R21-K*`) | Done (pending merge of stream E) — `7618caf`, follow-up `38fbbde` | +| E | `fix/review-2026-10-21-e` | Worker (`R21-K*`) | Done (merge 2013573) — `7618caf`, follow-up `38fbbde` | | F | `fix/review-2026-10-21-f` | .NET client | Done, merged (`3a1ee28`) | | G | `fix/review-2026-10-21-g` | Java client | Done, merged (`c18566b`) | | H | `fix/review-2026-10-21-h` | Go client | Done, merged (`7636573`) | | I | `fix/review-2026-10-21-i` | Rust client | Done, merged (`b2a7fc5`) | | J | `fix/review-2026-10-21-j` | Python client | Done, merged (`29d4e51`) | | K | `fix/review-2026-10-21-k` | Tracker triage (this document) | Done | -| L | (stream L branch) | Proto comments, docs, test gaps | In progress (stream L) | +| L | (stream L branch) | Proto comments, docs, test gaps | Done (merge 2fad124) | Worker changes (stream E) need the windev x86 build and `Worker.Tests` run after merge; stream E's own live facts passed on windev. @@ -96,15 +96,15 @@ All rows are on `fix/review-2026-10-21-e` (`7618caf`, follow-up `38fbbde`), not | ID | Sev | Area | Description | Status | Commit / stream | Reason / note | |---|---|---|---|---|---|---| -| R21-K1 | Medium | Worker | The write-completion cache and value cache were never evicted | Done (pending merge of stream E) | E: `7618caf`, `38fbbde` | Ghost-entry eviction on `AddItem` added in the follow-up | -| R21-K2 | Medium | Worker | `ReadBulk` was serial (N x timeout) | Done (pending merge of stream E) | E: `7618caf`, `38fbbde` | Shared deadline; dedupe and periodic message pumping in the follow-up | -| R21-K3 | Medium | Worker | One alarm-poll failure faulted the session (cycle-1 `WRK-05`) | Done (pending merge of stream E) | E: `7618caf` | Consecutive-failure threshold of 3 | -| R21-K4 | Low | Worker | The primary alarm consumer leaked when the standby build failed | Done (pending merge of stream E) | E: `7618caf` | | -| R21-K5 | Low | Worker | `StaRuntime` drained the whole queue before pumping messages | Done (pending merge of stream E) | E: `7618caf` | | -| R21-K6 | Medium | Worker | STA thread death after start was silent (cycle-1 `WRK-02`) | Done (pending merge of stream E) | E: `7618caf` | `LoopFault` becomes a `StaHung` WorkerFault | -| R21-K7 | Low | Worker | No unhandled-exception hook (cycle-1 `WRK-09`) | Done (pending merge of stream E) | E: `7618caf` | Exit code 7 | -| R21-K8 | Low | Worker | `RETRIGGER` handling was undocumented | In progress (stream L) | stream L | Documented as reserved, never synthesized; the proto comment is stream L's | -| R21-K9 | Medium | Tests | Live control-command facts for the worker (cycle-1 `TST-05` residual) | Done (pending merge of stream E) | E: `069972a`, `4ea3672` | Facts added and passing on windev | +| R21-K1 | Medium | Worker | The write-completion cache and value cache were never evicted | Done (merge 2013573) | E: `7618caf`, `38fbbde` | Ghost-entry eviction on `AddItem` added in the follow-up | +| R21-K2 | Medium | Worker | `ReadBulk` was serial (N x timeout) | Done (merge 2013573) | E: `7618caf`, `38fbbde` | Shared deadline; dedupe and periodic message pumping in the follow-up | +| R21-K3 | Medium | Worker | One alarm-poll failure faulted the session (cycle-1 `WRK-05`) | Done (merge 2013573) | E: `7618caf` | Consecutive-failure threshold of 3 | +| R21-K4 | Low | Worker | The primary alarm consumer leaked when the standby build failed | Done (merge 2013573) | E: `7618caf` | | +| R21-K5 | Low | Worker | `StaRuntime` drained the whole queue before pumping messages | Done (merge 2013573) | E: `7618caf` | | +| R21-K6 | Medium | Worker | STA thread death after start was silent (cycle-1 `WRK-02`) | Done (merge 2013573) | E: `7618caf` | `LoopFault` becomes a `StaHung` WorkerFault | +| R21-K7 | Low | Worker | No unhandled-exception hook (cycle-1 `WRK-09`) | Done (merge 2013573) | E: `7618caf` | Exit code 7 | +| R21-K8 | Low | Worker | `RETRIGGER` handling was undocumented | Done (merge 2fad124) | stream L | Documented as reserved, never synthesized; the proto comment is stream L's | +| R21-K9 | Medium | Tests | Live control-command facts for the worker (cycle-1 `TST-05` residual) | Done (merge 2013573) | E: `069972a`, `4ea3672` | Facts added and passing on windev | | R21-K10 | Low | Worker | Unregister-first shutdown cleanup | Deferred | — | Needs a parity probe against the installed MXAccess before it can change cleanup order | | R21-K11 | Medium | Security | A per-operator `AuthenticateUser` cache | Deferred | — | Security tradeoff (caching credentials' outcome); decide with the security owner before building | | R21-K12 | Low | Worker | Batch task-completion-source allocation rework | Deferred | — | Low value | @@ -135,14 +135,14 @@ All rows are on `fix/review-2026-10-21-e` (`7618caf`, follow-up `38fbbde`), not | ID | Sev | Area | Description | Status | Commit / stream | Reason / note | |---|---|---|---|---|---|---| -| R21-L1 | Low | Docs | `operator_full_name` is silently dropped; proto comment and docs do not say so | In progress (stream L) | stream L | | -| R21-L2 | Low | Contracts | `RETRIGGER` and the `WorkerFaultCategory` values `INVALID_ARGUMENTS` and `GATEWAY_AUTHENTICATION_FAILED` are reserved but not labeled so | In progress (stream L) | stream L | Proto comments | -| R21-L3 | Low | Docs | Stale notes in `stillpending.md` (sections 1.4, 3.4, 7.1) and the deferred-followups header | In progress (stream L) | stream L | | +| R21-L1 | Low | Docs | `operator_full_name` is silently dropped; proto comment and docs do not say so | Done (merge 2fad124) | stream L | | +| R21-L2 | Low | Contracts | `RETRIGGER` and the `WorkerFaultCategory` values `INVALID_ARGUMENTS` and `GATEWAY_AUTHENTICATION_FAILED` are reserved but not labeled so | Done (merge 2fad124) | stream L | Proto comments | +| R21-L3 | Low | Docs | Stale notes in `stillpending.md` (sections 1.4, 3.4, 7.1) and the deferred-followups header | Done (merge 2fad124) | stream L | | | R21-L4 | Low | Docs | The 2026-08-19 tracker header says CLI-47..50, IPC-36/37, TST-35 are `Not started` while the rows say `Done` | Done | K | Header row corrected in this stream | -| R21-L5 | Low | Tests | No tests for `GatewayConfigPathRules` | In progress (stream L) | stream L | | -| R21-L6 | Low | Tests | No tests for `DashboardRedactor` | In progress (stream L) | stream L | | -| R21-L7 | Low | Tests | No tests for `EventSubscriberReplayAttachment` | In progress (stream L) | stream L | | -| R21-L8 | Low | Tests | No tests for the `MxStatusDetailText` table | In progress (stream L) | stream L | | +| R21-L5 | Low | Tests | No tests for `GatewayConfigPathRules` | Done (merge 2fad124) | stream L | | +| R21-L6 | Low | Tests | No tests for `DashboardRedactor` | Done (merge 2fad124) | stream L | | +| R21-L7 | Low | Tests | No tests for `EventSubscriberReplayAttachment` | Done (merge 2fad124) | stream L | | +| R21-L8 | Low | Tests | No tests for the `MxStatusDetailText` table | Deferred | — | Worker-side test; needs a windev run, not done in stream L | ## External / blocked diff --git a/archreview/remediation/00-tracking.md b/archreview/remediation/00-tracking.md index f68270e..daae30a 100644 --- a/archreview/remediation/00-tracking.md +++ b/archreview/remediation/00-tracking.md @@ -88,14 +88,14 @@ Full design + implementation for each row lives in the linked domain doc under i | ID | Sev | Tier | Eff | Dep | Status | Title | |---|---|:-:|:-:|---|---|---| | WRK-01 | High | P0 | M | — | Done | Long `ReadBulk` self-faults as `StaHung`; all replies then dropped | -| WRK-02 | Medium | — | M | — | Done | STA thread death after startup is silent; future work hangs forever — **2026-10-21 triage:** closed by the 2026-10-21 review (R21-K6): an STA loop fault raises a `StaHung` WorkerFault; stream E `7618caf`, pending merge of stream E | +| WRK-02 | Medium | — | M | — | Done | STA thread death after startup is silent; future work hangs forever — **2026-10-21 triage:** closed by the 2026-10-21 review (R21-K6): an STA loop fault raises a `StaHung` WorkerFault; stream E `7618caf`, merged | | WRK-03 | Medium | — | S | WRK-02 | Open | Commands after shutdown starts are dropped with no reply — **2026-10-21 triage:** still present on the integration branch; promoted to R21-O1 in [`../2026-10-21/remediation/00-tracking.md`](../2026-10-21/remediation/00-tracking.md) | | WRK-04 | Medium | — | M | — | Done | Envelope `sequence` can appear out of order on the wire | -| WRK-05 | Medium | — | M | — | Done | One transient alarm-poll failure kills the whole session — **2026-10-21 triage:** closed by the 2026-10-21 review (R21-K3): consecutive alarm-poll failure threshold of 3 in `MxAccessStaSession`; stream E `7618caf`, pending merge of stream E | +| WRK-05 | Medium | — | M | — | Done | One transient alarm-poll failure kills the whole session — **2026-10-21 triage:** closed by the 2026-10-21 review (R21-K3): consecutive alarm-poll failure threshold of 3 in `MxAccessStaSession`; stream E `7618caf`, merged | | WRK-06 | Medium | P2 | S | — | Done | `MXSTATUS_PROXY` conversion reflects per field, per event | | WRK-07 | Medium | P1 | M | WRK-04 | Done | Documented outbound write priority not implemented | | WRK-08 | Low | — | S | — | Open | Residual event queue discarded at graceful shutdown, undocumented — **2026-10-21 triage:** still present on the integration branch; promoted to R21-O2 in [`../2026-10-21/remediation/00-tracking.md`](../2026-10-21/remediation/00-tracking.md) | -| WRK-09 | Low | — | S | — | Done | No `AppDomain.UnhandledException` hook — **2026-10-21 triage:** closed by the 2026-10-21 review (R21-K7): `AppDomain.UnhandledException` hook, exit code 7; stream E `7618caf`, pending merge of stream E | +| WRK-09 | Low | — | S | — | Done | No `AppDomain.UnhandledException` hook — **2026-10-21 triage:** closed by the 2026-10-21 review (R21-K7): `AppDomain.UnhandledException` hook, exit code 7; stream E `7618caf`, merged | | WRK-10 | Low | — | S | — | Open | Top-level catch logs exception type but never message — **2026-10-21 triage:** still present on the integration branch; promoted to R21-O3 in [`../2026-10-21/remediation/00-tracking.md`](../2026-10-21/remediation/00-tracking.md) | | WRK-11 | Low | P2 | S | — | Done | Every accepted event is defensively cloned on enqueue | | WRK-12 | Low | P2 | M | WRK-04 | Done | No event batching per envelope; one flush per event; 25 ms poll |