fix(acr): SET typo-gates unknown-key false positives (M-BUG-10)
The CC settings schema is passthrough (verified against the 2.1.193 binary): it forwards unrecognized keys unchanged rather than rejecting them, so an arbitrary unknown key is valid/forward-compatible, not an error — the finding's "silently ignored" claim was factually wrong. The only real risk is a TYPO of a real key (the intended setting then silently has no effect). Fix: flag an unknown key only when it closely matches a known key (new levenshtein helper; edit distance <= 2, both keys >= 4 chars); severity medium -> low; honest passthrough framing in the scanner + humanizer. Also refreshed KNOWN_KEYS with 6 binary-verified keys (agentPushNotifEnabled, remoteControlAtStartup, skipAutoPermissionPrompt, skipDangerousModePermissionPrompt, skipWorkflowUsageWarning, tui). Suite 1341/0 (+12). Frozen v5.0.0 snapshots untouched (0 CA-SET findings there), no re-seed. Dogfood ~/.claude/settings.json 6->0 (all 6 keys above were false unknown-key findings; 0 typo flags introduced across 167 walked files).
This commit is contained in:
parent
7e94910566
commit
3cf5c714a2
5 changed files with 174 additions and 16 deletions
|
|
@ -96,10 +96,10 @@ export const TRANSLATIONS = {
|
|||
// ─────────────────────────────────────────────────────────────
|
||||
SET: {
|
||||
static: {
|
||||
'Unknown settings key': {
|
||||
title: 'A settings key isn\'t recognized',
|
||||
description: 'A key in your settings file isn\'t one Claude Code understands. It will be ignored.',
|
||||
recommendation: 'Check the key name for typos, or remove the key if it\'s no longer in use.',
|
||||
'Possible typo in settings key': {
|
||||
title: 'A settings key looks like a typo',
|
||||
description: 'A key in your settings file isn\'t recognized, but it\'s very close to a real one — likely a typo. Claude Code forwards unrecognized keys unchanged rather than rejecting them, so a misspelled key silently has no effect.',
|
||||
recommendation: 'Check the suggested key name. Fix the spelling, or keep the key if it\'s intentional (e.g. a newer key this audit doesn\'t know yet).',
|
||||
},
|
||||
'Deprecated settings key': {
|
||||
title: 'A settings key is no longer supported',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue