From 8bbf7d1de801e7c9641c7f053a3399341d9207ce Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 12 Jul 2026 19:22:12 +0200 Subject: [PATCH] adapters(bingx_direct): component-correct message/comment attribution (operator: in-kernel messages name the emitting component, not the consumer) Co-Authored-By: Claude Fable 5 --- prod/clean_arch/adapters/bingx_direct.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/prod/clean_arch/adapters/bingx_direct.py b/prod/clean_arch/adapters/bingx_direct.py index f727c25..f4d3f52 100644 --- a/prod/clean_arch/adapters/bingx_direct.py +++ b/prod/clean_arch/adapters/bingx_direct.py @@ -594,8 +594,8 @@ class BingxDirectExecutionAdapter(ExecutionPort): _action_char = "e" if intent.action == DecisionAction.ENTER else "x" _ts36 = self._base36(int(time.time() * 1000)) _rand4 = uuid.uuid4().hex[:4] - # UV-FIX 2026-07-11: honor an upstream-minted client id (the u- prefix - # from the UV seam) when the intent carries one — venue orders then join + # FIX 2026-07-11 (bingx_direct): honor an upstream-minted client id (e.g. the caller's + # u- prefixed seam id) when the intent carries one — venue orders then join # back to exec_journal rows by id, and the sentinel u- check holds. # Same charset/length rules apply (metadata id is trimmed to 40). _meta = intent.metadata or {} @@ -659,7 +659,7 @@ class BingxDirectExecutionAdapter(ExecutionPort): ) ack = BingxOrderAck.from_http(ack_payload if isinstance(ack_payload, dict) else {}) ack_row = dict(unwrap_order_payload(ack_payload)) if isinstance(ack_payload, dict) else {} - # UV-FIX 2026-07-11: an accepted order ALWAYS carries the venue's + # FIX 2026-07-11 (bingx_direct): an accepted order ALWAYS carries the venue's # orderId. VST answers an order on an offline/delisted symbol with # code==0 + EMPTY data (observed BAND/CELR 2026-07-10/11) — the # unwrapped ack is {} and, before this guard, fell through as @@ -722,7 +722,7 @@ class BingxDirectExecutionAdapter(ExecutionPort): # BingX REST ACK does not include commission. WS FILL_SETTLED will deliver # the actual fee later and update the fee_source to "WS_SETTLED". # Until then, log an estimate so CH rows are never blank on this field. - # UV-FIX 2026-07-11: never fabricate a fill for a rejected order — the + # FIX 2026-07-11 (bingx_direct): never fabricate a fill for a rejected order — the # target_size fallback applies only to accepted MARKET acks whose fill # arrives later via WS (BingX REST ack omits executedQty on those). if status in ("REJECTED", "RATE_LIMITED"):