davinci-resolve-mcp 2.205.2 → 2.207.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -337,6 +337,7 @@ def build_operation_envelope(
337
337
  *,
338
338
  execution_id: Optional[str] = None,
339
339
  mode: Optional[str] = None,
340
+ duration_ms: Optional[int] = None,
340
341
  ) -> Any:
341
342
  """Attach the operation envelope to one action's return value."""
342
343
  if is_passthrough(raw_result):
@@ -346,6 +347,20 @@ def build_operation_envelope(
346
347
  if selected == "legacy":
347
348
  return raw_result
348
349
 
350
+ if not execution_id and isinstance(params, dict):
351
+ candidate = params.get("execution_id") or params.get("_execution_id") or params.get("trace_id")
352
+ if isinstance(candidate, str) and candidate.strip():
353
+ execution_id = candidate.strip()
354
+
355
+ if not execution_id:
356
+ try:
357
+ from src.utils import execution_trace
358
+ active_id = execution_trace.current_execution_id()
359
+ if active_id:
360
+ execution_id = active_id
361
+ except ImportError:
362
+ pass
363
+
349
364
  envelope: Dict[str, Any] = {
350
365
  "status": normalize_status(raw_result),
351
366
  "operation": f"{tool_name}.{action}",
@@ -353,6 +368,9 @@ def build_operation_envelope(
353
368
  "verification": extract_verification(raw_result),
354
369
  }
355
370
 
371
+ if duration_ms is not None:
372
+ envelope["duration_ms"] = max(0, int(duration_ms))
373
+
356
374
  changes = extract_changes(raw_result)
357
375
  if changes is not None:
358
376
  envelope["changes"] = changes