v1.6.1 — three more of the same, found by looking
1.6.0 fixed a SetFocus whose failure was swallowed. That is a pattern, not an incident — so the rest of the file was audited for it: every call whose result is discarded and whose success the next line assumes. Three more turned up.
focus_window reported ok: True without checking
It used a bare el.SetActive(), which Windows refuses silently for a background process — exactly like SetForegroundWindow. The robust version, with the thread attachment and the foreground-lock timeout, already existed in this file as _vordergrund_setzen. But only the restore path used it. The tool a caller actually reaches for had the naive one.
That is how an assistant ends up believing it is in a terminal when it is not: it called focus_window, got ok: True, and typed.
It now verifies, reports in_front, returns ok: False with what to do instead — and does not declare a target it could not reach, because a declared target that is not in front is exactly what blind typing trusts.
close_window's Alt+F4 fallback sent regardless
Same unverified call, then Alt+F4 — which closes whatever is in front. It verifies first now and sends nothing if the wrong window is there.
capture could caption a picture "window: X" while showing what covered X
It says so in the caption now.
Checked and deliberately not changed: menu waits for the popup to appear, window returns before/after state. Both already verify their own effect.
Versioning, corrected
1.3.0 → 1.6.0 happened in two days, all of it repairs. The rule that caused it was "any new refusal is a minor" — wrong for this project. A guard that becomes stricter to close a hole it should always have covered is a fix, not a feature.
From here: tightened guards are patches; minors are new tools, arguments or reply fields. 2.0 will be reached on capability, not by accumulating repairs.
Install
Claude Desktop — pc-screen-control.mcpb → Settings → Extensions → Advanced → Install extension. Remove the previous version first and quit Claude completely, tray icon included.
ChatGPT desktop, Codex, Cursor, VS Code, Cline, Zed — pc-screen-control-gpt.zip → extract → INSTALL-FOR-GPT.bat → restart.
Windows and Python 3.9+ with "Add python.exe to PATH". Run self_test — it should report 1.6.1.
Checksums
pc-screen-control.mcpb 7772400 bytes
SHA-256 411004b6060db8311f15a50bd6ceb824a216e86e0a7060148d6048771b2f2a6b
pc-screen-control-gpt.zip 7678559 bytes
SHA-256 23bc7eea904d1e6530228fe8860de4e2efebd8f687e49f63cac5ae2473a9a4d8