Skip to content

feat: validate Compose target findings at API boundary - #231

Open
Joncallim wants to merge 1 commit into
codex/69-compose-target-finding-corefrom
codex/69-compose-target-finding-api
Open

feat: validate Compose target findings at API boundary#231
Joncallim wants to merge 1 commit into
codex/69-compose-target-finding-corefrom
codex/69-compose-target-finding-api

Conversation

@Joncallim

Copy link
Copy Markdown
Owner

Summary

  • enforce the new closed Compose inactive-target finding semantics before browser publication
  • bind the finding ID to the same collision-resistant subject/target derivation used by core
  • add canonical pass-through fixture coverage and neutral-502 tests for forged text, identity, evidence, status, and extra fields

Verification

  • npm run typecheck
  • focused API pass-through and hostile validator tests
  • npm run test:contracts
  • npm run build
  • npm run check:contracts

The full API wrapper was also started twice; this environment cuts its output at 30 seconds after all shown tests passed. Focused tests cover the changed paths to completion.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T15:03:05.810597Z 0d9a7de PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d9a7de20d

ℹ️ 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".

Comment on lines +330 to +334
&& evidence.kind === "docker_compose_depends_on"
&& evidence.assertionKind === "observed"
&& evidence.summary === "Docker recorded Compose dependency declaration"
&& evidence.subjectRef === finding.subjectRef
&& (evidence.providerSlot === undefined || evidence.providerSlot === null)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Bind Compose evidence IDs to the target

When the daemon returns an otherwise valid Compose finding whose evidence ID names another target—or contains arbitrary daemon-controlled text—this branch accepts it because it binds only evidence.subjectRef, never evidence.id. Core's docker_runtime_evidence derives the evidence ID from both source and target (crates/dockermap-core/src/snapshot_runtime.rs:423-426), so this gap can publish a conclusion unsupported by its attached evidence and provides an unnecessary string channel to browser clients; recompute and compare the canonical Compose evidence ID here.

AGENTS.md reference: AGENTS.md:L17-L20

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant