feat(mgmt/web): surface the host.env encoder pin so a conflicting GPU choice isn't invisible

listGpus gains encoder_pin (PUNKTFUNK_ENCODER when it actually pins something —
unset/auto stay null), and the console's GPU card shows it: a muted note when
the pin is compatible, an amber warning naming the pinned vendor and the next
session's GPU when it contradicts the selection (the host overrides such a pin
at session open — without this field the selection just looked broken). Docs
updated to say the adapter wins.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 16:53:19 +02:00
co-authored by Claude Fable 5
parent 751d1de506
commit 6c2c8b6eab
8 changed files with 97 additions and 3 deletions
+7
View File
@@ -1234,6 +1234,13 @@ async fn gpu_endpoints_list_and_validate() {
assert_eq!(s, StatusCode::OK);
assert!(b["gpus"].is_array());
assert!(b["mode"].is_string());
// The host.env encoder pin is part of the schema (null when nothing is pinned) — the
// console warns off it when a pin contradicts the selected GPU (the pin is overridden at
// session open, and without this field the selection would just look broken).
assert!(
b.as_object().unwrap().contains_key("encoder_pin"),
"listGpus must carry encoder_pin"
);
// Unknown mode → 400.
let (s, _) = send(