Change contract
Prevent child ossutil progress/success text from contaminating the Rust polymarket-raw-ops upload JSON stdout contract, while preserving all existing fail-closed upload and readback verification.
Failure evidence
Formal Gate t-jpn6s489bspalfk completed the 3600s observation plus 601s mature tail, then failed at jq with Invalid numeric literal. The same run's upload-status.json records uploaded_segments=1, canonical_uploaded_segments=1, failed_segments=[], and the exact OSS triplet exists. A direct ECS probe confirms aliyun ossutil cp writes a human success summary to stdout even with --quiet or --no-progress.
Acceptance evidence
- A focused red-capable test proves child stdout is suppressed by the shared OSS command runner.
- The focused test fails before and passes after the fix.
- Existing Polymarket upload tests, collector test target, fmt, and clippy pass.
- Review confirms stderr/error propagation and bounded fail-closed readback remain unchanged.
Out of scope
Rollout / rollback
Merge independently, build a new exact-main candidate, then run a new 3600+601 second Shadow Gate. Rollback is reverting this single Rust change; production remains on Python until Gate success.
Change contract
Prevent child
ossutilprogress/success text from contaminating the Rustpolymarket-raw-ops uploadJSON stdout contract, while preserving all existing fail-closed upload and readback verification.Failure evidence
Formal Gate
t-jpn6s489bspalfkcompleted the 3600s observation plus 601s mature tail, then failed atjqwithInvalid numeric literal. The same run'supload-status.jsonrecordsuploaded_segments=1,canonical_uploaded_segments=1,failed_segments=[], and the exact OSS triplet exists. A direct ECS probe confirmsaliyun ossutil cpwrites a human success summary to stdout even with--quietor--no-progress.Acceptance evidence
Out of scope
Rollout / rollback
Merge independently, build a new exact-main candidate, then run a new 3600+601 second Shadow Gate. Rollback is reverting this single Rust change; production remains on Python until Gate success.