robustness polish: reviewer waitForPreview locks onto stale PR sha → ~10min spurious fallback on fresh clusters #57

Closed
opened 2026-07-01 18:23:00 +00:00 by plat · 2 comments
Owner

Found during the agents 0.7.4 first-try-ship validation (wb-rob2). The dispatcher reviewer flow: startReview→waitForPreview locked its liveness probe onto an EARLIER PR sha and waited the full ~10min fallback before logging "preview liveness unconfirmed; running reviewer anyway" and proceeding — while the preview was actually serving 200 with the correct /version sha the whole time. Self-heals (app ships correctly), but adds a ~10min spurious delay per build on fresh/slow clusters. For sellable-grade smoothness: fix the probe to track the current PR head sha (not a stale one) and/or shorten the fallback when the preview is already 200. Non-blocking backlog polish.

Found during the agents 0.7.4 first-try-ship validation (wb-rob2). The dispatcher reviewer flow: startReview→waitForPreview locked its liveness probe onto an EARLIER PR sha and waited the full ~10min fallback before logging "preview liveness unconfirmed; running reviewer anyway" and proceeding — while the preview was actually serving 200 with the correct /version sha the whole time. Self-heals (app ships correctly), but adds a ~10min spurious delay per build on fresh/slow clusters. For sellable-grade smoothness: fix the probe to track the current PR head sha (not a stale one) and/or shorten the fallback when the preview is already 200. Non-blocking backlog polish.
Author
Owner

Root-caused live on a fresh daughter (plat.local, agents 0.7.5): the ~10-min stall is NOT sha-locking — probePreview curls --resolve <host>:443:127.0.0.1, and from the agents POD 127.0.0.1 is the pod itself, so the liveness probe gets connection-refused on every poll and every review burns the full 10-min fallback. Plain in-cluster DNS (the CoreDNS rewrite germinate writes) returns 200 with /version == head sha. Fix: plat/agents#11 — DNS-first vantage with loopback fallback (dev mode preserved). Validated from both vantages on the live daughter.

Root-caused live on a fresh daughter (plat.local, agents 0.7.5): the ~10-min stall is NOT sha-locking — `probePreview` curls `--resolve <host>:443:127.0.0.1`, and from the agents POD 127.0.0.1 is the pod itself, so the liveness probe gets connection-refused on every poll and every review burns the full 10-min fallback. Plain in-cluster DNS (the CoreDNS rewrite germinate writes) returns 200 with `/version` == head sha. Fix: plat/agents#11 — DNS-first vantage with loopback fallback (dev mode preserved). Validated from both vantages on the live daughter.
Author
Owner

Fixed in agents v0.7.6 (plat/agents#11 → release #13, on prod + in the genesis seed). Root cause was the loopback-only probe, not sha-locking. Validated live twice: fresh daughter reviewer engaged in seconds after a 21-min build, zero liveness-unconfirmed lines (val076 run 3, plat/mitosis#66).

Fixed in agents v0.7.6 (plat/agents#11 → release #13, on prod + in the genesis seed). Root cause was the loopback-only probe, not sha-locking. Validated live twice: fresh daughter reviewer engaged in seconds after a 21-min build, zero liveness-unconfirmed lines (val076 run 3, plat/mitosis#66).
plat closed this issue 2026-07-02 13:06:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-platform/mitosis#57
No description provided.