8000 T106 — Audit a refused ambiguous request head on the live path and show it in min box audit · Issue #2435 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content
Dismiss alert

T106 — Audit a refused ambiguous request head on the live path and show it in min box audit #2435

Closed

Description

@norrietaylor

Task

slice size difficulty model who estimated lines
Audit, HTTP and message conditions S routine light an agent 150 (30 code, 120 tests)

After the proxy refuses a box's request head for ambiguous framing, min box audit <box> lists the refusal with the marker framing_ambiguous.

Covers:

  • BEP-039

Layers:

  • proxy:
    • crates/bep/src/forward.rs: a test sends an ambiguous head through forward::forward_requests and reads one framing_ambiguous record for the box from the audit log; the refusal's log line names the rule (T106 — Audit a refused ambiguous request head on the live path and show it in min box audit #2435)
    • crates/bep/src/http.rs: the AuditSink doc says the live path writes through Flow::record, and that the trait serves this module's own tests
    • cargo nextest run -p bep live_path_audits_a_framing_ambiguous_head
  • audit:
    • crates/minimal/src/cmd/box_audit.rs: a test renders a framing_ambiguous record that bep serve wrote, in the proxy's id spelling
    • cargo nextest run -p minimal box_audit_lists_a_refused_ambiguous_head

Waits on:

Plan block
### T106 — Audit a refused ambiguous request head on the live path and show it in min box audit
  slice: S15
  kind: task
  covers: BEP-039
  size: S
  est: 30 code, 120 tests
  executor: agent
  difficulty: routine
  model: light
  diagnostics: `min box audit <box>` lists a request head the proxy refused for ambiguous framing as a `refuse` line with the marker `framing_ambiguous`, pinned by box_audit_lists_a_refused_ambiguous_head
  observability: the proxy's log line for the refused head names the box and the framing rule; the audit record carries the marker, since BEP-039's record has no field for the rule
  layers:
    - proxy:
      - crates/bep/src/forward.rs: a test sends an ambiguous head through `forward::forward_requests` and reads one `framing_ambiguous` record for the box from the audit log; the refusal's log line names the rule (#2435)
      - crates/bep/src/http.rs: the `AuditSink` doc says the live path writes through `Flow::record`, and that the trait serves this module's own tests
      test: cargo nextest run -p bep live_path_audits_a_framing_ambiguous_head
    - audit:
      - crates/minimal/src/cmd/box_audit.rs: a test renders a `framing_ambiguous` record that `bep serve` wrote, in the proxy's id spelling
      test: cargo nextest run -p minimal box_audit_lists_a_refused_ambiguous_head
  produces: none
  consumes: none
  proof: After the proxy refuses a box's request head for ambiguous framing, `min box audit <box>` lists the refusal with the marker framing_ambiguous.
  depends on:
    - blocked by #2462
    - blocked by #2782
Original issue text

Residual of #2362 (T8, epic #1501). Named by minimal-arch condition C1 on 08ed473.

crates/bep/src/http.rs records a framing_ambiguous audit event through the AuditSink trait when the proxy refuses a request head for ambiguous framing (BEP-077). Today the only AuditSink is the test Vec<AuditEvent>. The production sink has to append that record to the min/v1 audit log so that min box audit <box> shows it (BEP-039).

Blocked on #2361 (T9), which builds the audit record writer this sink appends through.

Done when: a production AuditSink in the proxy's connection loop appends the framing_ambiguous record with the box id and the rule name, and min box audit <box> lists it after a refused head.


Generated by Claude Code

Activity

  1. changed the title [-]Production AuditSink: append the framing_ambiguous record to the min/v1 audit log (BEP-039)[/-] [+]T106 — Audit a refused ambiguous request head on the live path and show it in min box audit[/+] on Oct 31, 2026
  2. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    model:lightA light model is enough: routine work, small or medium
    size:SUnder 200 net lines; one PR
    on Oct 31, 2026
  3. minimal-foundry commented on Oct 31, 2026

    @minimal-foundry
    Contributor

    Done. #2809 merged.

    branch agent/2435-audit-a-refused-ambiguous-request-head-on-the-li · epic #1501 · PR #2809

    Updated 2026-11-01T00:33:59.772Z.

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:lightA light model is enough: routine work, small or mediumsize:SUnder 200 net lines; one PR

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0