Surface accurate node mode and MCP-only states#827
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 26, 2026, 2:00 PM ET / 18:00 UTC. Summary Reproducibility: yes. Source inspection gives a high-confidence path: current docs define independent Node/MCP modes, while current main uses the combined ShouldInitializeNodeService predicate for gateway-node startup and collapses node-off/MCP-on to Off in the Connection plan. Review metrics: 3 noteworthy metrics.
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 after maintainers either clear the setup-connect failure or explicitly accept it as unrelated, preserving the documented independent Node/MCP mode matrix and the supplied runtime proof. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection gives a high-confidence path: current docs define independent Node/MCP modes, while current main uses the combined ShouldInitializeNodeService predicate for gateway-node startup and collapses node-off/MCP-on to Off in the Connection plan. Is this the best way to solve the issue? Mostly yes. Separating gateway-node enablement from local MCP lifecycle matches the documented mode matrix; the remaining blocker is validation and maintainer acceptance, not a known code defect in the patch. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1c377cb64b65. Label changesLabel justifications:
Evidence reviewedAcceptance criteria:
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
|
0629436 to
72a351c
Compare
72a351c to
1c3e816
Compare
1c3e816 to
0eeb7f8
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review |
|
@clawsweeper re-review |
…ode gating Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
0eeb7f8 to
fe6758e
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review |
Summary
Change Type (select all)
Scope (select all touched areas)
winnodeLinked Issue/PR
Validation
./build.ps1Result: all projects built successfully.
dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restoreResult: 2513 passed, 31 skipped, 0 failed.
dotnet test ./tests/OpenClaw.Connection.Tests/OpenClaw.Connection.Tests.csproj --no-restoreResult: 373 passed, 0 failed.
dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore --filter "FullyQualifiedName~NodeModeUiStateTests|FullyQualifiedName~NodeCapabilityGatingTests|FullyQualifiedName~LocalizationValidationTests"Result: 49 passed, 0 failed.
dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restoreResult: local full-suite run currently hits unrelated
AssistantBridgeServiceTests.StartListenServiceAsync_KillsTimedOutBackendCommandtiming failure; that test passes when run isolated. Branch-affected Tray tests and localization validation pass.Real behavior proof
Screenshot: Connection page MCP-only state with active operator gateway
Screenshot: Permissions page MCP-only state
Mixed operator-connected startup proof
Raw proof file: https://raw.githubusercontent.com/bkudiess/openclaw-windows-node/proof/pr-827-node-ui/mixed-startup-proof.md
MCP server proof artifact
Raw proof file: https://raw.githubusercontent.com/bkudiess/openclaw-windows-node/proof/pr-827-node-ui/mcp-proof.md
Security Impact (required)
NoNoNoNoNoYes, explain risk + mitigation: N/A. This PR changes UI/status/gating around existing node and MCP surfaces; it does not add commands, broaden network exposure, or change credential/token handling.Compatibility / Migration
YesNoNoReview Conversations
Addressed ClawSweeper findings:
EnableMcpServer=trueandEnableNodeMode=false.EnableNodeMode=trueand the gateway node role is connected.