From 794c44246a2c64230850a454871e892b47ea19b3 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Sun, 9 Aug 2026 19:47:04 -0400 Subject: [PATCH] chore(clients): regenerate Go/Java bindings and Rust vendored proto for the plain-write statuses comments --- .../internal/generated/mxaccess_gateway.pb.go | 21 +- .../mxaccess_gateway/v1/MxaccessGateway.java | 496 ++++++++++-------- clients/rust/protos/mxaccess_gateway.proto | 21 +- 3 files changed, 298 insertions(+), 240 deletions(-) diff --git a/clients/go/internal/generated/mxaccess_gateway.pb.go b/clients/go/internal/generated/mxaccess_gateway.pb.go index 2064cc0..d0f041c 100644 --- a/clients/go/internal/generated/mxaccess_gateway.pb.go +++ b/clients/go/internal/generated/mxaccess_gateway.pb.go @@ -2553,6 +2553,9 @@ func (x *ActivateCommand) GetItemHandle() int32 { return 0 } +// The unary reply's statuses field carries the correlated OnWriteComplete +// outcome when it arrives within the worker's bounded wait — see +// MxCommandReply.statuses. type WriteCommand struct { state protoimpl.MessageState `protogen:"open.v1"` ServerHandle int32 `protobuf:"varint,1,opt,name=server_handle,json=serverHandle,proto3" json:"server_handle,omitempty"` @@ -2621,6 +2624,7 @@ func (x *WriteCommand) GetUserId() int32 { return 0 } +// Same statuses correlation as WriteCommand. type Write2Command struct { state protoimpl.MessageState `protogen:"open.v1"` ServerHandle int32 `protobuf:"varint,1,opt,name=server_handle,json=serverHandle,proto3" json:"server_handle,omitempty"` @@ -4583,18 +4587,19 @@ type MxCommandReply struct { // transport failures. Hresult *int32 `protobuf:"varint,5,opt,name=hresult,proto3,oneof" json:"hresult,omitempty"` ReturnValue *MxValue `protobuf:"bytes,6,opt,name=return_value,json=returnValue,proto3" json:"return_value,omitempty"` - // Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2 - // replies the worker holds the reply for a bounded window (default 1.5 s, - // MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching - // MXAccess OnWriteComplete callback and copies its status rows here, so - // statuses[0] carries the real MXAccess commit outcome (success OR failure) - // while protocol_status/hresult still describe command acceptance only. - // Empty statuses on a write reply means the completion did not arrive + // Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED / + // WRITE_SECURED2 replies the worker holds the reply for a bounded window + // (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for + // the matching MXAccess OnWriteComplete callback and copies its status rows + // here, so statuses[0] carries the real MXAccess commit outcome (success OR + // failure) while protocol_status/hresult still describe command acceptance + // only. Empty statuses on a write reply means the completion did not arrive // within the window — the write is unconfirmed, not failed. Correlation is // best-effort per (server_handle, item_handle): MXAccess's callback carries // no transaction id, so concurrent writes to the same item within the // window can swap rows. The OnWriteComplete event still flows on the event - // stream unchanged. Other command kinds leave this field as before. + // stream unchanged. Bulk write kinds and all non-write kinds leave this + // field as before. Statuses []*MxStatusProxy `protobuf:"bytes,7,rep,name=statuses,proto3" json:"statuses,omitempty"` DiagnosticMessage string `protobuf:"bytes,8,opt,name=diagnostic_message,json=diagnosticMessage,proto3" json:"diagnostic_message,omitempty"` // Types that are valid to be assigned to Payload: diff --git a/clients/java/src/main/generated/main/java/mxaccess_gateway/v1/MxaccessGateway.java b/clients/java/src/main/generated/main/java/mxaccess_gateway/v1/MxaccessGateway.java index a69750f..85a91b0 100644 --- a/clients/java/src/main/generated/main/java/mxaccess_gateway/v1/MxaccessGateway.java +++ b/clients/java/src/main/generated/main/java/mxaccess_gateway/v1/MxaccessGateway.java @@ -24235,6 +24235,12 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { int getUserId(); } /** + *
+   * The unary reply's statuses field carries the correlated OnWriteComplete
+   * outcome when it arrives within the worker's bounded wait — see
+   * MxCommandReply.statuses.
+   * 
+ * * Protobuf type {@code mxaccess_gateway.v1.WriteCommand} */ public static final class WriteCommand extends @@ -24527,6 +24533,12 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { return builder; } /** + *
+     * The unary reply's statuses field carries the correlated OnWriteComplete
+     * outcome when it arrives within the worker's bounded wait — see
+     * MxCommandReply.statuses.
+     * 
+ * * Protobuf type {@code mxaccess_gateway.v1.WriteCommand} */ public static final class Builder extends @@ -25036,6 +25048,10 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { int getUserId(); } /** + *
+   * Same statuses correlation as WriteCommand.
+   * 
+ * * Protobuf type {@code mxaccess_gateway.v1.Write2Command} */ public static final class Write2Command extends @@ -25370,6 +25386,10 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { return builder; } /** + *
+     * Same statuses correlation as WriteCommand.
+     * 
+ * * Protobuf type {@code mxaccess_gateway.v1.Write2Command} */ public static final class Builder extends @@ -50513,18 +50533,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -50533,18 +50554,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { getStatusesList(); /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -50552,18 +50574,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index); /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -50571,18 +50594,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { int getStatusesCount(); /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -50591,18 +50615,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { getStatusesOrBuilderList(); /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -51333,18 +51358,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { private java.util.List statuses_; /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -51355,18 +51381,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -51378,18 +51405,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -51400,18 +51428,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -51422,18 +51451,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-     * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-     * replies the worker holds the reply for a bounded window (default 1.5 s,
-     * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-     * MXAccess OnWriteComplete callback and copies its status rows here, so
-     * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-     * while protocol_status/hresult still describe command acceptance only.
-     * Empty statuses on a write reply means the completion did not arrive
+     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+     * the matching MXAccess OnWriteComplete callback and copies its status rows
+     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+     * failure) while protocol_status/hresult still describe command acceptance
+     * only. Empty statuses on a write reply means the completion did not arrive
      * within the window — the write is unconfirmed, not failed. Correlation is
      * best-effort per (server_handle, item_handle): MXAccess's callback carries
      * no transaction id, so concurrent writes to the same item within the
      * window can swap rows. The OnWriteComplete event still flows on the event
-     * stream unchanged. Other command kinds leave this field as before.
+     * stream unchanged. Bulk write kinds and all non-write kinds leave this
+     * field as before.
      * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54156,18 +54186,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54181,18 +54212,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54206,18 +54238,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54231,18 +54264,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54263,18 +54297,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54292,18 +54327,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54323,18 +54359,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54355,18 +54392,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54384,18 +54422,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54413,18 +54452,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54443,18 +54483,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54471,18 +54512,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54499,18 +54541,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54521,18 +54564,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54546,18 +54590,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54572,18 +54617,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54594,18 +54640,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; @@ -54617,18 +54664,19 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile { } /** *
-       * Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2
-       * replies the worker holds the reply for a bounded window (default 1.5 s,
-       * MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching
-       * MXAccess OnWriteComplete callback and copies its status rows here, so
-       * statuses[0] carries the real MXAccess commit outcome (success OR failure)
-       * while protocol_status/hresult still describe command acceptance only.
-       * Empty statuses on a write reply means the completion did not arrive
+       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
+       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
+       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
+       * the matching MXAccess OnWriteComplete callback and copies its status rows
+       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
+       * failure) while protocol_status/hresult still describe command acceptance
+       * only. Empty statuses on a write reply means the completion did not arrive
        * within the window — the write is unconfirmed, not failed. Correlation is
        * best-effort per (server_handle, item_handle): MXAccess's callback carries
        * no transaction id, so concurrent writes to the same item within the
        * window can swap rows. The OnWriteComplete event still flows on the event
-       * stream unchanged. Other command kinds leave this field as before.
+       * stream unchanged. Bulk write kinds and all non-write kinds leave this
+       * field as before.
        * 
* * repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7; diff --git a/clients/rust/protos/mxaccess_gateway.proto b/clients/rust/protos/mxaccess_gateway.proto index ee923b5..db5fb4f 100644 --- a/clients/rust/protos/mxaccess_gateway.proto +++ b/clients/rust/protos/mxaccess_gateway.proto @@ -241,6 +241,9 @@ message ActivateCommand { int32 item_handle = 2; } +// The unary reply's statuses field carries the correlated OnWriteComplete +// outcome when it arrives within the worker's bounded wait — see +// MxCommandReply.statuses. message WriteCommand { int32 server_handle = 1; int32 item_handle = 2; @@ -248,6 +251,7 @@ message WriteCommand { int32 user_id = 4; } +// Same statuses correlation as WriteCommand. message Write2Command { int32 server_handle = 1; int32 item_handle = 2; @@ -531,18 +535,19 @@ message MxCommandReply { // transport failures. optional int32 hresult = 5; MxValue return_value = 6; - // Correlated per-item outcome rows. For WRITE_SECURED / WRITE_SECURED2 - // replies the worker holds the reply for a bounded window (default 1.5 s, - // MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for the matching - // MXAccess OnWriteComplete callback and copies its status rows here, so - // statuses[0] carries the real MXAccess commit outcome (success OR failure) - // while protocol_status/hresult still describe command acceptance only. - // Empty statuses on a write reply means the completion did not arrive + // Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED / + // WRITE_SECURED2 replies the worker holds the reply for a bounded window + // (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for + // the matching MXAccess OnWriteComplete callback and copies its status rows + // here, so statuses[0] carries the real MXAccess commit outcome (success OR + // failure) while protocol_status/hresult still describe command acceptance + // only. Empty statuses on a write reply means the completion did not arrive // within the window — the write is unconfirmed, not failed. Correlation is // best-effort per (server_handle, item_handle): MXAccess's callback carries // no transaction id, so concurrent writes to the same item within the // window can swap rows. The OnWriteComplete event still flows on the event - // stream unchanged. Other command kinds leave this field as before. + // stream unchanged. Bulk write kinds and all non-write kinds leave this + // field as before. repeated MxStatusProxy statuses = 7; string diagnostic_message = 8;