fix(agent): harden macos es/ne scaffolding and supervision#180
fix(agent): harden macos es/ne scaffolding and supervision#180
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c52c469b75
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed the review feedback in 1698f87. Changes:
Local validation rerun:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2406e139a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed the remaining PR feedback in Changes:
Local validation:
The two remaining attestation bot threads are false positives: the comment bodies explicitly walk themselves back, and the current |
|
Addressed the last open review comment in Change:
Local validation:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b24cc48b6b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed the new aggregation/health comments in Changes:
Local validation:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 29c7f58058
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Pushed Changes in this pass:
Local validation:
|
|
Addressed the latest review and CI issues in Changes in this pass:
Local validation:
|
|
Addressed the latest PR comments in This pass does two things:
Local validation:
The remaining two Bugbot threads were false positives/withdrawn; I resolved them after adding the attestation regression coverage and rechecking the current behavior. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b21b417f1e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
...s/system-extension/network-extension/Sources/ClawdStrikeNetworkExtension/ProviderState.swift
Show resolved
Hide resolved
|
Addressed the new review batch in
Local validation:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| degraded_reasons: vec![ | ||
| "macos_authorization_contract_unavailable".to_string(), | ||
| "supervised_launch_refused_without_live_authorization_provider".to_string(), | ||
| ], |
There was a problem hiding this comment.
Supervised preflight uses macOS-specific reason on all platforms
Medium Severity
supervised_preflight_refused unconditionally pushes "macos_authorization_contract_unavailable" as a degraded reason on all platforms, unlike supervised_mode which uses cfg!(target_os = "macos") to select the platform-appropriate reason string. On Linux, this produces a misleading macOS-specific degraded reason instead of something like "supervised_interception_inactive".


Summary
Testing
Note
High Risk
Touches security-adjacent enforcement/attestation reporting and release notarization/packaging gates; mistakes could misreport protection state or break macOS release builds.
Overview
Adds macOS EndpointSecurity/NetworkExtension scaffolding that fails closed: new Swift packages provide
endpoint-security-status-tool/network-extension-status-toolJSON status + fixtures/tests, and the agent now polls these helpers into a sharedMacosHostService, exposes it via/api/v1/agent/health, and includes it in local heartbeat payloads.Hardens macOS packaging/release gates:
tauri.conf.jsonnow bundlesmacos/system-extension/**/*, bumps macOS minimum to 13.0, sets app entitlements, andbuild.rs/CI/release preflight validate required packaging assets (and optionally block placeholders/scaffold_only); the release workflow switches DMG build to a notarization script and uploads notarization evidence.Expands sandbox attestation and supervised execution truthfulness: attestation now carries provider state/availability, degraded reasons, counters (deadline misses/dropped events), network backend hints, and a recomputed
EnforcementLevel::Degraded;hush-cliswitches to embedding the typed attestation in receipts, marks supervised runs as degraded when contracts are unavailable, and conditions supervisor stats logging.Also updates Codex swarm lane/wave configuration for the macOS ES/NE implementation wave.
Written by Cursor Bugbot for commit f77db92. This will update automatically on new commits. Configure here.