Skip to content

v1.6.1 — three more of the same, found by looking

Choose a tag to compare

@desteny-dev desteny-dev released this 04 Aug 13:04
· 5 commits to main since this release

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 Desktoppc-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, Zedpc-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