From ec6f82b12466a66fefa5b335cbda2e1483b001ea Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 9 Jul 2026 15:33:22 -0400 Subject: [PATCH] fix(versioning,docs): stamp .NET assembly version + worker doc drift (TST-11, WRK-15) TST-11: single-source the .NET-side version in src/Directory.Build.props so Server/Worker/Contracts/tests stamp 0.1.2 (was the SDK default 1.0.0) and InformationalVersion carries the git short SHA (0.1.2+) for support correlation; the git query is guarded (ContinueOnError) so a build outside a git checkout still succeeds. Verified: Server assembly stamps 0.1.2+579282f, build clean. Kept at 0.1.2 (matches Contracts + aligned Python/Rust/Go clients); Java leads at 0.2.0 post JDK-17 retarget. Convergence to a single 0.2.0 cadence left as a release decision, not forced here. WRK-15 (docs-only, no x86 worker build needed): correct the STA thread name in docs/WorkerSta.md + docs/MxAccessWorkerInstanceDesign.md to the actual MxGateway.Worker.STA (was the FQ ZB.MOM.WW.MxGateway.Worker.STA), and fix the stale heartbeat-counter note - CaptureHeartbeat now populates event queue depth (eventQueue.Count) and sequence (LastEventSequence) from the live queue. Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW --- docs/MxAccessWorkerInstanceDesign.md | 6 +++--- docs/WorkerSta.md | 4 ++-- src/Directory.Build.props | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/docs/MxAccessWorkerInstanceDesign.md b/docs/MxAccessWorkerInstanceDesign.md index 77b6fa7..936601d 100644 --- a/docs/MxAccessWorkerInstanceDesign.md +++ b/docs/MxAccessWorkerInstanceDesign.md @@ -251,7 +251,7 @@ The loop should update a heartbeat timestamp after: - processing an MXAccess event. `StaRuntime` implements this runtime boundary in the worker. It starts one -background thread named `ZB.MOM.WW.MxGateway.Worker.STA`, sets it to `ApartmentState.STA`, +background thread named `MxGateway.Worker.STA`, sets it to `ApartmentState.STA`, initializes COM through `StaComApartmentInitializer`, and runs `StaMessagePump`. Commands are scheduled through `InvokeAsync`; the command queue signals an `AutoResetEvent` so `MsgWaitForMultipleObjectsEx` can wake the @@ -650,8 +650,8 @@ Heartbeat payload includes: `MxAccessStaSession.CaptureHeartbeat()` reads `StaRuntime.LastActivityUtc` and `StaCommandDispatcher` queue state without touching the raw MXAccess COM object -outside the STA. Event queue depth and event sequence are reported as zero until -the event queue implementation owns those counters. +outside the STA. Event queue depth (`eventQueue.Count`) and event sequence +(`eventQueue.LastEventSequence`) are populated from the live event queue. The STA watchdog currently emits a `WorkerFault` with `WorkerFaultCategory.StaHung` when `LastStaActivityUtc` is older than diff --git a/docs/WorkerSta.md b/docs/WorkerSta.md index 8c04661..8d20685 100644 --- a/docs/WorkerSta.md +++ b/docs/WorkerSta.md @@ -20,13 +20,13 @@ The installed MXAccess interop assembly declares an `Apartment` threading model ## STA Thread Initialization -`StaRuntime`'s constructor configures a background `Thread` named `ZB.MOM.WW.MxGateway.Worker.STA` and forces it into `ApartmentState.STA` before the thread starts. `Start()` releases the thread and then blocks on `startedEvent` so callers observe a fully-initialized apartment (or a captured `startupException`) before the first `InvokeAsync` call: +`StaRuntime`'s constructor configures a background `Thread` named `MxGateway.Worker.STA` and forces it into `ApartmentState.STA` before the thread starts. `Start()` releases the thread and then blocks on `startedEvent` so callers observe a fully-initialized apartment (or a captured `startupException`) before the first `InvokeAsync` call: ```csharp staThread = new Thread(ThreadMain) { IsBackground = true, - Name = "ZB.MOM.WW.MxGateway.Worker.STA" + Name = "MxGateway.Worker.STA" }; staThread.SetApartmentState(ApartmentState.STA); ``` diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 1794c05..a9a856a 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -9,6 +9,31 @@ true + + + 0.1.2 + + + + + + + + $(_StampedGitSha.Trim()) + + +