[glm-grade=A] fix(config): teach schema KNOWN_KEYS the licenseBackup/_version writer keys (DC-091)
Every startup logged two false-positive 'Unknown config key — possible typo?' warns: licenseBackup (written by src/managers/license-manager.js:510 activation persistence) and _version (stamped by src/config/migrations.js). Both are first-party writers the validator was never taught about (DC-091). - config-schema.js: add both keys to KNOWN_KEYS with a source-of-writes comment - config-schema.test.js (new): 5 regression tests — live production config keyset validates with zero unknown-key warnings, writer keys never warn, genuine typos still warn (exact string), license/licenseBackup sync guard, _version recognized at every migration value Verified: full jest suite 111 suites / 2621 tests green (baseline 110/2616). Warns reproduced in live container logs 2026-08-22T23:53:54Z; live config.json contains both keys (licenseBackup activation, _version 2). Judge: GLM-5.3 cold read via delegate_task (deleg_30e52384, 36s) — grade A, ship. Verdict URN: urn:ump:ermkvz6ifbp5svga5cnapv5jhm7c5b7qdbwjjerfpxbwcrolm2za (readback verified) Codex quota-walled until 2026-08-29; GLM stand-in per Sami 2026-08-17 directive.
This commit is contained in:
@@ -14,7 +14,11 @@ const KNOWN_KEYS = [
|
||||
'configurationType', 'defaults', 'customLogo', 'customFavicon',
|
||||
'dashboardTitle', 'tailscale', 'license', 'skipped',
|
||||
'routingMode', 'domain', 'email', 'defaultIP', 'pylon',
|
||||
'customLogoDark', 'customLogoLight', 'language'
|
||||
'customLogoDark', 'customLogoLight', 'language',
|
||||
// license-manager.js persists the last activation to config.licenseBackup
|
||||
// (restore-on-restart path); src/config/migrations.js stamps _version.
|
||||
// Both are first-party writes — see DC-091.
|
||||
'licenseBackup', '_version'
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user