fix(frontend): add autocomplete attrs to credential inputs
Build Android APK / build-android (push) Failing after 1m40s
Lint & Test / test (push) Successful in 3m35s

Silences browser accessibility warnings on the HA token, MQTT username,
and MQTT password fields. Uses new-password for the secret inputs to
discourage Chrome's site-password autofill from leaking into broker /
HA-token configuration.
This commit is contained in:
2026-04-14 12:50:50 +03:00
parent 2477e00fae
commit 488df98996
3 changed files with 3 additions and 14 deletions
-11
View File
@@ -66,17 +66,6 @@ Drive USB LED controllers (APA102, WS2812) connected directly to the Android TV
- [ ] Test with common USB-to-serial chips: CH340, CP2102, FTDI
- [ ] Document supported USB LED controllers in README
## Android App — Known Issues
Issues discovered during first end-to-end test on emulator (2026-04-14):
- [ ] **Stop/Start capture produces no frames on second try.** First capture works, but after tapping Stop and Start again, no frames reach the Python pipeline. Likely causes:
- Global MediaProjection engine state (`_active`, `_frame_queue`) not reset on service restart
- ScreenCapture listener not properly detached from ImageReader on stop
- Python uvicorn port reuse issue when server restarts
- [ ] **Web UI tabs show persistent spinners** on Dashboard, Automation, Sources, Integrations, Graph tabs (Targets tab works). All API calls return 200 OK, no console errors. Probably waiting on a specific WebSocket event that never fires when no output targets are configured/active.
- [ ] **Dead keyboard/IME handling** — password inputs lack autocomplete attributes (minor accessibility warning in browser console)
## Performance Metrics Abstraction
The codebase has direct `psutil.*` calls scattered across `api/routes/system.py` and `core/processing/metrics_history.py`, with ad-hoc `if psutil is not None` guards sprinkled in to support Android. This couples Android platform handling to every call site.
@@ -40,7 +40,7 @@
</div>
<small class="input-hint" style="display:none" data-i18n="ha_source.token.hint">Long-Lived Access Token from HA (Profile > Security > Long-Lived Access Tokens)</small>
<small id="ha-source-token-hint" class="input-hint" style="display:none" data-i18n="ha_source.token.edit_hint">Leave blank to keep the current token</small>
<input type="password" id="ha-source-token" placeholder="eyJ0eXAiOi...">
<input type="password" id="ha-source-token" placeholder="eyJ0eXAiOi..." autocomplete="new-password">
</div>
<!-- SSL -->
@@ -45,7 +45,7 @@
<div class="label-row">
<label for="mqtt-source-username" data-i18n="mqtt_source.username">Username (optional):</label>
</div>
<input type="text" id="mqtt-source-username" placeholder="">
<input type="text" id="mqtt-source-username" placeholder="" autocomplete="username">
</div>
<!-- Password -->
@@ -54,7 +54,7 @@
<label for="mqtt-source-password" data-i18n="mqtt_source.password">Password (optional):</label>
</div>
<small id="mqtt-source-password-hint" class="input-hint" style="display:none" data-i18n="mqtt_source.password.edit_hint">Leave blank to keep the current password</small>
<input type="password" id="mqtt-source-password" placeholder="">
<input type="password" id="mqtt-source-password" placeholder="" autocomplete="new-password">
</div>
<!-- Client ID -->