release: v0.2.10 (#452)

This commit is contained in:
Xi Zhang
2026-09-05 15:30:02 +08:00
committed by GitHub
parent dedd53bad6
commit dae67e9299
9 changed files with 1798 additions and 1524 deletions
+1 -1
View File
@@ -5,5 +5,5 @@
<rect x="54" y="5" width="62" height="24" rx="6" fill="#1565c0"/>
<text x="85" y="22" text-anchor="middle"
font-family="Inter, -apple-system, system-ui, sans-serif"
font-size="13" font-weight="700" fill="#ffffff">v0.2.9</text>
font-size="13" font-weight="700" fill="#ffffff">v0.2.10</text>
</svg>

Before

Width:  |  Height:  |  Size: 555 B

After

Width:  |  Height:  |  Size: 556 B

+1 -1
View File
@@ -5,5 +5,5 @@
<rect x="54" y="5" width="62" height="24" rx="6" fill="#2563eb"/>
<text x="85" y="22" text-anchor="middle"
font-family="Inter, -apple-system, system-ui, sans-serif"
font-size="13" font-weight="700" fill="#ffffff">v0.2.9</text>
font-size="13" font-weight="700" fill="#ffffff">v0.2.10</text>
</svg>

Before

Width:  |  Height:  |  Size: 555 B

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 253 KiB

+2 -2
View File
@@ -39,8 +39,8 @@ from .events import NO_OP_SINK, MiddlewareEventSink
logger = logging.getLogger(__name__)
# Default threshold: only run tool selection when tools exceed this count.
# Base tools are ~14; selector activates when MCP tools push count above 26.
DEFAULT_TOOL_THRESHOLD = 26
# Base tools are ~29; selector activates when MCP tools push count above 42.
DEFAULT_TOOL_THRESHOLD = 42
DEFAULT_ALWAYS_INCLUDE_TOOLS: frozenset[str] = frozenset(
{
"think_tool",
+2 -1
View File
@@ -10,7 +10,7 @@
<a href="https://pypi.org/project/EvoScientist/"><picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-light.svg">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-dark.svg">
<img alt="PyPI v0.2.9" src="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-light.svg" height="28">
<img alt="PyPI v0.2.10" src="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-light.svg" height="28">
</picture></a><a href="https://EvoScientist.github.io/"><picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-website-light.svg">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-website-dark.svg">
@@ -151,6 +151,7 @@ Moving beyond traditional human-in-the-loop systems, EvoScientist adopts a human
<details>
<summary>📦 Release Highlights — version changelog</summary>
- **[05 Sep 2026]** **[v0.2.10](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.10)** — New models: Claude Fable 5.1, GPT-6 Astra, Gemini 3.8 Flash, and Meta Muse Spark 1.3; proactivity phase 1: a first-contact profile bootstrap that eases cold start; optional acceptance checklists for scheduled tasks; tool selection only kicks in above 42 tools; deepagents 0.7.13.
- **[29 Aug 2026]** **[v0.2.9](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.9)** — New models: GLM-5.3-Flash (Zhipu + OpenRouter), Qwen3.8-Flash (DashScope + OpenRouter), and Tencent HY4 preview (OpenRouter), all with 1M context; deepagents 0.7.11.
- **[21 Aug 2026]** **[v0.2.8](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.8)** — Deploy-mode graph rebuilds drop from ~15 s to under a second; resume commands no longer crash and empty session history; Novita AI as a new LLM provider; NVIDIA BioNeMo Agent Toolkit in onboarding's recommended skill packs; bounded routed reasoning with empty truncations surfaced as errors; a subscription OAuth recipe in the docs; deepagents 0.7.8.
- **[14 Aug 2026]** **[v0.2.7](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.7)** — Faster startup (lazy imports, reusable kept-alive langgraph dev server, indexed thread listing); new models: Gemini 3.7 Flash (Google + OpenRouter), DeepSeek V4 Pro 0813, Grok 4.6, and GLM-5.3 (Zhipu + OpenRouter); encrypted-webhook channels reject unsigned POSTs; MCP stdio servers start reliably under redirected streams on Windows; sub-agent tools resolve at dispatch time; `/compact` history offload restored on deepagents 0.7.6.
+2 -1
View File
@@ -15,7 +15,7 @@
<a href="https://pypi.org/project/EvoScientist/"><picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-light.svg">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-dark.svg">
<img alt="PyPI v0.2.9" src="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-light.svg" height="28">
<img alt="PyPI v0.2.10" src="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-pypi-light.svg" height="28">
</picture></a><a href="https://EvoScientist.github.io/"><picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-website-light.svg">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/badge-website-dark.svg">
@@ -160,6 +160,7 @@ EvoScientist 超越了传统的人在回路(Human-in-the-Loop)模式,采
<details>
<summary>📦 版本更新摘要(changelog)</summary>
- **[2026 年 9 月 5 日]** **[v0.2.10](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.10)** — 新增模型:Claude Fable 5.1、GPT-6 Astra、Gemini 3.8 Flash、Meta Muse Spark 1.3;主动性第一阶段:首次对话建立用户档案,缓解冷启动;定时任务可附加验收清单;工具选择器仅在工具超过 42 个时启用;升级 deepagents 0.7.13。
- **[2026 年 8 月 29 日]** **[v0.2.9](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.9)** — 新增模型:GLM-5.3-Flash(智谱与 OpenRouter)、Qwen3.8-Flash(DashScope 与 OpenRouter)、腾讯 HY4 preview(OpenRouter),均为 1M 上下文;升级 deepagents 0.7.11。
- **[2026 年 8 月 21 日]** **[v0.2.8](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.8)** — deploy 模式图重建从约 15 秒降至 1 秒内;resume 命令不再崩溃清空会话历史;新增 Novita AI provider;onboard 推荐技能包新增 NVIDIA BioNeMo Agent Toolkit;路由 reasoning 参数收敛、空截断显式报错;文档新增订阅 OAuth 配置指南;升级 deepagents 0.7.8。
- **[2026 年 8 月 14 日]** **[v0.2.7](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.7)** — 启动更快(依赖延迟加载、langgraph dev 服务保活复用、会话列表索引查询);新增模型:Gemini 3.7 Flash(Google 与 OpenRouter)、DeepSeek V4 Pro 0813、Grok 4.6、GLM-5.3(智谱与 OpenRouter);配置加密 webhook 的渠道拒绝未签名 POST;MCP stdio 服务在重定向流下可正常启动(修复 Windows 报错);子 agent 工具改在派发时解析;`/compact` 历史 offload 适配 deepagents 0.7.6。
+2 -2
View File
@@ -1,6 +1,6 @@
[project]
name = "EvoScientist"
version = "0.2.9"
version = "0.2.10"
description = "EvoScientist: Towards Self-Evolving AI Scientists for End-to-End Scientific Discovery"
readme = "README.md"
requires-python = ">=3.11"
@@ -43,7 +43,7 @@ dependencies = [
"lazy-loader>=0.5",
"markdownify>=1.2",
"tzlocal>=5.0",
"langchain-mcp-adapters>=0.2",
"langchain-mcp-adapters>=0.3.2",
# <8.2.7: 8.2.7 Kitty "report-all-keys" breaks CJK input on iTerm2
"textual>=8.0,<8.2.7",
]
+19 -2
View File
@@ -2757,6 +2757,21 @@ class TestPatchOpenrouterStripResponsesReasoning:
# =============================================================================
def _anthropic_httpx():
"""Return the httpx flavour the installed anthropic SDK accepts as ``http_client``.
anthropic >= 1.0 is built on ``httpx2`` and rejects an ``httpx.Client``.
"""
import anthropic
from packaging.version import Version
if Version(anthropic.__version__) >= Version("1"):
import httpx2 as httpx
else:
import httpx
return httpx
class TestAnthropicStripForeignReasoning:
def test_strip_removes_reasoning_content_blocks(self):
"""reasoning_content blocks are dropped; text and thinking survive."""
@@ -2832,9 +2847,10 @@ class TestAnthropicStripForeignReasoning:
import json
import anthropic
import httpx
from langchain_core.messages import AIMessage, HumanMessage
httpx = _anthropic_httpx()
monkeypatch.setenv("CUSTOM_ANTHROPIC_BASE_URL", "https://compat.example.com")
monkeypatch.setenv("CUSTOM_ANTHROPIC_API_KEY", "test-key")
model = get_chat_model("moonshotai/kimi-k3", provider="custom-anthropic")
@@ -2904,9 +2920,10 @@ class TestAnthropicStructuredOutput:
import json
import anthropic
import httpx
from pydantic import BaseModel
httpx = _anthropic_httpx()
class Pick(BaseModel):
answer: str
Generated
+1769 -1514
View File
File diff suppressed because it is too large Load Diff