fix(eval): clean Linear issue UX paths#918
Conversation
|
Daily scan implementation update (2026-07-11): pushed follow-up Current local validation on this branch:
Keeping |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 956c3fcdc3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| tasks_dir = Path(ref) | ||
| if not tasks_dir.exists() and ref in TASK_ALIASES: | ||
| tasks_dir = ensure_tasks(ref) | ||
| elif not tasks_dir.exists(): |
There was a problem hiding this comment.
Defer or rebase native YAML tasks_dir validation
This new existence check evaluates relative tasks_dir values against the current process directory during config loading. Existing Evaluation.from_yaml() callers and tests create self-contained configs outside the cwd with tasks_dir: tasks and load them to inspect/override config fields before running; those now raise YAML tasks_dir not found even though the loader previously accepted the config. Please either keep from_yaml() as a parser and defer this validation to the run path, or resolve relative paths consistently before rejecting them.
Useful? React with 👍 / 👎.
|
Daily scan CI follow-up (2026-07-11): pushed Root cause:
Fix:
Local validation after the fix:
Keeping |
|
Users Simulation automation review (2026-07-11): blocked on head The focused tests, static checks, CLI/SDK oracle smokes, GitHub checks, and integration-light artifact are green, but user simulation found a real ProgramBench regression: Repro: tmp=/tmp/pr-918-existing-programbench
rm -rf "$tmp"
mkdir -p "$tmp/.cache/programbench-benchflow"
printf 'tasks_dir: .cache/programbench-benchflow\nagent: oracle\n' > "$tmp/config.yaml"
(cd "$tmp" && uv run --project /tmp/users-simulation-20260711/pr-918 bench eval create --config config.yaml --jobs-dir "$tmp/jobs")Actual: exits 1 with Root cause: Other validation passed:
Artifact caveat: this GLM user-endpoint artifact still has null Thermo review: blocked. A ProgramBench-specific special case was inserted into the already-large |
|
Follow-up for the Users Simulation blocker on head Fix:
Validation:
Current GitHub checks on |
|
Users Simulation automation review (2026-07-12): ready by simulation on head Validated focused regressions and adjacent YAML/docs surface:
Current-head artifact Cost metadata caveat: per-rollout Thermo review: no blocking structural regression. The ProgramBench guard is now narrow to the generated-path case, the retry alias is normalized once before planning, and the credential failure path uses a typed exception rather than generic traceback handling. Existing large files are touched, but no new 1k-line crossing was introduced. Labels stay |
Purpose
Fixes three repo-owned Linear issues that had no GitHub mirror before today's daily scan:
.cache/programbench-benchflowfailure; missing YAMLtasks_diris rejected at config load with the ProgramBench generation hint.bench eval createnow accepts--max-retriesas the expected alias for--retry-attempts, including YAML--configeval runs, and rejects both aliases when passed together.MissingAgentCredentialError, surface as clean rollout errors, and classify as non-retryableprovider_authinstead of falling into the generic traceback logger.Changes
--max-retriestobench eval createand threads the normalized retry override through both batch and config-file eval paths.tasks_direxistence duringEvaluation.from_yaml()and adds a targeted hint for.cache/programbench-benchflow.MissingAgentCredentialError, catches it explicitly inRollout.run(), and classifies missing credential strings asprovider_auth.Validation
uv run --extra dev python -m pytest tests/test_agent_idle_timeout_cli.py tests/test_cli_edge_case_hardening.py tests/test_provider_auth_detection.py -q-> 86 passeduv run --extra dev python -m pytest tests/test_agent_idle_timeout_cli.py tests/test_cli_edge_case_hardening.py::test_from_yaml_rejects_missing_tasks_dir_with_programbench_hint tests/test_cli_edge_case_hardening.py::test_eval_create_config_missing_tasks_dir_no_raw_traceback tests/test_provider_auth_detection.py::test_run_missing_credential_error_is_clean_provider_auth -q-> 15 passeduv run --extra dev ruff check src/benchflow/cli/main.py src/benchflow/evaluation.py src/benchflow/agents/env.py src/benchflow/_utils/scoring.py src/benchflow/rollout/__init__.py tests/test_agent_idle_timeout_cli.py tests/test_cli_edge_case_hardening.py tests/test_provider_auth_detection.pyuv run --extra dev ruff format --check src/benchflow/cli/main.py src/benchflow/evaluation.py src/benchflow/agents/env.py src/benchflow/_utils/scoring.py src/benchflow/rollout/__init__.py tests/test_agent_idle_timeout_cli.py tests/test_cli_edge_case_hardening.py tests/test_provider_auth_detection.pyuv run --extra dev ty check src/benchflow/cli/main.py src/benchflow/evaluation.py src/benchflow/agents/env.py src/benchflow/_utils/scoring.py src/benchflow/rollout/__init__.pygit diff --checkMerge Gate
Keep this on
status:in-progressuntil GitHub CI completes, then move tostatus:ready/review:pending. Per repo policy, do not merge without non-author human review.