Part of the Pre-Wave-5 consistency reconciliation pass (Tier-0 gate G4). Surfaced by the six-subagent pre-extraction consistency audit (2026-06-24).
Problem
min_timestamp (§7.3) freshness handling diverges across the three providers, and no conformance test covers it — so all three pass today and the divergence is invisible:
- ezo — strict: if it can't meet freshness it returns
CODE_DEADLINE_EXCEEDED (src/core/handlers.cpp:471-473).
- sim / bread — lenient: return
CODE_OK with QUALITY_STALE (apply_min_timestamp, byte-identical between sim handlers.cpp:119-133 and bread :68-82).
Under a shared SDK handler this must converge to one behavior. Whichever is chosen silently changes the other side's observable contract — and because the harness doesn't exercise min_timestamp (grep min_timestamp conformance/ = empty), the regression would be undetectable by the acceptance gate. This is the only silent-regression item in the whole reconciliation pass.
Decision (recommended)
Adopt the lenient behavior — return best-available data with QUALITY_STALE — matching §7.3's SHOULD wording ("return best available… indicate staleness via quality") and 2 of 3 providers. This flips ezo from an error to OK+STALE (a deliberate, documented behavior change).
Acceptance
Blocks: the spine/handler lift in Wave-5 (#45). Evidence: audit note working/provider-sdk-wave5-prereconciliation-audit.md (G4).
Part of the Pre-Wave-5 consistency reconciliation pass (Tier-0 gate G4). Surfaced by the six-subagent pre-extraction consistency audit (2026-06-24).
Problem
min_timestamp(§7.3) freshness handling diverges across the three providers, and no conformance test covers it — so all three pass today and the divergence is invisible:CODE_DEADLINE_EXCEEDED(src/core/handlers.cpp:471-473).CODE_OKwithQUALITY_STALE(apply_min_timestamp, byte-identical between simhandlers.cpp:119-133and bread:68-82).Under a shared SDK handler this must converge to one behavior. Whichever is chosen silently changes the other side's observable contract — and because the harness doesn't exercise
min_timestamp(grep min_timestamp conformance/= empty), the regression would be undetectable by the acceptance gate. This is the only silent-regression item in the whole reconciliation pass.Decision (recommended)
Adopt the lenient behavior — return best-available data with
QUALITY_STALE— matching §7.3's SHOULD wording ("return best available… indicate staleness via quality") and 2 of 3 providers. This flips ezo from an error to OK+STALE (a deliberate, documented behavior change).Acceptance
min_timestampsemantics in the Wave-5 design addendum.anolis-protocol/conformance/(e.g.test_adpp_core.py) exercising a read withmin_timestampset beyond available freshness, asserting the chosen contract (OK +QUALITY_STALE, non-empty values).DEADLINE_EXCEEDED→ OK+STALE).Blocks: the spine/handler lift in Wave-5 (#45). Evidence: audit note
working/provider-sdk-wave5-prereconciliation-audit.md(G4).