Repository navigation
docs(everything): state the whole-segment rule for get-env masking - #5532
Conversation
The README said get-env masks any name with a KEY, TOKEN, ... segment, which reads as covering APIKEY or MYKEY. The code and docs/features.md match only whole underscore-delimited segments, in any case. Align the README sentence with them. Closes #5524 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: cliffhall <cliff@futurescale.com>
|
|
| Tools | Prompts | Resources | Resource templates | |
|---|---|---|---|---|
| Base | 22 | 4 | 8 | 5 |
| Head | 22 | 4 | 8 | 5 |
Updated by this run for 1037eed5a4fdfdbee2afd7762f3d9ed0fba01960.
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues were identified for the documentation clarification of credential-name masking.
No open issues 🎉
What changed in this PR
Clarifies the everything server’s get-env documentation to address #5524 without changing masking behavior.
Changes:
- Specifies that credential words match whole underscore-delimited segments, case-insensitively, rather than substrings.
- Contrasts masked
OPENAI_API_KEYwith unmaskedAPIKEY.
| File | Description |
|---|---|
src/everything/README.md |
Clarifies the existing credential-name masking rule and adds contrasting examples. |
Review effort: Balanced
|
Copilot round 1: clean (no findings, no suppressed comments). The loop stops on the first clean round. CI is green. |
Closes #5524
Description
The
everythingREADME saidget-envmasks the value of any name with "aKEY,TOKEN, … segment". Read naturally, that coversAPIKEYorMYKEY, but the code (isCredentialNameintools/get-env.ts) anddocs/features.mdmatch only a whole underscore-delimited segment, in any case. This PR rewrites that one parenthetical to use thefeatures.mdwording, plus the code header's clarification:Masking behavior and the credential word set are unchanged.
Server Details
everythingREADME.mdonly (theget-envmasking sentence)Motivation and Context
See #5524.
get-envis annotated read-only, so clients may auto-approve it. A user who named a variableAPIKEYand trusted the README would expect its value to be redacted, but the full value would reach the model's context.How Has This Been Tested?
This change has nothing a client can observe, so the evidence is a targeted check that the new sentence matches what the code does:
isCredentialNameuppercases the name, splits it on_, and masks only when a whole segment is in the credential word set. SoOPENAI_API_KEYis masked andAPIKEYis not, exactly as the sentence now says.src/everything/__tests__/tools.test.tsalready pin these semantics:OPENAI_API_KEYandkeyare masked, whileKEYBOARD_LAYOUT,MONKEYandTOKENIZER_PATHstay readable.npm run local:gateexits 0.Breaking Changes
None.
Types of changes
Checklist
🤖 Generated with Claude Code