Skip to content

Approve proposed Eval tasks from the CLI and Console - #1273

Merged
JacobStephens2 merged 2 commits into
issue-977from
issue-1021
Oct 24, 2026
Merged

JacobStephens2 merged 2 commits into
issue-977from
issue-1021

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

CLI: thirdshift evals approve <suite> <task> [--json]
Console: Experiment pages → Approve
  → shared validation and atomic manifest state change
  → approved Eval task, eligible for future Experiments

Approval preserves inputs and comments, starts no work, and leaves existing
Experiments fixed on resume. Unapproved proposals remain excluded.

Closes #1021

Test seams

  • Eval CLI: approval, listing, preparation and refusal of invalid proposals.
  • Experiment CLI: proposed tasks stay outside the fixed Experiment inputs.
  • Console HTTP and browser: proposal display, authenticated approval and parity with the CLI.

Evidence

  • Before: cargo test --test evals approval_makes_a_proposed_task_eligible_without_changing_its_inputs failed because approve was unavailable.
    After: passed; the test checks listing, preservation, repeated approval and preparation.

  • Console approval matches CLI state changes, requires CSRF, filters proposals by suite, and works at 390 px. Experiment coverage checks that unapproved proposals receive no Trials and approval only affects future Experiments.

  • The exact Standards Session --json reproduction failed as reported. Added the JSON form and retained raw-log/Session-trace parity assertions. Shared the repeated Trial-cell traversal.

  • Passed focused Eval CLI tests (16), Experiment exclusion/approval regression (1), Console Experiment HTTP tests (3), phone browser tests (3), and typechecking. Both reviewers' exact Session parity commands and the standalone JSON reproduction pass after the fixes.

  • CI passed on final commit a0f610b9, including the full Rust test job, Console browsers and site checks. Local cargo fmt --all -- --check, cargo clippy --all-targets -- -D warnings and all 3 Console browser tests also passed on that commit.

  • Local /usr/bin/time -p scripts/affected-tests issue-977 passed all 44 site tests, then stopped at release::an_interrupted_release_resumes_the_same_experiment: a model Grader failed after interruption/resume (398 Rust tests passed, 1 failed; 58 skipped, remaining tests not run). Total wall time was 790.95 s, including a 60 s Rust compile and site checks. The exact isolated command below then passed twice (10.45 s and 10.68 s). No code change was made for this intermittent local failure; successful CI covers the exact final head, so the full suite was not repeated after it passed.

    cargo test --test experiments release::an_interrupted_release_resumes_the_same_experiment -- --exact --nocapture

Merge Danger

Door: two-way

Approval changes a private manifest's state; it can be set back to proposed.
It does not rewrite an existing Experiment or start a Trial.

Blast Radius: Evals

CLI approval, Console Experiment pages and retained Session evidence.

Review coverage

Independent Standards and Spec reviews used git diff issue-977...HEAD, with
the local fixed point pinned to 298b6b8b9cc60b876dce971dd027ce60b6f27155.
This includes inherited #1020 work; this implementation started from
3e823621, the fetched origin/issue-977 head.
Both axes read all 34 changed files, including generated documentation hunks,
and inspected the final review fixes. No generated-output exclusions or unread
changed files remain. Reports are retained in the Session's
.thirdshift-review-nX6yu9/standards.md and spec.md.

Unaddressed findings

  • Standards: None. Both findings addressed; the follow-up test defect was reproduced and corrected.

  • Spec: None. No product findings; the follow-up test defect was reproduced and corrected.

  • Security: None. Guidance-mode review of git diff 3e823621...HEAD (approval CLI, Console approve route, Session JSON change, render refactor) against web/auth, traversal, injection and state-machine classes found no introduced issue: approval names are allowlisted at list and approve time, the approve POST sits behind the Console session guard with CSRF enforcement (committed test asserts 403 without a token), encoded ..// probes return 400 with no escape or state change, and unapproved proposals stay excluded from preparation and Experiments.

Built with codex · gpt-6.1-sol · xhigh

Security review outcome

No unaddressed introduced findings.

@JacobStephens2
JacobStephens2 merged commit b905b24 into issue-977 Oct 24, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1021 branch October 24, 2026 17:58
JacobStephens2 added a commit that referenced this pull request Oct 24, 2026
Keep the Trial-input preflight and Spec-review sandbox documentation alongside the incoming CLI and Console Eval-task approval documentation.

Validation: cargo check, cargo fmt --all -- --check, 44 site tests, three Console Experiment browser tests, and all 171 tests in evals, experiments, trial and console passed (three skipped).

The affected-tests selector stopped after 400 Rust passes on release::an_interrupted_release_resumes_the_same_experiment, matching the intermittent failure documented in upstream PR #1273. Its isolated cargo test and nextest reruns both passed, and it passed again in the 171-test targeted run. The selector took 432.74s including compilation; the targeted run took 190.67s.
@JacobStephens2 JacobStephens2 mentioned this pull request Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant