Repository navigation
Unattended triage of existing needs-triage issues - #1917
Merged
Merged
Conversation
Support targeted in-place issue triage
Run unattended Triage Passes from terminal or EOF input
Keep image preparation in the shared Triage investigation path and retain both image-cache and unattended-Pass navigation entries. Validation: scripts/affected-tests main passed (3,951 Rust tests; 67 site checks). The Rust step took 2,958.41 seconds including compilation. Pickup model regressions, strict Clippy and formatting also passed.
Pre-download trusted issue images for triage
JacobStephens2
marked this pull request as ready for review
November 10, 2026 03:59
Preserve main's Claim, Failure limit and Sweep decisions alongside #1695's Triage lifecycle, recommendation-only behavior and explicit failure acknowledgement.
Merged
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
Closes #1695
Existing-issue sessions receive trusted issue text and bounded local image downloads. Publication preserves category labels, holds readiness at
ready-for-humanunless permitted, and cleans up Claims and reservations on success, failure, interruption and Stop. Passes use the configured issue order and retain normal Activity log, notification and Command-record behavior.Whole-Spec review fixes route category/state changes through
labels::Edit, honorbase <branch>for both Report forms, and keep private Security-finding investigation, questionnaires and failure diagnostics out of email. Failure documentation names explicit acknowledgement actions. The coordinated global Claim/takeover change remains in #1902 under #1891's explicit interim permission.Tested seams
Evidence
Execution evidence
Report Base branch — before:
cargo test --test triage_spec_regressions report_modes_honor_the_requested_base_branch -- --exactfailed:stdin: thirdshift: triage base <branch> requires an issue or a Pass(Some(1)instead ofSome(0)). After: the same command passed, exercising both stdin and--fileagainst a marker present only on the selected origin branch.Private finding notification — before:
cargo test --test triage_spec_regressions private_security_finding_triage_does_not_email_its_write_up -- --exactfailed:issue: leaked PRIVATE_TRIAGE_FINDING_WRITE_UP_1695; investigation and questionnaire text appeared in the captured Resend notification. After: the same command passed for explicit issue and Pass modes, while full JSON evidence remains on stdout.Private failure notification — before:
cargo test --test triage_spec_regressions failed_private_finding_triage_keeps_diagnostics_out_of_email -- --exactfailed: notificationCause:includedinvalid type: string "PRIVATE_FAILED_TRIAGE_EVIDENCE_1695". After: the same command passed for malformed recommendations and Harness failures in both modes; saved and sent notifications retain the recorded title/link and omit private evidence.cargo test --test triage_issue --test triage_pass --test triage_run: 46 passed before review fixes. Existing issue-publication tests also passed after the shared label-edit refactor.cargo test --test triage_spec_regressions: 3 passed after all fixes, plus the intentionally ignored fixture entry point.npm run docs:check --prefix site: passed after manual regeneration.cargo test --locked --test pickup_model -- --nocapture: 4 passed, 1 intentionally ignored. Claimed-dispatch safety passed; the known literal pre-Claim dispatch counterexample remains recorded. Both model mutations failed with their expected counterexamples.scripts/affected-tests main: passed. Site browser tests passed; the full Rust suite passed all 3,954 tests across 98 binaries (94 intentionally skipped), including prompt/manual and the new CLI regressions.Repair validation on
b249479f:scripts/affected-tests mainpassed: all 67 site tests and all 3,995 Rust tests across 100 binaries (97 existing skips). The selectedcargo nextest runtook 2,792.56 seconds including compilation; test execution took 2,578.466 seconds. The x86_64 musl artifact downloaded from failed Release run42760089373passed static-link andthirdshift 0.24.3version assertions on Linux. WSL itself is unavailable on this host. No source or workflow files changed, and no CI jobs were re-run.Visual evidence
Expanded Triage workflow, desktop 1440×900:
Expanded Triage workflow, mobile 390×844:
Unaddressed findings
Standards
None. The one finding was addressed and the Standards reviewer confirmed the fix.
Spec
None. All three findings were addressed and the Spec reviewer confirmed the fixes.
Security
None.
Security review outcome
No unaddressed introduced findings.
Review coverage
Both independent reviewers read all 33 original changed paths and all review fixes, covering all 38 changed files. Changed files left unread: none, on either axis. Generated-output exclusions: none; generated prompts and manual output were inspected directly. Final reports and combined files-read lists are retained as
standards.mdandspec.mdin the session's.thirdshift-review-WLjKX3/, withsummary.jsonrecording{"standards":1,"spec":3}. Counts include findings fixed during this review.CI notes
custom-release-smoke / wsl: job log shows the unchanged 10-minute job timing out inVampire/setup-wsl@v7during Ubuntuapt-get update, before artifact download or thirdshift execution;git diff main...HEAD -- .github/workflows/release-smoke.yml .github/workflows/release.yml dist-workspace.tomlis empty, so this provisioning failure is unrelated to the branch.Merge Danger
Door: two-way
Blast Radius: triage
Changes existing-issue labels, comments and closure, downloads trusted issue images, and shares failure accounting with Pickup. GitHub publication can be partial when a request fails; completed writes are retained and reported.
Built with codex codex-cli 0.164.0 · gpt-6.1-sol · xhigh
Tickets