Use the DFTE async integration helper so portal HTML chunk callbacks handle
zero-length buffers and no-progress retries without terminating transfers
early on constrained hosts.
Expose redirect details after connect-on-save so clients can land on the station IP before the AP closes, hide the mobile nav scrollbar, and document the updated API contract.
- Merge initial status and guidance into one wm-card (Status) on Home.
- Add .wm-home-summary styling for the primary status line.
- Replace legacy setParamsPage with setParametersEmbeddedInWifi (matches
_paramsInWifi / SPA Setup vs WiFi placement); remove setParamsPage.
- Update README, handlers comment, and advanced-options tests.
- Replace legacy centered stylesheet with CSS variables, layout shell,
pill navigation with active state, cards, form fields, buttons.
- Restructure SPA markup (hero, page heads, scan list as tap rows).
- Shell dialog buttons use wm-btn classes for consistent styling.
- Use per-request PortalShellRenderBundle and one root shell template; drop
server-side template registry and simplify WiFiManagerServer.
- PortalAppJS: centralize chrome/form binding; fix WiFi connect polling by
stopping previous timers on view change and before new polls.
- processPortalConnect honors _cleanConnect like connectWifi.
- Remove brittle full-JSON API tests; trim test harness surface.
- README: small doc touch-up for the shell/portal flow.
Replace multi-page portal with hash-routed SPA, DFTE shell placeholders, and
data-first JSON APIs. Remove legacy routes, root-template override path, and
HTML-derived info pipeline. Add bootstrap feature flags, in-DOM toast/dialog UX,
OTA via POST /u, and tests for shell, bootstrap, API JSON, and captive host rule.
Rewrite README as fork disclaimer and modernization overview.
Replace DEBUG_WM with WiFiManagerLogLevel/log(), optional WiFiManagerLogSink,
and WM_NO_LOG stripping. Add JSON API handlers and shell templates (RootShell,
PortalAppJS). Bridge DFTE logging with owner-scoped teardown; add migrate_debug_wm
helper; document and set WM_LOG_LEVEL in platformio.
- Document fork/DFTE in README; WiFiManager template setup API forwards to server
- Remove nested lib/WiFiManager/library.json; rely on root library.json only
- Delete legacy extras/ tooling; point HTML help link at this fork
- Add WiFiManagerDfteLogger and WM_DFTE_LOGGING integration in WiFiManagerServer
- Pin ESP8266 Arduino core (postmortem jump fix) in platformio.ini for tests
Split reusable HTML into Fragments, Message, and Param headers; route
more pages through DFTE streaming. Update handlers, WiFi polling JS,
and configuration/scanning tests; add template rendering coverage.
Harden the root placeholder path, add direct render-isolation coverage, move simple status pages and /info onto request-scoped streamed templates, and switch /wifi to a streamed shell while keeping scan/form sections string-built for now.
Keep root template state request-scoped so dynamic placeholders stay consistent during chunked renders, add reserve() coverage for non-streamed pages, and add compile/test coverage for the new root render lifecycle.
- Delete language files (wm_strings_*/wm_consts_*) and wm_consts_en.h
- Move constants to appropriate headers (routes/menu tokens to Server, CSS/forms/headers to Handlers)
- Extract utility functions to WiFiManagerUtils.h/cpp
- Create template files (HTML.h, CSS.h, JS.h) for web interface
- Update version to 2.0.18
- Remove unused HTTP_HEAD_CL constant