You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(windows): stop console window flashes during scheduled scans
The schtasks /create action used to invoke the agent via a cmd /c
wrapper, which produced a visible cmd.exe flash on every scheduled
fire. This change:
- Drops the cmd /c wrapper; the task now invokes the agent (or the
GUI-subsystem launcher) directly, with --install-dir / filelog
handling moved into the binary.
- Adds cmd/stepsecurity-dev-machine-guard-task — a small
GUI-subsystem launcher .exe used by the MSI install layout so
Windows does not allocate a console for the scheduled task.
- Adds internal/winproc to suppress subprocess console flashes via
CREATE_NO_WINDOW for child processes spawned by the agent.
- Wires the launcher binary into the MSI WiX manifest, .goreleaser
config, Makefile, and the msi-smoke / release workflows.
- Adds Windows-side test coverage for schtasks, winproc, and the IDE
detector.
Copy file name to clipboardExpand all lines: .github/workflows/release.yml
+29-7Lines changed: 29 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -92,8 +92,13 @@ jobs:
92
92
id: binaries
93
93
run: |
94
94
DARWIN=$(find dist -type f -name '*darwin_unnotarized' | head -1)
95
-
WIN_AMD64=$(find dist -type f -name '*.exe' -path '*windows_amd64*' | head -1)
96
-
WIN_ARM64=$(find dist -type f -name '*.exe' -path '*windows_arm64*' | head -1)
95
+
# Filter agent vs launcher (-task) explicitly — both ship as
96
+
# <name>-<version>-<os>_<arch>.exe so a bare *.exe glob would
97
+
# match either.
98
+
WIN_AMD64=$(find dist -type f -name 'stepsecurity-dev-machine-guard-*-windows_amd64.exe' ! -name '*-task-*' | head -1)
99
+
WIN_ARM64=$(find dist -type f -name 'stepsecurity-dev-machine-guard-*-windows_arm64.exe' ! -name '*-task-*' | head -1)
100
+
WIN_TASK_AMD64=$(find dist -type f -name 'stepsecurity-dev-machine-guard-task-*-windows_amd64.exe' | head -1)
101
+
WIN_TASK_ARM64=$(find dist -type f -name 'stepsecurity-dev-machine-guard-task-*-windows_arm64.exe' | head -1)
97
102
LINUX_AMD64=$(find dist -type f -name 'stepsecurity-dev-machine-guard' -path '*linux_amd64*' | head -1)
98
103
LINUX_ARM64=$(find dist -type f -name 'stepsecurity-dev-machine-guard' -path '*linux_arm64*' | head -1)
99
104
@@ -102,7 +107,7 @@ jobs:
102
107
RPM_AMD64=$(find dist -type f -name '*-amd64.rpm' | head -1)
103
108
RPM_ARM64=$(find dist -type f -name '*-arm64.rpm' | head -1)
104
109
105
-
for label in "darwin:${DARWIN}" "windows_amd64:${WIN_AMD64}" "windows_arm64:${WIN_ARM64}" "linux_amd64:${LINUX_AMD64}" "linux_arm64:${LINUX_ARM64}" "deb_amd64:${DEB_AMD64}" "deb_arm64:${DEB_ARM64}" "rpm_amd64:${RPM_AMD64}" "rpm_arm64:${RPM_ARM64}"; do
110
+
for label in "darwin:${DARWIN}" "windows_amd64:${WIN_AMD64}" "windows_arm64:${WIN_ARM64}" "windows_task_amd64:${WIN_TASK_AMD64}" "windows_task_arm64:${WIN_TASK_ARM64}" "linux_amd64:${LINUX_AMD64}" "linux_arm64:${LINUX_ARM64}" "deb_amd64:${DEB_AMD64}" "deb_arm64:${DEB_ARM64}" "rpm_amd64:${RPM_AMD64}" "rpm_arm64:${RPM_ARM64}"; do
0 commit comments