Change contract
The Polymarket shadow gate must not require a healthy legacy Python collector as its baseline-health admission (LEGACY_HEALTH_START_REQUIRED), because the legacy lane is being retired precisely for the degradation that now blocks it (chronic HTTP 429 storms, stale health writes). Parity evidence requirements for the candidate itself are unchanged.
Production evidence (2026-07-31 → 2026-08-01)
polymarket-reference-collector.service (legacy Python) health: 39+ HTTP Error 429 entries, updated_at == last_success_at frozen for 1.5h+, no health written 15+ min after a clean restart.
- Two consecutive shadow-gate attempts (13:22, 06:27 CST) died at
active legacy collector health is not fresh or Gate-admissible (polymarket-raw-ops-shadow-gate.sh:1442), blocking the Rust cutover while 14 market-tape segments backlog.
- Owner decision: legacy historical data quality is not a gate concern; lost data will be recollected, not backfilled.
- Interim production state: the on-host release copy of
polymarket-raw-ops-shadow-gate.sh was patched to LEGACY_HEALTH_START_REQUIRED=false (bundle hash recomputed, evidence-preserved) to unblock the in-flight cutover. This PR makes the change official.
Acceptance
Out of scope
- Weakening any candidate-side gate checks (parity, readback, continuity)
- Legacy Python collector fixes (lane is retired by the cutover)
Runtime control
- Target: polymarket-raw-ops gate/cutover 控制面
- Candidate: cb55ac1d(主机已补丁,本 PR 固化)
- Controller: kimi (authorized by repo owner 2026-07-31)
- Stop rule: cutover 验证失败、Rust collector 健康异常
- Rollback: 按对应 cutover/rollback 脚本回滚到上一个通过 gate 的 digest;证据链保留在 /data/monday/evidence/
Change contract
The Polymarket shadow gate must not require a healthy legacy Python collector as its baseline-health admission (
LEGACY_HEALTH_START_REQUIRED), because the legacy lane is being retired precisely for the degradation that now blocks it (chronic HTTP 429 storms, stale health writes). Parity evidence requirements for the candidate itself are unchanged.Production evidence (2026-07-31 → 2026-08-01)
polymarket-reference-collector.service(legacy Python) health: 39+HTTP Error 429entries,updated_at == last_success_atfrozen for 1.5h+, no health written 15+ min after a clean restart.active legacy collector health is not fresh or Gate-admissible(polymarket-raw-ops-shadow-gate.sh:1442), blocking the Rust cutover while 14 market-tape segments backlog.polymarket-raw-ops-shadow-gate.shwas patched toLEGACY_HEALTH_START_REQUIRED=false(bundle hash recomputed, evidence-preserved) to unblock the in-flight cutover. This PR makes the change official.Acceptance
LEGACY_HEALTH_START_REQUIREDdefaults to false (or the admission is scoped to structural freshness only), with the incident rationale documented in the scripttest-polymarket-raw-ops-control-plane.shgreenOut of scope
Runtime control