Repository navigation
Give invalid Triage recommendations one correction turn - #2028
Merged
Merged
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.
Summary
A completed Triage investigation previously failed immediately when its recommendation had a shape or questionnaire error. Give it one correction turn while keeping validation strict.
The correction receives the original instructions, rejected output and exact error as separately identified evidence, and preserves the full investigation and intended issues/comments without investigating again. Execution and GitHub/publication failures do not trigger correction. Private Security-finding notification protections remain in force.
Closes #2019
Evidence
Execution evidence
Before:
cargo test --test triage_correction an_unnecessary_questionnaire_gets_one_correction_and_keeps_the_investigation -- --exact --nocaptureAfter: the same command passed:
1 passed; 0 failed.Confirmed cause: successful Harness output reached
parse_recommendation, whose validation error propagated before publication or a correction could run. The minimized trigger is one otherwise complete issue with an unnecessary questionnaire.cargo test --test triage_correction: 9 passed, including missing/unnecessary questionnaires, misplaced comments, mixed entries, one-turn limits, complete publication, recommend-only, existing-issue cardinality/Agent Brief/readiness, post-correction validation, private notifications and real Bubblewrap confinement.cargo test --test triage_run --test triage_issue --test triage_spec_regressions --test triage_pass: 52 passed.cargo test --bin thirdshift prompts_page: 14 passed after regeneration;npm run docs:check --prefix sitepassed.PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-issue-2019-browsers CARGO_BUILD_JOBS=3 RUST_TEST_THREADS=3 scripts/affected-tests refs/remotes/origin/main: passed (68 site checks and the complete Rust suite, including all 100 integration test files).The initial
scripts/affected-tests mainselected unrelated history because localmainis checked out in another worktree at27f547958b9e5f43bb2616f7e42286f35534fe0a; it stopped immediately on unavailable Go. The final selection uses the specifiedrefs/remotes/origin/mainbase atde91156c424fa54e95845f1e10e46afaf0bdf406. That worktree and localmainwere left untouched.Test seams
thirdshift triageCLI in Report and existing-issue modes, with fake Harness responses and fake GitHub publication.Visual evidence
Manual, Triage runs section, same scroll state.
Desktop, 1440×900
Mobile, 390×844
CI repair validation
Merged
mainat482507a4in2d05b78a, including #2027's Ubuntu DNS recovery before musl dependency installation. The reconciliation also includes upstream version 0.29.0 and domain documentation; it changes no application sources, Rust tests or site pages. The feature diff against the merged base remains the same 13 files.PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-issue-2019-browsers CARGO_BUILD_JOBS=3 RUST_TEST_THREADS=3 scripts/affected-tests refs/remotes/origin/mainpassed: 68 site checks and 4,242 selected Rust tests. Rust wall time: 1682.52 seconds, including compilation.node --test site/tests/docs.test.cjspassed 7 tests,CARGO_BUILD_JOBS=3 RUST_TEST_THREADS=3 cargo test --test updatepassed 10 tests, and the built binary'sversionoutput matchedthirdshift 0.29.0.python3 -m unittest discover -s scripts -p test_generate_release.pypassed 3 tests;python3 scripts/generate-release.py --checkandbash -n scripts/release-dns.shpassed. The imported DNS helper also passed four isolated probes with mockedgetentandsudo: healthy DNS, recovery through public resolvers, refusal to change DNS outside CI, and failure when recovery still cannot resolve a host. Host DNS was not changed.dist build --artifacts=local --target x86_64-unknown-linux-musl --print=linkage --output-format=jsonand the same command with--target aarch64-unknown-linux-musl. This Rocky Linux host cannot complete those artifact builds: x86_64 lacksx86_64-linux-musl-gcc; aarch64 lackscargo-zigbuild. Both attempts exited 255. Local musl artifacts are not verified.Review coverage
Independent Standards and Spec reviews against
refs/remotes/origin/main(de91156c424fa54e95845f1e10e46afaf0bdf406) each raised 0 findings. Each reviewer read all 13 changed files, including generated output; no unread changed files or exclusions remain. Reports and counts are retained in.thirdshift-review-7L9Yo7/{standards.md,spec.md,summary.json}beside the Session evidence.Unaddressed findings
Standards
None.
Spec
None.
Security
None.
Security review outcome
No unaddressed introduced findings.
CI notes
4e5d9a49, the x86_64 musl job and aarch64 musl job failed before compilation: APT could not resolveazure.archive.ubuntu.com/ports.ubuntu.comwhile installingmusl-tools. The feature diff changes neither release setup nor dependency inputs. The upstream reconciliation above supplies the existing DNS fix without relaxing any check.npm test. Those setup steps are unchanged by the feature diff. No additional fixes were made for them.Merge Danger
Door: two-way
Reverting restores immediate failure on invalid recommendations; no schema migration.
Blast Radius: Triage
An invalid recommendation can spend one additional Harness turn before publication or failure. Valid initial recommendations use no extra turn.
Built with codex codex-cli 0.167.1 · gpt-6.1-sol · xhigh