HERMES-GIELIE/static
Dutch AI Agency 732c995d91 fix(#1560): refuse password change when HERMES_WEBUI_PASSWORD env var is set
Settings password silently no-opped when HERMES_WEBUI_PASSWORD was set:
the env var takes precedence in api.auth.get_password_hash(), but the UI
happily POSTed _set_password and returned a green "Saved" toast while
every subsequent login still required the env-var password. Same for
Disable Auth (_clear_password=true).

Backend (api/routes.py):
- GET /api/settings now exposes password_env_var: bool so the UI knows
  the field is shadowed.
- POST /api/settings refuses _set_password and _clear_password with HTTP
  409 + a clear message naming HERMES_WEBUI_PASSWORD when the env var is
  set. Short-circuits BEFORE save_settings() so settings.json is not
  touched.

Frontend (static/index.html, static/panels.js, static/i18n.js):
- Added settingsPasswordEnvLock banner div in the System pane.
- panels.js reads settings.password_env_var, disables the password field,
  swaps in a localized "locked" placeholder, reveals the banner, and
  hides the Disable Auth button (its POST would 409 anyway).
- New i18n keys password_env_var_locked and password_env_var_locked_placeholder
  added to all 9 locales (en, ja, ru, es, de, zh, zh-Hant, pt, ko).

Tests:
- tests/test_issue1560_password_env_var_lock.py: requirement-pinning
  (handler exposes flag, 409 on set/clear, banner div, panels.js wiring,
  i18n in all 9 locales, env var name in messages, live HTTP smoke when
  env unset).
- tests/test_1560_password_env_var_no_op.py: behavioral via FakeHandler
  (real status codes for env-set/unset/blank, settings.json hash unchanged
  after 409, panels.js disable+banner+placeholder+disable-auth-hidden).

Both files run clean: 23 passed in 2.04s. test_issue1139_password_remote.py
unaffected (4/4 still pass).
2026-05-03 20:59:32 +00:00
..
vendor chore: vendor streaming-markdown@0.2.15, remove CDN dependency 2026-04-24 01:05:20 +00:00
apple-touch-icon.png feature: add manifest and icons to enable app install on android 2026-05-02 19:06:39 +02:00
boot.js fix: voice-mode pref toggle-off now stops the recognizer (#1491) 2026-05-03 15:03:17 +08:00
commands.js fix: Nous Portal full live catalog + dropdown cache invalidation on provider remove 2026-05-03 18:12:01 +00:00
favicon-32.png fix: add favicon (SVG + PNG + ICO), fix static MIME types (#613) 2026-04-16 20:11:02 -07:00
favicon-192.png feature: add manifest and icons to enable app install on android 2026-05-02 19:06:39 +02:00
favicon-512.png feature: add manifest and icons to enable app install on android 2026-05-02 19:06:39 +02:00
favicon-512.svg feature: add manifest and icons to enable app install on android 2026-05-02 19:06:39 +02:00
favicon.ico fix: add favicon (SVG + PNG + ICO), fix static MIME types (#613) 2026-04-16 20:11:02 -07:00
favicon.svg fix: add favicon (SVG + PNG + ICO), fix static MIME types (#613) 2026-04-16 20:11:02 -07:00
i18n.js fix(#1560): refuse password change when HERMES_WEBUI_PASSWORD env var is set 2026-05-03 20:59:32 +00:00
icons.js fix(composer): distinct voice-mode icon, descriptive labels, opt-in pref (#1488) 2026-05-02 22:16:23 +00:00
index.html fix(#1560): refuse password change when HERMES_WEBUI_PASSWORD env var is set 2026-05-03 20:59:32 +00:00
login.js fix(login): retry connectivity probe every 3s, auto-reload when server recovers 2026-05-01 19:54:47 +00:00
manifest.json feature: add manifest and icons to enable app install on android 2026-05-02 19:06:39 +02:00
messages.js Add messaging session handoff summary 2026-05-03 16:35:22 +00:00
onboarding.js fix: onboarding API-key input loses focus when probe completes (#1503) 2026-05-03 15:05:40 +08:00
panels.js fix(#1560): refuse password change when HERMES_WEBUI_PASSWORD env var is set 2026-05-03 20:59:32 +00:00
sessions.js feat: auto-assign project when filtering by project on new session (#1468) 2026-05-03 19:02:15 +00:00
style.css Polish handoff flyout alignment 2026-05-03 16:35:50 +00:00
sw.js fix(stage-279): absorb Opus MUST-FIX — sw.js conflict-marker resolution 2026-05-03 16:21:42 +00:00
terminal.js fix: anchor active sessions per browser tab 2026-05-01 19:52:05 +08:00
ui.js Stage 283: PR #1551 — Reveal in File Manager workspace context menu (#1424) by @bergeouss 2026-05-03 19:19:02 +00:00
workspace.js fix: anchor active sessions per browser tab 2026-05-01 19:52:05 +08:00