Repository navigation
Put stored Discord and Feedback copies through the shared redaction - #40
Merged
aryanorastar merged 1 commit intoOct 11, 2026
Conversation
The copies of help threads and Feedback posts that are saved as evidence only lost emails and long digit runs. A pasted API key, a bearer token, a street address, an order number and Discord handles were stored as written, shown to the model and open to being quoted to another customer. A key such as sk-abcdefgh12345678 was even stored as "sk-abcdefgh[phone]". Both copies now pass privacy.js first, and feedback.js uses the one helper instead of its own.
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.
Customer problem
A customer who pastes an API key, a bearer token, a street address or an order number in the help forum has it saved as written in the stored copy of the thread, which is shown to the model as evidence and can be quoted to another customer.
redactPublicinhelpcenter.jsandfeedback.jsonly removes emails and long digit runs. A key such assk-abcdefgh12345678is stored assk-abcdefgh[phone], half of it still there. Discord handles and user ids stay too.Change
redactPublicrunsredactSensitive(text, { issue: true })first, the same boundary as a public issue, then removes any long digit run that is left, as before.feedback.jsuses that one helper instead of its own copy.Evidence
AGENTS.md: customer text and order data go nowhere public, and the way to do that is
privacy.js. These two copies were the paths that did not use it.Verification
test/helpcenter.test.jsand one intest/feedback.test.js. Both fail on main. An error code and a build number in the same message are keptnpm test: 628/628EVAL_NO_MODEL=1 node scripts/customer-eval.js: 8/8.env, orrailway.toml(the key and the numbers in the tests are made up)