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 <noreply@anthropic.com>
This commit is contained in:
Codex
2026-07-12 19:22:12 +02:00
parent dc90f6d77e
commit 8bbf7d1de8

View File

@@ -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"):