What's Changed
- telemetry: add otel-compatible message attributes by @liuzengh in #1730
- feat(model): add opt-in OpenAI chat telemetry by @liuzengh in #1770
- model: add local context window options by @Rememorio in #1747
- telemetry: share stable tool ordering by @liuzengh in #1756
- openclaw: add knowledge description field and use AgenticFilterSearchTool by @hyprh in #1761
- fix(flow: skill): canonical skill paths by @sks in #1773
- {agent, graph, runner}: flatten graph agent-node traces by @Flash-LHR in #1781
- {team, internal/flow/processor, docs}: add swarm handoff input builder by @Flash-LHR in #1782
- openclaw: stream tool detail by @WineChord in #1785
- lsc: add per-call model selector by @Flash-LHR in #1779
- openclaw: add runtime profiles by @WineChord in #1769
- knowledge/tool: add default metadata filter guidance for agentic search by @hyprh in #1762
- tool/mcpbroker: add WithAdHocHTTPTimeout and document ad-hoc HTTP trust boundary by @bytethm in #1787
- flow: attach tool call args to tool results by @Rememorio in #1783
- {flow, toolcall}: keep tool results in matching rounds by @Rememorio in #1774
- openclaw/app: update knowledge tool description assertions by @Flash-LHR in #1796
- tool/skill: add skill bin to run PATH by @WineChord in #1788
- openclaw/cron: record scheduled run debug traces by @WineChord in #1804
- codeexecutor: harden workspace metadata updates by @WineChord in #1789
- evaluation/workflow/promptiter: add eval case filters by @Flash-LHR in #1808
- evaluation/mysql: bind JSON payloads as text by @Flash-LHR in #1760
- {runner, docs/mkdocs}: add user message rewriter tool transcript coverage by @Flash-LHR in #1784
- {evaluation, docs, examples/evaluation}: add case-level rubrics by @Flash-LHR in #1790
- session/mysql: avoid sort buffer overflow in event queries by @hyprh in #1791
- artifact/cos: expose object key helper by @liuzengh in #1812
- {evaluation/workflow/promptiter, server/promptiter}: add run result slimming by @Flash-LHR in #1811
- {model, server/agui, docs/mkdocs}: add URL file input support by @Flash-LHR in #1767
- server/agui: add safe history boundary by @Flash-LHR in #1794
- {evaluation, docs}: add skip match strategies by @Flash-LHR in #1809
- telemetry: add genai_execute_workflow metric by @liuzengh in #1718
- runner: emit completion after cancellation by @print-happy in #1810
- session/internal/summary: prevent duplicate concurrent session summaries by @Rememorio in #1795
- agent: reuse WorkspaceRegistry across invocations to avoid duplicate ws dirs by @hyprh in #1780
- openclaw/cron: support relative delay schedules by @WineChord in #1813
- session/summary: add dynamic summarizer by @Rememorio in #1805
- {team, runner, internal, docs}: add independent swarm sessions by @Flash-LHR in #1797
- evaluation/workflow/promptiter/engine: accept non-optimizable trace surfaces by @Flash-LHR in #1821
- session/summary: enhance token threshold checks for summary to include reasoning contents by @Rememorio in #1807
- memory: omit preload topic labels by @Rememorio in #1799
- model: preserve system during token tailoring by @Rememorio in #1793
- {agent, graph}: append tools in surface patches by @WineChord in #1823
- {evaluation/workflow/promptiter, docs}: add stage parallelism by @Flash-LHR in #1828
- codeexecutor/workspaceio: add Workspace facade for in-process file & exec ops by @bytethm in #1752
- knowledge: allow tcvector custom sparse encoder by @hyprh in #1814
- agent: add external tools run option by @WineChord in #1827
- fix(e2b): support e2b api url and CubeSandbox by @chengjoey in #1765
- tool/agent: fix agent tool event routing by @Rememorio in #1832
- {evaluation/workflow/promptiter, server/promptiter, docs}: add loss hints by @Flash-LHR in #1829
- session: implement WithListSessionOnlyMeta for all DB backends by @hyprh in #1834
- session: add ListSessions pagination by @hyprh in #1822
- docs: clarify token counter units by @Rememorio in #1836
- a2aagent: stop final success after streaming handler error by @print-happy in #1833
- {agent/extension, agent/llmagent}: add agent-scoped extension API by @bytethm in #1825
- model: update context window mappings and add new model entries by @Rememorio in #1777
- server/agui: close run events after cleanup by @Flash-LHR in #1837
- {evaluation/evaluator/llm, docs}: add structured rubric output by @Flash-LHR in #1838
- model: add structured output request option by @Rememorio in #1841
- examples/memory/simple: close injected memory.Service on exit by @cuboya in #1835
- internal/flow/processor: disable HTML escaping in tool result JSON serialization by @bytethm in #1846
- evaluation/workflow/promptiter: reduce LLM prompt contract noise by @Flash-LHR in #1844
- {evaluation/workflow/promptiter, server/promptiter}: add app run isolation by @Flash-LHR in #1851
- session/mysql: add TDSQL distributed sharding support by @hyprh in #1831
- codeexecutor/e2b: back-fill envd access token from create/connect response by @nicklaus-dev in #1854
- evaluation/workflow/promptiter: merge duplicate backward propagations by @Flash-LHR in #1855
- examples/evaluation/promptiter: add multinode sports recap example by @Flash-LHR in #1858
- evaluation: add judge runner sample count by @Flash-LHR in #1852
- fix(openapi): coerce non-string query/header/cookie params to strings by @Fromsko in #1849
- agent/extension/todoenforcer: add hard TODO compliance extension by @bytethm in #1806
- session/mysql: limit GetSession event loading by @Rememorio in #1817
- agent: add tool result compaction controls by @Rememorio in #1843
- runner: preserve interrupted assistant text by @Rememorio in #1820
- tool/claudecode: stabilize PDF helper test by @Rememorio in #1861
- lsc: split out generic runtime by @WineChord in #1698
- {openclaw, internal/tool}: support code-driven runtime profiles by @WineChord in #1830
- evaluation/workflow/promptiter: preserve empty allowed gradients by @Flash-LHR in #1868
- {tool/workspaceexec, tool/skill, agent/llmagent}: add command allow/deny policy for sandboxed exec by @bytethm in #1800
- fix(container): parse bind mounts without mode by @yu-xin-c in #1847
- telemetry: add workflow elapsed metrics by @liuzengh in #1877
- docs: clarify OpenAI file content handling by @yu-xin-c in #1824
- {tool/skill, agent/llmagent}: scrub caller env in policy mode to close skill_run PATH bypass by @bytethm in #1878
- docs: add prompt template guide by @yu-xin-c in #1860
- model/gemini: support thinking level and thought signatures by @Kevin091827 in #1842
- {agent, internal/flow/processor}: add prompt section overrides by @Flash-LHR in #1815
- session: protect recent force-clean results by @Rememorio in #1879
- {server/agui, docs}: add distributed cancel by @Flash-LHR in #1839
- docs: clarify AgentTool context visibility by @WineChord in #1871
- docs: clarify taskrun delegation usage by @WineChord in #1869
- codeexecutor/e2b: add WithStableWorkspace option for deterministic workspace paths by @nicklaus-dev in #1874
- {agent, docs}: add lazy agent guidance by @WineChord in #1870
- {tool, agent}: add tool permission policy by @WineChord in #1867
- agent/taskrun: expose run progress and transcripts by @WineChord in #1872
- {session, internal/flow, openclaw}: track summary boundaries by @WineChord in #1875
- {agent/taskrun, openclaw}: support worktree-isolated subagents by @WineChord in #1876
- agent/extension/toolpipe: add shell-like result filter extension by @bytethm in #1866
- {benchmark, docs}: use benchmark submodule by @Rememorio in #1889
- tool/mcp: propagate annotations to metadata by @print-happy in #1887
- knowledge : Fix knowledge query request comment by @hyprh in #1881
- session: respect tool result threshold for summaries by @Rememorio in #1880
- knowledge: add GraphRAG code search (reasonable breaking change) by @hyprh in #1731
- session: store pgvector timestamps in UTC by @Rememorio in #1893
- session: add portable event window loading by @Rememorio in #1856
- docs/mkdocs: update PromptIter guide by @Flash-LHR in #1898
- trpc-agent-go: remove stray TDSQL known issues note by @Flash-LHR in #1902
- codeexecutor/container: honor RunProgramSpec.CleanEnv in RunProgram by @bytethm in #1890
- examples: add graph RAG code search demo and viewer by @hyprh in #1764
- model: raise unknown context window fallback by @Rememorio in #1906
- runner: avoid mutating streaming error events by @borisroman in #1908
- examples: tidy promptiter examples by @Flash-LHR in #1892
- openclaw: expose gateway run options by @WineChord in #1913
- openclaw: add explicit user memory scope by @WineChord in #1899
- {agent/llmagent, internal/flow, docs, examples}: add tool activation by @Flash-LHR in #1910
- tool/agent: add dynamic AgentTool with scoped capabilities by @bytethm in #1909
- knowledge : fix knowledge module versions by @hyprh in #1905
- agent/llmagent: add built-in read-only explorer agent by @bytethm in #1912
- session: decouple summary threshold formatting by @Rememorio in #1900
- {agent/codex, docs, examples}: add Codex CLI agent by @Flash-LHR in #1897
- memory/tencentdb: add TencentDB Agent Memory integration by @Rememorio in #1859
- knowledge: add LLM query enhancer and session context passing by @hyprh in #1896
- tool/agent: restore live session for subagents by @bytethm in #1886
- session: recover compacted tool results by @Rememorio in #1865
- {internal/flow/llmflow, agent/llmagent}: restore go build by @Flash-LHR in #1916
- .github: run PR checks for merge queue by @Rememorio in #1917
- agent: add request-scoped model headers by @Rememorio in #1914
New Contributors
- @print-happy made their first contribution in #1810
- @cuboya made their first contribution in #1835
- @nicklaus-dev made their first contribution in #1854
- @Fromsko made their first contribution in #1849
- @yu-xin-c made their first contribution in #1847
- @Kevin091827 made their first contribution in #1842
- @borisroman made their first contribution in #1908
Full Changelog: v1.9.1...v1.10.0