Skip to content

Commit bf1d95b

Browse files
committed
Merge upstream/main into fix/llm-routing-improvements
2 parents 303d166 + 5cdc420 commit bf1d95b

403 files changed

Lines changed: 9519 additions & 7339 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

conftest.py

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import gzip
66
import os
77
from pathlib import Path
8+
import re
89
import tempfile
910
from typing import Any
1011

@@ -20,8 +21,25 @@
2021

2122

2223
env_test_path = Path(__file__).parent / ".env.test"
23-
load_dotenv(env_test_path, override=True)
24-
load_dotenv(override=True)
24+
25+
load_dotenv(env_test_path, override=False)
26+
load_dotenv(override=False)
27+
28+
BEDROCK_HOST_PLACEHOLDER = "bedrock-runtime.vcr.amazonaws.com"
29+
_BEDROCK_HOST_RE = re.compile(r"^bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com$")
30+
31+
32+
def _normalize_bedrock_host(host: str) -> str:
33+
if _BEDROCK_HOST_RE.match(host):
34+
return BEDROCK_HOST_PLACEHOLDER
35+
return host
36+
37+
38+
def bedrock_host_matcher(r1: Request, r2: Request) -> bool: # type: ignore[no-any-unimported]
39+
"""Match Bedrock requests across AWS regions (CI uses us-east-1, local may use us-west-2)."""
40+
return _normalize_bedrock_host(r1.host or "") == _normalize_bedrock_host(
41+
r2.host or ""
42+
)
2543

2644

2745
def _patched_make_vcr_request(httpx_request: Any, **kwargs: Any) -> Any:
@@ -188,6 +206,7 @@ def setup_test_environment() -> Generator[None, Any, None]:
188206
"anthropic-ratelimit-tokens-remaining": "ANTHROPIC-RATELIMIT-TOKENS-REMAINING-XXX",
189207
"anthropic-ratelimit-tokens-reset": "ANTHROPIC-RATELIMIT-TOKENS-RESET-XXX",
190208
"x-amz-date": "X-AMZ-DATE-XXX",
209+
"x-amz-security-token": "X-AMZ-SECURITY-TOKEN-XXX",
191210
"amz-sdk-invocation-id": "AMZ-SDK-INVOCATION-ID-XXX",
192211
"accept-encoding": "ACCEPT-ENCODING-XXX",
193212
"x-amzn-requestid": "X-AMZN-REQUESTID-XXX",
@@ -212,6 +231,10 @@ def _filter_request_headers(request: Request) -> Request: # type: ignore[no-any
212231
placeholder_host = "fake-azure-endpoint.openai.azure.com"
213232
request.uri = request.uri.replace(original_host, placeholder_host)
214233

234+
# Normalize Bedrock regional endpoints so cassettes work in any AWS region.
235+
if request.host and _BEDROCK_HOST_RE.match(request.host):
236+
request.uri = request.uri.replace(request.host, BEDROCK_HOST_PLACEHOLDER)
237+
215238
return request
216239

217240

@@ -229,6 +252,11 @@ def _filter_response_headers(response: dict[str, Any]) -> dict[str, Any] | None:
229252
if body == "" or body == b"" or content_length == ["0"]:
230253
return None
231254

255+
status_code = response.get("status", {}).get("code")
256+
if isinstance(status_code, int) and status_code >= 400:
257+
# Avoid persisting auth/model errors when re-recording without valid AWS creds.
258+
return None
259+
232260
for encoding_header in ["Content-Encoding", "content-encoding"]:
233261
if encoding_header in headers:
234262
encoding = headers.pop(encoding_header)
@@ -279,6 +307,11 @@ def vcr_cassette_dir(request: Any) -> str:
279307
return str(cassette_dir)
280308

281309

310+
def pytest_recording_configure(vcr: Any, config: Any) -> None:
311+
"""Register custom VCR matchers for each test cassette session."""
312+
vcr.register_matcher("bedrock_host", bedrock_host_matcher)
313+
314+
282315
@pytest.fixture(scope="module")
283316
def vcr_config(vcr_cassette_dir: str) -> dict[str, Any]:
284317
"""Configure VCR with organized cassette storage."""

docs/ar/changelog.mdx

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,77 @@ description: "تحديثات المنتج والتحسينات وإصلاحات
44
icon: "clock"
55
mode: "wide"
66
---
7+
<Update label="28 مايو 2026">
8+
## v1.14.6
9+
10+
[عرض الإصدار على GitHub](https://github.com/crewAIInc/crewAI/releases/tag/1.14.6)
11+
12+
## ما الذي تغير
13+
14+
### الميزات
15+
- تحسين StdioTransport لمنع تسرب متغيرات البيئة
16+
- تعزيز تكوين التخطيط ومعالجة الملاحظات
17+
- إعلان env_vars على DatabricksQueryTool
18+
- إضافة وثائق خطة التحكم في الوكيل
19+
20+
### إصلاحات الأخطاء
21+
- إصلاح تسرب المخرجات المنظمة في حلقات استدعاء الأدوات
22+
- حذف ردود الاستدعاء غير القابلة للعودة وحالة المحول في نقطة التحقق
23+
- تسلسل الحقول من النوع [BaseModel] كـ JSON schema في نقطة التحقق
24+
- تجنب مهمة orphan task_started عند استعادة نطاق الاستئناف
25+
- السماح لـ AgentExecutor بالاستعادة من نقطة التحقق
26+
- تصحيح خطأ الكتابة من mongodb إلى pymongo في package_dependencies
27+
28+
### الوثائق
29+
- إضافة كتلة تنقل وثائق ACP (بيتا) إلى صفحات خطة التحكم في الوكيل
30+
- إزالة المراجع إلى العمليات التوافقية من صفحة العمليات
31+
- إعادة هيكلة صفحة نقاط التحقق
32+
- توثيق خطوة تثبيت حزمة الإدارة لمرة واحدة
33+
- نقل Secrets Manager / Workload Identity من replicated-config
34+
- إزالة تعبيرات `{" "}` JSX التي تكسر عرض `<Steps>`
35+
36+
### إعادة الهيكلة
37+
- نقل مستودع المهارات إلى experimental + CREWAI_EXPERIMENTAL gate
38+
39+
## المساهمون
40+
41+
@akaKuruma, @alex-clawd, @github-actions[bot], @greysonlalonde, @heitorado, @iris-clawd, @lorenzejay, @lucasgomide, @mattatcha, @thiagomoretto, @vinibrsl
42+
43+
</Update>
44+
45+
<Update label="27 مايو 2026">
46+
## v1.14.6a2
47+
48+
[عرض الإصدار على GitHub](https://github.com/crewAIInc/crewAI/releases/tag/1.14.6a2)
49+
50+
## ما الذي تغير
51+
52+
### الميزات
53+
- تحسين `StdioTransport` لمنع تسرب متغيرات البيئة
54+
- تحسين تكوين التخطيط ومعالجة المراقبة
55+
- إعلان `env_vars` على `DatabricksQueryTool`
56+
- إضافة وثائق خطة التحكم بالوكيل
57+
58+
### إصلاحات الأخطاء
59+
- إصلاح تسرب المخرجات المنظمة في حلقات استدعاء الأدوات
60+
- حذف الاستدعاءات غير القابلة للعودة وحالة المحول في نقاط التحقق
61+
- تسلسل حقول `type[BaseModel]` كـ JSON schema في نقاط التحقق
62+
- تجنب `task_started` اليتيمة عند استعادة نطاق الاستئناف
63+
- السماح لـ `AgentExecutor` بالاستعادة من نقطة تحقق
64+
- تصحيح خطأ مطبعي في MongoDB إلى `pymongo` في تبعيات الحزمة
65+
66+
### الوثائق
67+
- إعادة هيكلة صفحة نقاط التحقق
68+
- توثيق خطوة تثبيت حزمة الإدارة لمرة واحدة
69+
- نقل Secrets Manager / Workload Identity من replicated-config
70+
- إزالة إدخال Skills Repository من سجل التغييرات
71+
72+
## المساهمون
73+
74+
@github-actions[bot], @greysonlalonde, @heitorado, @iris-clawd, @lorenzejay, @lucasgomide, @mattatcha, @thiagomoretto, @vinibrsl
75+
76+
</Update>
77+
778
<Update label="21 مايو 2026">
879
## v1.14.6a1
980

@@ -12,7 +83,6 @@ mode: "wide"
1283
## ما الذي تغير
1384

1485
### الميزات
15-
- إضافة مستودع المهارات مع التسجيل، التخزين المؤقت، واجهة سطر الأوامر، وتكامل SDK
1686
- توليد ملاحظات إصدار مصنفة للمؤسسات
1787

1888
### إصلاحات الأخطاء

0 commit comments

Comments
 (0)