fix(pipeline-status): report real 480s timeout and align description #72
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/pipeline-status/mcp-timeout"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что сделано
.opencode/tools/pipeline-status.ts:18: сообщение об ошибке при таймаутеspawnSyncтеперь говоритtimed out (480s)вместо устаревшегоtimed out (60s)— реальный таймаут был поднят до 480s в PR #69 (закрыл #68), но сообщение осталось от эпохи 60s..opencode/tools/pipeline-status.ts:6: description tool'а «Blocks up to 5 min» → «Blocks up to 8 min» — приведён в соответствие с фактическим poll budget (CI_WAIT_TIMEOUT=420s + overhead до 480s kill).tests/test_pipeline_status_tool.py: docstring убран упоминание 60s; assert вtest_execute_timeout_returns_readable_errorтеперь требует точныйtimed out (480s)— регрессионный guard от возврата устаревшего текста.Почему
Issue #67 (таймаут-контракт MCP-обёртки) частично закрыт PR #69:
timeout: 60000→480000,CI_WAIT_TIMEOUT = 300→420. Но остались две несоответствия, которые нарушают критерии приёмки #67:⚠️ pipeline_status failed (timed out (60s))— ложное сообщение, спека требует «вместо⚠️ pipeline_status failed (timed out (60s))».Watch out
spec-status.ts,project-status.ts,create-pr.tsпо-прежнему используют 60s timeout иtimed out (60s)— у них другая семантика (локальные быстрые операции, не CI-поллинг), вне scope #67 (зафиксировано в Watch out PR #69).Pending
—
Closes #67
Closes #67
Code Review Summary
PR приводит сообщение об ошибке таймаута и description tool'а
pipeline-statusв соответствие с фактическим поведением (timeout 480000ms, CI_WAIT_TIMEOUT=420s), закрывая оставшиеся критерии приёмки #67. Изменения минимальны (5+/5-), тест-регрессия обновлена на точныйtimed out (480s)— корректный guard. CI зелёный.Positives
timed out (480s)=timeout: 480000(480s), description «Blocks up to 8 min» = 480s kill budget — значения согласованы с.env.example(480000ms vs 420s budget).test_execute_timeout_returns_readable_errorтеперь требует точную строкуtimed out (480s)— защита от возврата устаревшего текста.timed out (60s)или description tool'а (провереноrgпо.opencode/scripts/,tests/,opencode.json) — формат сообщения и description не имеют функциональных readers, ломать нечего.spec-status.ts/project-status.ts(60s) — вне scope #67, корректно зафиксировано в Watch out.Suggestions (info, not blocking)
pipeline-statusсам блокирует до 5 мин» устарела — после #69 + этого PR фактический budget 8 мин (480s kill). Поведенчески не ломает (инструкция «не делать sleep» остаётся верной), но число стоит привести к «до 8 мин» для консистентности с новым description.CI_WAIT_TIMEOUT=300; сейчас 420s — можно обновить, не критично.Verdict: APPROVE