docs: comprehensive update of all markdown files for v0.21
ARCHITECTURE.md: - 6→7 JS modules (added commands.js), updated all line counts - Added api/auth.py to file inventory - Added HERMES_WEBUI_PASSWORD env var - Added projects.json to state directory listing - Replaced PORTABILITY.md ref with BUGS.md - Updated test file references (test_sprint1-19, 327 functions) ROADMAP.md: - Version Sprint 17/v0.19 → Sprint 19/v0.21, test count 294→327 - Added Sprint 18 + 19 rows to sprint history table - Updated architecture table (api/ 2491 lines, JS 3148 lines) - Added sections: Workspace, Slash Commands, Security, Thinking - Added Sprint 20-24 to Advanced/Future (voice, mobile, multi-profile, desktop, extended commands) SPRINTS.md: - Header v0.20→v0.21, 318→327 tests - "Where we are now" updated from v0.18 to v0.21 - Removed two stale/duplicate "Sprint 18" sections (Voice + Subagent) - Added completed Sprint 18 (thinking + tree + preview fix) - Added completed Sprint 19 (auth + security) - Added planned Sprints 20-24 (voice, mobile, multi-profile, desktop, commands) - Parity tables fully updated with current Done/Deferred status CHANGELOG.md: - Added v0.21 Sprint 19 entry (auth, security headers, 20MB limit) TESTING.md: - Header "through Sprint 2" → "through Sprint 19 (v0.21)" - Added test count and pytest command to header - Added 9 new manual test sections covering Sprints 11-19 - Updated footer with current stats Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
27
CHANGELOG.md
27
CHANGELOG.md
@@ -5,6 +5,33 @@
|
||||
|
||||
---
|
||||
|
||||
## [v0.21] Sprint 19 -- Auth + Security Hardening
|
||||
*April 3, 2026 | 327 tests*
|
||||
|
||||
### Features
|
||||
- **Password authentication (Issue #23).** Optional password auth, off by default.
|
||||
Enable via `HERMES_WEBUI_PASSWORD` env var or Settings panel. Password-only
|
||||
(single-user app). Signed HMAC HTTP-only cookie with 24h TTL. Minimal dark-themed
|
||||
login page at `/login`. API calls without auth return 401; page loads redirect.
|
||||
New `api/auth.py` module with hashing, verification, session management.
|
||||
- **Security headers.** All responses now include `X-Content-Type-Options: nosniff`,
|
||||
`X-Frame-Options: DENY`, `Referrer-Policy: same-origin`.
|
||||
- **POST body size limit.** Non-upload POST bodies capped at 20MB via `read_body()`.
|
||||
- **Settings panel additions.** "Access Password" field and "Sign Out" button
|
||||
(only visible when auth is active).
|
||||
|
||||
### Architecture
|
||||
- New `api/auth.py`: password hashing (SHA-256 + STATE_DIR salt), signed cookies,
|
||||
auth middleware, public path allowlist.
|
||||
- Auth check in `server.py` do_GET/do_POST before routing.
|
||||
- `password_hash` added to `_SETTINGS_DEFAULTS`.
|
||||
|
||||
### Tests
|
||||
- 9 new tests in `test_sprint19.py`: auth status, login flow, security headers,
|
||||
cache-control, settings password field. Total: **327 tests (304 passing)**.
|
||||
|
||||
---
|
||||
|
||||
## [v0.20] Sprint 18 -- File Preview Auto-Close + Thinking Display + Workspace Tree
|
||||
*April 3, 2026 | 318 tests*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user