Skip to content

ci(windows): add windows-process workflow for OpenProcess liveness verification (#1911 follow-up) - #1913

Merged
topcheer merged 1 commit into
mainfrom
ci/windows-process-smoke
Sep 9, 2026
Merged

ci(windows): add windows-process workflow for OpenProcess liveness verification (#1911 follow-up)#1913
topcheer merged 1 commit into
mainfrom
ci/windows-process-smoke

Conversation

@topcheer

@topcheer topcheer commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Follow-up to #1911 per the standing windows-real-machine policy.

Why: CI is ubuntu-only; the Windows branch of IsProcessAlive (OpenProcess + non-blocking WaitForSingleObject, incl. the new ERROR_INVALID_PARAMETER=dead verdict) never executes in CI. windows-proxy covers only the proxy stack. TestIsProcessAlive_NonExistent asserts false and turns red on a real Windows kernel exactly when the 87 branch regresses (stated in #1911).

What: new windows-process workflow mirroring windows-proxy (#761) conventions: windows-latest, path-triggered on internal/util/process*.go + the workflow file itself, plus workflow_dispatch. Test step: go test -tags goolm -count=1 -v -run "IsProcessAlive" ./internal/util/ — filter covers all 5 tests (TestIsProcessAlive_CurrentProcess/NonExistent/InvalidPID, TestIsProcessAliveProc_CurrentProcess/Nil, name cross-checked per prior filter-miss lessons).

Validation (isolated clone at f21ef8f):

  • YAML parses clean
  • GOOS=windows GOARCH=amd64 go build -tags goolm ./internal/util/ exit 0
  • Filter ↔ test-name cross-check: 5/5 match

🤖 Generated with ggcode

…rification

Follow-up to PR #1911 (fix(util): OpenProcess ERROR_INVALID_PARAMETER
means dead, #1723 case 1). CI runs ubuntu-only, so the Windows branch of
IsProcessAlive (OpenProcess + non-blocking WaitForSingleObject) never
executes in CI; windows-proxy only covers the proxy stack. This workflow
runs the IsProcessAlive tests on a real windows-latest kernel, where
TestIsProcessAlive_NonExistent is the regression sentinel for the 87
verdict. Mirrors windows-proxy (#761) conventions; per the standing
windows-real-machine policy.

Co-Authored-By: ggcode <noreply@ggcode.dev>

@topcheer topcheer left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Real-machine evidence (windows-latest runner, run 34332189217, head 56f67ab) — all 5 IsProcessAlive tests PASS on a real Windows kernel, including the #1911 regression sentinel:

--- PASS: TestIsProcessAlive_CurrentProcess (0.00s)
--- PASS: TestIsProcessAlive_NonExistent (0.00s)   <- 87=dead verdict guard
--- PASS: TestIsProcessAlive_InvalidPID (0.00s)
--- PASS: TestIsProcessAliveProc_CurrentProcess (0.00s)
--- PASS: TestIsProcessAliveProc_Nil (0.00s)
PASS

This IS the post-#1911 windows-real-machine smoke per standing policy; the workflow makes it permanent (path-triggered on internal/util/process*.go). Static evidence: YAML OK, GOOS=windows go build ./internal/util/ exit 0. Will merge via admin exemption channel per the shared-credential rule.

@topcheer
topcheer merged commit 8a13812 into main Sep 9, 2026
10 checks passed
topcheer pushed a commit that referenced this pull request Sep 11, 2026
Ships the code-review campaign since v1.3.236 (issue #1481-#1886,
PR #1893-#2092), all verified via make verify-ci (9m03s, core checks
passed) plus desktop-module build (blocker #2094 fixed pre-release):

- agent: 20+ detector false-positive fixes (CJK/rune safety), guidance
  budget unification, claim-verify/verification-debt, secret redaction
  coverage, cache invalidation discipline
- tui: configMutationMsg unification family (slack/wecom/dingtalk/twitch/
  five panels), stdout O_NONBLOCK+Poll probe rewrite, tunnel replay +
  approval/ask_user id hardening (#1825 + follow-up ccff5cfa)
- tool: git safety (dash-args, -- separators, sensitive scans), terminal
  adapters (iterm2/ghostty/warp), mobile pre-tap errors, rune-safe caps
- mobile: QR scanner ownership, ohos degradation, relay replay cursor
- desktop/webui/im/provider/plugin/swarm: leak guards, silent-error
  elimination, WS frame guarantees, MCP takeover race, DeleteTeam lock
- release blockers fixed pre-tag: #2094 desktop compile (1d3da27),
  wailskit goroutine gate (e48fc4c)
- feat: browser screenshot output_path (#1993); ci: windows-process
  workflow (#1913)

Sweep clean: 4 version files only (1.3.237+2026091201).

Co-Authored-By: ggcode <noreply@ggcode.dev>

Co-Authored-By: ggcode <noreply@ggcode.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant