Skip to content

fix(egress): never follow redirects into Host (4.3b) - #739

Merged
cursor[bot] merged 21 commits into
masterfrom
cursor/spec-007-43b-d476
Oct 9, 2026
Merged

cursor[bot] merged 21 commits into
masterfrom
cursor/spec-007-43b-d476

Conversation

@IanFrelinger

Copy link
Copy Markdown
Owner

Summary

SPEC-007 PR 4.3b: owner O2 (never follow a redirect from outside the host boundary into it), P2 by origin, filter/ordering hardening, differential twins, Known limits. Supersedes draft #727 with master R1 merged and the Bedrock sdk.client inventory pin fixed (cert-gate F2).

Changes

  • Inward Host/link-local/*.localhost/unix/npipe rule; hop recorded, 3xx returned (P1 and P2)
  • P2 gated on scheme+host+port; started/Credentials primaries leave following off for Ashlar's follower
  • Factory filter ordering / AG-SW unknown-primary Warning; SNS NeverFollowRedirects; Bedrock RuntimeConfig seam
  • Twins + differential + mutation evidence scripts from the Codex tip
  • ci/egress-inventory.tsv: Bedrock sdk.client pin 3→2 (matches collapsed factory)
  • Decisions log O2 marked implemented

Testing

Testing strategy (blast radius)

Change type Minimum proof
Abstractions redirect follower Twin + differential + mutation batch
Factory binding / SNS / Bedrock ProdStyle / Fleet / cert twins

Checklist

  • Documentation updated
  • Known limits recorded for transports Ashlar cannot mediate

Records touched

SPEC-007, EgressInventory, CHANGELOG, egress-inventory.tsv, cert-gate-assertions, PublicAPI as in #727

Release

  • Not a versioned release — skip

Supersedes #727. Merge after #738.

Open in Web Open in Cursor 

IanFrelinger and others added 20 commits October 8, 2026 16:48
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Preserve full-origin P2, return and record inward O2 hops, and bind followers only where primary redirect ownership can transfer safely. Add reusable SNS no-follow configuration and Bedrock configuration seam.

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Carry the stricter policy on each request without changing the existing follower or the shared factory pipeline. Qualify redirect guarantees for transports that retain redirect ownership.

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Require consistent completed test results, causal named failures, exact byte restoration and clean green rebuilds. Preserve failure verdicts and export recoverable evidence from disposable containers with a path-safe host decoder. Verified by 39 host-only Python fixtures outside the repository; no dotnet or containers were run for these fixtures.

Co-authored-by: Codex <noreply@openai.com>
Carry the historical redirect set plus shared-client policy, warning, filter-order and primary-setting cases. Every case names the intended failing assertion; no mutation evidence is claimed before final-tree execution.

Co-authored-by: Codex <noreply@openai.com>
Reproduce the adapter RunInfo emitted by the real 4.10b smoke. The positive diagnostic fixture fails with the old parser; unrelated runner errors, mismatched theory cases, aborted outcomes and compiler errors remain rejected.

Co-authored-by: Codex <noreply@openai.com>
Accept only a single-line xUnit FAIL RunInfo whose entire theory-case name matches a validated failed UnitTestResult. Other run-level errors remain invalid. All 47 portable fixtures pass; the captured real smoke parses 65 green, 4 of 65 red, and 65 restored green.

Co-authored-by: Codex <noreply@openai.com>
The mutant changes FollowAsync, so require the exact asynchronous limit-exceeded case instead of the independent synchronous differential test.

Co-authored-by: Codex <noreply@openai.com>
R1 is on master. Update the AwsBedrockChatClientFactory sdk.client pin from
3 to 2 (RuntimeConfig seam collapsed the sites) so F2 passes. Mark owner O2
as implemented in the decisions log.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Persist the differential fixture certificate through PFX so Schannel can
use the private key on Windows (Readiness Windows dry-run).

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
@cursor

cursor Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Updated tip c8438abb5: merged master (4.10b bceb1ba2) and persisted the differential loopback HTTPS cert through PFX for Windows Schannel (fixes Readiness Windows dry-run). Waiting on required checks.

@cursor
cursor Bot merged commit 9c56ecc into master Oct 9, 2026
67 of 68 checks passed
@cursor
cursor Bot deleted the cursor/spec-007-43b-d476 branch October 9, 2026 22:18
@cursor

cursor Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Merged squash as 9c56ecc1ae9e2ea6753e0029f3a5c7e8019a90ca. Five required checks green on c8438abb (Compose ephemeral lane advisory red only). Next: #740.

cursor Bot pushed a commit that referenced this pull request Oct 9, 2026
Take 4.3b redirect inventory wording and O2 implemented-in (#739);
keep D16 decisions-log row; regenerate knowledge graph.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
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.

2 participants