4 Commits

Author SHA1 Message Date
changjing9527
a5e71751d7
fix(jina): classify retry budget expiry reliably on Windows (#6789) 2026-10-13 22:26:28 +08:00
xiaodu55
e3f21ce105
test: fix two Windows-host failures (subprocess encoding, budget-boundary epsilon) (#6627)
* test: fix two Windows-host failures (subprocess encoding, budget-boundary epsilon)

- test_env_file: pin PYTHONIOENCODING=utf-8 in the stripped child env;
  without it the child writes stderr in the host's ANSI codepage while
  the UTF-8-mode parent decodes it, the reader thread dies on the first
  non-ASCII byte, and stderr comes back None;
- test_jina_retries: give the budget-cap assertion a 1e-9 tolerance —
  deadline = now + budget rounds, so the cap lands a few ulps above the
  exact 0.05 (observed 0.05000000000291038).

Fixes #6626

* test: pin both sides of the capture and use an uptime-proof budget tolerance

- test_env_file: the parent's capture decodes with the host locale when
  pytest runs without the Makefile's UTF-8 pins, so the child-side pin
  alone mirrored the crash rather than eliminating it. Pin the capture
  explicitly (encoding=utf-8, errors=replace, per the
  test_local_sandbox_encoding.py precedent) and carry both suite pins in
  the child env (PYTHONUTF8=1 + PYTHONIOENCODING=utf-8).
- test_jina_retries: the float error scales with loop-time magnitude
  (host uptime), not with 0.05; a 1e-9 absolute slack leaves a ~389-day-
  uptime flake window. Use a relative tolerance instead.

---------

Co-authored-by: xiaodu55 <xiaodu55@users.noreply.github.com>
2026-10-10 20:48:39 +08:00
creed
2afd1211a1
feat(jina): honor bounded Retry-After recovery (#6352)
* feat(jina): honor bounded Retry-After recovery

Closes #6237

Honor server-directed waits for 503 and validly hinted 429 responses within the existing attempt and time budgets. Preserve cancellation, default single-attempt behavior and the tool schema. Add deterministic protocol regressions and stabilize mock setup in the real deadline test.

Signed-off-by: 97three <2212371308@qq.com>

* test(jina): pin local backoff for hinted 502 and 504

Signed-off-by: 97three <2212371308@qq.com>

---------

Signed-off-by: 97three <2212371308@qq.com>
2026-10-06 15:10:39 +08:00
creed
f4af75a7fd
feat(community): add bounded retries for Jina web fetch (#6143)
* feat(community): add bounded retries for Jina web fetch

Closes #6116

Keep retries opt-in and share a total deadline across requests and backoff. Preserve cancellation and the existing Error contract. Include offline DNS and local-wheel fixture corrections needed to run the complete backend suite in the isolated verifier.

Signed-off-by: 97three <2212371308@qq.com>

* docs(community): scope Jina retry guidance to its provider

Signed-off-by: 97three <2212371308@qq.com>

* fix(community): jitter bounded Jina retry backoff

* docs(community): apply provider-scoped Jina guidance

Signed-off-by: 97three <2212371308@qq.com>

---------

Signed-off-by: 97three <2212371308@qq.com>
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-10-02 21:35:56 +08:00