Document 8D.12/8D.13 Functional Sign-Off

This commit is contained in:
2026-09-08 21:40:18 +02:00
parent 4a4d615c59
commit 36d41be422
4 changed files with 28 additions and 2 deletions
+23 -1
View File
@@ -2,10 +2,32 @@
## Status and scope (2026-09-08)
The user authorized both phases together. Backend and admin-only Settings/Network UI are implemented: **8D.12** delivers secret-free STA/AP/profile projections, non-secret edits, explicit persistence and mDNS; **8D.13** adds explicit Wi-Fi password replacement/disabled-STA clear and manager-owned connection controls. This supersedes older wait-for-8D.12 statements, not previous scoped acceptance. No 8D.14 work, M3 completion, target sign-off or numeric memory reserve approval is claimed.
The user authorized both phases together. Backend and admin-only Settings/Network UI are implemented: **8D.12** delivers secret-free STA/AP/profile projections, non-secret edits, explicit persistence and mDNS; **8D.13** adds explicit Wi-Fi password replacement/disabled-STA clear and manager-owned connection controls. This supersedes older wait-for-8D.12 statements, not previous scoped acceptance. **User functional sign-off received on 2026-09-08**, including the subsequent Settings presentation refinements. No 8D.14 work, M3 completion or numeric memory reserve approval is claimed.
Source authority: `src/web_network_settings.{c,h}`, `wifi_manager.{c,h}`, `wifi_config.{c,h}`, `mdns_service.{c,h}`, `mdns_config.{c,h}`, `admin_ssh_console.{c,h}`, integration in `web_server.c`/`src/CMakeLists.txt`, and authored `web_ui.c`. Contract/test details: `tests/web_network_settings/README.md`, `tests/web_ui_session/network.cjs`, cookie Network tests and server lifecycle tests. This documentation handoff changes no source, tests, generated assets or commands. Browser-shell Wi-Fi/mDNS restrictions are unchanged; typed routes do not grant general command execution.
## Functional acceptance and target telemetry — 2026-09-08
User supplies 60-second fresh-boot and full-client-mix samples and explicitly states: “So that's a functional sign-off from me.” Accept implemented 8D.12/8D.13 and their readable-SSID/consistent Settings presentation refinements. This supersedes earlier target-pending/no-signoff statements, not historical host evidence or limits. No individual unreported mutation/persistence/recovery/fault-injection test, soak duration, all-key test, exact flashed revision, browser version or numeric resource-reserve approval is inferred. No next-phase implementation is authorized by sign-off alone.
| Memory (bytes) | Boot free / minimum / largest | Full mix free / minimum / largest |
|---|---|---|
| Internal 8-bit | 66,000 / 60,632 / 31,744 | 31,512 / 2,276 / 20,480 |
| Internal DMA | 58,244 / 52,876 / 31,744 | 23,756 / 156 / 20,480 |
| PSRAM | 8,246,156 / 8,184,100 / 8,126,464 | 8,112,140 / 8,070,736 / 7,995,392 |
Minima are conservative sums of individual-region lifetime minima, not necessarily simultaneous; internal/DMA capabilities overlap. Loaded settled internal/DMA free is only 308 bytes below the preceding cleanup sample (31,820/24,064), while minima fell from 15,740/7,984 to 2,276/156. This is a significant transient-headroom concern, not proof of an allocation failure or attribution to styling/Network changes. Different admission/operation histories are unmeasured. Functional acceptance does not approve these reserves. HTTPD/dispatcher stack margins and peak-allocation correlation remain follow-ups; SSH's 20,480-byte owner stack has minimum-free 18,468 boot / 16,276 loaded bytes.
Boot: SSH/HTTPS each starts once without startup failure, no SSH sessions or broker clients, UART stopped, USB attached/host closed. Five accounts/two admins; mDNS announced as sak-1024.local with ESP_OK. Two web requests/auth failures already present; zero cookie login attempts, invalid credentials or sessions. Prior user explanation was stale pre-flash browser sessions; this run's requests are not separately traced.
Loaded: web client8 sole writer, web17/SSH10/USB11 observers; SSH admin and browser admin active, two cookie sessions. SSH user/admin authenticated by public key; browser user/admin by password. UART running 230400 8N1 RTS/CTS, DTR active, threshold96; sampled UART RX/TX and all broker pending/events zero. mDNS/SSH/HTTPS operational/ESP_OK. No broker drop-counter output supplied; empty pending queues do not establish lossless traffic.
SSH counters: TCP/handshake success/auth attempts 2/2/2; handshake/auth/timeout/capacity/request rejection/IO/session-revocation failures zero. Broker connect1/no failures/disconnect, writer request1/grants0/denial1/revocations0; admin admission1/no failures/backpressure. Stream RX81/accepted80/rejected1, TX216,828 bytes. Retain the rejected byte; observer/lease enforcement is a possible explanation, not a confirmed diagnosis.
Web admin counters: tickets issued/consumed1/1, all rejection/capacity0, connected1/disconnected0; RX7/TX481 bytes, protocol/backpressure/send/queue failures0. Web lifecycle starts1/failures0/stops0; requests283/authenticated280/auth failures3, root3/status270/tickets3/assets3, response errors0. Serial tickets issued/consumed3/3, rejected/expired0; serial WS connect3/disconnect1, admission/service/broker failures0. RX frames15 accepted/1 rejected, bytes19 accepted/1 rejected; TX716 binary frames/307,154 bytes, control12 frames/997 bytes. Writer requests3/grants1/denials2, releases/revocations0. Send/queue/protocol/close-failure counters0. Cookie login attempts3, invalid credentials/throttled/capacity/CSRF0, logouts1. A logout/relogin is consistent with the serial disconnect/reconnect and extra auth failure, but their causal relationship is not established by aggregate counters. This is not an all-zero-rejection or no-disconnect run.
This evidence/sign-off update is documentation only: no source/config/build/test/device/asset/commit actions. Resource follow-ups remain recorded without reopening functional acceptance.
## Presentation refinement — 2026-09-08
On user request, Accounts and Network adopt Serial's compact label/value grids, form styles, help typography and action spacing. Account/key/Network summaries are semantic definition lists populated with DOM text; all information remains available. Printable ASCII SSIDs remain quoted, other bytes use hex, and value cells preserve significant spaces while wrapping. Key textarea, generated-password field and checkboxes share form styling. IDs, request/operation behavior, warnings, secret clearing and terminal/lease ownership are unchanged.