Define staged Phase 8D delivery plan

This commit is contained in:
2026-09-05 12:46:27 +02:00
parent 31d3561d47
commit af89dd1bd9
4 changed files with 189 additions and 4 deletions
+11 -2
View File
@@ -9,7 +9,7 @@ Based on checked-in source plus `README.md` and `docs/roadmap.md`:
- Hardware characterization, serial service, session broker, USB CDC, Wi-Fi, HTTPS/WebSocket, SSH serial transport, and local display/control are implemented and documented as target-hardware validated.
- Phase 8A role-based user storage/UART0 administration and Phase 8B role-aware HTTPS/SSH authentication and targeted revocation are documented as target-hardware validated.
- Phase 8C admin SSH is implemented in source, uses the shared `esp_console` registry, and has passed target-hardware validation.
- Phase 8D integrated web administration is planned, not implemented. Its ordered scope combines browser login/logout sessions, a shared admin-shell terminal route, typed settings, and contextual Serial/Wi-Fi/client/writer controls; changing terminal modes must preserve the browser serial broker client and any writer lease.
- Phase 8D integrated web administration is planned, not implemented. Follow `docs/phase8d_plan.md`: one numbered chunk per request, with baseline/resource budgeting first, target-validated login/logout (M1) before the browser admin shell (M2), then one typed-settings/control domain at a time (M3). Changing terminal modes must preserve the browser serial broker client and any writer lease. The roadmap retains the full end-state requirements.
- Security/production hardening, OTA, BLE evaluation, advanced networking, and optional filesystem features remain future roadmap work.
- Reserved OTA, coredump, NVS-key, and storage partitions do not imply those runtime features are implemented.
@@ -44,7 +44,16 @@ These observations should be checked when touching the relevant area; they are n
- Confirm task-local Newlib standard-stream behavior if ESP-IDF/Newlib configuration changes; admin SSH command output relies on dispatcher-task stream redirection.
- If HTTPD concurrency configuration changes, add locking around the boot-local Basic-authentication cache.
## Active Task
## Active task — Phase 8D replanning
- **Objective:** Split Phase 8D into independently reviewable, session-sized implementation and validation chunks; documentation only.
- **Context:** The user reports that the earlier experimental implementation was moved to a separate branch and `devel` rolled back after repeated agent interruptions, a roughly +10k/-1k-line diff, broken browser login, and severe memory pressure. These symptoms have not been independently diagnosed. Do not import that branch wholesale.
- **Changes completed:** Added `docs/phase8d_plan.md` with chunks 8D.08D.22, M1/M2 target-validation pauses, per-chunk scope/stop rules, incremental and cumulative resource gates, and next-request templates. Linked the execution plan from the roadmap and staged the existing administration acceptance matrix. Firmware, generated assets, and durable implementation architecture are unchanged.
- **Validation:** Documentation links and diff consistency are checked for this planning change; no firmware build, browser test, or target memory measurement is claimed. All new implementation chunks remain planned.
- **Next:** 8D.0 only: verify the rolled-back baseline, record actual build/runtime memory and supported concurrency, and define the minimal browser-authentication contract and measured budgets. Missing target evidence stays pending; do not proceed to an all-in-one implementation.
- **Risks / things to remember:** Historical linked RAM/flash values below are not a fresh runtime baseline. Cookie sessions, tickets, serial sockets, admin sockets, HTTPS requests, and SSH sessions have separate capacity costs. Reserve time for validation and handoff in every implementation request; stop/split instead of accumulating an unvalidated diff.
## Previous task — mDNS (target checks still pending)
- **Objective:** Announce a configurable `sak-<suffix>.local` hostname through mDNS when Wi-Fi STA has an IPv4 address, without changing the Wi-Fi NVS blob schema.
- **Relevant files:** `src/mdns_config.{c,h}`, `src/mdns_service.{c,h}`, `src/mdns_console.{c,h}`, `src/wifi_manager.{c,h}`, `src/main.c`, `src/CMakeLists.txt`, `src/idf_component.yml`, `dependencies.lock`, completion and command documentation.