# RCON Password Display Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Show the RCON password on the server detail page with a show/hide toggle. **Architecture:** Three-file change. An external JS file (`password-reveal.js`) provides the reveal/hide interaction via event delegation on `[data-password-toggle]` attributes — no inline handlers or HTML event attributes. The template adds a row to the existing `.server-info` definition list with a masked span, value span, and toggle button. Base.html adds the script include alongside existing JS files. **Tech Stack:** Vanilla JS, Jinja2 templates, Flask --- ## File Structure | File | Responsibility | |------|---------------| | `l4d2web/static/js/password-reveal.js` | New. Delegated click listener for show/hide toggle on `[data-password-toggle]` | | `l4d2web/templates/server_detail.html` | Add one `
` row to `.server-info` DL | | `l4d2web/templates/base.html` | Add ` ``` Expected result: `base.html` now has 5 script includes: htmx, csrf.js, sse.js, modal.js, file-tree.js, password-reveal.js. - [ ] **Step 2: Verify the app starts** Run: `cd l4d2web && python -c "from l4d2web.app import create_app; app=create_app(); print('app created ok')"` (or similar smoke test) Expected: App initializes without import/template errors. - [ ] **Step 3: Commit** ```bash git add l4d2web/templates/base.html git commit -m "feat: include password-reveal.js in base template" ``` --- ### Task 4: Run tests **Files:** None - [ ] **Step 1: Run existing test suite** Run: `pytest l4d2web/tests -q` Expected: All tests pass (no regressions from this purely-presentational change) - [ ] **Step 2: If any tests fail, investigate and fix** Run: `pytest l4d2web/tests -q --tb=long` Expected: Clear failure report to debug