fix(doctor): suppress warnings for explicit Personal posture and tool profile#950
Merged
Aaronontheweb merged 1 commit intonetclaw-dev:devfrom May 10, 2026
Merged
Conversation
… profile When the user explicitly chooses Personal posture via `netclaw init`, doctor should not warn about Personal + HostAllowed shell or an unrestricted Personal tool profile — these are intentional choices. Only warn when the values are implicit (resolved from fallback defaults), preserving doctor's defensive posture for ambiguous configs. Fixes netclaw-dev#949 Changes: - SecurityPolicyDoctorCheck: only warn about Personal + HostAllowed when DeploymentPosture is not explicitly set - ToolAudienceProfilesDoctorCheck: only warn about unrestricted Personal profile when it's using fallback defaults (not explicitly written) - Updated tests to reflect new behavior
Aaronontheweb
added a commit
to Aaronontheweb/netclaw
that referenced
this pull request
May 11, 2026
Brings in two upstream fixes: - netclaw-dev#948 systemd unit PATH fix + SystemdUnitPathDoctorCheck - netclaw-dev#950 doctor warning suppression for explicit Personal posture Conflict resolution: netclaw-operations SKILL.md version bumped to 2.1.0 (combining the 2.0.0 path-extraction-era content already on this branch with dev's 1.28.0 systemd table-row addition). The skill content itself will be rewritten in task 11.4 of the trust-zones change when the implementation completes; this merge just preserves both sets of operational guidance for the interim. Build: green. Full test suite passes (Cli 640, Daemon 504, Actors 1522, plus all others). Slopwatch clean. Headers present.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Running
netclaw initand choosing Personal audience results in immediate warnings fromnetclaw doctorthe moment you finish setup:These fire even though the user explicitly chose Personal through the init wizard. There's no distinction between an intentional Personal configuration and an ambiguous / fallback default that landed there.
Expected behavior
When
DeploymentPostureis explicitly set toPersonaland the Personal tool profile is explicitly configured (not falling back to defaults), doctor should pass these checks cleanly. The warnings are advisory noise when the user has already made an informed choice.Doctor should still warn when:
DeploymentPostureis missing and a fallback resolved to PersonalToolsMode: Allor unrestricted filesystem accessProposed fix
SecurityPolicyDoctorCheck.cs: Only emit the "Personal + HostAllowed" warning when the posture is implicit (not explicitly set in config). Ifconfig.DeploymentPostureis explicitlyPersonal, suppress it — the user chose this.ToolAudienceProfilesDoctorCheck.cs: Only warn about unrestricted Personal profile when the values are coming from fallback defaults. If the Personal profile has been explicitly written to config (e.g., bynetclaw init), treat it as intentional and skip the unrestricted warning.For MCP servers without approval defaults on Personal, consider downgrading from warning to info-level, or only warn when there are other audiences configured (implying a multi-audience setup where gating matters more).
Impact