• Aleksei's avatar
    docs(audit): closure table, refreshed config reference and benchmarks · 1c0fa41b
    Aleksei authored
    AUDIT-codex-2026-08-11.md gains a closure table: every finding mapped to
    fixed / rejected / accepted-as-risk with the commit that did it, plus the two
    findings discovered while writing the regression tests and a note on the two
    test attempts that mutation checking proved were vacuous.
    
    README and config.example.yaml document the new settings (server.read_timeout,
    cache.max_bytes, queue_size: 0 meaning no waiting room) and the new metric
    (mcp_gateway_cache_bytes) and label folding. The design-decisions section now
    explains three-valued breaker outcomes and why the breaker is acquired after
    admission rather than before, and what 'degraded' means now that a skipped
    backend counts.
    
    Five items are recorded in Limitations rather than fixed, each with its
    reason: calls carrying _meta are never cached; plaintext tokens remain in the
    retained config; timeouts apply on the Run path only, not to an embedder
    serving Handler() from its own http.Server; and a wedged stdio write is
    bounded for callers but its writer goroutine can still park where the platform
    gives pipes no write deadline.
    
    Benchmarks re-run after all fixes; changes are within noise and the numbers
    in the README are updated to the fresh run.
    1c0fa41b