Files
OmniRoute/tests
Diego Rodrigues de Sa e Souza 50b2c84ee1 feat(api): routing/4985 — configurable response-body validation + failover
A combo can declare a per-combo responseValidation predicate. When an upstream returns
200 OK but the parsed body fails the predicate, the combo fails over to the next target
through the exact same path the built-in empty-content guard uses (executeTarget returns
null + 502). No new failover wiring.

- open-sse/services/combo/responseValidation.ts: pure declarative evaluator —
  forbiddenSubstrings / requiredSubstrings / minContentLength / jsonPathPredicates with a
  bounded dot-path resolver (no eval, no regex/ReDoS).
- Zod responseValidationSchema in shared/validation/schemas/combo.ts (per-combo, in
  comboRuntimeConfigSchema); threaded to validateResponseQuality (new 4th param) at all
  three call-sites (combo.ts x2 + runtimeUnits.ts); default key in comboConfig.ts.
- Evaluated on non-streaming responses; streaming keeps its existing empty-content guard.
- UI: extracted ResponseValidationEditor.tsx (keeps the combos god-component lean) wired
  into the combo form; i18n keys + getI18nOrFallback fallbacks.

TDD: evaluator (9), failover integration mirroring #5085 (2), editor UI (4). Existing
quality + combo-config + combo UI suites green; typecheck:core 0, ESLint 0, cycles clean.
2026-06-30 14:56:58 -03:00
..
2026-06-17 19:26:32 -03:00
2026-05-23 01:46:59 -03:00
2026-06-20 07:09:43 -03:00
2026-06-19 06:49:01 -03:00
2026-06-10 13:49:08 -03:00
2026-06-30 06:54:29 -03:00
2026-06-13 17:27:40 -03:00