@@ -7,7 +7,7 @@ across a layered HTTP system, then helps reduce that signal to the smallest resp
77It is not a generic vulnerability scanner and it does not treat a one-off response difference as
88a finding.
99
10- > Status: ` 0.3.5 ` research preview. ` mrma experiment ` has a conservative evidence contract;
10+ > Status: ` 0.3.5 ` research preview; ` main ` targets 0.3.6 . ` mrma experiment ` has a conservative evidence contract;
1111> legacy survey and minimization commands do not yet share this oracle.
1212
1313## The flagship workflow
@@ -52,8 +52,9 @@ The result includes:
5252- the effective normalization policy, state and connection modes, response bound, complete retry
5353 policy, negotiated HTTP versions, and stop reason;
5454- a multidimensional assurance profile for statistical decisiveness, control stability,
55- connection independence, state isolation, body completeness, normalization risk, and transport
56- reproducibility, without a scalar confidence label;
55+ connection independence, state isolation, body completeness, normalization risk, transport
56+ reproducibility, transport integrity, and response-header coverage, without a scalar confidence
57+ label;
5758- structured limitation codes with severity, scope, explanation, and remediation;
5859- a short run ID and evidence schema version.
5960
@@ -74,9 +75,9 @@ mrma experiment \
7475 --fail-on any-signal
7576```
7677
77- The output declares ` mrma.experiment/v4 ` ; exit code ` 10 ` means influence and ` 11 ` means
78- inconclusive when selected by ` --fail-on ` . The strict v4 JSON Schema defines every nested evidence
79- object and cross-field assurance invariant. Published v2 and v3 schemas remain packaged and
78+ The output declares ` mrma.experiment/v5 ` ; exit code ` 10 ` means influence and ` 11 ` means
79+ inconclusive when selected by ` --fail-on ` . The strict v5 JSON Schema defines every nested evidence
80+ object and cross-field assurance invariant. Published v2, v3, and v4 schemas remain packaged and
8081immutable for compatibility. The default exit code remains zero for all verdicts.
8182The transport is labeled ` semantic-http ` ; MRMA uses ` httpx ` and does not claim byte-for-byte HTTP/1
8283wire reproduction.
@@ -85,6 +86,9 @@ Responses are streamed with a default 1 MiB read bound. `--body-storage sample`
8586KiB per observation. When full normalization cannot be performed, unequal digests are marked
8687` INDETERMINATE ` ; they are never silently treated as equivalent. Encoded and non-text bodies use
8788exact transfer-digest equality only until bounded, content-aware decoders are implemented.
89+ Responses without one unambiguous, well-formed ` Content-Type ` also use digest-only evidence by
90+ default. ` --assume-text-without-content-type ` is an explicit weaker assumption and emits a
91+ structured limitation.
8892
8993Retries are disabled by default. When enabled, every intermediate attempt, outcome class,
9094error subtype, retry-triggering status, backoff, and final result is recorded. Stable error-subtype
@@ -99,7 +103,10 @@ fingerprint. Response fields use explicit semantics for `Vary`, `Allow`, CORS to
99103` Cache-Control ` , ` Location ` , and ` Content-Location ` . HTTP method tokens remain case-sensitive even
100104when their list order is irrelevant. Duplicate directives or malformed ` Cache-Control ` syntax
101105preserve ordered evidence and emit ` AMBIGUOUS_CACHE_CONTROL ` ; captured fields without a registry
102- rule and ` Set-Cookie ` remain conservative ordered evidence.
106+ rule and ` Set-Cookie ` remain conservative ordered evidence. The registry is intentionally
107+ selective: exact target-specific fields can be made decision-bearing with repeatable
108+ ` --include-response-header ` ; the evidence records the complete selected set and an explicit
109+ coverage limitation.
103110
104111Connection scope is explicit: ` reuse ` (default), ` per-arm ` , ` per-round ` , or ` fresh-observation ` .
105112Cookie state remains a separate policy. Wilson intervals assume repeated observations are suitably
@@ -108,8 +115,13 @@ authentication, HTTP/2 state, throttling, or WAF scoring could violate that assu
108115
109116For publication-oriented work, ` --assurance research ` authoritatively selects fresh connections,
110117isolated response state, disabled retries, a 20-round bracketed design, standard privacy, and full
111- body retention within the configured response bound. ` exploratory ` preserves efficient pooled
112- behavior; ` forensic ` uses research isolation while intentionally retaining exact metadata.
118+ body retention within the configured response bound. It also disables HTTPX environment trust.
119+ Experiment transport ignores proxy and CA environment variables by default; opt in with
120+ ` --trust-environment ` , or use explicit ` --proxy ` and ` --ca-bundle ` inputs. Evidence stores only
121+ keyed proxy/environment fingerprints and the CA bundle digest, never proxy credentials, environment
122+ values, or file paths. Research and forensic presets reject ` --insecure ` unless the separate
123+ ` --allow-insecure-research ` exception is supplied and recorded. ` exploratory ` preserves efficient
124+ pooled behavior; ` forensic ` uses research isolation while intentionally retaining exact metadata.
113125
114126JSON output uses atomic replacement. Add ` --evidence-write durable ` to flush and synchronize the
115127temporary file before replacement and synchronize the parent directory on platforms that support
0 commit comments