Diagnostics: classify provider runner failures#67
Open
gaofeng21cn wants to merge 1 commit intoResearAI:mainfrom
Open
Diagnostics: classify provider runner failures#67gaofeng21cn wants to merge 1 commit intoResearAI:mainfrom
gaofeng21cn wants to merge 1 commit intoResearAI:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Runner failures currently expose some deterministic local errors, but provider account/quota blockers and transient upstream provider errors are not separated clearly enough. Retry-exhausted events also lack a structured diagnosis payload, making daemon and doctor follow-up harder.
Solution
runner.turn_retry_exhaustedevents and propagate diagnosis code/guidance to turn errors.MDS provenance
Adapted the generic runner-diagnostics parts of MedDeepScientist commits
bdd6f6f,2f584e7, and the generic diagnostic/doctor pieces of838f87e. MedDeepScientist, MAS, medical-fork, manuscript-readiness, and publication-authority semantics were intentionally excluded.Tests
python -m py_compile src/deepscientist/diagnostics/runner_failures.py src/deepscientist/daemon/app.py src/deepscientist/doctor.pygit diff --checkuv run --with pytest pytest -q tests/test_runner_failure_diagnostics.py tests/test_daemon_api.py::test_daemon_retry_exhausts_after_five_attempts tests/test_daemon_api.py::test_daemon_retry_exhaustion_records_provider_diagnosis_payload tests/test_daemon_api.py::test_daemon_stops_retry_for_provider_account_blocker tests/test_daemon_api.py::test_daemon_skips_retry_for_non_retryable_minimax_protocol_error tests/test_daemon_api.py::test_daemon_skips_retry_for_unknown_binary_attachment_extension_error tests/test_doctor.py::test_doctor_reports_recent_runtime_failure_with_problem_why_fix tests/test_doctor.py::test_doctor_reports_provider_account_runtime_failure_with_problem_why_fix tests/test_doctor.py::test_doctor_surfaces_probe_diagnosis_for_known_tool_argument_error