Skip to content

PR67 F2/F3 — Preserve receiver-call authority - #69

Merged
LogicDuke merged 1 commit into
rebuild/d3-clean-network-policyfrom
repair/pr67-receiver-call-authority
Sep 2, 2026
Merged

PR67 F2/F3 — Preserve receiver-call authority#69
LogicDuke merged 1 commit into
rebuild/d3-clean-network-policyfrom
repair/pr67-receiver-call-authority

Conversation

@LogicDuke

Copy link
Copy Markdown
Owner

Purpose

Stacked validation repair for PR #67 exact parent HEAD:

6f4c9cc5011de7156f8b0c1c391af5425e1a4e44

This child repairs two exact-head CURRENT P1 findings from the PR #67 Codex review:

  • F2 — SERVER/RESPONSE authority was lost through allowed receiver-call results.
  • F3 — global-root authority was lost through permitted member-call results, including optional-call forms.

Bounded mechanism

One structural correction:

receiver-call result authority inheritance.

For proven SERVER / REQUEST / RESPONSE targets, an allowed direct non-optional member-call result conservatively retains the receiver's existing authority facts.

For the global-root path, a permitted static member-call result is conservatively re-checked as a global root for both normal and optional calls.

No runtime method-return semantics are inferred by name.

Scope

Changed files exactly:

  • tests/cockpit-host/support/d3-network-policy.ts
  • tests/cockpit-host/support/d3-regression-matrix.ts
  • tests/cockpit-host/d3-network-policy.test.ts

No production source changes.

Preserved architecture

  • one provenance map
  • one value-symbol model
  • one static-key resolver
  • one bounded monotone fixpoint
  • existing SERVER / REQUEST / RESPONSE positive policies
  • existing global-receiver policy
  • binding identity
  • explicit CONVERGED / EXHAUSTED behavior

No EventSource change.

No valueOf-specific implementation rule.

No dangerous-member-name model.

No PR #64 mechanism restoration.

No type-resolution, prototype-chain, or whole-program expansion.

Validation

Exact validated repair commit:

631ef66a391eced86055982766c2bd29a0061e84

Parent:

6f4c9cc5011de7156f8b0c1c391af5425e1a4e44

Validated binary patch:

3DE8BC66E0427F0CFCF987BA0CFFF0CD8E40653D63CD4B095DB2F94F4985B713

36648 bytes

Fresh independent validation verdict:

VALIDATOR_PASS_PR67_F2_F3_CANDIDATE

Deterministic validation:

  • D3: 514 passed
  • purity: 319 passed / 8 skipped
  • cockpit-host: 862 passed / 8 skipped
  • full suite: 2513 passed / 8 skipped
  • typecheck: PASS
  • lint: PASS
  • build: PASS
  • git diff --check: PASS

Independent adversarial validation found no CURRENT P0/P1/P2 second-order defect in the repaired mechanism.

A separate confined-factory optional-call discriminator was classified NOT REPRODUCIBLE because the pre-existing SERVER_UNCONFINED_RETURN mechanism already denies the source.

Authority

This is a DRAFT stacked validation PR.

Ready, reviewer trigger, and merge authority are NOT granted by creation.

PR #67 remains Draft and untouched.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Q6Mog1KsMYfH2GAVMw9mbg

Close PR #67 F2/F3: a direct allowed member call on a proven
SERVER/REQUEST/RESPONSE target, or a call of a permitted static member
of a proven global root, now yields a result that conservatively retains
the receiver's authority through the existing fact model and policies.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q6Mog1KsMYfH2GAVMw9mbg
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: ac5e5d61-2278-4ee7-b579-1b9d135f4ce4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@LogicDuke
LogicDuke marked this pull request as ready for review September 2, 2026 21:13
@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-02T21:20:01.029436Z 631ef66 Manual request
ℹ️ 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.

@LogicDuke

Copy link
Copy Markdown
Owner Author

@codex review

@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: 631ef66a39

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

if (isProvenCreateServerCall(ctx, node) || isConfinedFactoryCall(ctx, node)) return [{ authority: 'SERVER', origin: 'ROOT' }];
if (ts.isIdentifier(node)) return factsOf(ctx, valueSymbolOf(ctx.checker, node));
const receiver = inheritingReceiverOf(ctx, node);
return receiver === null ? [] : expressionFacts(ctx, receiver);

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 Avoid recomputing receiver facts exponentially

For a chain of allowed receiver calls such as server.close().close()..., inheritingReceiverOf already evaluates the receiver via classesOf, but this line immediately evaluates the same receiver again. Each nesting level therefore doubles the work (T(n) = 2T(n-1)); a valid chain of only 20 calls can keep the policy analyzer CPU-bound for tens of seconds, bypassing the intended bounded analysis behavior and potentially stalling CI. Cache the expression facts or have the helper return the facts it already computed.

Useful? React with 👍 / 👎.

@LogicDuke
LogicDuke merged commit a0d8193 into rebuild/d3-clean-network-policy Sep 2, 2026
2 checks passed
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