8000 T11 — Validate the upstream before substituting, pass unsealed requests through, and stream responses · Issue #2272 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T11 — Validate the upstream before substituting, pass unsealed requests through, and stream responses #2272

Closed

Description

@norrietaylor

Task

slice size difficulty model who estimated lines
Clone, push and gh from a box with no token in it L needs care strongest an agent 700 (400 code, 300 tests)

An upstream that fails validation receives nothing, an unsealed request passes unchanged, and responses stream.

Covers:

  • BEP-030
  • BEP-055
  • BEP-N01

Layers:

  • forward:
    • crates/bep/src/forward.rs (new): upstream TLS validated against the host store before forwarding (BEP-055), substitution on admit, passthrough (BEP-030), chunked relay (BEP-N01)
    • crates/bep/src/proxy.rs: hands each parsed request to the decision and the forwarder
    • crates/bep/src/lib.rs: module line
    • cargo nextest run -p bep unsealed_request_passes_through_and_is_audited
    • cargo nextest run -p bep prop_upstream_tls_validated_before_substitution
    • cargo nextest run -p bep upstream_tls_failure_is_refused_and_audited
    • cargo nextest run -p bep plaintext_request_to_credentialed_host_is_refused
    • cargo nextest run -p bep streamed_response_is_not_buffered

Waits on:

Plan block
### T11 — Validate the upstream before substituting, pass unsealed requests through, and stream responses
  slice: S0
  kind: task
  covers: BEP-030, BEP-055, BEP-N01
  size: L
  est: 400 code, 300 tests
  executor: agent
  difficulty: needs care
  model: strongest
  diagnostics: a refused upstream is audited `upstream_tls_invalid` or `upstream_not_tls`, and a passthrough carrying its own credential `foreign_credential`, each shown by `min box audit <box>`
  observability: the connection span gains the upstream's validation outcome and the substitution decision, never the credential
  layers:
    - forward:
      - crates/bep/src/forward.rs (new): upstream TLS validated against the host store before forwarding (BEP-055), substitution on admit, passthrough (BEP-030), chunked relay (BEP-N01)
      - crates/bep/src/proxy.rs: hands each parsed request to the decision and the forwarder
      - crates/bep/src/lib.rs: module line
      test: cargo nextest run -p bep unsealed_request_passes_through_and_is_audited
      test: cargo nextest run -p bep prop_upstream_tls_validated_before_substitution
      test: cargo nextest run -p bep upstream_tls_failure_is_refused_and_audited
      test: cargo nextest run -p bep plaintext_request_to_credentialed_host_is_refused
      test: cargo nextest run -p bep streamed_response_is_not_buffered
  produces:
    - crates/bep/src/forward.rs
  consumes:
    - crates/bep/src/proxy.rs
    - crates/bep/src/upstream.rs
  proof: An upstream that fails validation receives nothing, an unsealed request passes unchanged, and responses stream.
  depends on:
    - blocked by #2261
    - blocked by #2271

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:L500 to 900 net lines; one PR, and the ceiling
    model:strongestThe strongest model available: unknown ground, or large work that needs care
    on Oct 17, 2026
  2. minimal-foundry commented on Oct 21, 2026

    @minimal-foundry
    Contributor

    Done. #2481 merged.

    branch agent/2272-validate-the-upstream-before-substituting-pass-u · epic #1501 · PR #2481

    round outcome job
    1 pushed 6a7ba7ae
    2 pushed d0349592
    3 pushed ebd967fd
    4 pushed a237d6f0
    5 pushed 6a66bb64
    6 changed nothing: Revise round 6: no code change. The one open thread asks for a PR body correction. The correct statement is this: Unwired, which Proxy::new installs, declares an empty egress for every box, so it refu 32a6cdaa

    Updated 2026-10-21T23:03:43.432Z.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:taskA task the plan skill rendered; the body carries ## Taskmodel:strongestThe strongest model available: unknown ground, or large work that needs caresize:L500 to 900 net lines; one PR, and the ceiling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0