AI Agents & LLM Systems Engineer | Formerly @ Moonshot AI (Kimi) | MS CS @ HKU | Champion, Shanghai Global AI Contest | 3x ACM-ICPC Silver Medalist | Former Intern @ Baidu, Maimai, Kuaishou
- 414+ merged upstream PRs, with fixes in vLLM (12 merged), Mooncake (39 merged), Qwen Code (54 merged), Microsoft Agent Framework (31 merged), AstrBot (31 merged), Google ADK (10 merged), Inspect AI (27 merged), deer-flow (17 merged), promptfoo (14 merged), Hugging Face Transformers (1 merged), Kimi Code (1 merged), Vibe-Trading (35 merged), cherry-studio (7 merged), openclaw (6 merged), dify (6 merged), and PyTorch (11 merged).
- Selected public projects led by CoreCoder, FindJobs-Agent, RepoWiki, and ContractGuard.
| Project | Stars | What it is |
|---|---|---|
| CoreCoder | 1.7k+ | 512K lines of Claude Code distilled to 1,161 lines of Python: every key architectural pattern, runnable, any LLM. 7 architecture deep-dive articles. |
| FindJobs-Agent | 200+ | LLM-powered job toolkit: skill gap analysis, mock interviews, resume optimization, and job structuring. |
| RepoWiki | 200+ | Open-source DeepWiki alternative: CLI/browser wiki generation, PageRank file ranking, Mermaid diagrams, and reading guides. |
| ContractGuard | 100+ | AI agent that reviews contracts for red flags before you sign: unfair terms, missing protections, plain-English explanations. |
| GitSense | 50+ | AI-powered contribution finder and repo radar: find matching issues, then check PR merge signals before spending a weekend. |
| CodeABC | new | AI code reader for non-programmers: plain-language file guides, hover annotations, a terminology dictionary, Q&A, and natural-language edits. |
All projects (22)
| Area | Project | Stars | Notes |
|---|---|---|---|
| Coding agents / evals | CoreCoder | 1.7k+ | 512K lines of Claude Code → 1,161 lines of Python. Every key architectural pattern, runnable. Any LLM. 7 architecture deep-dive articles. |
| Applied agents | FindJobs-Agent | 200+ | LLM-powered job toolkit: skill gap analysis, mock interviews, resume optimization, and job structuring. |
| Codebase maps | RepoWiki | 200+ | Open-source DeepWiki alternative: CLI/browser wiki generation, PageRank file ranking, Mermaid diagrams, and reading guides. |
| Applied agents | ContractGuard | 100+ | AI agent that reviews contracts for red flags before you sign: unfair terms, missing protections, and plain-English explanations. |
| Codebase maps | GitSense | 50+ | AI-powered contribution finder and repo radar: find matching issues, then check PR merge signals before spending a weekend. |
| Code understanding | CodeABC | new | AI code reader for non-programmers: plain-language file guides, hover annotations, a terminology dictionary, Q&A, and natural-language edits. |
| Coding agents / evals | AgentProbe | new | Pytest plugin for regression-testing AI agents: snapshot baselines, semantic comparison, and mock LLMs. |
| Coding agents / evals | AnyCoder | new | AI coding agent CLI supporting 100+ LLMs via litellm, with dangerous command blocking, parallel tools, and session persistence. |
| Coding agents / evals | CodeJoust | new | CLI arena for AI coding agents: isolated git worktree runs, test/cost/diff/time scoring, and pip install codejoust. |
| Coding agents / evals | LiteBench | new | Pip-installable LLM/agent benchmark CLI + web dashboard, with agent mode, custom YAML, LLM-as-judge, and 100+ litellm models. |
| Agent tooling | RuleForge | new | Auto-generate AI assistant rules (CLAUDE.md, .cursorrules, copilot-instructions) from codebase analysis. |
| LLM tooling | PromptDiff | new | Semantic diff for LLM prompts: compare prompt versions like git diff. |
| LLM tooling | TokenTracker | new | Drop-in LLM cost tracker: change one import line and see where the money goes. OpenAI, OpenRouter, Azure, Ollama. |
| LLM tooling | BatchLLM | new | Batch processing for LLM APIs: CSV/JSONL in, results out, with concurrency, retries, checkpointing, and cost tracking. |
| Applied agents | IslandEscape | new | 2D pixel-art survival game where four LLM agents play the islanders — each with a personality, negotiating trades in natural language and forming alliances; race them to 100 coins to escape. |
| Agent / MCP / CI tooling | agentcikit | new | One CLI for AI-agent, MCP, and open-source work: diagnose CI failures into repro plans, pack issue-specific context for coding agents, gate and replay MCP servers, and test tool-call safety. Bundles ci-repro, patch-context, mcp-gate, mcp-replay, and tool-fence. |
| Coding agents / evals | IssueBenchKit | new | Turn real GitHub issues and local bugs into small, reproducible coding-agent benchmark tasks with before/after scoring and HTML reports. |
| Agent observability | FlightBox | new | Black-box flight recorder for AI agents: record, redact, replay, and diff local agent sessions. |
| Quant / RL | DRL-MultiFactorTrading | new | Deep-RL trading: Double DQN with Transformer attention over a Fama-French-style multi-factor model, plus adaptive risk and volatility targeting. |
| Research | adversarial-refinement-imputation | new | Companion code for the MiLeTS 2026 paper adapting R3GAN to multivariate time-series imputation — a clearly-scoped negative result. |
| Research | TrajBias | new | A study of structural biases in LLM-as-judge evaluation of agent trajectories. |
392 merged PRs across 59 upstream projects, ordered by display score. The repo name links to the project, the PR number to the change.
| Project | Merged | What the PRs cover | Highlight fixes |
|---|---|---|---|
| Mooncake (6.5k★ · maintainer) | 39 | KV-cache store and transfer-engine correctness: hangs, goroutine leaks, races, overflow | #3929 Batch reads with a duplicate key handed back the first occurrence's never-written buffer as success; each unique key now transfers once and its verified bytes fan out to every duplicate with device-aware copies #1629 GB200 MNNVL EP hang: cudaMalloc → cuMemCreate(FABRIC) + cuMemMap for cross-node NVLink#3711 Self-heal dangling LOCAL_DISK replicas in Client::Put: a put onto a key left with only client-local disk replicas evicts them and retries cleanly, with BatchPut probing and evicting the already-exists subset in one pass. |
| vLLM (91.1k★) | 12 | Serving correctness: cross-turn API state leaks, CUDA-graph crashes, tool-call parsing | #37727 Responses API instructions were leaking across turns through the previous_response_id chain.#43243 Qwen3 XML tool-call params now parse as JSON first, so null/false survive streaming instead of being rejected as Python literals.#37884 RoBERTa's in-place position_ids accumulation bled into CUDA-graph padding, crashing BGE-M3 after ~4k requests. |
| Vibe-Trading (32.7k★ · maintainer) | 35 | Portfolio analytics and monitor-verdict pipeline; fail-closed live-trading gates; backtest accounting correctness (shorts, corporate actions, T+1) | #1356 Cash-dividend journal rows were never parsed, so dividends paid into the shadow account read as flat real PnL; they are booked properly now #1233 Persist the flatten latch across runner restarts so a reboot cannot replay the kill-switch sweep and flip the account #1317 Stamp every served frame with its price-adjustment caliber and warn when a basket mixes calibers, closing the silent mixed-caliber backtest gap from #1301 |
| Qwen Code (27.7k★) | 54 | Agent runtime hardening: tool-call adjacency, cancellation, permissions, TUI states | #4622 Kept assistant tool calls adjacent to their results, so OpenAI-compatible providers stop rejecting repaired histories. #4716 Routed /bug, /docs, and /insight browser launches through the secure opener so headless environments stop crashing on raw open.#7535 Retry model calls with backoff and a circuit breaker in release-notes generation, and surface degraded output instead of a silent blank |
| Microsoft Agent Framework (13.4k★) | 31 | Agent-loop boundaries: message-role mutation leaks, per-turn hooks, blocking tools | #7289 Defer turn-scoped after_run providers to the agent loop boundary, so per-turn hooks fire once per turn instead of once per iteration #5808 Handoff was mutating message roles in place, so a retry leaked the change; reuse sanitized copies instead. #5773 Run synchronous Python tools off the event loop so a blocking call stops freezing concurrent agent work. |
| deer-flow (81.5k★) | 17 | Concurrency and checkpoint correctness: thread-creation races, session-pool lifecycle, channel protocol limits | #3800 Keep create_thread idempotent when a concurrent insert loses the race, so a chat cannot end up with duplicate threads.#4429 Fork-restored checkpoints deliver the sandbox channel still wrapped in langgraph Overwrite; unified one unwrap helper across the sync/async init paths and the sibling readers#5148 Cap WeCom outbound content at the 20480-byte protocol limit: proactive pushes split into ordered chunks with a refcounted per-chat send lock, so long pushes stop being rejected and concurrent sends stop interleaving |
| AstrBot (40.1k★) | 31 | Release asset freshness, multimodal reply duplication, scheduler exception swallowing | #9987 Propagate the cron agent runner's ERROR terminal state so a failed scheduled run is recorded failed with its error instead of completed-with-null #7537 Prevent Telegram media group exceptions from being silently swallowed by APScheduler |
| PyTorch (102.8k★) | 11 | Kernel/compiler correctness: wrong-device dispatch, silent gradient corruption, UB | #188027 Initialize r in the Laguerre and Legendre polynomial helpers so they stop returning uninitialized memory on the boundary path (shows as Closed; landed via pytorchmergebot)#186779 Error on unsupported batch norm third derivatives instead of silently returning wrong gradients (shows as Closed; landed via pytorchmergebot) #188229 avg_pool3d backward silently corrupted gradients on inputs over INT_MAX elements: the atomic scatter kernel computed offsets and bounds as 32-bit int; widened to 64-bit indexing (shows as Closed; landed via pytorchmergebot) |
| OpenClaw (389.0k★) | 6 | Session-store fail-closed sweeps, auth-failure visibility, surrogate-safe text | #119127 Keep the mtime media sweep out of the managed-outgoing tree and fail closed when the session store is unreadable, so global GC can never delete live user originals (co-built with the project owner after his P0 review) |
| opencode (204.9k★) | 1 | MCP OAuth callback bound to IPv4 loopback | |
| dify (153.3k★) | 6 | API robustness: unbounded calls get timeouts, up-front validation, atomic windows | #39953 Bound the TiDB Cloud API calls that had no timeout, so a hanging cluster endpoint can't stall vdb operations forever |
| Transformers (164.3k★) | 1 | AutoProcessor hub-kwarg passthrough | |
| MCP Servers (90.1k★) | 1 | Dependency hygiene: zod declared where servers import it | |
| OpenHands (84.9k★) | 1 | Settings persistence: keep custom LLM base URLs | #14776 Keep a custom LLM base URL when editing basic model settings, so a saved profile stops silently falling back to the provider default. |
| Firecrawl (171.6k★) | 3 | Self-host scrape paths: interact errors, auth chunk retention, batch dict responses | |
| MarkItDown (178.1k★) | 2 | File-format conversion correctness: DOCX underline preservation, legacy XLSX tolerance | |
| SGLang (32.3k★) | 2 | Backend crashes: hybrid attention with speculative decoding, diffusers pickling | |
| DeepSpeed (42.9k★) | 1 | Monitor wiring: eigenvalue records never landed in logs | |
| DSPy (37.8k★) | 1 | Streaming error propagation: sync iterator failures no longer vanish | |
| milvus (45.8k★) | 1 | Scheduler shutdown safety: in-flight broadcast tasks no longer panic a closing scheduler | |
| Triton (19.9k★) | 4 | Compiler semantics: fp8 arithmetic promotion, top_k edge cases, AxisInfo correctness | |
| Cline (66.7k★) | 1 | File search survives the open-tabs host RPC being down | |
| AgentScope (29.4k★) | 10 | Team-run permission inheritance, Windows subprocess windows, skill sourcing | #1815 Inherit the leader's permission rules in team runs, so delegated agents keep the same workspace and file-access limits. #1717 Hide Bash tool subprocess windows on Windows with CREATE_NO_WINDOW, while leaving non-Windows process creation unchanged |
| LiteLLM (57.1k★) | 1 | Proxy logging: verbose logger sources missing from INFO output | |
| promptfoo (24.5k★) | 14 | Eval scoring correctness: percentile validation, tokenless GLEU, provider edge cases | #10089 Reject out-of-range trace-span-duration percentiles instead of silently computing garbage #9850 Score tokenless GLEU inputs as zero instead of crashing #9867 Avoid crashing on an empty choices array when reading Azure logprobs |
| goose (53.3k★) | 3 | Telemetry export reliability, skill path display, desktop shortcuts | |
| cherry-studio (51.0k★) | 7 | Renderer correctness: tree-shaken markdown styles, surrogate-safe truncation, citations | #16352 Preserve surrogate pairs at truncation boundaries so a multi-byte character isn't split into invalid halves. |
| GitHub MCP Server (32.4k★) | 2 | Team-reviewer resolution and read-only surface hygiene | |
| OpenAI Python SDK (31.6k★) | 1 | Bounded vector-store polling and client lifecycle edges | #3401 Bound vector-store file polling so a stuck upload stops spinning the client forever |
| OpenAI Agents SDK (28.9k★) | 1 | Report effective Blaxel timeouts instead of defaults | |
| ms-swift (15.3k★) | 6 | Training-prep and sampling robustness: DPO crashes, 0-fps video, CI repair | #9642 Empty rejected_messages now fail fast in dataset prep instead of crashing DPO mid-training.#9816 swift sample crashed engine construction when engine_kwargs carried torch_dtype (the workaround while the flag was ignored); pop it before the splat so the flag always wins#9750 A 0-fps get_avg_fps() on broken video metadata made range(0, len(vr), 0) raise before any frame was read in MiniCPM-V / mPLUG-Owl3 sampling; guard the sample step |
| AG-UI (15.5k★) | 10 | ADK session caching and message-to-tool-call transition ordering | #1890 Cache ADK session reads within one execution, so a remote session service isn't refetched before every agent run. |
| Google ADK (21.2k★) | 1 | Judge criteria honoring intermediate responses | |
| Mem0 (63.9k★) | 3 | Memory-store backends: S3 Vectors index naming, Qdrant https option | |
| verl (23.1k★) | 1 | Colocated weight-sync rank derivation across DP/TP | |
| TRL (19.1k★) | 2 | Dataset-prep fail-fast and vLLM special-token preservation | |
| Inspect AI (2.6k★) | 27 | Eval-logging and provider parsing: reasoning blocks, streaming writer, headless crashes | #3902 Parse OpenRouter reasoning_details in OpenAI-compatible responses instead of surfacing Python repr blocks#4167 Route the realtime streaming sample writer through the same fallback JSON normalization as the regular log path, so sandbox objects that don't serialize cleanly can't crash an eval mid-stream #4479 macOS screen-scale detection imported AppKit unguarded and crashed headful browser runs without pyobjc; fall back to scale factor 1 |
| Agno (41.8k★) | 1 | Tool-argument whitespace preservation with sentinel normalization | |
| RAGFlow (89.1k★) | 3 | Agent-flow guards, Docling fallback, GraphRAG edge ranking | #15691 Skip empty agent-switch conditions so a blank branch guard can't crash or block valid downstream flows. |
| LiveKit Agents (13.1k★) | 8 | Realtime voice plumbing: stream-retry recreation, provider status parsing, STT errors | #6000 Skip context replay on resumed realtime sessions so a resumed Gemini session stops re-reading its own history back as fresh turns |
| MCP Toolbox (16.2k★) | 6 | SSE writer panics, Looker input validation, parameter error reporting | #3531 Validate the Looker explore_references shape instead of panicking on malformed input #3520 SSE handler rendered a 500 when the writer was no http.Flusher but fell through, leaving a nil flusher that panicked on the first Flush; return right after the error render |
| LMCache (11.3k★) | 2 | Cross-process KV transfer: CUDA IPC event lifetimes, HND layout handling | |
| FastMCP (27.7k★) | 1 | Schema building keeps required union discriminator tags | |
| FlashInfer (6.2k★) | 2 | Autotuner None-input crash and CUTLASS header compile fix | #2756 Fix autotuner crash when input tensor is None: proper None-checking for optional inputs (fixes #2749) |
| Pydantic AI (19.4k★) | 3 | Vercel AI dynamic-tool part acceptance, completions penalties forwarding | |
| Phoenix (11.1k★) | 11 | Observability UI state: prompt-diff expiry, cursor monotonicity, startup races | #13641 Expire prompt tool diffs on provider change, so PXI prompt editing stops carrying stale tool-change state across providers. #13210 Return NotFound-style errors for invalid GraphQL node ids instead of leaking decoder failures to clients #13245 Keep the generative model fetch cursor monotonic so lower-id updates cannot make later polling skip newer model changes |
| Strands Agents SDK (6.9k★) | 9 | Non-streaming OpenAI support, Gemini safety metadata, vLLM reasoning chunks | |
| Pipecat (14.6k★) | 2 | Realtime voice: DTMF cache keying, interruption frame serialization | |
| LightRAG (39.1k★) | 4 | Docling response unpacking, docs dark theme, PostgreSQL search_path detection | #3031 Extract Docling async markdown from the response envelope so RAG chunks carry clean document text, not JSON/base64 noise. |
| Kimi Code (7.0k★) | 1 | TUI footer status-line customization | #2255 Customize the TUI footer status line via status_line config, codex / claude code style |
| Graphiti (30.2k★) | 1 | FalkorDB bulk-write crash on NUL bytes | |
| OpenHarness (15.5k★) | 1 | TUI tab-completion fixes | |
| LM Evaluation Harness (13.7k★) | 1 | Anthropic stop-sequence validation | |
| MCP Registry (7.1k★) | 1 | Publisher metadata validation | #1310 Reject mangled publisher metadata instead of accepting malformed entries |
| ClawTeam (5.5k★) | 4 | Founding PRs: tests/CI/templates, pluggable TaskStore, Gemini CLI support | #1 First PR: 122 tests, CI, team templates, config bugfixes, task duration tracking #40 Pluggable TaskStore: extract task persistence into swappable backend abstraction |
| MCP Go SDK (5.0k★) | 2 | MCP protocol state: duplicate initialize rejection, description metadata | |
| Microsoft Recommenders (21.8k★) | 5 | GPU discovery without a CUDA context, benchmark top-k honoring | |
| DB-GPT (19.7k★) | 1 | Sandbox execution opt-in | |
| Google Gen AI SDK (3.9k★) | 1 | API-key hygiene: secrets out of websocket URLs | #2564 Keep Live Music API keys out of websocket URLs by relying on request headers instead of duplicating secrets in query strings |
| yfinance (25.0k★) | 1 | Equity-screener EPS field merge | |
| EvalScope (3.2k★) | 1 | SciCode answer extraction from content blocks | |
| OpenHands SDK (1.0k★) | 3 | Concurrency-safe LiteLLM params, git workspace validation, UTF-8 logs | #3248 Serialize LiteLLM modify_params updates with an RLock so concurrent completions do not leak global parameter state#3247 Validate git workspaces with git rev-parse --git-dir, so a broken nested repo can't crash /api/git/changes. |
All 39 merged Mooncake PRs
| Project | PR | What I Fixed |
|---|---|---|
| Mooncake (6.5k★ · maintainer) | #3929 | Batch reads with a duplicate key handed back the first occurrence's never-written buffer as success; each unique key now transfers once and its verified bytes fan out to every duplicate with device-aware copies |
| Mooncake (6.5k★ · maintainer) | #2404 | Fail Python initialization loudly when the chosen memory allocator's support is unavailable, instead of starting with a broken allocator and failing later |
| Mooncake (6.5k★ · maintainer) | #1629 | GB200 MNNVL EP hang: cudaMalloc → cuMemCreate(FABRIC) + cuMemMap for cross-node NVLink |
| Mooncake (6.5k★ · maintainer) | #3683 | TENT worker no longer starves on its own submit queue: parked requeue entries drain before same-priority producer entries, verified against the production ordering with a regression test |
| Mooncake (6.5k★ · maintainer) | #3711 | Self-heal dangling LOCAL_DISK replicas in Client::Put: a put onto a key left with only client-local disk replicas evicts them and retries cleanly; BatchPut probes the already-exists subset and bulk-evicts it in one pass before retrying, with local and batch twin tests |
| Mooncake (6.5k★ · maintainer) | #3062 | Arm the etcd view-change watch once per wait instead of per iteration, stopping the steady-state watch goroutine leak in HA mode |
| Mooncake (6.5k★ · maintainer) | #2311 | Duplicate rpc_meta re-publishes are idempotent when the HTTP body is unchanged, and still rejected when a value actually changes. |
| Mooncake (6.5k★ · maintainer) | #1644 | MNNVL warmup hang: skip redundant handshake for fabric-connected nodes |
| Mooncake (6.5k★ · maintainer) | #3054 | Restore zero-copy puts for multi-buffer payloads in the wheel, which a just-merged refactor had silently regressed into copies |
| Mooncake (6.5k★ · maintainer) | #1719 | Add ObjectDataType metadata classification for KV cache, weights, tensors, and snapshots, with backward-compatible serialization and Python bindings |
| Mooncake (6.5k★ · maintainer) | #1728 | Hard pin for eviction-protected objects: model weights never get evicted, const field + BatchEvict skip + backward-compat serialization |
| Mooncake (6.5k★ · maintainer) | #2570 | Integer overflow in BatchOffload for >4 GiB objects: sum slice sizes in uint64_t and reject objects exceeding the uint32_t record value_len, instead of silently truncating |
| Mooncake (6.5k★ · maintainer) | #3146 | Fix double free of UB/Barex slices on device-selection failure: queued slices were deallocated into the cache while TransferTask still owned them (sibling of the RDMA fix #3125) |
| Mooncake (6.5k★ · maintainer) | #3278 | Block SIGTERM/SIGINT for the graceful-shutdown watcher thread: a process-directed signal landing on the watcher suspended the only pipe reader and hung shutdown forever |
| Mooncake (6.5k★ · maintainer) | #2965 | Roll back partial registration in registerLocalMemory on a later transport failure, so earlier transports' registrations don't leak |
| Mooncake (6.5k★ · maintainer) | #2628 | Fix source refcnt leak in CopyEnd/MoveEnd on invalid source |
| Mooncake (6.5k★ · maintainer) | #1825 | Fix P2PClientService::Put silently swallowing write errors: propagate actual error codes for non-idempotent failures |
| Mooncake (6.5k★ · maintainer) | #2500 | Don't fail bundle cleanup when per-key remove retry succeeds |
| Mooncake (6.5k★ · maintainer) | #1831 | TENT NVLink IPC fix: use base pointer for sub-allocated GPU tensors, porting #1622 fix to TENT path |
| Mooncake (6.5k★ · maintainer) | #2610 | A refactor had dropped the per-task request pointer in RdmaTransport::submitTransfer, leaving every downstream task null and breaking status, retry, and accounting reads. Traced it back and restored the association. |
| Mooncake (6.5k★ · maintainer) | #2955 | Skip the CUDA pointer probe on GPU-less hosts so TransferEngine init succeeds there (the probe result was only ever logged) |
| Mooncake (6.5k★ · maintainer) | #2942 | Surface HTTP metadata server bind failures in start(): it discarded the async_start() future, so a bind error (e.g. port in use) stayed invisible and poll() reported healthy forever |
| Mooncake (6.5k★ · maintainer) | #2506 | Parse string booleans for enable_ssd_offload in from_file |
| Mooncake (6.5k★ · maintainer) | #2927 | Snapshot restore dropped ssd_total_capacity_bytes, so SSD total capacity read 0 B in metrics until the client re-ran FileStorage::Init; serialize it with the segment |
| Mooncake (6.5k★ · maintainer) | #2629 | Don't abort client init on a malformed MC_MS_AUTO_DISC value |
| Mooncake (6.5k★ · maintainer) | #2460 | Support EulerOS in dependencies installer |
| Mooncake (6.5k★ · maintainer) | #2403 | Clean up a failed io_uring sub-batch init so a half-prepared transfer batch can't carry broken state into later setup. |
| Mooncake (6.5k★ · maintainer) | #2651 | Skip bucket files with non-numeric names instead of aborting Init |
| Mooncake (6.5k★ · maintainer) | #3064 | Drop the no-op enable_mooncake_nof_pool key from the NVMe-oF docs so users stop copying a setting that does nothing |
| Mooncake (6.5k★ · maintainer) | #2617 | Associate task.request in EFA/Kunpeng submitTransfer |
| Mooncake (6.5k★ · maintainer) | #2602 | Return HTTP 500 when is_exist reports an error in handle_exist |
| Mooncake (6.5k★ · maintainer) | #2402 | Reject failed Python buddy-allocator backing buffers instead of inserting null raw buffers into managed slabs |
| Mooncake (6.5k★ · maintainer) | #2641 | Guard MC_TCP_SLICE_SIZE parsing against std::stoull throwing |
| Mooncake (6.5k★ · maintainer) | #2606 | Map cudaStreamQuery for the intra-node NVLink build |
| Mooncake (6.5k★ · maintainer) | #2619 | Fix signed-char isxdigit UB in EFA smaps page-size parsing (follow-up to #2504) |
| Mooncake (6.5k★ · maintainer) | #2962 | Make single unregisterLocalMemory best-effort so teardown no longer has to track exact registration state |
| Mooncake (6.5k★ · maintainer) | #2627 | Guard against null endpoint_store_ in UrmaContext destructor |
| Mooncake (6.5k★ · maintainer) | #3266 | Poll for the async eviction in PutStartExpiringTest instead of asserting right away, killing a timing flake in CI |
| Mooncake (6.5k★ · maintainer) | #1626 | Silenced error log spam for non-memory replicas in metadata store |
All 12 merged vLLM PRs
| Project | PR | What I Fixed |
|---|---|---|
| vLLM (91.1k★) | #37727 | Responses API instructions were leaking across turns through the previous_response_id chain. |
| vLLM (91.1k★) | #37884 | RoBERTa's in-place position_ids accumulation bled into CUDA-graph padding, crashing BGE-M3 after ~4k requests. |
| vLLM (91.1k★) | #43243 | Qwen3 XML tool-call params now parse as JSON first, so null/false survive streaming instead of being rejected as Python literals. |
| vLLM (91.1k★) | #46175 | Accept logprobs=-1 in the Completion API, so OpenAI clients that send -1 for unrestricted logprobs stop getting a 400. |
| vLLM (91.1k★) | #38732 | Fix bench_serve UTF-8 decode crash on split multi-byte chars in streaming chunks |
| vLLM (91.1k★) | #37301 | Base64 JPEG video frames returning empty metadata: populate frame count, fps, duration |
| vLLM (91.1k★) | #37699 | Fix weight offloading ignoring VLLM_WEIGHT_OFFLOADING_DISABLE_PIN_MEMORY in prefetch offloader |
| vLLM (91.1k★) | #40789 | Taught the V1 ubatch wrapper to unwrap tuple model outputs, unblocking DBO and speculative decoding on tuple-returning models. |
| vLLM (91.1k★) | #42679 | Guard flash-attn rotary imports so FA4 environments fall back cleanly when flash_attn.ops.triton.rotary is absent |
| vLLM (91.1k★) | #44821 | Prefix DeepSeek V4 MTP projection layers so compressed-tensors can match artifact-side target and ignore rules during draft model loading |
| vLLM (91.1k★) | #45807 | Anthropic-compatible streaming now reports the stop_reason when a stop sequence actually fired, instead of leaving clients guessing |
| vLLM (91.1k★) | #49996 | Structured output: reject string schemas mixing pattern/format with length bounds at validation time with a clean 400, since xgrammar silently drops the bounds from the grammar |
All 35 merged Vibe-Trading PRs
| Project | PR | What I Fixed |
|---|---|---|
| Vibe-Trading (32.7k★ · maintainer) | #1396 | Classify Tushare-spelled CN futures suffixes (SHF/DCE/CFX/CZC/GFE) as futures instead of A-shares, so those contracts stop settling under T+1, no-short, no-margin equity rules |
| Vibe-Trading (32.7k★ · maintainer) | #1388 | Close four connector gaps: MT5 silently clamped oversize orders to the symbol cap, eToro sent price-less limit orders as never-triggering MITs, futu served K-lines without declaring the adjustment caliber, and bare BTCUSDT-style pairs picked up A-share T+1 rules |
| Vibe-Trading (32.7k★ · maintainer) | #1356 | Cash-dividend journal rows were never parsed, so dividends paid into the shadow account read as flat real PnL; they are booked properly now |
| Vibe-Trading (32.7k★ · maintainer) | #1349 | Release tool calls left permanently blocked after microcompact cleared their results, marking the missing result explicitly instead |
| Vibe-Trading (32.7k★ · maintainer) | #1311 | Model short lots in FIFO pairing and restate legs to one caliber across splits and dividends, so short-side PnL stops double-counting borrowed exposure |
| Vibe-Trading (32.7k★ · maintainer) | #1317 | Stamp every served frame with its price-adjustment caliber and warn when a basket mixes calibers, closing the silent mixed-caliber backtest gap from #1301 |
| Vibe-Trading (32.7k★ · maintainer) | #1332 | Mark halted positions at the last traded close instead of entry cost once the bounded ffill expires, ending the phantom mid-halt drawdown in equity curves and rebalance sizing |
| Vibe-Trading (32.7k★ · maintainer) | #1342 | Detect the stooq anti-bot challenge page and flag the source unavailable with operator guidance, instead of parsing HTML as no data and silently sliding down the chain |
| Vibe-Trading (32.7k★ · maintainer) | #1309 | Enforce A-share T+1, India T+1, and price-limit bands through composite state instead of the stateless sub-engine rule books that silently let same-day sells and locked-limit fills through |
| Vibe-Trading (32.7k★ · maintainer) | #1310 | Scope shadow-account attribution to the pool currency and make the buckets mutually exclusive, so cross-currency deltas stop landing in the wrong bucket twice |
| Vibe-Trading (32.7k★ · maintainer) | #1306 | Hold margin on short option legs and gate opens on buying power, so option shorts stop reading as free premium in backtests |
| Vibe-Trading (32.7k★ · maintainer) | #1307 | Settle perpetual funding by bar span on 8h+ intervals instead of once a day on daily bars, restoring the intended carry cost in non-strict runs |
| Vibe-Trading (32.7k★ · maintainer) | #1312 | Size buy-limit orders at the worse of quote and limit, so a limit above the book no longer oversizes the fill |
| Vibe-Trading (32.7k★ · maintainer) | #1314 | Key the shadow result cache by window and journal hash, so a re-render with a different window stops reusing the previous run |
| Vibe-Trading (32.7k★ · maintainer) | #1313 | Cap fastmcp below 4.0.0 to unbreak the repo-wide red CI from its MCPError constructor change, pending the real adaptation |
| Vibe-Trading (32.7k★ · maintainer) | #1233 | Persist the flatten latch across runner restarts, bound to the halt episode, so a reboot with closing orders still working cannot replay the whole kill-switch sweep and flip the account |
| Vibe-Trading (32.7k★ · maintainer) | #1253 | Skip market-triggered ticks while the market is closed, so weekend watches no longer queue orders into the Monday open |
| Vibe-Trading (32.7k★ · maintainer) | #1232 | Fail closed on broker error envelopes during the halt sweep: a {"status": "error"} reply is recorded as an error instead of a compliant-looking cancel/flatten success |
| Vibe-Trading (32.7k★ · maintainer) | #1287 | Serve split and dividend adjusted prices on both Yahoo loader paths, so corporate actions no longer book as crashes and ex-dividend gaps as losses in backtests |
| Vibe-Trading (32.7k★ · maintainer) | #1288 | Retry symbols the first market-data source could not serve down the fallback chain per symbol, so one 404 no longer strands the rest of a batch in unresolved |
| Vibe-Trading (32.7k★ · maintainer) | #1156 | Complete the Scheduled Research verdict flow in Market Watch: render each monitor's latest symbols, change since the previous run, and recorded time; show explicit empty or unreadable states without adding another API query |
| Vibe-Trading (32.7k★ · maintainer) | #1152 | Scheduled monitors now persist each run's parsed verdict on the job and the list endpoint carries it inline, so Market Watch renders the latest call and its delta in one query |
| Vibe-Trading (32.7k★ · maintainer) | #777 | Portfolio Studio's risk x-ray: pure-computation concentration, volatility, drawdown, VaR/ES, diversification, and correlation analytics for weighted baskets, plus an agent tool that fetches closes through the loader fallback chain |
| Vibe-Trading (32.7k★ · maintainer) | #1212 | Fail closed when broker position reads return an API error: futu/okx connectors now raise instead of treating an unreadable position book as empty, so live orders stop sailing through the mandate gate blind |
| Vibe-Trading (32.7k★ · maintainer) | #1209 | Sign Alpaca position quantity by side before the mandate gate, so short positions are validated in the right direction instead of passing as bare positive numbers |
| Vibe-Trading (32.7k★ · maintainer) | #818 | Portfolio Studio step 2: composable weight constraints that plug into any optimizer, with waterfill redistribution that only feeds positions still under their cap |
| Vibe-Trading (32.7k★ · maintainer) | #796 | Wired the strict alpha-bench gate into the CLI: alpha bench --strict now fails the run when a strategy misses the bar |
| Vibe-Trading (32.7k★ · maintainer) | #966 | Surface Portfolio Studio artifacts in run detail, so risk x-ray and rebalance outputs show up where a run is inspected |
| Vibe-Trading (32.7k★ · maintainer) | #795 | Portfolio Studio's rebalance notes: the backtester now writes a notes artifact with metrics for each rebalance, so agent-driven moves stay auditable |
| Vibe-Trading (32.7k★ · maintainer) | #900 | Every backtest run now emits a risk x-ray artifact (JSON + Markdown) over the strategy's average basket, with concentration, volatility, drawdown, and tail-risk metrics folded into run metrics |
| Vibe-Trading (32.7k★ · maintainer) | #970 | Route source: yfinance crypto backtests to CryptoEngine instead of the stock path, so BTC/ETH runs stop erroring out |
| Vibe-Trading (32.7k★ · maintainer) | #984 | Write hierarchy-routed memory entries with the .md extension so discovery actually sees them (bare-slug files were invisible to list/recall) |
| Vibe-Trading (32.7k★ · maintainer) | #1225 | Streamed LLM calls now ask the endpoint for usage, so swarm runs record real token counts instead of character-count estimates (output tokens were under-reported 18-36x); endpoints that reject stream_options self-heal with one stateless retry |
| Vibe-Trading (32.7k★ · maintainer) | #1217 | Shadow Account derived PnL from metrics keys the runner never emits, so successful backtests reported Shadow PnL = 0 and the Delta came out inverted; PnL now resolves from final_value/total_return and unknown states fail closed instead of rendering as 0.00 |
| Vibe-Trading (32.7k★ · maintainer) | #1220 | Pin that rows between combinatorial CV test blocks stay trainable, the regression coverage the multi-segment purge fix shipped without |
All 54 merged Qwen Code PRs
| Project | PR | What I Fixed |
|---|---|---|
| Qwen Code (27.7k★) | #11085 | cron-interactive nightly flaked because one 30s wait folded the model's first turn into the cron fire budget; split the two clocks and made the echo-vacuous ALIVE99 assertion actually observe the model reply |
| Qwen Code (27.7k★) | #4716 | Routed /bug, /docs, and /insight browser launches through the secure opener so headless environments stop crashing on raw open. |
| Qwen Code (27.7k★) | #4622 | Kept assistant tool calls adjacent to their results, so OpenAI-compatible providers stop rejecting repaired histories. |
| Qwen Code (27.7k★) | #7535 | Retry model calls with backoff and a circuit breaker in release-notes generation, and surface degraded output instead of a silent blank |
| Qwen Code (27.7k★) | #4829 | Added a timeout to Qwen OAuth refresh so a stalled refresh endpoint can't hang the CLI on auth recovery. |
| Qwen Code (27.7k★) | #5946 | Isolate Anthropic SDK abort listener leak with per-request child controllers |
| Qwen Code (27.7k★) | #5070 | Skip expired live agents in focus navigation so stale background-agent rows can't grab keyboard focus. |
| Qwen Code (27.7k★) | #5058 | Stopped stale tool-schema recall from slipping outdated tool names back into later planning turns. |
| Qwen Code (27.7k★) | #6981 | Route id-less continuation chunks to the colliding tool-call opener's slot instead of dropping them into the wrong one |
| Qwen Code (27.7k★) | #5020 | Drop tool calls after a cancellation so an aborted turn can't leak stale requests into the next payload. |
| Qwen Code (27.7k★) | #5071 | Submit fast tool results after stream end, so a race at the tail of streaming can't strand completed calls. |
| Qwen Code (27.7k★) | #4639 | Dropped the discontinued Qwen OAuth path from ACP login so nobody gets routed into a dead auth method. |
| Qwen Code (27.7k★) | #5073 | Warn when context instruction files blow the configured budget, before oversized repo guidance quietly crowds out the task. |
| Qwen Code (27.7k★) | #5043 | Let grep results satisfy the prior-read check, so an edit can proceed on verified search context instead of a redundant re-read. |
| Qwen Code (27.7k★) | #5061 | Preserve background-agent launch flags so a delegated CLI run keeps the execution mode you asked for. |
| Qwen Code (27.7k★) | #5036 | Actually hard-stop repeated identical tool calls once loop detection fires, instead of letting the agent keep hammering the same stalled action. |
| Qwen Code (27.7k★) | #4596 | Recurse into tracked Git submodules when crawling a repo, so the agent's context picks up files inside them. |
| Qwen Code (27.7k★) | #5077 | Show the full plan when a permission gate blocks, so you can inspect the agent's intent instead of losing it. |
| Qwen Code (27.7k★) | #4715 | Managed auto-memory now honors the runtime output dir, while an explicit memory-dir override still wins. |
| Qwen Code (27.7k★) | #5062 | Carry token-escalation context across agent rounds so a delegated run stops restarting from an under-provisioned model each time. |
| Qwen Code (27.7k★) | #5945 | Reject non-positive sessionRecapAwayThresholdMinutes values |
| Qwen Code (27.7k★) | #4600 | Distinguish AUTO from AUTO_EDIT approval-mode indicators in the TUI, including shared styling, i18n keys, and visual evidence |
| Qwen Code (27.7k★) | #4636 | Apply the requested output language to side queries too, so auxiliary answers follow the same language contract. |
| Qwen Code (27.7k★) | #4963 | Enable fork subagents by default, so delegated work runs in isolated branches without a manual opt-in. |
| Qwen Code (27.7k★) | #5815 | Merging assistant turns was dropping reasoning_content, losing multi-turn chain-of-thought. |
| Qwen Code (27.7k★) | #5752 | Parse QWEN_SERVE_MCP_CLIENT_BUDGET strictly as a decimal integer |
| Qwen Code (27.7k★) | #5679 | Parse agent & workflow integer env vars strictly |
| Qwen Code (27.7k★) | #5115 | Hide teammate-only agent names when teams are disabled and fall back to one-shot subagents if an old prompt still sends one |
| Qwen Code (27.7k★) | #4673 | Restore top-level --list-extensions / -l so it prints installed extensions and exits before sandbox, auth, or TUI startup |
| Qwen Code (27.7k★) | #4635 | Hide completed sticky todos from the active CLI view so the list stays on what's left. |
| Qwen Code (27.7k★) | #4632 | Harden context-error text extraction so a nested or non-string payload surfaces a useful message instead of vanishing. |
| Qwen Code (27.7k★) | #5167 | Hide unconfigured discontinued OAuth model |
| Qwen Code (27.7k★) | #4828 | Keep a user-set shared baseUrl after auth refresh, so a same-model refresh doesn't fall back to the provider default. |
| Qwen Code (27.7k★) | #5461 | Accept uppercase URL schemes in Claude plugin sources |
| Qwen Code (27.7k★) | #5209 | Read SHORT-typed TIFF dimensions correctly on big-endian files |
| Qwen Code (27.7k★) | #4717 | Replace exit-time deep history clones with shallow read paths across copy, arena, and ACP snapshot flows while keeping restore-time cloning defensive |
| Qwen Code (27.7k★) | #4970 | Stabilize truncated tool-retry keys so a repaired call keeps the same retry identity instead of drifting. |
| Qwen Code (27.7k★) | #4607 | Fix IDE proxy requests by keeping fetch and EnvHttpProxyAgent on the same bundled undici module path |
| Qwen Code (27.7k★) | #5429 | Accept uppercase URL schemes when parsing install sources |
| Qwen Code (27.7k★) | #5494 | Don't treat an empty-parts message as a function call/response |
| Qwen Code (27.7k★) | #5285 | Confirm the WEBP signature, not just the RIFF prefix |
| Qwen Code (27.7k★) | #5420 | Keep estimated token split summing to total |
| Qwen Code (27.7k★) | #5336 | Detect WebP and AVI in RIFF magic-byte sniffing |
| Qwen Code (27.7k★) | #5328 | Keep qwen3.6-flash and kimi-k2.6 presets text-only |
| Qwen Code (27.7k★) | #5227 | Read BMP height as signed int32 for top-down bitmaps |
| Qwen Code (27.7k★) | #5194 | Read WebP VP8X canvas height from the correct byte offset |
| Qwen Code (27.7k★) | #5719 | Validate list maxEntries as a positive integer |
| Qwen Code (27.7k★) | #5630 | Escape backslashes and quotes in emacs ediff paths |
| Qwen Code (27.7k★) | #4738 | Skip hidden thought parts when copying visible CLI output, so the clipboard matches what's on screen. |
| Qwen Code (27.7k★) | #5426 | Accept uppercase URL schemes in mcp add transport detection |
| Qwen Code (27.7k★) | #5287 | Render a sub-minute duration that rounds to 60s as "1m" |
| Qwen Code (27.7k★) | #5647 | Detect USE_OPENAI auth when the model is set via QWEN_MODEL |
| Qwen Code (27.7k★) | #5204 | Reopen code fences without inserting a blank line |
| Qwen Code (27.7k★) | #5072 | Stabilize the simple MCP integration check so server-readiness timing stops making the cross-process contract test flaky. |
All 31 merged Microsoft Agent Framework PRs
| Project | PR | What I Fixed |
|---|---|---|
| Microsoft Agent Framework (13.4k★) | #8095 | A2AAgent(url=..., http_client=mine) left _close_http_client unset, so exiting the async context raised AttributeError; default the flag to False, the two self-created paths still flip it to True. |
| Microsoft Agent Framework (13.4k★) | #5808 | Handoff was mutating message roles in place, so a retry leaked the change; reuse sanitized copies instead. |
| Microsoft Agent Framework (13.4k★) | #7289 | Defer turn-scoped after_run providers to the agent loop boundary, so per-turn hooks fire once per turn instead of once per iteration |
| Microsoft Agent Framework (13.4k★) | #5773 | Run synchronous Python tools off the event loop so a blocking call stops freezing concurrent agent work. |
| Microsoft Agent Framework (13.4k★) | #7704 | Python: name the real MCP initialization error (e.g. HTTP 401) instead of the bare Cancelled via cancel scope that masks it |
| Microsoft Agent Framework (13.4k★) | #5801 | Coalesce streamed code-interpreter history by call id, so stored history keeps the full code and results without duplicated deltas. |
| Microsoft Agent Framework (13.4k★) | #7239 | Python: AG-UI MESSAGES_SNAPSHOT emitted messages out of the model's original order; preserve emission order |
| Microsoft Agent Framework (13.4k★) | #5860 | .NET: the Responses logprobs field was dropped in response serialization both ways; preserve it end to end |
| Microsoft Agent Framework (13.4k★) | #6132 | Filter filesystem checkpoint indexes by session id, so reopening a store stops returning another session's checkpoints. |
| Microsoft Agent Framework (13.4k★) | #6210 | Drop hosted MCP tool-call history when reasoning payloads are stripped, so stateless OpenAI replay stops sending orphan MCP calls. |
| Microsoft Agent Framework (13.4k★) | #7162 | Python: Anthropic streaming counted token usage twice by accumulating final-message usage on top of streamed deltas |
| Microsoft Agent Framework (13.4k★) | #5462 | Fix background=True + tools infinite-retrieve loop: clear completed continuation state so tool results get posted |
| Microsoft Agent Framework (13.4k★) | #7108 | Python: FunctionTool.invoke dumped arguments with exclude_none=True, dropping deliberate null values for required nullable parameters; use exclude_unset so explicit nulls survive |
| Microsoft Agent Framework (13.4k★) | #6491 | .NET: fix fan-in barrier checkpoint state |
| Microsoft Agent Framework (13.4k★) | #5861 | Foundry handoff arguments were losing their structure in response conversion, breaking delegated agent calls; preserved them. |
| Microsoft Agent Framework (13.4k★) | #5800 | Avoid AG-UI tool result message id collisions when providers omit update ids |
| Microsoft Agent Framework (13.4k★) | #5799 | Add handoff workflow naming metadata so names and descriptions flow through builder and hosting registration |
| Microsoft Agent Framework (13.4k★) | #5904 | Keep ChatClientAgent's local history provider on for AG-UI thread ids, so session history isn't mistaken for service-managed model history. |
| Microsoft Agent Framework (13.4k★) | #7256 | Python: from_dict validated a payload's self-declared type against itself, so the check could never fail; resolve the expected type from the class instead |
| Microsoft Agent Framework (13.4k★) | #6640 | Python: surface cache and reasoning token counts for the Bedrock and Gemini connectors |
| Microsoft Agent Framework (13.4k★) | #5815 | Forward MCP tools/list metadata into call_tool instrumentation so traces keep their tool annotations. |
| Microsoft Agent Framework (13.4k★) | #5784 | Skip orphan Anthropic thinking signatures when converting history, so a replay doesn't carry an invalid standalone signature. |
| Microsoft Agent Framework (13.4k★) | #6040 | Forward a Foundry agent's default_headers into OpenAI client creation, so custom auth and routing headers survive setup. |
| Microsoft Agent Framework (13.4k★) | #5974 | Include Foundry agent tool definitions in eval mappings so evaluator runs can call code-defined tools |
| Microsoft Agent Framework (13.4k★) | #5976 | Fix sequential workflow sample output so all participant responses are shown from non-streaming results |
| Microsoft Agent Framework (13.4k★) | #5778 | Declare the Magentic protocol messages so orchestrator chat/reset signals deserialize instead of blowing up on an unknown type. |
| Microsoft Agent Framework (13.4k★) | #6208 | Declarative Foreach was collapsing multi-field PowerFx table rows; preserve the full record value through iteration. |
| Microsoft Agent Framework (13.4k★) | #7130 | Python: extract keywords from non-English text for topic selection, so CJK and other non-latin queries stop coming back empty |
| Microsoft Agent Framework (13.4k★) | #7124 | Python: compaction token counting serialized messages with ensure_ascii=True, so the tokenizer counted \uXXXX escapes instead of real characters (~1.6x inflation on CJK); serialize the real text |
| Microsoft Agent Framework (13.4k★) | #6037 | Keep Foundry citation get_url metadata through response conversion so source links survive in chat responses |
| Microsoft Agent Framework (13.4k★) | #7777 | Python: replace the stale "Learn docs are coming soon" placeholder in the README with the live Learn links |
All 17 merged deer-flow PRs
| Project | PR | What I Fixed |
|---|---|---|
| deer-flow (81.5k★) | #3800 | Keep create_thread idempotent when a concurrent insert loses the race, so a chat cannot end up with duplicate threads. |
| deer-flow (81.5k★) | #4429 | Fork-restored checkpoints deliver the sandbox channel still wrapped in langgraph Overwrite; unified one unwrap helper across the sync/async init paths and the sibling readers |
| deer-flow (81.5k★) | #5148 | Cap WeCom outbound content at the 20480-byte protocol limit: proactive pushes split into ordered chunks with a refcounted per-chat send lock, so long pushes stop being rejected and concurrent sends stop interleaving |
| deer-flow (81.5k★) | #3797 | Synchronize the MCP session-pool singleton lifecycle so concurrent first-use cannot create duplicate pools |
| deer-flow (81.5k★) | #3778 | Synchronize skill storage singleton lifecycle |
| deer-flow (81.5k★) | #4839 | Sanitize MCP-sourced tool results through the same trust pipeline as other external content: a hostile tool server can no longer smuggle instructions into the model's context |
| deer-flow (81.5k★) | #3799 | Serialize per-chat thread creation so concurrent messages stop spawning duplicate threads for one chat. |
| deer-flow (81.5k★) | #4216 | get_memory_config() only refreshed as a side effect of get_app_config(), so readers like the agent factory saw a stale memory.mode after a config.yaml edit; resolve through get_app_config() with a FileNotFoundError fallback |
| deer-flow (81.5k★) | #4157 | A subagent's description is agent-editable (setup_agent / update_agent) yet was rendered raw into the <subagent_system> block, so a crafted first line could break out and forge framework tags. Escaped it, matching the <soul> fix. |
| deer-flow (81.5k★) | #4137 | HTML-escape SOUL.md before it enters the <soul> system-prompt block so an agent-editable personality cannot forge framework tags and break out of its trust zone |
| deer-flow (81.5k★) | #4381 | Unwrap Overwrite-wrapped sandbox state in after_agent so hook consumers read the real state instead of the wrapper |
| deer-flow (81.5k★) | #3631 | Strip base64 image data from streamed values events |
| deer-flow (81.5k★) | #3674 | Let UI runtime channel config win over config.yaml |
| deer-flow (81.5k★) | #4130 | Recognize remaining requests/httpx HTTP methods as network sinks |
| deer-flow (81.5k★) | #3719 | Skip whitespace-only facts in _apply_updates so blank memory entries do not accumulate |
| deer-flow (81.5k★) | #4253 | A tool result containing a literal </tool_response> could close the MindIE framing early and inject trailing text; escaped the tool-response content, matching the tool-call name/arg escaping already in the same function. |
| deer-flow (81.5k★) | #3709 | Fix positional fallback consuming unrelated todo when same-content list is exhausted |
All 31 merged AstrBot PRs
| Project | PR | What I Fixed |
|---|---|---|
| AstrBot (40.1k★) | #9987 | Propagate the cron agent runner's ERROR terminal state so a failed scheduled run is recorded failed with its error instead of completed-with-null |
| AstrBot (40.1k★) | #8172 | Prefer bundled dashboard assets over a stale data dist, so a release stops serving an outdated WebUI. |
| AstrBot (40.1k★) | #8718 | Avoid duplicate quoted image captions when multimodal replies include both quoted text and image metadata |
| AstrBot (40.1k★) | #7537 | Prevent Telegram media group exceptions from being silently swallowed by APScheduler |
| AstrBot (40.1k★) | #6581 | Context truncation dropping the only user message: causes 400 from Zhipu/Gemini |
| AstrBot (40.1k★) | #7196 | Fix Gemini thinking parts leaking into user-facing response |
| AstrBot (40.1k★) | #8750 | Fixed changelog anchor links so dashboard release notes jump to the right section instead of a dead anchor. |
| AstrBot (40.1k★) | #8736 | Preserve embedding API version suffixes so a versioned provider endpoint doesn't get normalized to the wrong path. |
| AstrBot (40.1k★) | #7758 | Apply empty-assistant message filter to streaming OpenAI path: strict providers no longer 400 on reasoning-only turns |
| AstrBot (40.1k★) | #8089 | Route image requests to a vision-capable fallback provider when the primary provider cannot accept image input |
| AstrBot (40.1k★) | #6710 | Skills-like re-query dropping image captions: extra_user_content_parts not forwarded |
| AstrBot (40.1k★) | #6596 | Multimodal token counting: images, audio, chain-of-thought were invisible to context compression |
| AstrBot (40.1k★) | #8786 | Enforce persona tool boundaries |
| AstrBot (40.1k★) | #8061 | Keep Discord startup alive when command sync hits the daily create quota; only quota errors become warnings |
| AstrBot (40.1k★) | #8175 | Surface WeChat OA media send failures instead of reporting success after prepare/send timeouts |
| AstrBot (40.1k★) | #8768 | Sanitize Lark platform id suffixes so invisible whitespace in configured ids does not break platform matching |
| AstrBot (40.1k★) | #8388 | Add the missing dashboard i18n for plugin sub-command counts, so extension details stop showing raw translation keys. |
| AstrBot (40.1k★) | #8255 | Support RST and AsciiDoc knowledge uploads by keeping backend parser checks and dashboard file validation in sync |
| AstrBot (40.1k★) | #8195 | Skip empty LLM summaries so context compression keeps the original history instead of inserting a blank placeholder. |
| AstrBot (40.1k★) | #8119 | Pass image inputs through active replies so image-triggered mentions reach the LLM as image URLs |
| AstrBot (40.1k★) | #8073 | Fix image-only KB retrieval: skip blank prompts so embedding APIs are not called with empty text |
| AstrBot (40.1k★) | #6527 | Fix LLM tool selection: rewrote ambiguous Upload/Download descriptions |
| AstrBot (40.1k★) | #6474 | SQLite database is locked under concurrent writes: added busy timeout |
| AstrBot (40.1k★) | #7216 | Fix Gemini tool call 400: wrap plain-text tool results as Protobuf Struct |
| AstrBot (40.1k★) | #7003 | SSE heartbeat for WebChat: long context compression killed the connection |
| AstrBot (40.1k★) | #7398 | Fix Telegram sendMessageDraft spamming 400 errors on empty text in streaming mode |
| AstrBot (40.1k★) | #7217 | Fix qwen3-rerank response parsing: handle both old and new Dashscope API formats |
| AstrBot (40.1k★) | #6313 | Null choices guard: OpenAI API returning None instead of empty list |
| AstrBot (40.1k★) | #6551 | Fix empty content causing Grok 400: set content to None when empty |
| AstrBot (40.1k★) | #7407 | Fix Gemini native search 400 when no function tools: skip FunctionCallingConfig |
| AstrBot (40.1k★) | #6656 | /stop follow-up race: agent_stop flag not checked during follow-up capture |
All 11 merged PyTorch PRs
| Project | PR | What I Fixed |
|---|---|---|
| PyTorch (102.8k★) | #187731 | extract_scripts.py numbered each extracted step with zero-padding one index off, so traced step files shifted out of order (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #192025 | Vectorized integer remainder in Inductor C++ codegen zeroed the divisor on padded tail lanes, producing div-by-zero under masking; keep tail divisors non-zero (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #188022 | Guard the CuTeDSL topk override against a non-current CUDA device so it stops dispatching on the wrong device (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #186779 | Error on unsupported batch norm third derivatives instead of silently returning wrong gradients (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #188027 | Initialize r in the Laguerre and Legendre polynomial helpers so they stop returning uninitialized memory on the boundary path (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #188229 | avg_pool3d backward silently corrupted gradients on inputs over INT_MAX elements: the atomic scatter kernel computed offsets and bounds as 32-bit int; widened to 64-bit indexing (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #187643 | Fix a ValueError in the stale_issues workflow's parse_older_than on non-leap years, where a naive Feb 29 offset crashed the run (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #176100 | Fix user-defined Triton kernel name mangling in the Inductor codegen so distinct kernels stop colliding in generated code (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #187860 | Route the empty-src check in meta__transformer_encoder_layer_fwd through guard_or_false so an unbacked symbolic numel under torch.compile no longer raises a data-dependent error (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #187262 | Remove the obsolete setuptools upper bound so builds resolve a current toolchain instead of pinning a stale one (shows as Closed; landed via pytorchmergebot) |
| PyTorch (102.8k★) | #187720 | Fix the stale_issues year cutoff clamping the day to the 28th in every month, so month-end batches land on the intended date (shows as Closed; landed via pytorchmergebot) |
All 6 merged OpenClaw PRs
| Project | PR | What I Fixed |
|---|---|---|
| OpenClaw (389.0k★) | #119127 | Keep the mtime media sweep out of the managed-outgoing tree and fail closed when the session store is unreadable, so global GC can never delete live user originals (co-built with the project owner after his P0 review) |
| OpenClaw (389.0k★) | #41271 | Log auth profile resolution failures instead of swallowing silently |
| OpenClaw (389.0k★) | #96456 | Clip progress text on code-point boundaries to avoid lone surrogates |
| OpenClaw (389.0k★) | #41259 | Propagate memory directory creation failures instead of continuing after a failed ensureDir |
| OpenClaw (389.0k★) | #106603 | Use the canonical shortenHomePath in the sandbox-root escape error so the reported path matches the rest of the UI. |
| OpenClaw (389.0k★) | #96562 | Keep sibling dirs that share the home prefix unshortened in tool path display |
All 1 merged opencode PRs
| Project | PR | What I Fixed |
|---|---|---|
| opencode (204.9k★) | #30022 | Bind the MCP OAuth callback server to the IPv4 loopback so the browser redirect connects reliably instead of racing IPv6 |
All 6 merged dify PRs
| Project | PR | What I Fixed |
|---|---|---|
| dify (153.3k★) | #39953 | Bound the TiDB Cloud API calls that had no timeout, so a hanging cluster endpoint can't stall vdb operations forever |
| dify (153.3k★) | #38801 | Validate the conversation up front on the service-api and explore endpoints, so a bad conversation_id returns 404 instead of streaming into a late failure. |
| dify (153.3k★) | #37425 | Bound OperationService billing requests so a slow billing endpoint can't hang the request. |
| dify (153.3k★) | #39479 | Make the 10-minute email IP first-strike window actually take effect: claim the slot atomically with SET NX instead of a racy GET-then-SETEX |
| dify (153.3k★) | #37685 | Keep watercrawl request timeouts bounded instead of disabling them with timeout=None |
| dify (153.3k★) | #37669 | Skip empty tool entries in legacy dataset config extraction |
All 1 merged Transformers PRs
| Project | PR | What I Fixed |
|---|---|---|
| Transformers (164.3k★) | #44710 | AutoProcessor.from_pretrained was silently dropping hub kwargs like revision and token. |
All 1 merged MCP Servers PRs
| Project | PR | What I Fixed |
|---|---|---|
| MCP Servers (90.1k★) | #4289 | Declare zod as a runtime dependency for the servers that import it directly, so strict installs stop hitting ERR_MODULE_NOT_FOUND at startup |
All 1 merged OpenHands PRs
| Project | PR | What I Fixed |
|---|---|---|
| OpenHands (84.9k★) | #14776 | Keep a custom LLM base URL when editing basic model settings, so a saved profile stops silently falling back to the provider default. |
All 3 merged Firecrawl PRs
| Project | PR | What I Fixed |
|---|---|---|
| Firecrawl (171.6k★) | #3730 | Reject self-hosted scrape interact actions with a clear error instead of failing opaquely |
| Firecrawl (171.6k★) | #3729 | Keep the auth chunk in the self-host bypass path so authenticated self-hosted scrapes don't get dropped. |
| Firecrawl (171.6k★) | #3713 | Handle the async v1 batch-scrape response returned as a dict in the Python SDK |
All 2 merged MarkItDown PRs
| Project | PR | What I Fixed |
|---|---|---|
| MarkItDown (178.1k★) | #2017 | Preserve underlined runs in DOCX conversion: add the default u style-map entry and keep underline markup in the Markdown output |
| MarkItDown (178.1k★) | #2064 | Tolerate the legacy showZeroes sheet-view attribute that openpyxl 3.1+ rejects, so older XLSX files still convert instead of raising TypeError |
All 2 merged SGLang PRs
| Project | PR | What I Fixed |
|---|---|---|
| SGLang (32.3k★) | #20739 | Fix hybrid_linear_attn_backend crash when used with ngram speculative decoding |
| SGLang (32.3k★) | #21472 | Fix PicklingError with --backend diffusers on non-T2I models |
All 1 merged DeepSpeed PRs
| Project | PR | What I Fixed |
|---|---|---|
| DeepSpeed (42.9k★) | #8049 | Eigenvalue monitor values were computed but never logged; wired them through so they actually land in the record. |
All 1 merged DSPy PRs
| Project | PR | What it fixed |
|---|---|---|
| DSPy (37.8k★) | #9864 | Propagate sync streaming errors: exceptions raised inside a synchronous streaming iterator were swallowed instead of surfacing to the caller. |
All 1 merged milvus PRs
| Project | PR | What I Fixed |
|---|---|---|
| milvus (45.8k★) | #50858 | broadcastTaskManager.Close shut the broadcast scheduler before the ack scheduler, so an in-flight promote goroutine could still call AddTask and hit the panic branch; return the on-shutdown error instead, matching the broadcast_manager.go precedent, with a regression test. |
All 4 merged Triton PRs
| Project | PR | What I Fixed |
|---|---|---|
| Triton (19.9k★) | #10883 | Promote fp8 operands before division and modulo instead of evaluating them in fp8 precision (BC breaking) |
| Triton (19.9k★) | #10689 | Keep at least one config when a fractional top_k rounds to zero |
| Triton (19.9k★) | #10687 | is_power_of_two(0) was returning True. |
| Triton (19.9k★) | #9613 | Fix AxisInfo correctness: signed constants, unknown shift divisibility, and shift UB guards |
All 1 merged Cline PRs
| Project | PR | What I Fixed |
|---|---|---|
| Cline (66.7k★) | #11166 | Keep file search working when the open-tabs host RPC is down by falling back to system rg. |
All 10 merged AgentScope PRs
| Project | PR | What I Fixed |
|---|---|---|
| AgentScope (29.4k★) | #1815 | Inherit the leader's permission rules in team runs, so delegated agents keep the same workspace and file-access limits. |
| AgentScope (29.4k★) | #1717 | Hide Bash tool subprocess windows on Windows with CREATE_NO_WINDOW, while leaving non-Windows process creation unchanged |
| AgentScope (29.4k★) | #1732 | Pull skills from every active tool group, so prompt instructions and the Skill viewer match the enabled tools. |
| AgentScope (29.4k★) | #1816 | Hint the agent after repeated identical tool errors instead of letting it loop the same failing call, breaking stuck tool-error cycles |
| AgentScope (29.4k★) | #1883 | Handle Gemini function calls without an id |
| AgentScope (29.4k★) | #1823 | Add workspace roots to the permission context, so a chat run authorizes files against the workspace the agent can actually see. |
| AgentScope (29.4k★) | #1774 | Forward explicitly configured Qwen thinking_enable into OpenAI-compatible extra_body without polluting normal OpenAI requests |
| AgentScope (29.4k★) | #1734 | Refresh Redis message-list TTL on append and streaming replace, so the configured storage TTL actually bounds chat history. |
| AgentScope (29.4k★) | #1822 | Add a cwd option to the built-in Bash tool so shell commands can run in the intended workspace directory |
| AgentScope (29.4k★) | #1786 | Keep a caller-provided Redis session id on create, so later get/update/list hit the same session instead of a fresh UUID. |
All 1 merged LiteLLM PRs
| Project | PR | What I Fixed |
|---|---|---|
| LiteLLM (57.1k★) | #26401 | Fix LITELLM_LOG=INFO missing verbose_logger: proxy INFO logs now include all verbose logger sources |
All 14 merged promptfoo PRs
| Project | PR | What I Fixed |
|---|---|---|
| promptfoo (24.5k★) | #10665 | Recognize OpenAI Responses-API function_call items in the tool-call F1 scorer, so those payloads stop scoring as zero tool calls |
| promptfoo (24.5k★) | #10089 | Reject out-of-range trace-span-duration percentiles instead of silently computing garbage |
| promptfoo (24.5k★) | #9850 | Score tokenless GLEU inputs as zero instead of crashing |
| promptfoo (24.5k★) | #9867 | Avoid crashing on an empty choices array when reading Azure logprobs |
| promptfoo (24.5k★) | #9761 | Preserve quoted commas in contains-any/all assertion values |
| promptfoo (24.5k★) | #10124 | Avoid a crash on an empty completion choices array in the Azure provider |
| promptfoo (24.5k★) | #10076 | A tool-call assertion crashed with a TypeError when the tool call was missing its function object; return pass:false instead. |
| promptfoo (24.5k★) | #9897 | Guard array access in the Bedrock Titan and Cohere providers so an empty response array stops crashing generation. |
| promptfoo (24.5k★) | #9815 | Reject a malformed __expected0 CSV header instead of silently dropping its assertion |
| promptfoo (24.5k★) | #9824 | Correct the inverse-JSON assertion failure messages so they no longer read backwards |
| promptfoo (24.5k★) | #9841 | Return pass:false for empty output instead of throwing |
| promptfoo (24.5k★) | #9757 | Unescape all escaped commas in array metadata values |
| promptfoo (24.5k★) | #9840 | Preserve JSONL row description instead of overwriting |
| promptfoo (24.5k★) | #9822 | Keep ellipsize within maxLen when maxLen is below 3 |
All 3 merged goose PRs
| Project | PR | What I Fixed |
|---|---|---|
| goose (53.3k★) | #9599 | Use a blocking OTLP HTTP exporter so telemetry isn't lost when the process exits. |
| goose (53.3k★) | #9584 | Show resolved skill supporting-file paths instead of unresolved placeholders |
| goose (53.3k★) | #9528 | Restore new-chat keyboard shortcut navigation in the desktop app |
All 7 merged cherry-studio PRs
| Project | PR | What I Fixed |
|---|---|---|
| cherry-studio (51.0k★) | #18711 | Keep formula copy working in release builds: the markdown styles entry was tree-shaken out of the production bundle, taking KaTeX's copy listener with it. |
| cherry-studio (51.0k★) | #16352 | Preserve surrogate pairs at truncation boundaries so a multi-byte character isn't split into invalid halves. |
| cherry-studio (51.0k★) | #16454 | Keep bare-URL markdown reference lines in citations instead of dropping them |
| cherry-studio (51.0k★) | #17106 | Count images nested in tool_result blocks when estimating API-gateway token usage, so multimodal tool results are no longer under-counted |
| cherry-studio (51.0k★) | #16358 | Drop Ideogram data[] items without a usable URL in the aihubmix path instead of rendering broken images |
| cherry-studio (51.0k★) | #16361 | Resolve the .d.ts icon for uppercase extensions |
| cherry-studio (51.0k★) | #16217 | Roll relative time up at the unit boundary |
All 2 merged GitHub MCP Server PRs
| Project | PR | What I Fixed |
|---|---|---|
| GitHub MCP Server (32.4k★) | #2514 | Support team reviewers in PR review requests by resolving team slugs to review subjects instead of dropping them. |
| GitHub MCP Server (32.4k★) | #2612 | Hide write-side UI resources when the MCP server runs read-only, while keeping safe read-only resources registered |
All 1 merged OpenAI Agents SDK PRs
| Project | PR | What I Fixed |
|---|---|---|
| OpenAI Agents SDK (28.9k★) | #3643 | Report the effective Blaxel timeouts instead of the unconfigured defaults |
All 1 merged OpenAI Python SDK PRs
| Project | PR | What I Fixed |
|---|---|---|
| OpenAI Python SDK (31.6k★) | #3401 | Bound vector-store file polling so a stuck upload stops spinning the client forever |
All 6 merged ms-swift PRs
| Project | PR | What I Fixed |
|---|---|---|
| ms-swift (15.3k★) | #9642 | Empty rejected_messages now fail fast in dataset prep instead of crashing DPO mid-training. |
| ms-swift (15.3k★) | #9816 | swift sample crashed engine construction when engine_kwargs carried torch_dtype (the workaround while the flag was ignored); pop it before the splat so the flag always wins |
| ms-swift (15.3k★) | #9789 | Refresh wandb in the CUDA test container setup, unbreaking the repo-wide CI an old baked wandb had poisoned against protobuf 7.x |
| ms-swift (15.3k★) | #9750 | A 0-fps get_avg_fps() on broken video metadata made range(0, len(vr), 0) raise before any frame was read in MiniCPM-V / mPLUG-Owl3 sampling; guard the sample step |
| ms-swift (15.3k★) | #9605 | Different-format images collided in the temp image cache; folded mode and size into the key. |
| ms-swift (15.3k★) | #9612 | _replace_system was flattening non-string prefix elements, stripping the structured content out of templated system prompts. |
All 10 merged AG-UI PRs
| Project | PR | What I Fixed |
|---|---|---|
| AG-UI (15.5k★) | #1890 | Cache ADK session reads within one execution, so a remote session service isn't refetched before every agent run. |
| AG-UI (15.5k★) | #1735 | Avoid stale ADK session writes after human-in-the-loop tool calls |
| AG-UI (15.5k★) | #1829 | Close LangGraph text messages before tool-call chunks so text-to-tool transitions keep both message and tool events |
| AG-UI (15.5k★) | #1889 | Collect output-schema agents when building ADK workflow graphs, so structured-output nodes don't get dropped. |
| AG-UI (15.5k★) | #1848 | Bundle replayed tool results |
| AG-UI (15.5k★) | #1826 | Forward LangGraph runtime context through tool kwargs so graph tools keep the caller's execution context. |
| AG-UI (15.5k★) | #1828 | Detect Strands' private session manager so AG-UI history replay respects an active session instead of replaying prior turns. |
| AG-UI (15.5k★) | #1832 | Preserve AG-UI input metadata when LangGraph converts text and media blocks into LangChain multimodal content |
| AG-UI (15.5k★) | #1769 | Make proto generation cross-platform: replace Unix-only mkdir -p with a Node script and Windows .CMD plugin shim |
| AG-UI (15.5k★) | #1730 | Allow CopilotKit 1.x runtime peer |
All 1 merged Google ADK PRs
| Project | PR | What I Fixed |
|---|---|---|
| Google ADK (21.2k★) | #5698 | Include intermediate responses in final_response_match_v2 judging when the criterion opts in |
All 3 merged Mem0 PRs
| Project | PR | What I Fixed |
|---|---|---|
| Mem0 (63.9k★) | #5416 | Use valid S3 Vectors entity index names so agent memory writes no longer hit AWS index-name validation failures |
| Mem0 (63.9k★) | #5380 | Expose Qdrant's https option so a self-hosted HTTP cluster can use API-key auth without being forced into TLS client mode. |
| Mem0 (63.9k★) | #5383 | Skip OpenClaw runtime setup during CLI metadata registration, so plugin discovery stops double-registering runtime side effects. |
All 1 merged verl PRs
| Project | PR | What I Fixed |
|---|---|---|
| verl (23.1k★) | #6620 | Derived the colocated vLLM weight-sync ZMQ socket rank from the DP and TP ranks, so DP workers stop colliding on one receiver. |
All 2 merged TRL PRs
| Project | PR | What I Fixed |
|---|---|---|
| TRL (19.1k★) | #6054 | An already-transformed dataset in SFT prep now fails fast, instead of silently producing wrong training batches. |
| TRL (19.1k★) | #6063 | Preserve vllm prompt special tokens |
All 27 merged Inspect AI PRs
| Project | PR | What I Fixed |
|---|---|---|
| Inspect AI (2.6k★) | #5262 | Accept percent-encoded file:// policy URIs in the approval layer, so policies written against URL-escaped paths stop being silently unmatched |
| Inspect AI (36.2k★) | #5153 | Shaped metrics collapsed to a synthesized flat NaN on an all-empty run; let the metric own its empty-input shape on both the list and dict paths, with a one-time warning for metrics that raise |
| Inspect AI (2.6k★) | #3902 | Parse OpenRouter reasoning_details in OpenAI-compatible responses instead of surfacing Python repr blocks |
| Inspect AI (2.6k★) | #4167 | Route the realtime streaming sample writer through the same fallback JSON normalization as the regular log path, so sandbox objects that don't serialize cleanly can't crash an eval mid-stream |
| Inspect AI (2.6k★) | #4479 | macOS screen-scale detection imported AppKit unguarded and crashed headful browser runs without pyobjc; fall back to scale factor 1 |
| Inspect AI (2.6k★) | #3924 | Reject unknown GenerateConfig fields up front, so a misspelled option isn't silently ignored. |
| Inspect AI (2.6k★) | #4375 | Flatten **kwargs when capturing registry params so wrapped callables register cleanly |
| Inspect AI (2.6k★) | #4267 | Keep truncate() within length when smaller than the overflow indicator |
| Inspect AI (2.6k★) | #4342 | Don't cache reasoning_summaries probe failures that are transient |
| Inspect AI (2.6k★) | #4218 | Reuse torn checkpoint ids |
| Inspect AI (2.6k★) | #4363 | Return NaN instead of crashing when reducing an empty score list |
| Inspect AI (2.6k★) | #4357 | Raise a clear error when reducing mismatched list/dict scores |
| Inspect AI (2.6k★) | #4246 | Bound the token-count concurrency so large batches stop hammering providers at full parallelism |
| Inspect AI (2.6k★) | #3941 | Route Bedrock Nova top_k through the inference config instead of dropping the sampling control |
| Inspect AI (2.6k★) | #3896 | Fix filestore recovery append mode: preserve carried message/tool-call pools without rehashing old segments |
| Inspect AI (2.6k★) | #3975 | Preserve call-site generation defaults when a role model override resolves, so switching a role's model doesn't drop settings like max tokens or reasoning effort. |
| Inspect AI (2.6k★) | #4069 | Flush streamed score samples periodically, so a long eval persists score rows before it finishes. |
| Inspect AI (2.6k★) | #4504 | Make registry_tag leading parameters positional-only, so a tagged object's own keyword arguments can't collide with the decorator's |
| Inspect AI (2.6k★) | #4303 | Reject sample limits with more than one dash |
| Inspect AI (2.6k★) | #3982 | Preserve wrapped OpenAI reasoning payloads in the agent bridge, so encrypted provider-native reasoning survives transcript conversion. |
| Inspect AI (2.6k★) | #4173 | Normalize buffer task directory URI |
| Inspect AI (2.6k★) | #4300 | Strip trailing separator in FileSystem.is_writeable |
| Inspect AI (2.6k★) | #4282 | Return 0 from accuracy() on empty scores |
| Inspect AI (2.6k★) | #3895 | Honor COLUMNS for TERM=dumb: log output no longer hard-wraps at Rich's default 80 columns |
| Inspect AI (2.6k★) | #4090 | Clarify model-graded history prompts so include_history=True and final-answer placement match the actual scorer behavior |
| Inspect AI (2.6k★) | #4912 | Score a single-choice answer with a stray trailing comma like "A," instead of misgrading it |
| Inspect AI (2.6k★) | #4322 | Keep backticks inside transcript code blocks from breaking html_escape_markdown's fence tracking, so code content no longer leaks raw HTML into the log |
All 1 merged Agno PRs
| Project | PR | What I Fixed |
|---|---|---|
| Agno (41.8k★) | #8131 | Preserve non-sentinel tool argument whitespace while keeping string-to-None/True/False normalization for exact sentinels |
All 3 merged RAGFlow PRs
| Project | PR | What I Fixed |
|---|---|---|
| RAGFlow (89.1k★) | #15691 | Skip empty agent-switch conditions so a blank branch guard can't crash or block valid downstream flows. |
| RAGFlow (89.1k★) | #15601 | Fall back when Docling native parsing returns no chunks, so a document still produces usable content instead of an empty parse. |
| RAGFlow (89.1k★) | #15696 | Keep the strongest PageRank score for repeated n-hop GraphRAG edges, so path order can't overwrite the ranking. |
All 8 merged LiveKit Agents PRs
| Project | PR | What I Fixed |
|---|---|---|
| LiveKit Agents (13.1k★) | #6000 | Skip context replay on resumed realtime sessions so a resumed Gemini session stops re-reading its own history back as fresh turns |
| LiveKit Agents (13.1k★) | #5820 | Recreate Anthropic streaming requests on retry so transient stream creation failures do not re-await the same coroutine |
| LiveKit Agents (13.1k★) | #5994 | Handle OpenAI-compatible realtime status details that come back as strings, so an incomplete response doesn't crash logging. |
| LiveKit Agents (13.1k★) | #5864 | Surface Soniox STT server errors instead of treating failed streams as empty transcripts |
| LiveKit Agents (13.1k★) | #5872 | Map ElevenLabs server-VAD committed transcripts to END_OF_SPEECH, so a realtime turn closes without a manual empty commit. |
| LiveKit Agents (13.1k★) | #5976 | Preserve request timeouts when callers provide custom Google HTTP options, without mutating the caller-owned options object |
| LiveKit Agents (13.1k★) | #6124 | Normalize two-digit years in GetDOBTask |
| LiveKit Agents (13.1k★) | #5887 | Delete trimmed empty audio items |
All 6 merged MCP Toolbox PRs
| Project | PR | What I Fixed |
|---|---|---|
| MCP Toolbox (16.2k★) | #3520 | SSE handler rendered a 500 when the writer was no http.Flusher but fell through, leaving a nil flusher that panicked on the first Flush; return right after the error render |
| MCP Toolbox (16.2k★) | #3531 | Validate the Looker explore_references shape instead of panicking on malformed input |
| MCP Toolbox (16.2k★) | #3512 | Report the offending value in array/map parameter type errors |
| MCP Toolbox (16.2k★) | #3738 | Keep BigQuery's own error classification in execute_sql, so a 403 from an impersonated service account surfaces as a client error instead of a generic 500 |
| MCP Toolbox (16.2k★) | #3516 | Return an error instead of panicking when a parameter type field is not a string |
| MCP Toolbox (16.2k★) | #3416 | Document execute_sql least-privilege setup |
All 2 merged LMCache PRs
| Project | PR | What I Fixed |
|---|---|---|
| LMCache (11.3k★) | #3245 | Retain producer-side CUDA IPC events across MP store/retrieve so daemon IPC handles don't dereference collected events. |
| LMCache (11.3k★) | #3282 | Handle HND GPU KV layouts in MP KV transfer, which previously mishandled that tensor format. |
All 1 merged FastMCP PRs
| Project | PR | What I Fixed |
|---|---|---|
| FastMCP (27.7k★) | #4297 | Keep required discriminator tags when building tool schemas, so union arguments stay valid. |
All 2 merged FlashInfer PRs
| Project | PR | What I Fixed |
|---|---|---|
| FlashInfer (6.2k★) | #2756 | Fix autotuner crash when input tensor is None: proper None-checking for optional inputs (fixes #2749) |
| FlashInfer (6.2k★) | #2772 | Fix compilation error: add missing <optional> header for std::optional usage in CUTLASS headers |
All 3 merged Pydantic AI PRs
| Project | PR | What I Fixed |
|---|---|---|
| Pydantic AI (19.4k★) | #5474 | Accept providerExecuted and title on Vercel AI dynamic-tool parts, so strict validation keeps the provider metadata. |
| Pydantic AI (19.4k★) | #5695 | Forward penalties in completions |
| Pydantic AI (19.4k★) | #5694 | Fix MCPToolset(http_client=...) with FastMCP by keeping follow_redirects out of caller-provided HTTP client factories |
All 11 merged Phoenix PRs
| Project | PR | What I Fixed |
|---|---|---|
| Phoenix (11.1k★) | #13641 | Expire prompt tool diffs on provider change, so PXI prompt editing stops carrying stale tool-change state across providers. |
| Phoenix (11.1k★) | #13210 | Return NotFound-style errors for invalid GraphQL node ids instead of leaking decoder failures to clients |
| Phoenix (11.1k★) | #13245 | Keep the generative model fetch cursor monotonic so lower-id updates cannot make later polling skip newer model changes |
| Phoenix (11.1k★) | #13533 | Clarify empty span-annotation tool input instead of failing opaquely |
| Phoenix (11.1k★) | #13653 | Focus the PXI input when the agent panel opens, so keyboard-first workflows start without an extra click. |
| Phoenix (11.1k★) | #13637 | Wait for in-memory SQLite schema init before serving Phoenix, so a startup race can't hit a missing table. |
| Phoenix (11.1k★) | #13242 | Pass Anthropic computer-use beta headers for raw computer tool definitions in playground streaming and non-streaming calls |
| Phoenix (11.1k★) | #13139 | Surface playground validation errors instead of returning empty subscription payloads |
| Phoenix (11.1k★) | #13636 | Update PXI system prompt guidance to point at the current server-side Jinja templates and capability wiring instead of stale browser-side paths |
| Phoenix (11.1k★) | #13614 | Refresh the prompts table while users stay on the page so newly created or updated prompts appear without a manual reload |
| Phoenix (11.1k★) | #13261 | Refresh span annotation notes after create so the UI shows newly added notes without a manual reload |
All 9 merged Strands Agents SDK PRs
| Project | PR | What I Fixed |
|---|---|---|
| Strands Agents SDK (6.9k★) | #2400 | Support non-streaming OpenAI chat completions |
| Strands Agents SDK (6.9k★) | #2353 | Handle Gemini safety-blocked metadata by defaulting missing usage counts and mapping safety stops to guardrail intervention |
| Strands Agents SDK (6.9k★) | #2354 | Read vLLM delta.reasoning chunks in OpenAI-compatible streams so reasoning output survives provider conversion. |
| Strands Agents SDK (6.9k★) | #2340 | Keep concurrent tool results in request order, so parallel execution doesn't scramble what the model sees. |
| Strands Agents SDK (6.9k★) | #2823 | Avoid UnboundLocalError on empty model stream |
| Strands Agents SDK (6.9k★) | #2396 | Pass structured output request params |
| Strands Agents SDK (6.9k★) | #2306 | Normalize 3gp video format |
| Strands Agents SDK (6.9k★) | #2304 | Map webp images explicitly |
| Strands Agents SDK (6.9k★) | #2656 | Handle empty Bedrock content blocks |
All 2 merged Pipecat PRs
| Project | PR | What I Fixed |
|---|---|---|
| Pipecat (14.6k★) | #4766 | Key cached DTMF audio by sample rate too, so the same button at a different rate stops playing back garbled |
| Pipecat (14.6k★) | #4553 | Serialize interruption frames through protobuf transports so realtime voice-agent interruptions survive transport hops |
All 4 merged LightRAG PRs
| Project | PR | What I Fixed |
|---|---|---|
| LightRAG (39.1k★) | #3031 | Extract Docling async markdown from the response envelope so RAG chunks carry clean document text, not JSON/base64 noise. |
| LightRAG (39.1k★) | #3123 | Sync the API docs colors with the dark theme so endpoint examples stay readable in dark mode. |
| LightRAG (39.1k★) | #3206 | Honor PostgreSQL search_path in table-existence checks so a non-public schema is detected before migration or table creation. |
| LightRAG (39.1k★) | #2796 | Fix None file_path propagating as unknown_source: fill gaps left by #2793 |
All 1 merged Kimi Code PRs
| Project | PR | What I Fixed |
|---|---|---|
| Kimi Code (7.0k★) | #2255 | Customize the TUI footer status line via status_line config, codex / claude code style |
All 1 merged Graphiti PRs
| Project | PR | What I Fixed |
|---|---|---|
| Graphiti (30.2k★) | #1531 | Strip embedded NUL bytes from FalkorDB query params, so one malformed document string can't crash a bulk graph write. |
All 1 merged OpenHarness PRs
| Project | PR | What I Fixed |
|---|---|---|
| OpenHarness (15.5k★) | #185 | TUI tab-completion: fix cursor jump, strip trailing space, accept /quit alias |
All 1 merged LM Evaluation Harness PRs
| Project | PR | What I Fixed |
|---|---|---|
| LM Evaluation Harness (13.7k★) | #3822 | Keep Anthropic stop sequences non-empty so requests are not rejected |
All 1 merged MCP Registry PRs
| Project | PR | What I Fixed |
|---|---|---|
| MCP Registry (7.1k★) | #1310 | Reject mangled publisher metadata instead of accepting malformed entries |
All 4 merged ClawTeam PRs
| Project | PR | What I Fixed |
|---|---|---|
| ClawTeam (5.5k★) | #1 | First PR: 122 tests, CI, team templates, config bugfixes, task duration tracking |
| ClawTeam (5.5k★) | #40 | Pluggable TaskStore: extract task persistence into swappable backend abstraction |
| ClawTeam (5.5k★) | #32 | Gemini CLI support: spawn, permissions, prompt injection for both backends |
| ClawTeam (5.5k★) | #36 | Kimi CLI support: spawn backend, permission handling, 3 new test cases |
All 2 merged MCP Go SDK PRs
| Project | PR | What I Fixed |
|---|---|---|
| MCP Go SDK (5.0k★) | #962 | Reject duplicate initialize requests so an MCP session keeps consistent protocol state after init. |
| MCP Go SDK (5.0k★) | #981 | Add Implementation.description metadata while keeping empty descriptions out of serialized MCP payloads |
All 5 merged Microsoft Recommenders PRs
| Project | PR | What I Fixed |
|---|---|---|
| Microsoft Recommenders (21.8k★) | #2345 | Query GPU memory through PyTorch first with numba as fallback, so GPU discovery doesn't fail when a CUDA context is unavailable. |
| Microsoft Recommenders (21.8k★) | #2349 | Query GPU memory with torch first |
| Microsoft Recommenders (21.8k★) | #2322 | Honor the benchmark recommendation-count arg so eval scripts actually generate the requested top-k. |
| Microsoft Recommenders (21.8k★) | #2351 | Fail fast when TensorFlow GPU is unavailable |
| Microsoft Recommenders (21.8k★) | #2350 | Label MAP@k notebook outputs consistently |
All 1 merged DB-GPT PRs
| Project | PR | What I Fixed |
|---|---|---|
| DB-GPT (19.7k★) | #3092 | Require explicit opt-in before the sandbox executes on the local runtime |
All 1 merged Google Gen AI SDK PRs
| Project | PR | What I Fixed |
|---|---|---|
| Google Gen AI SDK (3.9k★) | #2564 | Keep Live Music API keys out of websocket URLs by relying on request headers instead of duplicating secrets in query strings |
All 1 merged yfinance PRs
| Project | PR | What I Fixed |
|---|---|---|
| yfinance (25.0k★) | #2867 | Add a missing comma that was merging two equity-screener EPS fields into one |
All 1 merged EvalScope PRs
| Project | PR | What I Fixed |
|---|---|---|
| EvalScope (3.2k★) | #1381 | Read SciCode assistant answers from OpenAI-style text content blocks, so the scorer prompt gets the real answer instead of an empty field. |
All 3 merged OpenHands SDK PRs
| Project | PR | What I Fixed |
|---|---|---|
| OpenHands SDK (1.0k★) | #3248 | Serialize LiteLLM modify_params updates with an RLock so concurrent completions do not leak global parameter state |
| OpenHands SDK (1.0k★) | #3247 | Validate git workspaces with git rev-parse --git-dir, so a broken nested repo can't crash /api/git/changes. |
| OpenHands SDK (1.0k★) | #3225 | Write remote completion logs as UTF-8, so non-ASCII output survives local replay and debugging. |
AI Agent 研究员 & 工程师 | 曾任 Moonshot AI (Kimi) | 港大计算机硕士 | 上海全球AI大赛冠军 | 三次获ACM-ICPC银牌 | 曾在百度、脉脉、快手的AI 研发岗实习
- 414+ 个上游 PR 已 merged,其中 vLLM(12 个)、Mooncake(39 个)、Qwen Code(54 个)、Microsoft Agent Framework(31 个)、AstrBot(31 个)、Google ADK(10 个)、Inspect AI(27 个)、deer-flow(17 个)、promptfoo(14 个)、Hugging Face Transformers(1 个)、Kimi Code(1 个)、Vibe-Trading(35 个)、cherry-studio(7 个)、openclaw(6 个)、dify(6 个)、PyTorch(11 个)。
- 代表性公开项目(star 100+):CoreCoder、FindJobs-Agent、RepoWiki、ContractGuard。
| 项目 | Stars | 简介 |
|---|---|---|
| CoreCoder | 1.7k+ | Claude Code 51万行源码蒸馏成 1,161 行 Python 核心,关键架构模式全部可跑,支持任意大模型,附 7 篇架构导读。 |
| FindJobs-Agent | 200+ | LLM 求职工具箱:技能差距分析、模拟面试、简历优化、职位结构化。 |
| RepoWiki | 200+ | 开源版 DeepWiki:CLI/浏览器生成代码库 wiki,PageRank 文件排序、Mermaid 图、阅读导览。 |
| ContractGuard | 100+ | 签合同前让 AI agent 先排雷:不公平条款、缺失保护、人话解释。 |
| GitSense | 50+ | AI 贡献雷达:找匹配 issue,看 PR 合并信号,再决定要不要花这个周末。 |
| CodeABC | new | 给非程序员看的 AI 代码阅读器:大白话文件导读、悬停注解、术语词典、问答、自然语言改代码。 |
全部项目(22 个)
| 方向 | 项目 | Stars | 简介 |
|---|---|---|---|
| Coding agents / 评测 | CoreCoder | 1.7k+ | Claude Code 51万行源码 → 1,161 行 Python 核心重写,支持任意大模型,附 7 篇架构导读。 |
| 应用型 Agent | FindJobs-Agent | 200+ | LLM 求职工具箱:技能差距分析、模拟面试、简历优化和岗位结构化。 |
| 代码库地图 | RepoWiki | 200+ | 开源 DeepWiki 替代品:CLI 或浏览器生成仓库 wiki,PageRank 文件排名、Mermaid 架构图、阅读指南。 |
| 应用型 Agent | ContractGuard | 100+ | AI 合同审查 Agent,签字前帮你找红旗条款、不公平约定和缺失保护。 |
| 代码库地图 | GitSense | 50+ | AI 开源贡献发现器 + 仓库雷达:找匹配 issue,也评估 PR 合入友好度。 |
| 代码理解 | CodeABC | new | 面向非程序员的 AI 代码阅读器:大白话文件导读、悬浮批注、术语词典、问答、自然语言改写。 |
| Coding agents / 评测 | AgentProbe | new | AI Agent 回归测试 pytest 插件:快照基线、语义比较、Mock LLM。 |
| Coding agents / 评测 | AnyCoder | new | 终端 AI 编程 Agent,通过 litellm 支持 100+ 大模型,危险命令拦截、并行执行、会话持久化。 |
| Coding agents / 评测 | CodeJoust | new | AI 编程 Agent 擂台:独立 git worktree 运行,按测试通过率、成本、diff 大小、耗时打分。 |
| Coding agents / 评测 | LiteBench | new | LLM / Agent benchmark 轻量 CLI + Web 面板:agent 模式、自定义 YAML、LLM judge、100+ litellm 模型。 |
| Agent 工具 | RuleForge | new | 从代码库分析自动生成 AI 助手规则文件(CLAUDE.md、.cursorrules、copilot-instructions)。 |
| LLM 工具 | PromptDiff | new | LLM prompt 语义 diff:像 git diff 一样比较 prompt 版本。 |
| LLM 工具 | TokenTracker | new | 即插即用的 LLM 成本追踪:改一行 import 就能看清钱花在哪。支持 OpenAI、OpenRouter、Azure、Ollama。 |
| LLM 工具 | BatchLLM | new | LLM API 批处理:CSV/JSONL 进、结果出,支持并发、重试、断点续跑和成本追踪。 |
| 应用型 Agent | IslandEscape | new | 2D 像素风生存交易游戏:四个 LLM agent 扮演岛民,各有性格、用自然语言谈判交易、结盟博弈;和他们赛跑攒到 100 金币逃离孤岛。 |
| Agent / MCP / CI 工具 | agentcikit | new | 一个 CLI 覆盖 AI agent、MCP 和开源贡献工作:把 CI 失败转成复现计划、给 coding agent 打包任务上下文、给 MCP server 做门禁和回放、测试工具调用安全。内含 ci-repro、patch-context、mcp-gate、mcp-replay、tool-fence。 |
| Coding agents / 评测 | IssueBenchKit | new | 把真实 GitHub issue 和本地 bug 打包成可复现、可评分、可分享的 coding-agent benchmark 任务。 |
| Agent 可观测性 | FlightBox | new | AI Agent 黑盒飞行记录器:录制、脱敏、回放并 diff 本地 agent session。 |
| 量化 / 强化学习 | DRL-MultiFactorTrading | new | 深度强化学习交易:Double DQN + Transformer attention 叠加 Fama-French 式多因子模型,含自适应风控和波动率目标。 |
| 研究 | adversarial-refinement-imputation | new | MiLeTS 2026 论文配套代码:把 R3GAN 适配到多元时间序列填补,一个范围清晰的负结果。 |
| 研究 | TrajBias | new | 研究 LLM-as-judge 评估 agent 轨迹时的结构性偏差。 |
上游 59 个项目共 392 个 PR 已 merged,按展示分排序;点项目名进仓库,点 PR 号进改动。
| 项目 | 已合并 | 这些 PR 大概修了什么 | 代表性修复 |
|---|---|---|---|
| Mooncake (6.5k★ · maintainer) | 39 | KV cache 存储与传输引擎正确性:挂起、goroutine 泄漏、竞态、整数溢出 | #3929 批量读里出现重复 key 时,第一次出现的位置原本拿着从未写入的缓冲区返回成功;现在每个唯一 key 只传输一次,验证过的字节经设备感知拷贝扇出到每个重复目标 #1629 GB200 MNNVL EP hang: cudaMalloc → cuMemCreate(FABRIC) + cuMemMap 跨节点 NVLink 通信#3711 Client::Put 自愈悬挂 LOCAL_DISK 副本:目标 key 只剩客户端本地磁盘副本时自动逐出并干净重试,BatchPut 对已存在子集一次探测加一次批量逐出 |
| vLLM (91.1k★) | 12 | 在线 serving 正确性:跨轮 API 状态泄漏、CUDA graph 崩溃、工具调用解析 | #37727 Responses API 的 instructions 顺着 previous_response_id 链泄漏到了后续轮次。#43243 Qwen3 XML tool-call 参数先按 JSON 解析, null/false 这类 literal 在流式解析里不再被当成 Python 字面量拒掉。#37884 RoBERTa 的 position_ids 原地累积串进了 CUDA graph 的 padding,BGE-M3 跑到约 4000 请求就崩。 |
| Vibe-Trading (32.7k★ · maintainer) | 35 | 组合分析与监视器判定流水线;实盘 fail-closed 门禁;回测账务正确性(空头、公司行动、T+1) | #1356 现金股息的 journal 行一直没被解析,派息进 shadow 账户后实盘 PnL 读成平的;现在正确入账 #1233 flatten latch 持久化绑定 halt episode:重启不再整轮重放扫仓把账户翻空 #1317 给每个下发的行情帧打上复权口径戳,篮子混口径时显式告警,堵上 #1301 暴露的静默混口径回测缺口 |
| Qwen Code (27.7k★) | 54 | agent 运行时加固:工具调用与结果相邻、取消语义、权限、TUI 状态 | #4622 让 assistant 的 tool call 和它的 result 挨着,修复过的历史不再被 OpenAI 兼容 provider 拒。 #4716 让 /bug、/docs、/insight 的浏览器打开走安全 launcher,headless 环境不再因为直接 open 崩。#7535 release-notes 生成的模型调用加退避重试和熔断,降级产出可见化,不再静默空窗 |
| Microsoft Agent Framework (13.4k★) | 31 | agent 循环边界:消息 role 原地改泄漏、每轮钩子、阻塞工具 | #7289 turn 级 after_run provider 延后到 agent 循环边界触发,每轮一次而不是每次迭代一次 #5808 handoff 原地改了 message 的 role,重试复用时把改动泄漏出去了,改成复用消毒过的副本。 #5773 把同步的 Python 工具挪出事件循环跑,阻塞型调用不再冻住并发的 agent 任务。 |
| deer-flow (81.5k★) | 17 | 并发与 checkpoint 正确性:建线程竞态、会话池生命周期、fork 恢复、渠道协议上限 | #3800 让 create_thread 在并发 insert 输掉竞争时保持幂等,避免一个聊天产生重复 thread。#4429 fork 恢复的检查点把 sandbox channel 以 langgraph Overwrite 包装态送达,sync/async 初始化路径和 sibling readers 统一走一个解包 helper#5148 WeCom 出站内容封顶在 20480 字节协议上限:主动推送按序分块并给每个聊天配 refcount 发送锁,长推送不再被协议拒绝、并发发送不再交错 |
| AstrBot (40.1k★) | 30 | 发版资源新鲜度、多模态回复重复、调度器吞异常 | #7537 修复 Telegram media group 异常被 APScheduler 静默吞掉:try/except + EVENT_JOB_ERROR listener |
| PyTorch (102.8k★) | 11 | 算子与编译器正确性:错设备派发、梯度静默损坏、未初始化内存 | #188027 在 Laguerre / Legendre 多项式的辅助函数里初始化 r,避免边界路径返回未初始化内存(PR 显示 Closed,经 pytorchmergebot 合入)#186779 不支持的 batch norm 三阶导改为显式报错,不再静默返回错误梯度(PR 显示 Closed,经 pytorchmergebot 合入) #188229 avg_pool3d backward 在超过 INT_MAX 元素的输入上静默算错梯度:atomic scatter kernel 用 32 位 int 算偏移和边界,改成 64 位索引(PR 显示 Closed,经 pytorchmergebot 合入) |
| OpenClaw (389.0k★) | 6 | 会话存储失败即关的清扫、鉴权失败可见性、代理对安全文本 | #119127 通用 mtime 媒体清扫让出 SQLite managed 的 outgoing 子树,并在会话库不可读时 fail-closed,全域 GC 永不误删用户原件(owner P0 评审后与项目作者共建) |
| opencode (204.9k★) | 1 | MCP OAuth 回调绑定 IPv4 loopback | |
| dify (153.3k★) | 6 | API 健壮性:无超时调用加边界、前置校验、原子窗口 | #39953 给没有超时的 TiDB Cloud API 调用补上有界超时,集群端点挂起不再无限拖住 vdb 操作 |
| Transformers (164.3k★) | 1 | AutoProcessor 丢失 hub 参数透传 | |
| MCP Servers (90.1k★) | 1 | 依赖声明卫生:直接 import zod 的服务补上运行时依赖声明 | |
| OpenHands (84.9k★) | 1 | 设置持久化:保留自定义 LLM base URL | #14776 编辑 basic model 设置时保留自定义的 LLM base URL,存下来的 profile 不再静默回退到 provider 默认 endpoint。 |
| Firecrawl (171.6k★) | 3 | 自托管抓取链路:interact 报错、auth 块保留、批量 dict 响应 | |
| MarkItDown (178.1k★) | 2 | 文件格式转换正确性:DOCX 下划线保留、老旧 XLSX 兼容 | |
| SGLang (32.3k★) | 2 | 后端崩溃修复:混合注意力撞投机解码、diffusers 序列化 | |
| DeepSpeed (42.9k★) | 1 | 监控接线:特征值记录从未落日志 | |
| DSPy (37.8k★) | 1 | 流式错误传播:同步迭代器失败不再静默消失 | |
| milvus (45.8k★) | 1 | 调度器关停安全:在途广播任务不再把正在关闭的调度器打崩 | |
| Triton (19.9k★) | 4 | 编译器语义:fp8 算术提升、top_k 边界、AxisInfo 正确性 | |
| Cline (66.7k★) | 1 | open-tabs 宿主 RPC 挂掉时文件搜索仍可用 | |
| AgentScope (29.4k★) | 10 | 团队运行权限继承、Windows 子进程窗口、skill 来源 | #1815 team run 里继承 leader 的权限规则,delegated agent 守着和 leader 一样的 workspace、文件访问约束。 #1717 Windows 上启动 Bash tool 子进程时使用 CREATE_NO_WINDOW,避免工具执行弹出控制台窗口 |
| LiteLLM (57.1k★) | 1 | 代理日志:INFO 输出丢失 verbose logger 来源 | |
| promptfoo (24.5k★) | 14 | 评测打分正确性:百分位校验、无 token GLEU、provider 边界 | #10089 trace-span-duration 越界百分位直接拒绝,不再静默算出无意义结果 #9850 空 token 输入的 GLEU 评分返回 0 分,不再报错 #9867 读取 Azure logprobs 时空 choices 数组不再崩溃 |
| goose (53.3k★) | 3 | 遥测导出可靠性、skill 路径展示、桌面快捷键 | |
| cherry-studio (51.0k★) | 7 | 渲染正确性:markdown 样式被 tree-shake、代理对安全截断、引用行 | #16352 在截断边界保住 surrogate pair,多字节字符不会被切成半个非法字符。 |
| GitHub MCP Server (32.4k★) | 2 | team reviewer 解析与只读面卫生 | |
| OpenAI Python SDK (31.6k★) | 1 | 有界的 vector-store 轮询与客户端生命周期边界 | #3401 给 vector-store 文件轮询加上界,卡住的上传不再让客户端永远空转 |
| OpenAI Agents SDK (28.9k★) | 1 | 上报生效中的 Blaxel 超时而非默认值 | |
| ms-swift (15.3k★) | 6 | 训练准备与采样健壮性:DPO 崩溃、0 fps 视频、CI 修复 | #9642 DPO 数据准备阶段遇到空 rejected_messages 直接快速失败,不用等训练跑到一半才崩。#9816 --torch_dtype 失效期间用户只能靠 engine_kwargs 传 dtype,flag 修好后两边撞参数直接 TypeError;splat 前 pop 掉并让 flag 恒赢#9750 视频元数据损坏时 get_avg_fps() 返回 0,range(0, len(vr), 0) 在读到第一帧前就抛 ValueError;给 MiniCPM-V / mPLUG-Owl3 的采样步长加守卫 |
| AG-UI (15.5k★) | 10 | ADK 会话缓存与文本到工具调用的过渡顺序 | #1890 在一次 ADK execution 内缓存 session 读取,远端 session service 不用在每次 agent 运行前重复拉一遍。 |
| Google ADK (21.2k★) | 1 | 评判标准纳入中间响应 | |
| Mem0 (63.9k★) | 3 | 记忆存储后端:S3 Vectors 索引命名、Qdrant https 选项 | |
| verl (23.1k★) | 1 | colocated 权重同步的 DP/TP rank 推导 | |
| TRL (19.1k★) | 2 | 数据准备快速失败与 vLLM 特殊 token 保留 | |
| Inspect AI (2.6k★) | 27 | 评测日志与 provider 解析:reasoning 块、流式写盘、无头环境崩溃 | #3902 修复 OpenAI-compatible 响应里的 OpenRouter reasoning_details:解析为可读 reasoning 文本,而不是暴露 Python repr#4167 让实时流式 sample 写出走与常规日志路径相同的 fallback JSON 归一化,无法序列化的 sandbox 对象不再让评测中途崩掉。 #4479 macOS 分支无守卫 import AppKit 并解引用 NSScreen,没装 pyobjc 时 headful 浏览器工具直接崩;回落 scale factor 1 |
| Agno (41.8k★) | 1 | 工具参数空白保留与哨兵值归一化 | |
| RAGFlow (89.1k★) | 3 | agent 流守卫、Docling 回退、GraphRAG 边排序 | #15691 跳过空的 agent switch 条件,空分支判断不会让有效的后续 agent 流程崩掉或卡住。 |
| LiveKit Agents (13.1k★) | 8 | 实时语音链路:流式重试重建、provider 状态解析、STT 错误透出 | #6000 恢复的 Gemini realtime 会话跳过上下文重放,不再把自己的历史当新对话再读一遍 |
| MCP Toolbox (16.2k★) | 6 | SSE writer panic、Looker 入参校验、参数错误报告 | #3531 校验 Looker explore_references 的结构,非法输入不再 panic #3520 SSE handler 遇到不支持 http.Flusher 的 writer 时渲染 500 却没 return,nil flusher 在第一次 Flush 直接 panic;现在渲染完就返回 |
| LMCache (11.3k★) | 2 | 跨进程 KV 传输:CUDA IPC 事件生命周期、HND 布局处理 | |
| FastMCP (27.7k★) | 1 | schema 构建保留必需的 union 判别标签 | |
| FlashInfer (6.2k★) | 2 | autotuner 空输入崩溃与 CUTLASS 头文件编译修复 | #2756 修复 autotuner 在输入 tensor 为 None 时崩溃(fixes #2749) |
| Pydantic AI (19.4k★) | 3 | Vercel AI 动态工具部件接纳、completions penalty 透传 | |
| Phoenix (11.1k★) | 11 | 可观测 UI 状态:prompt diff 过期、游标单调性、启动竞态 | #13641 provider 变化时让 prompt tool diff 过期,PXI 编辑不再把旧的工具差异状态带到别的 provider。 #13210 修复非法 GraphQL node id 的错误处理:返回 NotFound 风格错误,而不是把 decoder failure 泄漏给客户端 #13245 修复 generative model fetch 游标回退:低 id 更新不会让后续轮询跳过更新的模型变更 |
| Strands Agents SDK (6.9k★) | 9 | OpenAI 非流式支持、Gemini 安全元数据、vLLM reasoning 块 | |
| Pipecat (14.6k★) | 2 | 实时语音:DTMF 缓存键、打断帧序列化 | |
| LightRAG (39.1k★) | 4 | Docling 响应解包、文档站深色主题、PostgreSQL search_path 探测 | #3031 从 Docling 异步结果 envelope 里抽出 Markdown 正文,RAG chunk 拿到干净文本,不混 JSON/base64 噪声。 |
| Kimi Code (7.0k★) | 1 | TUI 底部状态栏自定义 | #2255 通过 status_line 配置自定义 TUI 底部状态栏(仿 codex / claude code 的 footer 形态) |
| Graphiti (30.2k★) | 1 | FalkorDB 批量写入遇 NUL 字节崩溃 | |
| OpenHarness (15.5k★) | 1 | TUI tab 补全修复 | |
| LM Evaluation Harness (13.7k★) | 1 | Anthropic stop 序列校验 | |
| MCP Registry (7.1k★) | 1 | 发布者元数据校验 | #1310 拒绝损坏的 publisher 元数据,而不是接收畸形条目 |
| ClawTeam (5.5k★) | 4 | 奠基 PR:测试/CI/模板、可插拔 TaskStore、Gemini CLI 支持 | #1 首个 PR:122 个测试、CI、团队模板、config 修复、任务耗时追踪 #40 可插拔 TaskStore:将任务持久化抽取为可替换的后端抽象层 |
| MCP Go SDK (5.0k★) | 2 | MCP 协议状态:拒绝重复 initialize、description 元数据 | |
| Microsoft Recommenders (21.8k★) | 5 | 无 CUDA 上下文下的 GPU 探测、基准脚本 top-k 生效 | |
| DB-GPT (19.7k★) | 1 | 沙箱执行改为显式开启 | |
| Google Gen AI SDK (3.9k★) | 1 | 密钥卫生:websocket URL 不再带 secret | #2564 让 Live Music API key 不再进入 websocket URL query,改由请求 header 承载,避免密钥出现在日志和代理路径里 |
| yfinance (25.0k★) | 1 | 股票筛选器 EPS 字段粘连 | |
| EvalScope (3.2k★) | 1 | 从内容块提取 SciCode 答案 | |
| OpenHands SDK (1.0k★) | 3 | 并发安全的 LiteLLM 参数、git 工作区校验、UTF-8 日志 | #3248 用 RLock 串行化 LiteLLM modify_params 的保存、设置和恢复,避免并发 completion 泄漏全局参数状态#3247 用 git rev-parse --git-dir 校验 git workspace,坏掉的嵌套 repo 打不崩 /api/git/changes。 |
全部 39 个已合并的 Mooncake PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Mooncake (6.5k★ · maintainer) | #3929 | 批量读里出现重复 key 时,第一次出现的位置原本拿着从未写入的缓冲区返回成功;现在每个唯一 key 只传输一次,验证过的字节经设备感知拷贝扇出到每个重复目标 |
| Mooncake (6.5k★ · maintainer) | #2404 | 所选内存分配器支持不可用时让 Python 初始化直接报错,不再带着坏分配器起到后面才崩 |
| Mooncake (6.5k★ · maintainer) | #1629 | GB200 MNNVL EP hang:cudaMalloc → cuMemCreate(FABRIC) + cuMemMap 跨节点 NVLink 通信 |
| Mooncake (6.5k★ · maintainer) | #3683 | TENT worker 不再被自己的提交队列饿死:requeue_overflow 里泊住的重试条目先于同优先级新生产条目排干,回归测试按生产顺序验证选取顺序 |
| Mooncake (6.5k★ · maintainer) | #3711 | Client::Put 自愈悬挂 LOCAL_DISK 副本:目标 key 只剩客户端本地磁盘副本时自动逐出并干净重试;BatchPut 对已存在子集一次探测加一次批量逐出后重试,逐条与批量孪生测试齐 |
| Mooncake (6.5k★ · maintainer) | #3062 | HA 模式下 WaitForViewChange 每次迭代都新建一个 etcd watch,改成每轮等待只建一次,堵住稳态 watch goroutine 泄漏 |
| Mooncake (6.5k★ · maintainer) | #2311 | rpc_meta 内容没变时重复发布保持幂等,真正改了值才拒绝。 |
| Mooncake (6.5k★ · maintainer) | #1644 | MNNVL warmup hang:跳过 fabric 连接节点的冗余握手 |
| Mooncake (6.5k★ · maintainer) | #3054 | 恢复 wheel 多 buffer payload 的 zero-copy put,刚合入的重构把它退化成了拷贝,双提交复现后修复 |
| Mooncake (6.5k★ · maintainer) | #1719 | 新增 ObjectDataType 元数据分类:KV cache、weights、tensors 等对象类型可在 metadata、snapshot 和 Python binding 中稳定传递 |
| Mooncake (6.5k★ · maintainer) | #1728 | Hard pin 驱逐保护:模型权重永不被驱逐,const 字段 + BatchEvict 跳过 + 向后兼容序列化 |
| Mooncake (6.5k★ · maintainer) | #2570 | 修复 BatchOffload 处理 >4 GiB 对象时的整数溢出:用 uint64_t 累加各 slice 大小,并拒绝超过 uint32_t 记录 value_len 的对象,而不是静默截断 |
| Mooncake (6.5k★ · maintainer) | #3146 | 修设备选择失败路径上 UB/Barex slice 的双重释放:已入队的 slice 被塞回缓存,而所有权还在 TransferTask 手里(#3125 RDMA 修复的 sibling) |
| Mooncake (6.5k★ · maintainer) | #3278 | 优雅关闭 watcher 线程屏蔽 SIGTERM/SIGINT:进程级信号落在 watcher 上会挂起唯一的管道读者,关闭流程永久挂死 |
| Mooncake (6.5k★ · maintainer) | #2965 | registerLocalMemory 在后续 transport 注册失败时回滚前面已注册的 transport,避免泄漏 |
| Mooncake (6.5k★ · maintainer) | #2628 | 修复 CopyEnd/MoveEnd 在 source 非法时的 source 引用计数泄漏 |
| Mooncake (6.5k★ · maintainer) | #1825 | 修复 P2PClientService::Put 静默吞掉写入错误:传播实际错误码给调用方 |
| Mooncake (6.5k★ · maintainer) | #2500 | 单 key remove 重试成功后,不再把整个 bundle cleanup 判为失败 |
| Mooncake (6.5k★ · maintainer) | #1831 | TENT NVLink IPC 修复:sub-allocated GPU tensor 使用 base pointer,将 #1622 修复移植到 TENT 路径 |
| Mooncake (6.5k★ · maintainer) | #2610 | 重构时漏掉了 RdmaTransport::submitTransfer 里每个 task 的 request 指针赋值,下游全拿到 null,status、重试、计费回读全废。追回来补上了这个关联。 |
| Mooncake (6.5k★ · maintainer) | #2955 | 无 GPU 主机跳过 CUDA 指针探测,TransferEngine 初始化不再因此失败(探测结果本就只用于打日志) |
| Mooncake (6.5k★ · maintainer) | #2942 | HTTP 元数据服务器 start() 丢弃了 async_start() 的 future,bind 失败(如端口被占)在 C++ 侧完全不可见、poll() 永远报健康;改为检查 future 错误码 |
| Mooncake (6.5k★ · maintainer) | #2506 | from_file 里把 enable_ssd_offload 的字符串布尔值正确解析 |
| Mooncake (6.5k★ · maintainer) | #2927 | snapshot 恢复丢了 ssd_total_capacity_bytes,SSD 总容量在 metrics 里变 0 B,要等 client 重跑 FileStorage::Init 才恢复;把该字段随 segment 一起序列化 |
| Mooncake (6.5k★ · maintainer) | #2629 | MC_MS_AUTO_DISC 值非法时不再中断 client 初始化 |
| Mooncake (6.5k★ · maintainer) | #2460 | 依赖安装脚本支持 EulerOS |
| Mooncake (6.5k★ · maintainer) | #2403 | 清掉失败的 io_uring sub-batch 初始化状态,别让半成品 transfer batch 把坏状态带进后续 setup。 |
| Mooncake (6.5k★ · maintainer) | #2651 | Init 遇到非数字命名的 bucket 文件时跳过,而不是直接 abort |
| Mooncake (6.5k★ · maintainer) | #3064 | 删掉 NVMe-oF 文档示例里没有任何实际作用的 enable_mooncake_nof_pool 配置项,别让用户照抄一个假开关 |
| Mooncake (6.5k★ · maintainer) | #2617 | 在 EFA/鲲鹏 submitTransfer 里补回 task.request 关联(与 RDMA 路径同类漏赋值) |
| Mooncake (6.5k★ · maintainer) | #2602 | handle_exist 里 is_exist 报错时返回 HTTP 500,而不是当成“不存在” |
| Mooncake (6.5k★ · maintainer) | #2402 | Python buddy allocator backing buffer 分配失败时直接拒绝,避免把 null raw buffer 放进 managed slab |
| Mooncake (6.5k★ · maintainer) | #2641 | 给 MC_TCP_SLICE_SIZE 解析裹上 std::stoull 异常守卫,非法值不再抛未捕获异常 |
| Mooncake (6.5k★ · maintainer) | #2606 | 为节点内 NVLink 构建补上 cudaStreamQuery 映射 |
| Mooncake (6.5k★ · maintainer) | #2619 | 修复 EFA smaps page-size 解析里 signed char 传 isxdigit 的 UB(#2504 的后续) |
| Mooncake (6.5k★ · maintainer) | #2962 | 单个 unregisterLocalMemory 改 best-effort,teardown 不再必须精确追踪注册状态 |
| Mooncake (6.5k★ · maintainer) | #2627 | 给 UrmaContext 析构里的 endpoint_store_ 加空指针守卫,避免析构时崩溃 |
| Mooncake (6.5k★ · maintainer) | #3266 | PutStartExpiringTest 不再断言完马上检查,改成轮询等异步驱逐落位,消掉 CI 间歇性红 |
| Mooncake (6.5k★ · maintainer) | #1626 | 修复非内存副本的错误日志刷屏 |
全部 12 个已合并的 vLLM PR
| 项目 | PR | 修了啥 |
|---|---|---|
| vLLM (91.1k★) | #37727 | Responses API 的 instructions 顺着 previous_response_id 链泄漏到了后续轮次。 |
| vLLM (91.1k★) | #37884 | RoBERTa 的 position_ids 原地累积串进了 CUDA graph 的 padding,BGE-M3 跑到约 4000 请求就崩。 |
| vLLM (91.1k★) | #43243 | Qwen3 XML tool-call 参数先按 JSON 解析,null/false 这类 literal 在流式解析里不再被当成 Python 字面量拒掉。 |
| vLLM (91.1k★) | #46175 | Completion API 接受 logprobs=-1:按 OpenAI 语义发 -1 取全量对数概率的客户端不再吃 400。 |
| vLLM (91.1k★) | #38732 | 修复 bench_serve 流式响应拆分多字节 UTF-8 字符导致 decode 崩溃 |
| vLLM (91.1k★) | #37301 | 修复 base64 JPEG 视频帧返回空 metadata:补充帧数、fps、时长 |
| vLLM (91.1k★) | #37699 | 修复 weight offloading 忽略 VLLM_WEIGHT_OFFLOADING_DISABLE_PIN_MEMORY 环境变量 |
| vLLM (91.1k★) | #40789 | 让 V1 ubatch wrapper 认得 tuple model outputs,解开 DBO 和投机解码在 tuple 返回值上的崩溃。 |
| vLLM (91.1k★) | #42679 | 保护 flash-attn rotary 导入路径,让 FA4 环境缺少 flash_attn.ops.triton.rotary 时稳定回退而不是构造 rotary 层时崩溃 |
| vLLM (91.1k★) | #44821 | 给 DeepSeek V4 MTP projection layers 补 prefix,让 compressed-tensors 加载 draft model 时能匹配 artifact 侧 target / ignore 规则 |
| vLLM (91.1k★) | #49996 | 结构化输出:string schema 混用 pattern/format 与长度界定时在校验期直接回 400,此前 xgrammar 会把长度界定静默丢出语法 |
| vLLM (91.1k★) | #45807 | Anthropic 兼容流式在 stop_sequence 真正命中时回填 stop_reason,客户端不再靠猜 |
全部 35 个已合并的 Vibe-Trading PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Vibe-Trading (32.7k★ · maintainer) | #1396 | 把 Tushare 拼写的国内期货后缀(SHF/DCE/CFX/CZC/GFE)正确归类为期货而不是 A 股,这些合约不再被套用 T+1、禁空、无保证金的股票规则结算 |
| Vibe-Trading (32.7k★ · maintainer) | #1388 | 收口四个连接器缺口:MT5 超量订单被静默钳到符号上限、eToro 无价位限单发成永不触发的 MIT、futu K 线复权口径不声明、裸 BTCUSDT 类连体对被错套 A 股 T+1 规则 |
| Vibe-Trading (32.7k★ · maintainer) | #1356 | 现金股息的 journal 行一直没被解析,派息进 shadow 账户后实盘 PnL 读成平的;现在正确入账 |
| Vibe-Trading (32.7k★ · maintainer) | #1349 | microcompact 清掉工具结果后对应工具调用被永久卡住,改为结果缺失时解除阻塞并如实标记 |
| Vibe-Trading (32.7k★ · maintainer) | #1311 | FIFO 配对里显式建模空头批次,拆股/分红时把多空腿重述到同一口径,空头侧 PnL 不再重复计借入敞口 |
| Vibe-Trading (32.7k★ · maintainer) | #1317 | 给每个下发的行情帧打上复权口径戳,篮子混口径时显式告警,堵上 #1301 暴露的静默混口径回测缺口 |
| Vibe-Trading (32.7k★ · maintainer) | #1332 | 停牌持仓在有界 ffill 失效后改按最后成交价估值而不是成本价:权益曲线的幻影回撤和 rebalance 定价失真消除 |
| Vibe-Trading (32.7k★ · maintainer) | #1342 | 识别 stooq 的反爬 challenge 页并把源标记为不可用、给操作指引,不再把 HTML 当无数据静默滑过整条 fallback 链 |
| Vibe-Trading (32.7k★ · maintainer) | #1309 | A 股/印度 T+1 和涨跌停带改由 composite state 强制校验,不再靠无状态子引擎的规则书静默放行当日卖出与锁板成交 |
| Vibe-Trading (32.7k★ · maintainer) | #1310 | shadow 账户归因限定在资金池币种且各桶互斥,跨币种 delta 不再落错桶、重复计 |
| Vibe-Trading (32.7k★ · maintainer) | #1306 | 空头期权腿占用保证金、开仓过购买力门禁,期权空头在回测里不再像白拿权利金 |
| Vibe-Trading (32.7k★ · maintainer) | #1307 | 永续资金费在 8 小时以上周期按 bar 跨度结算,不再日线一天一次,非 strict 模式恢复应有的资金成本 |
| Vibe-Trading (32.7k★ · maintainer) | #1312 | 限价买单按报价与限价中更差的一档定量,限价高于盘口时不再放大成交规模 |
| Vibe-Trading (32.7k★ · maintainer) | #1314 | shadow 结果缓存按窗口和 journal 哈希做键,换窗口重渲染不再复用上一轮的结果 |
| Vibe-Trading (32.7k★ · maintainer) | #1313 | fastmcp 钉在 4.0.0 以下,先解掉它 MCPError 构造器变更搞红的全仓 CI,真正的适配后续再做 |
| Vibe-Trading (32.7k★ · maintainer) | #1233 | flatten latch 持久化并绑定 halt episode:重启后平仓单仍在途时不再整轮重放扫仓,账户不会被多翻空 |
| Vibe-Trading (32.7k★ · maintainer) | #1253 | 闭市时段跳过 market 触发器的 tick:周末的监视循环不再把委托排进周一开盘 |
| Vibe-Trading (32.7k★ · maintainer) | #1232 | halt 清扫对券商错误信封 fail closed:{"status": "error"} 响应记为失败,不再被当成合规的撤单/平仓成功 |
| Vibe-Trading (32.7k★ · maintainer) | #1287 | 两条 Yahoo loader 路径统一提供拆股/分红复权价,公司行动在回测里不再被记成假崩盘、除息缺口不再被记成假亏损 |
| Vibe-Trading (32.7k★ · maintainer) | #1288 | 首个行情源没给到的 symbol 沿 fallback 链逐个重试,一个 404 不再把整批 symbol 拖进 unresolved |
| Vibe-Trading (32.7k★ · maintainer) | #1156 | 补齐 Market Watch 的定时监视器 verdict 展示:一次列表查询直接显示最新标的状态、相对上轮变化和记录时间,并为尚无结果或记录损坏提供明确状态 |
| Vibe-Trading (32.7k★ · maintainer) | #1152 | 定时监视器的每轮 verdict 以结构化记录持久化在 job 上并随列表接口内联下发,Market Watch 一次查询就能渲染最新判定和环比 |
| Vibe-Trading (32.7k★ · maintainer) | #777 | Portfolio Studio 首刀「组合风险透视」:纯计算核心(集中度/波动/回撤/VaR/分散度/相关性)加走 loader fallback 链取数的 agent 工具 |
| Vibe-Trading (32.7k★ · maintainer) | #1212 | 券商持仓读取返回 API 错误时改为 fail closed:futu/okx connector 显式上抛,不再把读不到的持仓簿当成空仓,实盘委托不再盲过 mandate gate |
| Vibe-Trading (32.7k★ · maintainer) | #1209 | Alpaca 持仓数量按方向带上符号再进 mandate gate,空头持仓按正确方向校验,不再以正数蒙混 |
| Vibe-Trading (32.7k★ · maintainer) | #818 | Portfolio Studio 第二步:可组合的组合权重约束,能挂到任意优化器上,waterfill 再分配只喂给还没到上限的仓位 |
| Vibe-Trading (32.7k★ · maintainer) | #796 | 把 strict bench 门禁接进 CLI:alpha bench --strict 在策略不达标时直接判失败 |
| Vibe-Trading (32.7k★ · maintainer) | #966 | 在 run 详情页直接展示 Portfolio Studio 产物(risk x-ray、调仓 notes),跑完即看不用翻文件 |
| Vibe-Trading (32.7k★ · maintainer) | #795 | Portfolio Studio 的 rebalance notes:回测器每次调仓产出带指标的 notes 工件,agent 驱动的调仓可审计回看 |
| Vibe-Trading (32.7k★ · maintainer) | #900 | 每次回测都会产出 risk x-ray 工件(JSON + Markdown),基于策略的平均持仓计算集中度、波动、回撤和尾部风险,并汇入 run 指标 |
| Vibe-Trading (32.7k★ · maintainer) | #970 | yfinance 数据源的加密货币回测改走 CryptoEngine,BTC/ETH 这类标的不再报错 |
| Vibe-Trading (32.7k★ · maintainer) | #984 | 层级路由写入的记忆条目补上 .md 扩展名,修复写入即隐形(裸 slug 文件对所有发现路径不可见) |
| Vibe-Trading (32.7k★ · 维护者) | #1225 | 流式 LLM 调用现在会主动向端点请求 usage,swarm run 记录真实 token 数而不是字符数估算(output tokens 曾少报 18-36 倍);拒绝 stream_options 的端点自动降级一次重试并记忆 |
| Vibe-Trading (32.7k★ · 维护者) | #1217 | Shadow Account 从 runner 从不产生的键提取 PnL,成功回测被记成 Shadow PnL=0、Delta 结论反向;改为按 final_value/total_return 推导,未知状态 fail closed 不再渲染成 0.00 |
| Vibe-Trading (32.7k★ · 维护者) | #1220 | 补上组合式 CV 多段测试块间隙行保持可训练的回归钉,这是多段 purge 修复合入时缺的那条回归 |
全部 54 个已合并的 Qwen Code PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Qwen Code (27.7k★) | #11085 | cron-interactive 夜跑 flake 的根因是 30s 等待把模型首回合延迟折进了 cron 触发预算;拆成两段钟,顺手把被自身回显空转的 ALIVE99 断言改成真观察模型回复 |
| Qwen Code (27.7k★) | #4716 | 让 /bug、/docs、/insight 的浏览器打开走安全 launcher,headless 环境不再因为直接 open 崩。 |
| Qwen Code (27.7k★) | #4622 | 让 assistant 的 tool call 和它的 result 挨着,修复过的历史不再被 OpenAI 兼容 provider 拒。 |
| Qwen Code (27.7k★) | #7535 | release-notes 生成的模型调用加退避重试和熔断,降级产出可见化,不再静默空窗 |
| Qwen Code (27.7k★) | #4829 | 给 Qwen OAuth refresh 加超时,刷新端点卡住时不会把整个 CLI 挂在认证恢复上。 |
| Qwen Code (27.7k★) | #5946 | 用 per-request 子 controller 隔离 Anthropic SDK 的 abort listener 泄漏,避免跨请求累积死监听器 |
| Qwen Code (27.7k★) | #5070 | 焦点导航跳过已过期的 live agent,别让 stale 的后台 agent 行抢走键盘焦点。 |
| Qwen Code (27.7k★) | #5058 | 掐掉 stale 的 tool schema recall,别让 memory warning 把过期工具名带回后面的规划轮次。 |
| Qwen Code (27.7k★) | #6981 | 不带 id 的流式 continuation chunk 在工具调用撞名时改为落到当前 opener 的槽位,不再进错槽 |
| Qwen Code (27.7k★) | #5020 | 取消后丢掉残留的 tool call,中止的轮次别把过期调用漏进下一次 payload。 |
| Qwen Code (27.7k★) | #5071 | 流式结束后再提交已完成的快速 tool result,别让流尾的竞态把它们卡在本地队列。 |
| Qwen Code (27.7k★) | #4639 | 把已停用的 Qwen OAuth ACP 登录路径去掉,别再把用户导向失效的认证方式。 |
| Qwen Code (27.7k★) | #5073 | 上下文指令文件超预算时提前告警,别等仓库级 guidance 悄悄挤掉任务上下文。 |
| Qwen Code (27.7k★) | #5043 | 让 grep 结果也算通过 prior-read 检查,已经搜过的上下文不用再逼着重读一遍文件。 |
| Qwen Code (27.7k★) | #5061 | 保留后台 agent 的启动参数,delegated 的 CLI run 继续用你指定的执行模式。 |
| Qwen Code (27.7k★) | #5036 | loop 检测触发后真的硬停掉重复的同一个 tool call,别让 agent 还在那反复执行卡死的动作。 |
| Qwen Code (27.7k★) | #4596 | 爬仓库时递归进已跟踪的 Git submodule,agent 上下文才带得上子模块里的文件。 |
| Qwen Code (27.7k★) | #5077 | permission gate 拦下来时把完整计划显示出来,能看被拦的 agent 意图,而不是白白丢掉。 |
| Qwen Code (27.7k★) | #4715 | managed auto-memory 听运行时输出目录的,同时显式的 memory 目录覆盖仍然优先。 |
| Qwen Code (27.7k★) | #5062 | 跨 agent 轮次带上 token escalation 上下文,delegated run 不用每轮都从容量不够的模型重来。 |
| Qwen Code (27.7k★) | #5945 | 拒绝非正的 sessionRecapAwayThresholdMinutes 值 |
| Qwen Code (27.7k★) | #4600 | 区分 TUI 中 AUTO 与 AUTO_EDIT approval-mode 指示器:共享样式、本地化 key 和可视化证据一起补齐 |
| Qwen Code (27.7k★) | #4636 | 把用户要求的输出语言也用到 side query 上,辅助回答跟主回答守同一套语言约定。 |
| Qwen Code (27.7k★) | #4963 | 默认开启 fork subagent,delegated work 直接跑在隔离分支里,不用手动开。 |
| Qwen Code (27.7k★) | #5815 | 合并 assistant 轮次时把 reasoning_content 丢了,多轮思维链跟着没了。 |
| Qwen Code (27.7k★) | #5752 | 把 QWEN_SERVE_MCP_CLIENT_BUDGET 严格按十进制整数解析 |
| Qwen Code (27.7k★) | #5679 | 严格解析 agent / workflow 的整数环境变量 |
| Qwen Code (27.7k★) | #5115 | team 功能关闭时隐藏 teammate 专属的 agent 名称参数;旧 prompt 仍传入名称时回退到 one-shot subagent,而不是直接失败 |
| Qwen Code (27.7k★) | #4673 | 修复顶层 --list-extensions / -l:按文档打印扩展列表,并在 sandbox、auth、TUI 启动前退出 |
| Qwen Code (27.7k★) | #4635 | CLI todo 视图里把做完的 sticky todo 藏起来,列表只盯着还没做的。 |
| Qwen Code (27.7k★) | #4632 | 强化 context error 的文本抽取,嵌套的、非字符串的 payload 也能给出有用信息,而不是直接消失。 |
| Qwen Code (27.7k★) | #5167 | 隐藏未配置的已下线 OAuth 模型 |
| Qwen Code (27.7k★) | #4828 | 认证刷新后保留用户配的共享 baseUrl,同模型刷新不再回退到 provider 默认 endpoint。 |
| Qwen Code (27.7k★) | #5461 | Claude 插件源接受大写 URL scheme |
| Qwen Code (27.7k★) | #5209 | 正确读取大端 TIFF 文件里 SHORT 类型的图像尺寸 |
| Qwen Code (27.7k★) | #4717 | 将 copy、arena、ACP snapshot 等退出路径的深拷贝改成浅层只读历史访问,同时保留 restore 写回路径的防御性克隆 |
| Qwen Code (27.7k★) | #4970 | 稳住截断后的 tool retry key,修复过的调用重试时身份不变,不会漂来漂去。 |
| Qwen Code (27.7k★) | #4607 | 修复 IDE proxy 请求:让 fetch 和 EnvHttpProxyAgent 保持在同一个 bundled undici 模块路径上 |
| Qwen Code (27.7k★) | #5429 | 解析安装源时接受大写 URL scheme |
| Qwen Code (27.7k★) | #5494 | 空 parts 的消息不再被误当成 function call/response |
| Qwen Code (27.7k★) | #5285 | 校验完整 WEBP 签名而不只是 RIFF 前缀 |
| Qwen Code (27.7k★) | #5420 | 让估算的 token 拆分之和恒等于总数 |
| Qwen Code (27.7k★) | #5336 | RIFF 魔数嗅探里识别 WebP 和 AVI |
| Qwen Code (27.7k★) | #5328 | 让 qwen3.6-flash 和 kimi-k2.6 预设保持纯文本 |
| Qwen Code (27.7k★) | #5227 | 把 BMP 高度按 signed int32 读取以支持 top-down 位图 |
| Qwen Code (27.7k★) | #5194 | 从正确的字节偏移读取 WebP VP8X 画布高度 |
| Qwen Code (27.7k★) | #5719 | 校验 list maxEntries 必须为正整数 |
| Qwen Code (27.7k★) | #5630 | 转义 emacs ediff 路径里的反斜杠和引号 |
| Qwen Code (27.7k★) | #4738 | 复制可见的 CLI 输出时跳过隐藏的 thought 片段,剪贴板和屏幕上看到的一致。 |
| Qwen Code (27.7k★) | #5426 | mcp add 的 transport 探测接受大写 URL scheme |
| Qwen Code (27.7k★) | #5287 | 让四舍五入到 60s 的亚分钟时长显示为 “1m” |
| Qwen Code (27.7k★) | #5647 | 通过 QWEN_MODEL 设定模型时也能识别 USE_OPENAI 认证 |
| Qwen Code (27.7k★) | #5204 | 重开 code fence 时不再插入多余空行 |
| Qwen Code (27.7k★) | #5072 | 稳住 simple MCP 集成检查,服务就绪的时序不再让跨进程协议测试偶发挂掉。 |
全部 31 个已合并的 Microsoft Agent Framework PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Microsoft Agent Framework (13.4k★) | #8095 | A2AAgent(url=..., http_client=mine) 这条构造路径从没设过 _close_http_client,async with 退出即 AttributeError;默认 False,两条自建路径仍置 True。 |
| Microsoft Agent Framework (13.4k★) | #5808 | handoff 原地改了 message 的 role,重试复用时把改动泄漏出去了,改成复用消毒过的副本。 |
| Microsoft Agent Framework (13.4k★) | #5773 | 把同步的 Python 工具挪出事件循环跑,阻塞型调用不再冻住并发的 agent 任务。 |
| Microsoft Agent Framework (13.4k★) | #7704 | Python:MCP 初始化的真实报错(比如 HTTP 401)被 cancel scope 吞成一句 Cancelled via cancel scope,沿异常链把真正的错误名字报出来 |
| Microsoft Agent Framework (13.4k★) | #5801 | 按 call id 合并 code interpreter 的流式历史片段,存下来的代码和结果完整,也不会重复记 delta。 |
| Microsoft Agent Framework (13.4k★) | #7239 | Python:AG-UI MESSAGES_SNAPSHOT 的消息顺序与模型原始产出顺序不一致,改为保持发射顺序 |
| Microsoft Agent Framework (13.4k★) | #7289 | turn 级 after_run provider 延后到 agent 循环边界触发,每轮一次而不是每次迭代一次 |
| Microsoft Agent Framework (13.4k★) | #5860 | .NET:Responses 的 logprobs 字段在序列化双向链路里会丢,修复为全程保留 |
| Microsoft Agent Framework (13.4k★) | #6132 | 按 session id 过滤 filesystem checkpoint index,重开 store 不再返回别的 workflow session 的 checkpoint。 |
| Microsoft Agent Framework (13.4k★) | #6210 | reasoning payload 被剥掉时一并丢掉 hosted MCP 的 tool-call 历史,stateless 的 OpenAI replay 不再发孤立的 MCP 调用。 |
| Microsoft Agent Framework (13.4k★) | #7162 | Python:Anthropic 流式把 token 用量数了两遍,流式增量之上又累加了最终消息用量 |
| Microsoft Agent Framework (13.4k★) | #5462 | 修复 background=True + tools 无限 retrieve loop:清掉已完成的 continuation 状态,让 tool results 正常提交 |
| Microsoft Agent Framework (13.4k★) | #7108 | Python:FunctionTool.invoke 用 exclude_none=True 导出参数,模型有意给必需可空参数传的 null 被丢掉,调用直接缺参失败;改用 exclude_unset 保留显式 null |
| Microsoft Agent Framework (13.4k★) | #6491 | .NET:修复 fan-in barrier 的 checkpoint 状态 |
| Microsoft Agent Framework (13.4k★) | #5861 | Foundry handoff 的结构化参数在 response 转换里丢了,delegated agent 调用跟着废,改成保留原结构。 |
| Microsoft Agent Framework (13.4k★) | #5800 | 修复 AG-UI tool result message id 冲突:provider 省略 update id 时仍能生成独立 fallback id |
| Microsoft Agent Framework (13.4k★) | #5799 | 补齐 Handoff workflow 的 name/description 元数据传递,让 builder 和 hosting 注册都能命名工作流 |
| Microsoft Agent Framework (13.4k★) | #5904 | AG-UI thread id 下继续用 ChatClientAgent 的本地历史 provider,别把 session 历史当成服务端托管的模型历史。 |
| Microsoft Agent Framework (13.4k★) | #7256 | Python:from_dict 拿 payload 自己声明的 type 校验它自己,恒真等于没校验;改成从类解析应有类型 |
| Microsoft Agent Framework (13.4k★) | #6640 | Python:为 Bedrock 和 Gemini connector 暴露 cache 与 reasoning token 计数 |
| Microsoft Agent Framework (13.4k★) | #5815 | 把 MCP tools/list 的元数据转发到 call_tool instrumentation,trace 里的工具注解不丢。 |
| Microsoft Agent Framework (13.4k★) | #5784 | 转换历史时跳过孤立的 Anthropic thinking signature,replay 不再带上无效的独立签名。 |
| Microsoft Agent Framework (13.4k★) | #6040 | 把 Foundry agent 的 default_headers 透传到 OpenAI client 创建,自定义的认证、路由 header 在初始化后还在。 |
| Microsoft Agent Framework (13.4k★) | #5974 | 让 Foundry agent eval 映射保留工具定义,评测运行能正常调用代码定义的 tools |
| Microsoft Agent Framework (13.4k★) | #5976 | 修复 sequential workflow 示例输出,让非 streaming 结果展示所有参与 agent 的回复 |
| Microsoft Agent Framework (13.4k★) | #5778 | 补上 Magentic protocol 的消息声明,orchestrator 的 chat/reset 信号能反序列化,不再卡在未知类型上。 |
| Microsoft Agent Framework (13.4k★) | #6208 | 声明式 Foreach 把多字段的 PowerFx table row 折叠了,改成整行 record 值原样带过每次迭代。 |
| Microsoft Agent Framework (13.4k★) | #7130 | Python:topic selection 的关键词提取支持非英文文本,中文、日文等非拉丁查询不再空手而归 |
| Microsoft Agent Framework (13.4k★) | #7124 | Python:compaction 估 token 时用 ensure_ascii=True 序列化消息,tokenizer 数的是 \uXXXX 转义序列而不是真实字符(CJK 约虚高 1.6 倍);改成按真实文本序列化 |
| Microsoft Agent Framework (13.4k★) | #6037 | 保留 Foundry citation get_url 元数据,让检索引用链接经过 response conversion 后仍能出现在 chat response 中 |
| Microsoft Agent Framework (13.4k★) | #7777 | Python:README 里"Learn 文档即将上线"的过期占位符换成三个已上线的 Learn 链接(当天逐一验证 200) |
全部 17 个已合并的 deer-flow PR
| 项目 | PR | 修了啥 |
|---|---|---|
| deer-flow (81.5k★) | #3800 | 让 create_thread 在并发 insert 输掉竞争时保持幂等,避免一个聊天产生重复 thread。 |
| deer-flow (81.5k★) | #4429 | fork 恢复的检查点把 sandbox channel 以 langgraph Overwrite 包装态送达,sync/async 初始化路径和 sibling readers 统一走一个解包 helper |
| deer-flow (81.5k★) | #5148 | WeCom 出站内容封顶在 20480 字节协议上限:主动推送按序分块并给每个聊天配 refcount 发送锁,长推送不再被协议拒绝、并发发送不再交错 |
| deer-flow (81.5k★) | #3797 | 同步 MCP session-pool 单例生命周期,避免并发首次使用创建重复池 |
| deer-flow (81.5k★) | #3778 | 同步 skill storage 单例的生命周期 |
| deer-flow (81.5k★) | #4839 | MCP 来源的工具结果改走与其他外部内容相同的信任管道清洗:恶意 tool server 不再能往模型上下文夹带指令 |
| deer-flow (81.5k★) | #3799 | 串行化单个聊天的线程创建,并发消息不再给一个聊天建出重复线程。 |
| deer-flow (81.5k★) | #4216 | get_memory_config() 只作为 get_app_config() 的副作用刷新,agent factory 这类直接读者在 config.yaml 改完后拿到旧的 memory.mode;改走 get_app_config() 并加 FileNotFoundError 兜底 |
| deer-flow (81.5k★) | #4157 | subagent 的 description 是 agent 可编辑的(setup_agent / update_agent),却原样渲染进 <subagent_system> 块,构造的首行能越界伪造框架标签。转义掉,和 <soul> 那个修复同类。 |
| deer-flow (81.5k★) | #4137 | 在 SOUL.md 进入 <soul> system-prompt 块前 HTML 转义,让可被 agent 编辑的 personality 无法伪造框架标签、越出信任边界 |
| deer-flow (81.5k★) | #4381 | after_agent 钩子里的 sandbox state 被 Overwrite 包了一层,解包后再消费,不再取不到值 |
| deer-flow (81.5k★) | #3631 | 从 streamed values 事件里剥离 base64 图片数据 |
| deer-flow (81.5k★) | #3674 | 让 UI 运行时 channel 配置优先于 config.yaml |
| deer-flow (81.5k★) | #4130 | 把 requests/httpx 剩余 HTTP 方法也识别为网络 sink |
| deer-flow (81.5k★) | #3719 | _apply_updates 跳过纯空白 facts,避免空白记忆条目堆积 |
| deer-flow (81.5k★) | #4253 | 工具结果里字面的 </tool_response> 能提前闭合 MindIE framing、注入尾随文本;转义 tool-response 内容,和同函数里 tool-call name/arg 的转义保持一致。 |
| deer-flow (81.5k★) | #3709 | 修复同内容 todo 列表耗尽后 positional fallback 误吞不相关 todo |
全部 31 个已合并的 AstrBot PR
| 项目 | PR | 修了啥 |
|---|---|---|
| AstrBot (40.1k★) | #9987 | 把 cron agent runner 的 ERROR 终态传上去:定时任务失败如实记 failed 带错误信息,不再记成 completed 且 last_error 为空 |
| AstrBot (40.1k★) | #8172 | 优先用打包进去的 dashboard 资产,而不是过期的 data dist,发版后不再展示旧前端。 |
| AstrBot (40.1k★) | #8718 | 避免多模态回复在引用文本和图片 metadata 同时存在时重复显示 quoted image caption |
| AstrBot (40.1k★) | #7537 | 修复 Telegram media group 异常被 APScheduler 静默吞掉:try/except + EVENT_JOB_ERROR listener |
| AstrBot (40.1k★) | #6581 | 修复截断器丢失唯一 user 消息导致智谱/Gemini 返回 400 |
| AstrBot (40.1k★) | #7196 | 修复 Gemini thinking parts 泄漏到用户可见的消息内容中 |
| AstrBot (40.1k★) | #8750 | 修好 changelog 的 anchor 链接,dashboard 的 release notes 能跳到对的小节,不再是断锚。 |
| AstrBot (40.1k★) | #8736 | 保留 embedding API 的版本后缀,带版本的 provider endpoint 不会被归一化到错的路径。 |
| AstrBot (40.1k★) | #7758 | 修复 OpenAI streaming 路径复用 empty-assistant 过滤:reasoning-only 历史不再让严格 provider 返回 400 |
| AstrBot (40.1k★) | #8089 | 图片请求在主 provider 不支持视觉输入时自动切到 vision fallback provider |
| AstrBot (40.1k★) | #6710 | 修复 skills-like re-query 丢失图片描述:extra_user_content_parts 未传递 |
| AstrBot (40.1k★) | #6596 | 多模态 token 计数:图片/音频/思考链对 context 压缩不可见的问题 |
| AstrBot (40.1k★) | #8786 | 强制 persona 的工具调用边界 |
| AstrBot (40.1k★) | #8061 | 修复 Discord 启动同步命令触发 daily create quota 时打断 bot 启动:只把配额错误降级为 warning,其它异常继续抛出 |
| AstrBot (40.1k★) | #8175 | 修复 WeChat OA 媒体发送失败仍上报成功:prepare/send 超时或失败时向调用方抛出明确错误 |
| AstrBot (40.1k★) | #8768 | 清理 Lark platform id 后缀中的不可见空白,避免配置里的尾部空格破坏平台匹配 |
| AstrBot (40.1k★) | #8388 | 补上插件详情页 sub-command 数量的 dashboard i18n,扩展详情不再露出原始翻译 key。 |
| AstrBot (40.1k★) | #8255 | 支持 RST / AsciiDoc 知识库上传:后端解析白名单和前端文件校验同步扩展,避免支持的文档格式被入口拦截 |
| AstrBot (40.1k★) | #8195 | 跳过空的 LLM summary,压缩时保留原始历史,不塞空占位。 |
| AstrBot (40.1k★) | #8119 | 修复 active reply 图片输入丢失:把图片组件转成 image URLs 传给 LLM,保留原有文本 prompt 行为 |
| AstrBot (40.1k★) | #8073 | 修复纯图片/表情消息的知识库空 prompt:空白文本时跳过 KB 检索,避免 embedding API 400 |
| AstrBot (40.1k★) | #6527 | 修复 LLM 工具选择:重写模糊的 Upload/Download 描述 |
| AstrBot (40.1k★) | #6474 | 修复 SQLite 并发写入 database is locked,添加 busy timeout |
| AstrBot (40.1k★) | #7216 | 修复 Gemini tool call 400:纯文本 tool result 包装为 Protobuf Struct |
| AstrBot (40.1k★) | #7003 | 修复 WebChat 长响应断连:SSE 心跳保活,context 压缩期间不再超时 |
| AstrBot (40.1k★) | #7398 | 修复 Telegram 流式模式下空文本 sendMessageDraft 导致 400 错误刷屏 |
| AstrBot (40.1k★) | #7217 | 修复 qwen3-rerank 响应解析:兼容新旧百炼 API 格式 |
| AstrBot (40.1k★) | #6313 | 修复 OpenAI API 返回 None choices 导致崩溃 |
| AstrBot (40.1k★) | #6551 | 修复空 content 导致 Grok 400:content 为空时设为 None |
| AstrBot (40.1k★) | #7407 | 修复 Gemini 原生搜索无 function tools 时 400:跳过 FunctionCallingConfig |
| AstrBot (40.1k★) | #6656 | 修复 /stop 后新消息仍被 follow-up 捕获的竞态条件 |
全部 11 个已合并的 PyTorch PR
| 项目 | PR | 修了啥 |
|---|---|---|
| PyTorch (102.8k★) | #187731 | extract_scripts.py 给抽取的每个 step 编号时零填充错位一位,trace 的 step 文件序列整体错序(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #192025 | Inductor 向量化整数取余的 C++ codegen 在 padded 尾块上把除数清零,掩码下触发除零;保持尾块除数非零(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #188022 | 让 CuTeDSL 的 topk override 守住非当前 CUDA 设备,避免把工作分发到错误设备(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #186779 | 不支持的 batch norm 三阶导改为显式报错,不再静默返回错误梯度(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #188027 | 在 Laguerre / Legendre 多项式的辅助函数里初始化 r,避免边界路径返回未初始化内存(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #188229 | avg_pool3d backward 在超过 INT_MAX 元素的输入上静默算错梯度:atomic scatter kernel 用 32 位 int 算偏移和边界,改成 64 位索引(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #187643 | 修复 stale_issues workflow 的 parse_older_than 在非闰年崩溃:朴素的 2 月 29 日偏移会抛 ValueError(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #176100 | 修复 Inductor codegen 中用户自定义 Triton kernel 的名称修饰,避免不同 kernel 在生成代码里命名冲突(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #187860 | 把 meta__transformer_encoder_layer_fwd 里对空 src 的检查改走 guard_or_false,让 torch.compile 下 unbacked 符号 numel 不再抛数据依赖错误(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #187262 | 移除过时的 setuptools 版本上限,让构建解析到当前工具链而不是被钉在旧版本(PR 显示 Closed,经 pytorchmergebot 合入) |
| PyTorch (102.8k★) | #187720 | 修掉 stale_issues 按年截断时把日钳到 28 号的问题,月末批次落到正确日期(PR 显示 Closed,经 pytorchmergebot 合入) |
全部 6 个已合并的 OpenClaw PR
| 项目 | PR | 修了啥 |
|---|---|---|
| OpenClaw (389.0k★) | #119127 | 通用 mtime 媒体清扫让出 SQLite managed 的 outgoing 子树,并在会话库不可读时 fail-closed,全域 GC 永不误删用户原件(owner P0 评审后与项目作者共建) |
| OpenClaw (389.0k★) | #41271 | 认证配置解析失败时记录日志而非静默吞掉 |
| OpenClaw (389.0k★) | #96456 | 按码点边界裁剪进度文本,避免落单的 surrogate |
| OpenClaw (389.0k★) | #41259 | 目录创建失败时向上传递错误,避免 memory ensureDir 静默失败后继续执行 |
| OpenClaw (389.0k★) | #106603 | sandbox-root 越界错误里改用规范的 shortenHomePath,报的路径和界面其余部分一致。 |
| OpenClaw (389.0k★) | #96562 | 工具路径显示里,共享 home 前缀的同级目录不再被误缩写 |
全部 1 个已合并的 opencode PR
| 项目 | PR | 修了啥 |
|---|---|---|
| opencode (204.9k★) | #30022 | 把 MCP OAuth 回调服务绑到 IPv4 loopback,让浏览器回跳稳定连上、不再和 IPv6 抢地址 |
全部 6 个已合并的 dify PR
| 项目 | PR | 修了啥 |
|---|---|---|
| dify (153.3k★) | #39953 | 给没有超时的 TiDB Cloud API 调用补上有界超时,集群端点挂起不再无限拖住 vdb 操作 |
| dify (153.3k★) | #38801 | 在 service-api 和 explore 端点提前校验 conversation,坏的 conversation_id 直接 404,而不是流式跑到后期才失败。 |
| dify (153.3k★) | #37425 | 给 OperationService 计费请求加超时,慢计费端点挂不住请求。 |
| dify (153.3k★) | #39479 | 邮件限流的 IP 首击窗口真正生效:GET 判空再 SETEX 的竞态改为 SET NX 原子认领 |
| dify (153.3k★) | #37685 | watercrawl 请求超时保持有界,而不是用 timeout=None 禁用 |
| dify (153.3k★) | #37669 | legacy dataset 配置提取时跳过空的 tool entry |
全部 1 个已合并的 Transformers PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Transformers (164.3k★) | #44710 | AutoProcessor.from_pretrained 静默丢掉了 revision、token 这些 hub kwargs。 |
全部 1 个已合并的 MCP Servers PR
| 项目 | PR | 修了啥 |
|---|---|---|
| MCP Servers (90.1k★) | #4289 | 给直接 import zod 的 server 包补上 zod 运行时依赖声明,严格隔离安装不再在启动时炸 ERR_MODULE_NOT_FOUND |
全部 1 个已合并的 OpenHands PR
| 项目 | PR | 修了啥 |
|---|---|---|
| OpenHands (84.9k★) | #14776 | 编辑 basic model 设置时保留自定义的 LLM base URL,存下来的 profile 不再静默回退到 provider 默认 endpoint。 |
全部 3 个已合并的 Firecrawl PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Firecrawl (171.6k★) | #3730 | self-host 抓取的 interact 动作明确报错拒绝,而不是隐晦地失败 |
| Firecrawl (171.6k★) | #3729 | self-host bypass 路径保留 auth chunk,已认证的 self-host 抓取不再被丢掉。 |
| Firecrawl (171.6k★) | #3713 | Python SDK 正确处理 async v1 batch scrape 以 dict 形式返回的响应 |
全部 2 个已合并的 MarkItDown PR
| 项目 | PR | 修了啥 |
|---|---|---|
| MarkItDown (178.1k★) | #2017 | DOCX 转换保留下划线文本:补默认 u 样式映射,并让下划线标记保留进 Markdown 输出 |
| MarkItDown (178.1k★) | #2064 | 兼容老旧 XLSX 里的 showZeroes 视图属性(openpyxl 3.1+ 只认 showZeros),老文件不再 TypeError 拒读 |
全部 2 个已合并的 SGLang PR
| 项目 | PR | 修了啥 |
|---|---|---|
| SGLang (32.3k★) | #20739 | 修复 hybrid_linear_attn_backend 与 ngram 投机采样同时使用时崩溃 |
| SGLang (32.3k★) | #21472 | 修复 --backend diffusers 在非 T2I 模型上的 PicklingError |
全部 1 个已合并的 milvus PR
| 项目 | PR | 修了啥 |
|---|---|---|
| milvus (45.8k★) | #50858 | broadcastTaskManager.Close 先关广播调度器再关 ack 调度器,在途 promote goroutine 仍会调 AddTask 命中 panic 分支崩进程;改成返回 on-shutdown 错误(沿用 broadcast_manager.go 同签名先例),附回归测试。 |
全部 4 个已合并的 Triton PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Triton (19.9k★) | #10883 | 除法和取模先把 fp8 操作数提升精度再算,不再直接按 fp8 精度求值(BC breaking) |
| Triton (19.9k★) | #10689 | 分数 top_k 向下取整为 0 时至少保留一个 config |
| Triton (19.9k★) | #10687 | is_power_of_two(0) 误返回了 True。 |
| Triton (19.9k★) | #9613 | 修复 AxisInfo 正确性:有符号常量、未知 shift 和 shift UB 都保守处理 |
全部 10 个已合并的 AgentScope PR
| 项目 | PR | 修了啥 |
|---|---|---|
| AgentScope (29.4k★) | #1815 | team run 里继承 leader 的权限规则,delegated agent 守着和 leader 一样的 workspace、文件访问约束。 |
| AgentScope (29.4k★) | #1717 | Windows 上启动 Bash tool 子进程时使用 CREATE_NO_WINDOW,避免工具执行弹出控制台窗口 |
| AgentScope (29.4k★) | #1732 | 汇总所有启用的 tool group 的 skill,prompt instructions 和 Skill viewer 跟当前启用的工具对得上。 |
| AgentScope (29.4k★) | #1816 | agent 连续撞同一个工具错误时给出提示而不是放任它循环同一个失败调用,打破卡死的工具错误循环 |
| AgentScope (29.4k★) | #1883 | 处理没有 id 的 Gemini function call |
| AgentScope (29.4k★) | #1823 | 把 workspace root 加进 permission context,chat run 按 agent 真正能看到的 workspace 去授权文件。 |
| AgentScope (29.4k★) | #1774 | 显式设置 Qwen thinking_enable 时转发到 OpenAI-compatible extra_body,同时不污染普通 OpenAI 请求 |
| AgentScope (29.4k★) | #1734 | append 和 streaming replace 时刷新 Redis message list 的 TTL,配置的存储 TTL 才真正约束聊天历史。 |
| AgentScope (29.4k★) | #1822 | 给内置 Bash tool 增加 cwd 选项,让 shell 命令能在指定 workspace 目录执行 |
| AgentScope (29.4k★) | #1786 | 创建 Redis session 时保留调用方给的 id,后面的 get/update/list 命中同一个 session,而不是新生成的 UUID。 |
全部 1 个已合并的 LiteLLM PR
| 项目 | PR | 修了啥 |
|---|---|---|
| LiteLLM (57.1k★) | #26401 | 修复 LITELLM_LOG=INFO 漏设 verbose_logger:proxy INFO 日志不再静默丢失 |
全部 14 个已合并的 promptfoo PR
| 项目 | PR | 修了啥 |
|---|---|---|
| promptfoo (24.5k★) | #10665 | tool-call-f1 评分器认出 OpenAI Responses API 的 function_call 条目,这类载荷不再被算成零次工具调用 |
| promptfoo (24.5k★) | #10089 | trace-span-duration 越界百分位直接拒绝,不再静默算出无意义结果 |
| promptfoo (24.5k★) | #9850 | 空 token 输入的 GLEU 评分返回 0 分,不再报错 |
| promptfoo (24.5k★) | #9867 | 读取 Azure logprobs 时空 choices 数组不再崩溃 |
| promptfoo (24.5k★) | #9761 | contains-any/all 断言值里保留引号内的逗号 |
| promptfoo (24.5k★) | #10124 | Azure provider 空 completion choices 数组不再崩溃 |
| promptfoo (24.5k★) | #10076 | 工具调用缺 function 对象时 tool-call 断言抛 TypeError;改成返回 pass:false。 |
| promptfoo (24.5k★) | #9897 | 给 Bedrock Titan 和 Cohere provider 的数组访问加守卫,空响应数组不再让生成崩掉。 |
| promptfoo (24.5k★) | #9815 | 拒绝畸形的 __expected0 CSV 表头,而不是静默丢弃它的断言 |
| promptfoo (24.5k★) | #9824 | 修正 inverse JSON 断言的失败信息,不再把方向写反 |
| promptfoo (24.5k★) | #9841 | 空输出返回 pass:false 而不是抛异常 |
| promptfoo (24.5k★) | #9757 | array metadata 值里所有转义逗号都还原 |
| promptfoo (24.5k★) | #9840 | 保留 JSONL 行的 description 而不是覆盖 |
| promptfoo (24.5k★) | #9822 | maxLen 小于 3 时 ellipsize 仍不超过 maxLen |
全部 3 个已合并的 goose PR
| 项目 | PR | 修了啥 |
|---|---|---|
| goose (53.3k★) | #9599 | 改用阻塞式的 OTLP HTTP exporter,进程退出时遥测数据不丢。 |
| goose (53.3k★) | #9584 | 显示 skill 支持文件解析后的真实路径,而不是未解析的占位符 |
| goose (53.3k★) | #9528 | 恢复 desktop 应用里 new chat 快捷键的导航 |
全部 7 个已合并的 cherry-studio PR
| 项目 | PR | 修了啥 |
|---|---|---|
| cherry-studio (51.0k★) | #18711 | 让正式构建的公式复制重新可用:markdown styles 入口被生产构建 tree-shake 掉,连带丢了 KaTeX 的复制监听器。 |
| cherry-studio (51.0k★) | #16352 | 在截断边界保住 surrogate pair,多字节字符不会被切成半个非法字符。 |
| cherry-studio (51.0k★) | #16454 | 保留 citations 里的纯 URL markdown 引用行,不再丢弃 |
| cherry-studio (51.0k★) | #17106 | 估算 API 网关 token 用量时把嵌套在 tool_result 里的图片计入,多模态工具结果不再被少算 |
| cherry-studio (51.0k★) | #16358 | aihubmix 路径丢弃 Ideogram 里没有可用 URL 的 data[] 项,不再渲染坏图 |
| cherry-studio (51.0k★) | #16361 | 为大写扩展名正确解析 .d.ts 图标 |
| cherry-studio (51.0k★) | #16217 | 相对时间在单位边界正确进位 |
全部 2 个已合并的 GitHub MCP Server PR
| 项目 | PR | 修了啥 |
|---|---|---|
| GitHub MCP Server (32.4k★) | #2514 | PR review 请求支持 team reviewer,把 team slug 解析成 GitHub review subject,而不是直接丢掉。 |
| GitHub MCP Server (32.4k★) | #2612 | read-only 模式下隐藏会写入 GitHub 的 UI resources,同时保留安全的只读资源注册 |
全部 1 个已合并的 OpenAI Agents SDK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| OpenAI Agents SDK (28.9k★) | #3643 | 上报实际生效的 Blaxel 超时值,而不是未配置的默认值 |
全部 1 个已合并的 OpenAI Python SDK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| OpenAI Python SDK (31.6k★) | #3401 | 给 vector-store 文件轮询加上界,卡住的上传不再让客户端永远空转 |
全部 6 个已合并的 ms-swift PR
| 项目 | PR | 修了啥 |
|---|---|---|
| ms-swift (15.3k★) | #9642 | DPO 数据准备阶段遇到空 rejected_messages 直接快速失败,不用等训练跑到一半才崩。 |
| ms-swift (15.3k★) | #9816 | --torch_dtype 失效期间用户只能靠 engine_kwargs 传 dtype,flag 修好后两边撞参数直接 TypeError;splat 前 pop 掉并让 flag 恒赢 |
| ms-swift (15.3k★) | #9789 | CUDA 测试容器里升级老 wandb,其旧 pb2 与 protobuf 7.x 相冲曾致全仓 CI 红 |
| ms-swift (15.3k★) | #9750 | 视频元数据损坏时 get_avg_fps() 返回 0,range(0, len(vr), 0) 在读到第一帧前就抛 ValueError;给 MiniCPM-V / mPLUG-Owl3 的采样步长加守卫 |
| ms-swift (15.3k★) | #9605 | 不同格式的图片在临时缓存里撞了键,把 mode 和 size 也纳入 key 才分开。 |
| ms-swift (15.3k★) | #9612 | _replace_system 把非字符串的 prefix 元素压平了,模板化 system prompt 的结构化内容被抹掉。 |
全部 10 个已合并的 AG-UI PR
| 项目 | PR | 修了啥 |
|---|---|---|
| AG-UI (15.5k★) | #1890 | 在一次 ADK execution 内缓存 session 读取,远端 session service 不用在每次 agent 运行前重复拉一遍。 |
| AG-UI (15.5k★) | #1735 | 修复 HITL tool call 后 ADK session 可能被旧状态回写的问题 |
| AG-UI (15.5k★) | #1829 | LangGraph 流从文本切到 tool call 时先关闭当前文本消息,避免工具调用事件被前一段文本吞掉 |
| AG-UI (15.5k★) | #1889 | 构建 ADK workflow graph 时把 output_schema 的 agent 也收进来,结构化输出的节点不再漏。 |
| AG-UI (15.5k★) | #1848 | 打包回放的 tool results |
| AG-UI (15.5k★) | #1826 | 把 LangGraph 的 runtime context 透传进 tool kwargs,graph tool 保住调用方传的执行上下文。 |
| AG-UI (15.5k★) | #1828 | 识别 Strands 私有的 session manager,AG-UI 回放历史时尊重活跃 session,不再重播旧轮次。 |
| AG-UI (15.5k★) | #1832 | LangGraph 转换文本和媒体 block 时保留 AG-UI InputContent.metadata |
| AG-UI (15.5k★) | #1769 | 将 proto generation 从 Unix-only mkdir -p 改为跨平台 Node 脚本,兼容 Windows .CMD plugin shim |
| AG-UI (15.5k★) | #1730 | 允许 CopilotKit 1.x 的 runtime peer 依赖 |
全部 1 个已合并的 Google ADK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Google ADK (21.2k★) | #5698 | 让 final_response_match_v2 在 criterion 选择开启时把 intermediate responses 纳入最终回答评判 |
全部 3 个已合并的 Mem0 PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Mem0 (63.9k★) | #5416 | 修复 S3 Vectors entity index 命名,避免 agent memory 写入因 AWS index-name 校验失败 |
| Mem0 (63.9k★) | #5380 | 暴露 Qdrant 的 https 选项,自托管的 HTTP 集群用 API key 认证就行,不用被逼进 TLS client 模式。 |
| Mem0 (63.9k★) | #5383 | OpenClaw CLI metadata 注册时跳过 runtime setup,插件发现阶段不再重复注册运行时副作用。 |
全部 1 个已合并的 verl PR
| 项目 | PR | 修了啥 |
|---|---|---|
| verl (23.1k★) | #6620 | 按 DP 和 TP rank 算 colocated vLLM 权重同步的 ZMQ socket rank,多个 DP worker 不再挤到同一个 receiver。 |
全部 2 个已合并的 TRL PR
| 项目 | PR | 修了啥 |
|---|---|---|
| TRL (19.1k★) | #6054 | SFT 准备阶段遇到已经转换过的数据集直接报错,别静默产出错的训练 batch。 |
| TRL (19.1k★) | #6063 | 保留 vLLM prompt 的 special tokens |
全部 27 个已合并的 Inspect AI PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Inspect AI (2.6k★) | #5262 | 审批层接受百分号编码的 file:// 策略 URI,按 URL 转义路径写的策略不再静默匹配不上 |
| Inspect AI (36.2k★) | #5153 | 全空输入时 shaped metric 不再塌成上游合成的扁平 NaN,list/dict 两条 metric 路径统一护栏;空输入抛错的 metric 报 NaN 并一次性告警 |
| Inspect AI (2.6k★) | #3902 | 修复 OpenAI-compatible 响应里的 OpenRouter reasoning_details:解析为可读 reasoning 文本,而不是暴露 Python repr |
| Inspect AI (2.6k★) | #4167 | 让实时流式 sample 写出走与常规日志路径相同的 fallback JSON 归一化,无法序列化的 sandbox 对象不再让评测中途崩掉。 |
| Inspect AI (2.6k★) | #4479 | macOS 分支无守卫 import AppKit 并解引用 NSScreen,没装 pyobjc 时 headful 浏览器工具直接崩;回落 scale factor 1 |
| Inspect AI (2.6k★) | #3924 | 未知的 GenerateConfig 字段提前报错,拼错的生成参数不再被静默忽略。 |
| Inspect AI (2.6k★) | #4375 | registry 捕获参数时把 **kwargs 拍平,包装过的可调用对象注册不再出错 |
| Inspect AI (2.6k★) | #4267 | truncate() 在长度小于溢出指示符时仍保持在限制内 |
| Inspect AI (2.6k★) | #4342 | 不缓存瞬时的 reasoning_summaries 探测失败 |
| Inspect AI (2.6k★) | #4218 | 复用中断的 checkpoint id |
| Inspect AI (2.6k★) | #4363 | reduce 空 score 列表时返回 NaN 而不是崩溃 |
| Inspect AI (2.6k★) | #4357 | reduce 不匹配的 list/dict scores 时抛出清晰错误 |
| Inspect AI (2.6k★) | #4246 | token 计数并发加上限,大批量不再全并发打满 provider |
| Inspect AI (2.6k★) | #3941 | 修复 Bedrock Nova top_k 路由:把采样控制传到 inference config,而不是被静默丢弃 |
| Inspect AI (2.6k★) | #3896 | 修复 filestore recovery append 模式:保留已恢复 message/tool-call 池,同时避免重复哈希旧片段 |
| Inspect AI (2.6k★) | #3975 | 解析 role model override 时保留调用侧的生成默认值,角色换模型不会丢掉 max tokens、reasoning effort 这些设置。 |
| Inspect AI (2.6k★) | #4069 | 周期性 flush 流式 score sample,长时间评测在结束前也能持续把 score 落盘。 |
| Inspect AI (2.6k★) | #4504 | registry_tag 的前置参数改为仅位置传参,被标记对象自己的同名关键字参数不再撞上装饰器参数 |
| Inspect AI (2.6k★) | #4303 | 拒绝含多个连字符的 sample limit |
| Inspect AI (2.6k★) | #3982 | 在 agent bridge 转换里保留 wrapped 的 OpenAI reasoning payload,加密的 provider 原生 reasoning 项在 transcript 转换时不丢。 |
| Inspect AI (2.6k★) | #4173 | 规范化 buffer task 目录 URI |
| Inspect AI (2.6k★) | #4300 | FileSystem.is_writeable 去掉路径末尾分隔符 |
| Inspect AI (2.6k★) | #4282 | 空 scores 时 accuracy() 返回 0 |
| Inspect AI (2.6k★) | #3895 | 修复 TERM=dumb 下终端宽度:尊重 COLUMNS,日志输出不再固定按 Rich 默认 80 列硬换行 |
| Inspect AI (2.6k★) | #4090 | 澄清 model-graded history prompt:include_history=True 和最终答案字段的位置与实际 scorer 行为保持一致 |
| Inspect AI (2.6k★) | #4912 | 带尾随逗号的单选答案(如 "A,")正常判分,不再被误判 |
| Inspect AI (2.6k★) | #4322 | transcript 代码块里出现的反引号会打乱 html_escape_markdown 的围栏追踪,导致代码内容把未转义的 HTML 泄进日志;修正 fence 识别 |
全部 1 个已合并的 Agno PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Agno (41.8k★) | #8131 | 保留非哨兵工具参数字符串里的空白,同时继续只对精确的 None / True / False 哨兵做归一化 |
全部 3 个已合并的 RAGFlow PR
| 项目 | PR | 修了啥 |
|---|---|---|
| RAGFlow (89.1k★) | #15691 | 跳过空的 agent switch 条件,空分支判断不会让有效的后续 agent 流程崩掉或卡住。 |
| RAGFlow (89.1k★) | #15601 | Docling native 解析没产出 chunk 时降级,文档还能出可用内容,而不是空解析。 |
| RAGFlow (89.1k★) | #15696 | 重复的 n-hop GraphRAG 边保留最强的 PageRank 分,路径顺序覆盖不了排序。 |
全部 8 个已合并的 LiveKit Agents PR
| 项目 | PR | 修了啥 |
|---|---|---|
| LiveKit Agents (13.1k★) | #6000 | 恢复的 Gemini realtime 会话跳过上下文重放,不再把自己的历史当新对话再读一遍 |
| LiveKit Agents (13.1k★) | #5820 | 修复 Anthropic streaming retry:瞬时建流失败后重新创建 stream,不再重复 await 同一个 coroutine |
| LiveKit Agents (13.1k★) | #5994 | 兼容 OpenAI 兼容 realtime 返回字符串的 status details,incomplete response 不再在日志路径崩。 |
| LiveKit Agents (13.1k★) | #5864 | 暴露 Soniox STT server error:流式识别失败时返回明确错误,不再被当成空 transcript |
| LiveKit Agents (13.1k★) | #5872 | 把 ElevenLabs server-VAD 的 committed transcript 映射成 END_OF_SPEECH,realtime turn 不用手动空 commit 才结束。 |
| LiveKit Agents (13.1k★) | #5976 | 调用方传入自定义 Google HTTP options 时仍保留请求 timeout,并避免原地修改调用方对象 |
| LiveKit Agents (13.1k★) | #6124 | GetDOBTask 里规范化两位数年份 |
| LiveKit Agents (13.1k★) | #5887 | 删除裁剪后为空的 audio item |
全部 6 个已合并的 MCP Toolbox PR
| 项目 | PR | 修了啥 |
|---|---|---|
| MCP Toolbox (16.2k★) | #3520 | SSE handler 遇到不支持 http.Flusher 的 writer 时渲染 500 却没 return,nil flusher 在第一次 Flush 直接 panic;现在渲染完就返回 |
| MCP Toolbox (16.2k★) | #3531 | 校验 Looker explore_references 的结构,非法输入不再 panic |
| MCP Toolbox (16.2k★) | #3512 | array/map 参数类型报错时带上导致出错的具体值 |
| MCP Toolbox (16.2k★) | #3738 | execute_sql 保留 BigQuery 原生错误分类,模拟服务账号的 403 按客户端错误上报告别笼统 500 |
| MCP Toolbox (16.2k★) | #3516 | 参数 type 字段不是字符串时返回错误,而不是 panic |
| MCP Toolbox (16.2k★) | #3416 | 补充 execute_sql 最小权限配置的文档 |
全部 2 个已合并的 LMCache PR
| 项目 | PR | 修了啥 |
|---|---|---|
| LMCache (11.3k★) | #3245 | MP store/retrieve 期间留住 producer 侧的 CUDA IPC event,别让 daemon 拿着已回收的 handle 去恢复。 |
| LMCache (11.3k★) | #3282 | MP KV transfer 处理 HND 这种 GPU KV layout,之前这种排布会被算错。 |
全部 1 个已合并的 FastMCP PR
| 项目 | PR | 修了啥 |
|---|---|---|
| FastMCP (27.7k★) | #4297 | 构建工具 schema 时保留必需的 discriminator tag,union 参数才还有效。 |
全部 2 个已合并的 FlashInfer PR
| 项目 | PR | 修了啥 |
|---|---|---|
| FlashInfer (6.2k★) | #2756 | 修复 autotuner 在输入 tensor 为 None 时崩溃(fixes #2749) |
| FlashInfer (6.2k★) | #2772 | 修复编译错误:CUTLASS 头文件缺少 <optional> include 导致 std::optional 未定义 |
全部 3 个已合并的 Pydantic AI PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Pydantic AI (19.4k★) | #5474 | 接受 Vercel AI dynamic-tool 消息里的 providerExecuted 和 title,严格校验下也留住 provider 元数据。 |
| Pydantic AI (19.4k★) | #5695 | 在 completions 里转发 penalties 参数 |
| Pydantic AI (19.4k★) | #5694 | 修复 MCPToolset(http_client=...) 与 FastMCP 的兼容问题,避免把 follow_redirects 泄漏给调用方提供的 HTTP client factory |
全部 11 个已合并的 Phoenix PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Phoenix (11.1k★) | #13641 | provider 变化时让 prompt tool diff 过期,PXI 编辑不再把旧的工具差异状态带到别的 provider。 |
| Phoenix (11.1k★) | #13210 | 修复非法 GraphQL node id 的错误处理:返回 NotFound 风格错误,而不是把 decoder failure 泄漏给客户端 |
| Phoenix (11.1k★) | #13245 | 修复 generative model fetch 游标回退:低 id 更新不会让后续轮询跳过更新的模型变更 |
| Phoenix (11.1k★) | #13533 | span 标注工具的空输入给出明确处理,不再模糊失败 |
| Phoenix (11.1k★) | #13653 | PXI agent 面板一打开就聚焦输入框,键盘优先的流程少点一下。 |
| Phoenix (11.1k★) | #13637 | in-memory SQLite schema 初始化完再对外服务 Phoenix,启动竞态撞不上缺表。 |
| Phoenix (11.1k★) | #13242 | 为 raw computer tool definitions 传递 Anthropic computer-use beta headers,覆盖 playground streaming 和非 streaming 调用 |
| Phoenix (11.1k★) | #13139 | 修复 Playground 校验错误被吞掉的问题:失败时返回明确错误,而不是空 subscription payload |
| Phoenix (11.1k★) | #13636 | 更新 PXI system prompt 指南,指向当前 server-side Jinja 模板和 capability wiring,不再引用过期的 browser-side 路径 |
| Phoenix (11.1k★) | #13614 | 修复 Prompts 表格停留页面时不会自动刷新的问题:新建或更新的 prompt 不再需要手动刷新才能出现 |
| Phoenix (11.1k★) | #13261 | 修复 span annotation note 新建后的刷新问题:创建成功后立即重新拉取列表,前端不再需要手动刷新才能看到新 note |
全部 9 个已合并的 Strands Agents SDK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Strands Agents SDK (6.9k★) | #2400 | 支持非流式 OpenAI chat completions |
| Strands Agents SDK (6.9k★) | #2353 | 处理 Gemini safety-blocked metadata:缺失 token 计数时安全归零,并把 safety stop 映射为 guardrail intervention |
| Strands Agents SDK (6.9k★) | #2354 | 读 OpenAI 兼容 vLLM 流里的 delta.reasoning,reasoning 输出过了 provider 转换也不丢。 |
| Strands Agents SDK (6.9k★) | #2340 | 并发的 tool result 按请求顺序回填,并行执行不会打乱模型看到的输出顺序。 |
| Strands Agents SDK (6.9k★) | #2823 | 空 model stream 时避免 UnboundLocalError |
| Strands Agents SDK (6.9k★) | #2396 | 传递 structured output 的请求参数 |
| Strands Agents SDK (6.9k★) | #2306 | 规范化 3gp 视频格式 |
| Strands Agents SDK (6.9k★) | #2304 | 显式映射 webp 图片 |
| Strands Agents SDK (6.9k★) | #2656 | 处理空的 Bedrock content block |
全部 2 个已合并的 Pipecat PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Pipecat (14.6k★) | #4766 | DTMF 缓存键补上采样率,同一按键不同采样率的提示音不再互相串音 |
| Pipecat (14.6k★) | #4553 | 修复 protobuf transport 丢失 interruption frame:实时语音 agent 的打断事件跨传输后仍能保留 |
全部 4 个已合并的 LightRAG PR
| 项目 | PR | 修了啥 |
|---|---|---|
| LightRAG (39.1k★) | #3031 | 从 Docling 异步结果 envelope 里抽出 Markdown 正文,RAG chunk 拿到干净文本,不混 JSON/base64 噪声。 |
| LightRAG (39.1k★) | #3123 | 把 API 文档配色和暗色主题同步,endpoint 示例在 dark mode 下也读得清。 |
| LightRAG (39.1k★) | #3206 | PostgreSQL 表存在性检查尊重 search_path,非 public schema 在迁移、建表前就能识别对。 |
| LightRAG (39.1k★) | #2796 | 修复 None file_path 传播为 unknown_source:补 #2793 遗漏的处理层 |
全部 1 个已合并的 Kimi Code PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Kimi Code (7.0k★) | #2255 | 通过 status_line 配置自定义 TUI 底部状态栏(仿 codex / claude code 的 footer 形态) |
全部 1 个已合并的 Graphiti PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Graphiti (30.2k★) | #1531 | 递归清掉 FalkorDB 查询参数里的 NUL 字节,单个异常文档字符串打断不了批量图写入。 |
全部 1 个已合并的 OpenHarness PR
| 项目 | PR | 修了啥 |
|---|---|---|
| OpenHarness (15.5k★) | #185 | TUI tab 补全三合一修复:光标跳回、去除尾部空格、接受 /quit 别名 |
全部 1 个已合并的 LM Evaluation Harness PR
| 项目 | PR | 修了啥 |
|---|---|---|
| LM Evaluation Harness (13.7k★) | #3822 | 保证传给 Anthropic 的 stop sequence 非空,避免请求被拒 |
全部 1 个已合并的 MCP Registry PR
| 项目 | PR | 修了啥 |
|---|---|---|
| MCP Registry (7.1k★) | #1310 | 拒绝损坏的 publisher 元数据,而不是接收畸形条目 |
全部 4 个已合并的 ClawTeam PR
| 项目 | PR | 修了啥 |
|---|---|---|
| ClawTeam (5.5k★) | #1 | 首个 PR:122 个测试、CI、团队模板、config 修复、任务耗时追踪 |
| ClawTeam (5.5k★) | #40 | 可插拔 TaskStore:将任务持久化抽取为可替换的后端抽象层 |
| ClawTeam (5.5k★) | #32 | Gemini CLI 支持:spawn、权限、prompt 注入双 backend 适配 |
| ClawTeam (5.5k★) | #36 | Kimi CLI 支持:spawn backend、权限处理、3 个新测试 |
全部 2 个已合并的 MCP Go SDK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| MCP Go SDK (5.0k★) | #962 | 拒绝重复的 initialize 请求,MCP session 初始化后的协议状态保持一致。 |
| MCP Go SDK (5.0k★) | #981 | 补齐 Implementation.description 元数据,同时让空描述继续不进入序列化后的 MCP payload |
全部 5 个已合并的 Microsoft Recommenders PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Microsoft Recommenders (21.8k★) | #2345 | 先用 PyTorch 查 GPU 显存,numba 兜底,CUDA context 不可用时 GPU discovery 不至于直接失败。 |
| Microsoft Recommenders (21.8k★) | #2349 | 优先用 torch 查询 GPU 显存 |
| Microsoft Recommenders (21.8k★) | #2322 | 让 benchmark 的推荐数量参数生效,评测脚本按要求生成 top-k。 |
| Microsoft Recommenders (21.8k★) | #2351 | TensorFlow GPU 不可用时 fail fast |
| Microsoft Recommenders (21.8k★) | #2350 | 统一标注 MAP@k notebook 的输出 |
全部 1 个已合并的 Google Gen AI SDK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| Google Gen AI SDK (3.9k★) | #2564 | 让 Live Music API key 不再进入 websocket URL query,改由请求 header 承载,避免密钥出现在日志和代理路径里 |
全部 1 个已合并的 EvalScope PR
| 项目 | PR | 修了啥 |
|---|---|---|
| EvalScope (3.2k★) | #1381 | 从 OpenAI 风格的 text content block 里读 SciCode 的 assistant 答案,scorer prompt 拿到真答案而不是空字段。 |
全部 3 个已合并的 OpenHands SDK PR
| 项目 | PR | 修了啥 |
|---|---|---|
| OpenHands SDK (1.0k★) | #3248 | 用 RLock 串行化 LiteLLM modify_params 的保存、设置和恢复,避免并发 completion 泄漏全局参数状态 |
| OpenHands SDK (1.0k★) | #3247 | 用 git rev-parse --git-dir 校验 git workspace,坏掉的嵌套 repo 打不崩 /api/git/changes。 |
| OpenHands SDK (1.0k★) | #3225 | remote completion 日志按 UTF-8 写,中文和非 ASCII 输出在本地回放、排查时不乱码。 |



