Skip to content

feat: flag mutual Compose dependencies - #240

Open
Joncallim wants to merge 1 commit into
codex/69-daemon-state-port-findingfrom
codex/69-compose-mutual-finding-core
Open

feat: flag mutual Compose dependencies#240
Joncallim wants to merge 1 commit into
codex/69-daemon-state-port-findingfrom
codex/69-compose-mutual-finding-core

Conversation

@Joncallim

Copy link
Copy Markdown
Owner

Summary

  • derive a deterministic, read-only advisory when exactly one fresh Docker Compose dependency exists in each direction between two unique containers
  • fail closed for malformed, stale, timed-out, duplicate, colliding, mock, or mismatched evidence
  • regenerate the closed Findings contract and verify cache reset clears the advisory

Verification

  • npm run fmt:rust:check
  • npm run lint:rust
  • npm run test:rust:core
  • npm run test:rust:daemon
  • npm run test:contracts

The API, web, and documentation companions will be stacked separately.

@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-02T16:56:49.961016Z 134b356 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: 134b356769

ℹ️ 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 +209 to +212
let Some(reverse_edge) = runtime_map.edges.iter().find(|candidate| {
candidate.source == edge.target
&& candidate.target == edge.source
&& is_candidate_compose_dependency(candidate, &nodes)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Scope reciprocal dependencies to one Compose project

When separate Compose projects expose complementary unique service names—for example, project A's frontend declares backend while project B's backend declares frontend—the collector retains only the service name and ContainerAliases::resolve_dependency resolves it globally. These lines therefore accept the resulting cross-project edges as reciprocal because they share the same snapshot time and revision, emitting a mutual-dependency advisory even though neither project has a cycle. Preserve the Compose project identity and require both declarations to belong to the same project.

Useful? React with 👍 / 👎.

@Joncallim
Joncallim force-pushed the codex/69-daemon-state-port-finding branch from cbcaab8 to 997ccae Compare September 2, 2026 17:08
@Joncallim
Joncallim force-pushed the codex/69-compose-mutual-finding-core branch from 134b356 to 156c8a4 Compare September 2, 2026 17:09
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