fix: diagnose Windows LAN Gateway firewall blocks#98666
Conversation
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Codex review: needs maintainer review before merge. Reviewed July 1, 2026, 5:23 PM ET / 21:23 UTC. Summary PR surface: Source +1074, Tests +927, Docs +4. Total +2005 across 13 files. Reproducibility: yes. for review purposes: current main lacks the diagnostic path, and the PR body gives a concrete Parallels Windows 11 before/after path for the blocked LAN URL case. I did not rerun that live Windows setup in this read-only review. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the diagnostic only if maintainers accept bounded Windows PowerShell inspection in deep local LAN status; otherwise narrow the diagnostic budget before merge. Do we have a high-confidence way to reproduce the issue? Yes for review purposes: current main lacks the diagnostic path, and the PR body gives a concrete Parallels Windows 11 before/after path for the blocked LAN URL case. I did not rerun that live Windows setup in this read-only review. Is this the best way to solve the issue? Yes, with maintainer acceptance: the latest head keeps active inspection in deep local LAN status and uses static setup/configure guidance for critical flows. The remaining question is whether maintainers accept the bounded Windows subprocess cost. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against e79865569c50. Label changesLabel justifications:
Evidence reviewedPR surface: Source +1074, Tests +927, Docs +4. Total +2005 across 13 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review |
* Diagnose Windows LAN Gateway firewall blocks * Fix Windows firewall diagnostic lint * fix: gate gateway firewall diagnostics to local targets * fix: keep firewall inspection off critical flows
* Diagnose Windows LAN Gateway firewall blocks * Fix Windows firewall diagnostic lint * fix: gate gateway firewall diagnostics to local targets * fix: keep firewall inspection off critical flows
* Diagnose Windows LAN Gateway firewall blocks * Fix Windows firewall diagnostic lint * fix: gate gateway firewall diagnostics to local targets * fix: keep firewall inspection off critical flows
What Problem This Solves
Windows users can bind the Gateway to LAN, see a valid local loopback probe and LAN Control UI URL, and still have other devices blocked by Windows Firewall. The old status/setup paths either missed that distinction or risked spending too much time on firewall inspection in critical user flows.
Why This Change Was Made
This moves Windows Firewall inspection out of critical flows. Fast gateway status/probe no longer runs PowerShell or
netsh, and setup/configure only print static Windows LAN firewall guidance.Deep gateway status remains the diagnostic path. On Windows LAN bindings,
openclaw gateway status --deepruns one bounded read-only PowerShell probe that inspects active profiles, local rules, and managed ActiveStore rules so GPO/MDM allow rules are not misreported as blocked.User Impact
Windows LAN users get faster setup/configure/status flows and still have an explicit deep diagnostic when LAN clients cannot reach the advertised Gateway URL. The warning points users toward an inbound TCP allow rule, a managed firewall rule, loopback, Tailscale, or SSH tunneling as appropriate.
AI-assisted: implemented with Codex.
Evidence
pnpm test src/infra/windows-gateway-firewall-diagnostics.test.ts src/commands/gateway-status.test.ts src/cli/daemon-cli/status.gather.test.ts src/wizard/setup.finalize.test.ts src/commands/configure.wizard.test.ts -- --reporter=verbosenode scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.core.json ...changed files...pnpm tsgo:corepnpm tsgo:test:srcgit diff --check$autoreview: clean after addressing accepted findings around managed-rule preservation and quick-probe port matching.28991:openclaw gateway status --json --timeout 3000: completed with nogateway.windowsFirewallblock.openclaw gateway probe --json --port 28991 --timeout 3000: emitted no firewall warnings; failed only when no Gateway was listening.openclaw gateway status --json --timeout 5000 --token ...: RPC OK, Gateway version reported, nogateway.windowsFirewallblock.openclaw gateway status --deep --json --timeout 5000 --token ...: RPC OK and emittedgateway.windowsFirewall.code = "windows_firewall_program_scoped_rule_unverified"instead ofwindows_firewall_inspection_failed.