Diego Rodrigues de Sa e Souza
265d93ffd8
fix(combo): restrict the #6216 empty-stream failover to truly empty bodies (restores #3399/#3685 contracts)
...
The 'streaming no recognized content' branch added by #6216 marked ANY
stream that ended without content deltas as invalid — sweeping in two
regression-guarded pass-through contracts: an empty stream terminated by an
explicit 'data: [DONE]' (#3399 context-cache protection) and an incomplete
Claude lifecycle (ping only, no message_start; #3685 — stream-readiness
timeout territory, not failover). Both unit guards were red on the branch
and green on main (86/86 vs 84/86).
The branch now fires only for a truly EMPTY body (zero bytes — the Gemini
HTTP-200-empty case that motivated #6216 ), tracked via sawAnyBytes. New
guard: '#5976 truly EMPTY streaming body (zero bytes) -> invalid for combo
failover'. 87/87 across both files.
Also in this pre-flight batch:
- agentSkillTools-mcp: api.have upper bound 22 -> 23 (the #6186 catalog
addition updated the totals but missed this bound)
- delete tests/unit/free-provider-rankings-configured-filter.test.ts:
#6251 (server-side configuredOnly/availableOnly) superseded the #6245
client-side toggle it pinned; replacement declared in the test-masking
allowlist (tests/unit/freeProviderRankings-filters.test.ts, 11/11)
2026-07-05 16:07:32 -03:00
..
2026-06-30 06:54:29 -03:00
2026-07-04 13:00:30 -03:00
2026-07-05 16:07:32 -03:00
2026-07-02 10:47:13 -03:00
2026-07-02 10:47:13 -03:00
2026-06-29 08:40:06 -03:00
2026-07-04 13:00:30 -03:00
2026-07-04 13:00:30 -03:00
2026-03-05 08:41:44 -03:00
2026-05-01 12:37:09 -03:00
2026-07-04 13:00:30 -03:00
2026-07-02 10:47:13 -03:00
2026-05-21 01:29:12 -03:00
2026-04-16 16:07:44 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-05-21 01:29:12 -03:00
2026-06-17 19:26:32 -03:00
2026-07-02 10:47:13 -03:00
2026-06-28 06:58:29 -03:00
2026-05-21 01:29:12 -03:00
2026-06-29 16:51:03 -03:00
2026-06-29 08:40:06 -03:00
2026-07-02 10:47:13 -03:00
2026-06-23 03:08:29 -03:00
2026-07-02 10:47:13 -03:00
2026-05-26 23:51:47 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-07-05 07:41:15 -03:00
2026-05-29 13:21:36 -03:00
2026-06-30 06:54:29 -03:00
2026-06-19 06:49:01 -03:00
2026-04-13 14:43:32 -03:00
2026-07-05 07:41:15 -03:00
2026-06-16 01:00:40 -03:00
2026-06-27 09:07:12 -03:00
2026-06-13 17:27:40 -03:00
2026-04-19 19:50:30 -03:00
2026-04-12 22:41:12 -03:00
2026-06-17 19:26:32 -03:00
2026-06-25 13:17:40 -03:00
2026-06-25 13:17:40 -03:00
2026-07-02 10:47:13 -03:00
2026-06-29 08:40:06 -03:00
2026-06-25 13:17:40 -03:00
2026-05-15 12:51:07 -03:00
2026-07-04 13:00:30 -03:00
2026-05-02 00:48:54 -03:00
2026-06-29 08:40:06 -03:00
2026-05-23 01:46:59 -03:00
2026-07-04 13:00:30 -03:00
2026-07-04 13:00:30 -03:00
2026-07-04 13:00:30 -03:00
2026-07-05 08:37:49 -03:00
2026-06-16 08:46:03 -03:00
2026-07-02 10:47:13 -03:00
2026-05-10 00:55:06 -03:00
2026-06-23 03:08:29 -03:00
2026-05-29 12:44:29 -03:00
2026-06-29 08:40:06 -03:00
2026-05-24 18:05:58 -03:00
2026-04-25 23:51:18 -03:00
2026-06-03 18:24:41 -03:00
2026-05-10 00:55:06 -03:00
2026-07-04 13:00:30 -03:00
2026-06-13 17:27:40 -03:00
2026-06-11 04:01:24 -03:00
2026-05-26 23:51:47 -03:00
2026-06-29 08:40:06 -03:00
2026-06-25 13:17:40 -03:00
2026-06-12 23:49:22 -03:00
2026-05-29 13:21:36 -03:00
2026-06-22 03:17:02 -03:00
2026-04-11 09:38:17 -03:00
2026-07-05 02:33:32 -03:00
2026-06-19 06:49:01 -03:00
2026-07-02 10:47:13 -03:00
2026-07-04 13:00:30 -03:00
2026-06-06 19:13:11 -03:00
2026-05-23 01:46:59 -03:00
2026-07-04 13:00:30 -03:00
2026-05-24 18:05:58 -03:00
2026-06-14 10:32:26 -03:00
2026-05-10 00:55:06 -03:00
2026-06-19 06:49:01 -03:00
2026-07-04 13:00:30 -03:00
2026-04-12 10:34:10 -03:00
2026-07-02 10:47:13 -03:00
2026-07-04 13:00:30 -03:00
2026-05-29 12:44:29 -03:00
2026-04-22 01:39:49 -03:00
2026-06-29 08:40:06 -03:00
2026-06-14 10:27:39 -03:00
2026-06-29 08:40:06 -03:00
2026-06-13 17:27:40 -03:00
2026-07-05 07:41:15 -03:00
2026-06-23 03:08:29 -03:00
2026-07-04 13:00:30 -03:00
2026-06-19 06:49:01 -03:00
2026-05-10 00:55:06 -03:00
2026-06-07 07:20:02 -03:00
2026-07-04 13:00:30 -03:00
2026-07-04 13:00:30 -03:00
2026-05-29 13:21:36 -03:00
2026-07-04 13:00:30 -03:00
2026-04-13 13:11:30 -03:00
2026-07-02 10:47:13 -03:00
2026-06-21 08:56:51 -03:00
2026-06-04 20:05:38 -03:00
2026-06-23 03:08:29 -03:00
2026-05-31 19:13:41 -03:00
2026-05-29 13:21:36 -03:00
2026-06-21 08:56:51 -03:00
2026-06-04 20:05:38 -03:00
2026-07-04 13:00:30 -03:00
2026-07-02 10:47:13 -03:00
2026-05-29 13:21:36 -03:00
2026-06-04 20:05:38 -03:00
2026-05-29 13:21:36 -03:00
2026-06-19 06:49:01 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-06-19 06:49:01 -03:00
2026-06-25 13:17:40 -03:00
2026-07-02 10:47:13 -03:00
2026-03-14 10:59:15 -03:00
2026-06-25 13:17:40 -03:00
2026-07-02 10:47:13 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-06-13 17:27:40 -03:00
2026-07-05 02:45:33 -03:00
2026-06-19 06:49:01 -03:00
2026-06-29 08:40:06 -03:00
2026-06-04 20:05:38 -03:00
2026-07-05 02:30:30 -03:00
2026-06-03 18:29:31 -03:00
2026-07-04 13:00:30 -03:00
2026-03-30 12:58:45 -03:00
2026-06-21 08:56:51 -03:00
2026-06-22 03:17:02 -03:00
2026-06-08 00:48:01 -03:00
2026-04-17 23:21:02 -03:00
2026-04-03 00:15:35 -03:00