mirror of
https://github.com/nesquena/hermes-webui.git
synced 2026-07-12 18:50:35 +00:00
944e739b40
CRITICAL (Opus HALT on prior commit): the PR's edit to save_settings() replaced 'if k in _SETTINGS_ALLOWED_KEYS' with 'if k=="dashboard_plugins": continue' and orphaned the whole validation body under the continue. Effects: (a) settings save broken for every key except dashboard_plugins; (b) the allowlist security boundary gone -> any client key (password_hash, signing_key_*) became settable. Restored the guard + correct indentation; dashboard_plugins handled by the deep-merge above. Verified in-process: language persists, password_hash/signing_key injection rejected, dashboard_plugins still deep-merges. Also (Opus SHOULD-FIX #3): validate plugin name against ^[a-z][a-z0-9_-]{0,63}$ so a manifest name like '../foo' can't make the URL-space ambiguous. Regression tests added for both (the allowlist bug had ZERO coverage).