Repository navigation
Conversation
Git-Session-Id: 6aa8
|
|
CI-green and mergeable — waiting only on a maintainer click. This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted. |
Git-Session-Id: 61f5bd6e-e4de-5673-8b22-b8816c300ba4
|
@greptileai review |
🤖 AI code reviewAdds a standalone Windows diagnostic that samples Safe to merge — no P0/P1 findingsConfidence 5/5 ✅ No findings. The diff looks correct to me on this pass. Files changed (5) — the diff as I read it
Previous review passes
Reviewed Maintainer commands
|
The mocked native lifecycle tests relied on the real time.monotonic() deadline, so a scheduler pause of one second could skip GetMessageW entirely and truncate event delivery on a loaded runner. Advance a controlled fake clock per mocked GetMessageW call instead. Git-Session-Id: 689bf8d3-ae0f-5bcf-b0e2-a6399b681ba5
|
@greptileai review |
CallNextHookEx sits outside the KeyboardInterrupt handler, so a pending Ctrl+C surfacing on that call's return escaped the ctypes callback boundary: ctypes ignored the exception, the diagnostic never set interrupted (so it kept running with hooks installed), and the pass-through result was lost. Wrap the call so cancellation is deferred and the callback always returns a value. Adds a regression test asserting the callback contains the interrupt instead of letting it escape. Git-Session-Id: f4b686bd-39f5-56c8-8982-8f943d7c1e8c
…llback errors Git-Session-Id: 1c1575e9-20b0-5b4a-8619-10e44219442e
Problem
ActivityWatch/activitywatch#1487 reports a Bluetooth controller keeping Windows AFK status active while untouched. Windows uses GetLastInputInfo, not the pynput listener backend; a listener-only filter would not address it. The event source remains unknown.
Scope
Adds a standalone, opt-in, standard-library-only Windows diagnostic and comparison procedure. It samples Windows idle time and aggregate mouse/keyboard injection flags without recording keys, text, coordinates, window titles, device IDs or raw event timestamps. Hooks forward events and clean up on exit and partial failure. Ctrl+C inside observation is deferred until input has been forwarded.
No production backend/config changes, blanket injected-input filtering, or controller-causality claim. Unflagged does not prove physical input; missing counts do not prove no activity. Documentation covers coverage and correlation limits.
Verification
Windows execution and reporter reproduction are unverified. API doubles test lifecycle control flow, not native ABI or hook delivery. The connected-idle/disconnected-idle procedure in docs/windows-input-diagnostic.md is the next evidence gate.
Related to ActivityWatch/activitywatch#1487; does not close the production issue.