Changelog
v1.0.4
Asset sizes and plugin attribution are now correct on subdirectory, relocated wp-content and mixed-scheme sites, and the loopback base works on subdirectory installs.
## What's fixed in 1.0.4
- **Asset sizes are no longer 0 for local files the doctor could not find.** A script or style with a scheme-relative (`//`), `http://` or document-relative address, a percent-encoded file name, a subdirectory install, or a wp-content folder outside the WordPress directory all reported 0 bytes. Every address is now resolved against the page it was found on, then located with the site path stripped and wp-content resolved to its real directory. Only files inside the WordPress and wp-content folders are ever read.
- **Plugins get credit for their own scripts.** The asset table attributed a plugin's assets to "core/other" when the address differed from the site's wp-content URL in scheme, letter case or a `www.` prefix, or used `../` segments, which understated that plugin's page weight. Attribution now matches on the resolved host and path.
- **`DRAGONSPEEDDOCTOR_LOOPBACK_BASE` works on subdirectory installs.** A base with a path, such as `http://app-container/wp`, was prefixed onto every request and produced `/wp/wp/...` 404s whose timings were recorded as page performance. The base is now used as an origin only (scheme, host, port); each request keeps its own path.
- **The loopback base is validated more strictly.** IP literals must be a full dotted IPv4 or bracketed IPv6 address in a loopback, private or link-local range; integer, shorthand and public IPv6 forms are refused. A hostname is accepted only when every address it resolves to is in such a range, and a name that does not resolve is refused. Signed admin probes can never leave your infrastructure.
- **Setup is verified, retried and reported.** Activation recorded the install as complete even when the scans table or the signing secret had not been stored. Both are now checked first; an incomplete install is retried on each admin page load and shown as an admin notice until it succeeds. Existing sites are checked once after updating.
- **A diagnosis that cannot be saved is reported as an error.** If the scan could not be started, its progress saved or its results written, it appeared to start or finish normally. It now stops with a clear message.
No settings changes. If you use the loopback base with a path, it keeps working; the path is simply ignored.
View full changelog →