Repository navigation
Require recipient confirmation before sending a detailed report - #8
Merged
Merged
Conversation
ct_scan_admin_send_report() checked the saved contact, terms, terminal state, and manual review, but not confirmed_at. A request whose confirmation link expired unused could reach the send path once an operator entered manual notes, so detailed findings could go to an address that never confirmed the request. The send now refuses with report_recipient_unconfirmed unless the job was confirmed, whatever its terminal state. The unknown-mail fixture confirms its job first, as a real job would be. A new integration case covers an expired, unconfirmed job with operator notes: no mail, and send state unchanged. Verified the case fails without the guard. Refs CompleteTech-LLC/complete.tech#17 (gap 4). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Fixes gap 4 of CompleteTech-LLC/complete.tech#17.
Problem
ct_scan_admin_send_report()verified the saved contact, terms version and hash, terminal state, and manual review. It never checkedconfirmed_at. A job whose confirmation link expired unused endsexpired, which is a terminal state. Once an operator saved manual-remainder notes, the send path would email detailed findings to an address that never confirmed the request. Found by source review; there is no evidence it happened in production, where the queue is disabled.Change
report_recipient_unconfirmedunlessconfirmed_atis set, regardless of terminal state.Verification
integrations/wordpress/tests/integration.phppasses in the disposable WordPress + MariaDB fixture (deployment/compose.test.yaml).After merge, the vendored copy in
complete.tech(mu-plugins/ct-scan.php+docs/php2shell-source.json) will be updated to this revision.🤖 Generated with Claude Code