findDeprecatedConfigIssues
findDeprecatedConfigIssues(
raw):DeprecatedConfigIssue[]
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/schema.ts:1198
GS2-28 — detect the removed pre-2.0 config shapes on the RAW input (read-only; no mutation), returning one DeprecatedConfigIssue per occurrence. A non-empty result is a HARD validation failure: 2.0 dropped back-compat coercion, so an old shape must error and point at the fix rather than be silently remapped or ignored.
Detects:
- (A) a COMMAND name (COMMAND_KEYS) at the config ROOT — must move under
commands.<cmd>; - (C) a deprecated
*Provider*name (DEPRECATED_ROOT_PAIRS at root, DEPRECATED_COMMAND_PAIRS per command) — must use its*Source*replacement; - (D, CFG-18) a removed per-command key folded into another (REMOVED_COMMAND_KEYS, e.g.
commands.<cmd>.devTools→ configure underbuiltInTools); - (E, CFG-26) a retired
run_shell_commandapproval knob (RETIRED_SHELL_TOOL_PAIRS) at EITHERbuiltInTools.run_shell_command.*orcommands.<cmd>.builtInTools.run_shell_command.*— each message names theapprovals.*key that replaced it; - (F, CFG-27) a retired
approvalskey ormodevalue (RETIRED_APPROVALS_KEYS, RETIRED_APPROVAL_MODES) at EITHERapprovals.*orcommands.<cmd>.approvals.*— each message names the rung that replaced it.
Runs on the raw input specifically so nested commands.*.contentProvider is still visible
(zod’s per-command z.object would strip it before any schema-embedded check could fire).
A genuinely-unknown key is NOT flagged here (it stays a warn-only unknown key), preserving
the deliberate typo-tolerance.
Parameters
Section titled “Parameters”Record<string, unknown>