Repository navigation
Validate staged public text before any public creation - #635
Merged
Merged
Conversation
This was referenced Oct 10, 2026
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
Staged single-public Security fix text is now validated before thirdshift creates the public issue. A rejection blocks creation, so no public issue can leak private write-up text.
Evidence
check_issue_text.After: the same proposals fail before creation — no public issue, no PR:
cargo test --test security_run a_staged_proposal→ 2 passed (a_staged_proposal_is_created_by_thirdshift_not_the_session,a_staged_proposal_is_validated_before_any_public_issue_is_created)cargo test --test security_run→ 89 passed, 0 failedcargo test --bin thirdshift security::fixing→ 2 passedcargo clippy --all-targetsandcargo fmt --check→ cleanMerge Danger
Door: two-way
Small validation gate on the staged single-public path; rolling it back restores create-then-check.
Blast Radius: security-fix-publishing
Only the staged single-public path changes (validate-then-create via the existing
record.check_public_fix_text). The session-created and Spec paths are untouched.Unaddressed findings
Standards
format!("{title}\n\n{body}")atsrc/security/fixing.rs:89repeats the identical join inGitHub::security_fix_textatsrc/github/advisories.rs:488. Plan decision: leave inline — a sharedjoin_fix_texthelper for one format string adds indirection without leverage (deletion test favours inline). Refuted by:cargo test --test security_run→ 89 passed, 0 failed; no behaviour is wrong and no strutted abstraction was added.Spec
No finding was declined for Spec or Day-shift decision, so no
needs-triageissue was filed.Review coverage: both axes read both changed files (
src/security/fixing.rs,tests/security_run.rs). No changed file was left unread by the review.Closes #628
Built with muse · default model · default effort