feat(plugin): add Daybreak access advisory - #826
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
kmbroai
approved these changes
Sep 8, 2026
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c72fcda300
ℹ️ 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".
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.
Summary
Replace the connector-based Daybreak access check with a plugin-owned MCP advisory that consumes host-provided account access metadata only when the tool is invoked.
Changes
get_codex_security_daybreak_accesstool that explicitly requests thecyber_trusted_accessentitlement.granted,not_granted, orunknownplus the public Daybreak Blue and Daybreak Red program names.unknownfor missing, malformed, stale, or unbound metadata; the result remains advisory and never authorizes or blocks a scan.Testing
pnpm run test:mcpfromsdk/typescript: 23 passed.pnpm run typecheckfromplugins/codex-security/mcp-app: passed.python -m pytest plugins/codex-security/tests/test_plugin_contract.py -q: 5 passed.python .github/scripts/check_plugin_source_compatibility.py: passed.PYTHONSAFEPATH=1environment blocking an existing sibling-module import; that test passed when rerun without the variable.Risk and rollout
Hosts that don't provide
openai/entitlementContext, including API-key-only sessions, receiveunknownand continue normally. The tool doesn't grant access or gate scan execution. Removing the connector means rollout should follow host support foropenai/requestedEntitlements.Public disclosure review
Change impact
The scan workflow now asks its own MCP tool for host-verified account context instead of depending on a separate connector.
flowchart LR subgraph column_0["Scan workflow"] direction TB node_0["Call once before scan work<br/><code>config-preflight.md</code>"] node_1["Separate access app removed<br/><code>.app.json</code>"] end subgraph column_1["Plugin MCP"] direction TB node_2["Request account entitlement<br/><code>get_codex_security_daybreak_access</code>"] node_3["Validate host-provided context<br/><code>openai/entitlementContext</code>"] end subgraph column_2["Advisory result"] direction TB node_4["Return Blue, Red, or unknown<br/><code>structuredContent</code>"] node_5["Keep scan advisory-only<br/><code>scan workflow</code>"] end node_0 -->|"calls once"| node_2 node_1 -->|"replaced by"| node_3 node_2 -->|"returns advisory"| node_4 node_3 -->|"falls back safely"| node_5 class node_0 changed class node_1 changed class node_2 changed class node_3 changed class node_4 affected class node_5 affected classDef changed fill:#d7f5e5,stroke:#237a4b,color:#111 classDef affected fill:#e6f0ff,stroke:#3569a8,color:#111 classDef context fill:#f2f3f5,stroke:#6e7781,color:#111Source evidence (6)
plugins/codex-security/references/config-preflight.md:L87-L89— The scan workflow calls the plugin advisory exactly once before substantive work and continues regardless of its result.plugins/codex-security/.app.json:L1-L9— The previous manifest declared a separate Codex Security Access connector; this PR removes that entry.plugins/codex-security/mcp-app/server.ts:L395-L410— The bundled tool is model-visible, read-only, zero-input, and declares the account entitlement it needs.plugins/codex-security/mcp-app/server.ts:L51-L81— Versioned schemas reject unsupported grant sources and inconsistent status and grant combinations.plugins/codex-security/mcp-app/server.ts:L405-L441— The handler requires bound metadata, converts stale or invalid input to unknown, and maps valid grants to public program names.plugins/codex-security/mcp-app/tests/test_mcp_app_smoke.mjs:L1084-L1174— The bundled-server test checks tool declaration, missing-context fallback, and successful Daybreak Blue and Red output.