chore(api): regenerate openapi.json (transition-latency fields + held drift)

Adds StreamInfo.time_to_first_frame_ms / last_resize_ms (latency plan P0.1)
and folds in the drift the spec already owed from the held working-tree
consolidation (version 0.12.0, pnp_disable_monitors description, the
conflicting-host 'conflicts' summary field) — the drift test was already
red before this branch; it is green at this commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 16:48:35 +02:00
parent 8374dfedf3
commit 32ffe7d634
+27 -2
View File
@@ -10,7 +10,7 @@
"name": "MIT OR Apache-2.0", "name": "MIT OR Apache-2.0",
"identifier": "MIT OR Apache-2.0" "identifier": "MIT OR Apache-2.0"
}, },
"version": "0.11.0" "version": "0.12.0"
}, },
"paths": { "paths": {
"/api/v1/clients": { "/api/v1/clients": {
@@ -2546,7 +2546,7 @@
}, },
"pnp_disable_monitors": { "pnp_disable_monitors": {
"type": "boolean", "type": "boolean",
"description": "EXPERIMENTAL (Windows): after an `Exclusive` isolate deactivates the physical monitors,\nadditionally DISABLE their PnP device nodes (persistently, so a standby monitor/TV whose\nhot-plug events re-arrive stays disabled) and re-enable them at restore. Targets the same\n\"connected-but-dark head\" periodic-stutter class as [`Self::ddc_power_off`], but at the\nWindows-reaction level: a disabled devnode's wake events trigger no PnP arrival, no CCD\nre-evaluation, no DWM invalidation. A crash-recovery journal re-enables leftovers on host\nstartup. Orthogonal to `preset` (like `game_session`); `#[serde(default)]` = off." "description": "EXPERIMENTAL (Windows): DISABLE physical monitors' PnP device nodes for the stream's\nduration (persistently, so a standby monitor/TV whose hot-plug events re-arrive stays\ndisabled) and re-enable them at teardown. Two selectors: the monitors an `Exclusive`\nisolate deactivated, plus — in ANY topology — external monitors that are connected but not\npart of the desktop (the standby TV that was never active, whose input auto-scan /\ninstant-on HPD cycling re-probes the link every few seconds). Targets the same\n\"connected-but-dark head\" periodic-stutter class as [`Self::ddc_power_off`], but at the\nWindows-reaction level: a disabled devnode's wake events trigger no PnP arrival, no CCD\nre-evaluation, no DWM invalidation. A crash-recovery journal re-enables leftovers on host\nstartup. Orthogonal to `preset` (like `game_session`); `#[serde(default)]` = off."
}, },
"preset": { "preset": {
"$ref": "#/components/schemas/Preset" "$ref": "#/components/schemas/Preset"
@@ -2990,6 +2990,13 @@
"type": "boolean", "type": "boolean",
"description": "True while the audio stream thread is running." "description": "True while the audio stream thread is running."
}, },
"conflicts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Other Moonlight-compatible hosts (Sunshine/Apollo/…) detected on this machine at startup —\nrunning one alongside Punktfunk is unsupported. Compact labels (e.g. `Sunshine (running)`);\nthe tray/console surface them so the clash is visible before pairing silently fails."
},
"kept_displays": { "kept_displays": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
@@ -3675,6 +3682,15 @@
"format": "int32", "format": "int32",
"minimum": 0 "minimum": 0
}, },
"last_resize_ms": {
"type": [
"integer",
"null"
],
"format": "int32",
"description": "Most recent mid-stream resize total, reconfigure → pipeline rebuilt, in ms (native sessions;\n`null` when no resize happened / GameStream).",
"minimum": 0
},
"min_fec": { "min_fec": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
@@ -3687,6 +3703,15 @@
"description": "Video payload size per packet (bytes).", "description": "Video payload size per packet (bytes).",
"minimum": 0 "minimum": 0
}, },
"time_to_first_frame_ms": {
"type": [
"integer",
"null"
],
"format": "int32",
"description": "Session bring-up total, hello → first video packet, in ms (native sessions; `null` on the\nGameStream plane or while the session is still bringing up).",
"minimum": 0
},
"width": { "width": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",