forked from molecule-ai/molecule-core
The first version of the config.yaml round-trip gate (PR #2773) captured curl output with `-w '\n%{http_code}\n'` and parsed via `tail -n 2 | head -n 1`. That broke because bash's $(...) strips the trailing newline, leaving only 2 lines in the captured value: line 1: <response body> line 2: <status code> `tail -n 2 | head -n 1` then returned line 1 (the body), not the status code. The gate misreported 200-with-JSON-body responses as "PUT returned <body>" and failed the canary post-merge at 22:06 UTC. Fix: write body to a tempfile via `-o "$PUT_TMP"` and use `-w '%{http_code}'` as the sole stdout. Status code is now unambiguously the captured value, body is read separately from the tempfile. No newline-counting heuristic needed. Verification: - bash -n clean - shellcheck clean on the modified block - Will be exercised by the next continuous-synth-e2e firing Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| lib | ||
| _extract_token.py | ||
| _lib.sh | ||
| STAGING_SAAS_E2E.md | ||
| test_2307_peer_visibility_staging.sh | ||
| test_a2a_e2e.sh | ||
| test_activity_e2e.sh | ||
| test_api.sh | ||
| test_chat_attachments_e2e.sh | ||
| test_chat_attachments_multiruntime_e2e.sh | ||
| test_chat_upload_e2e.sh | ||
| test_claude_code_e2e.sh | ||
| test_comprehensive_e2e.sh | ||
| test_dev_mode.sh | ||
| test_harness_rc_normalization.sh | ||
| test_model_slug.sh | ||
| test_notify_attachments_e2e.sh | ||
| test_poll_mode_e2e.sh | ||
| test_priority_runtimes_e2e.sh | ||
| test_saas_tenant.sh | ||
| test_secrets_dispatch.sh | ||
| test_staging_external_runtime.sh | ||
| test_staging_full_saas.sh | ||