Config edits
Which config files propose_config_edit can change, how the strict loaders refuse unknown keys, and what smith config check does.
A config edit changes one named file. The loaders are strict, so a bad key is refused rather than ignored.
01Files#
desk.jsonandharness.jsonare real files.projects/<tracker>/<project id>.jsonis the project's local half, a real file. See projects#two-halves.records/<project name>.jsonis the tracker record, not a file on disk. The click writes the tracker.roles/<role name>.jsonis a user role, saved through the role route.
02Strict loaders#
harness.jsonis decoded withDisallowUnknownFields(decodeHarnessConfigWarn).desk.jsonis decoded withDisallowUnknownFields(decodeDeskProject).
An unknown key stops the core at the next restart.
03What a refusal says#
<file>: unknown field "<key>", followed by : <hint> when the key is in renamedFields. That table is currently empty; a key that still loads as an alias isn't listed.
04smith config check#
Checks files with the start-up loaders, without starting the core.
--deskchecks a desk.json.--harnesschecks a harness.json.--project-filechecks a project's local file; repeatable.--projectis the folder relative desk.json paths resolve against.
Each refusal is printed with its file name. Harness warnings print as harness.json: warning: …. Any refusal fails the command with "config check refused".