Bug Fixes
- Core/Idlewatcher: Dependencies needed by always-on routes are no longer stopped as idle. (1cd3f2d, #285)
- Unhealthy routes and routes with unknown health retain their declared dependencies.
- Napping routes release their dependencies.
- Core/Rules: Environment values no longer corrupt rule syntax. (50ba67e)
- Quotes, newlines, and escaped environment references survive configuration loading.
- Rule parsing handles Unicode and escaped quotes safely.
- Core/Rules: Replacing a request body updates its content length and clears stale transfer framing. (50ba67e)
- Core/Rules: Rule-generated 204 and 304 responses remain bodyless. (d2a10f8, #286, 50ba67e)
- CORS preflight rules using error 204 no longer expand or write an error template.
- WebUI/Playground: Playground results more accurately reflect route behavior. (9105c6e, yusing/godoxy-webui@5d6a5fb)
- Mock response data is applied only when the mock upstream is called.
- Results show modified request bodies and matches against the final response.
- Rejected rule sets expose validation errors in per-rule results.
- Malformed mock requests and invalid response status codes return input errors.
- Mock requests handle IPv6 addresses and preserve path query parameters when adding query inputs.
- Cancelling a playground API request also cancels real upstream requests.
- Built-in CORS and logging examples apply response actions before terminating actions. (yusing/godoxy-webui@5d6a5fb)
- The credentialed CORS example restricts requests to an explicit trusted origin. (yusing/godoxy-webui@5d6a5fb)
Breaking Changes
- Core/Rules: Invalid rule sets now prevent routes from loading. (50ba67e, a630c5c)
- Validation applies to inline rules, rule files, and embedded presets.
- Move authentication and request-only middleware out of response-phase rules and nested response-phase blocks before upgrading.
- Remove multiple default rules and rules shadowed by an earlier terminating rule with the same matcher.
Full Changelog
- 9105c6e fix(playground): align execution and diagnostics with route semantics
- a630c5c fix(routevalidate): enforce rule semantics before route construction
- 50ba67e fix(rules): preserve interpolation and enforce request semantics
- 028277a docs(rules): fix post-proxy logging example
- d2a10f8 fix(rules): return bodyless CORS preflight responses
- 1cd3f2d fix(idlewatcher): retain always-on route dependencies (#285)