github.com-openai-openai-dotnet
all · 6 devs · built 2026-06-13
Repository snapshot
Monthly reports
Highlights
- Introduced a new feature to expose *log probabilities* via the public `ResponseContentPart` class, providing more granular data for AI model outputs, as seen in [7587d9d5 · Yucheng Fu].
- Added a top-level `GetResponsesClient` factory method to the `OpenAIClient`, simplifying access to response-related functionalities and improving client usage, validated by new smoke tests in [fcf157c8 · Copilot].
- Enhanced the extensibility of *tooling models* and *response items* by exposing `ResponseTool.Kind` and `ResponseItem.Kind` respectively, along with widening constructor accessibility for easier derivation, detailed in [f21926d0 · Jose Arriaga Maldonado] and [3840091c · Jose Arriaga Maldonado].
- Undertook significant *TypeSpec refactoring* to standardize enums to unions across various API modules (audio, chat, files, images, etc.) and consolidated model definitions, which also introduced new capabilities for *chat*, *runs*, and *vector stores* modules, as part of [6f96bb18 · Christopher Scott] and [58fadf5a · ShivangiReja].
Observations
- Overall development output decreased by 48% (5 current vs 10 2-month average), indicating a significant slowdown in new feature delivery.
- The grow score experienced a substantial 83% decrease (1 current vs 8 2-month average), reflecting a reduced focus on new feature development during this period.
- Maintenance activities saw a 57% increase (4 current vs 2 2-month average), suggesting a strategic shift towards improving existing systems, refactoring, and infrastructure work.
- Commit volume dropped by 41% (22 current vs 37 2-month average), aligning with the overall decrease in output and grow score.
- The repository maintained a zero waste score for the period, indicating that all changes were effectively integrated without significant rework or reversals, despite a commit categorized as 'waste' for a bug fix in [79286f16 · Christopher Scott].
- Extensive refactoring efforts were observed across multiple components, including renaming `SkillClient` operations for clarity ([9116b151 · Copilot]), standardizing `ContainerClient` file upload methods ([53c8c376 · Copilot]), and streamlining Dependency Injection extensions ([bc51c499 · Copilot]).
- Significant attention was paid to CI/CD pipeline robustness and project structure, with fixes for outdated test recordings ([315a7238 · Jose Arriaga Maldonado]), explicit permission declarations ([ebdcca41 · Arpit Jain]), and updates to repository paths after a project split ([0e6980e1 · Copilot]).
- A commit categorized as 'grow' ([6f96bb18 · Christopher Scott]) had a grow score of 0, suggesting foundational or architectural improvements that enable future growth but do not directly contribute to the current period's feature score.
Performance over time
ETV stacked by Growth, Maintenance and Fixes.
Average performance per developer
ETV per active developer per month.
Active developers over time
Unique developers committing each day.
Knowledge concentration
How dependent is this repo on a small number of contributors? Higher top-1 share = higher key-person risk.
Jose Arriaga Maldonado owns 46.3 % of commits.
Top contributors
Most impactful commits
Top 20 by ETV in the all-time window.
- 8.5ETVPrepare 2.2.0-beta.2 release (Part 1) (#349)Jose Arriaga Maldonado · d6615abe · 2025-02-18
- 3.2ETVAdd ApplyPatchTool for Responses (#1067)Jose Arriaga Maldonado · c76b359e · 2026-04-03
- 2.9ETV[Audio] Add support for diarized audio transcription (#1008) [Audio] Add support for diarized audio transcriptionShivangiReja · d002b9c3 · 2026-03-17
- 2.7ETVAdd support for web search action (#1064)Jose Arriaga Maldonado · 878d727e · 2026-04-02
- 2.2ETVAdd ChatTools and ResponseTools helper classes (#422) This PR adds functionality for managing OpenAI function tools in chat completions and responses, implementing two utility classes: `ChatTools` and `ResponseTools`. ### Key Features - Unified Tool Management - Both classes handle local and remote MCP (Model Context Protocol) tools - Support for both static method tools and remote MCP server tools - Vectorized tool lookup using embeddings for smart tool filtering - Tool Registration - Local tool registration via reflection from static methods - Remote tool registration from MCP servers - Tool Filtering - Vector-based tool filtering when an `EmbeddingClient` is provided - Configurable similarity thresholds - Customizable maximum tool limitsChristopher Scott · 9308b2b1 · 2025-05-09
- 2.1ETV[Skills] Add Skills API support (#1077) * [Skills] Add Skills API supportShivangiReja · f29f382f · 2026-04-10
- 2.1ETVGenerate ListChatCompletions with pagination (#549)Christopher Scott · 8b34d7c1 · 2025-07-29
- 1.6ETVAdd Action property to ImageGenerationTool (#1060)Christopher Scott · 3da05e29 · 2026-04-02
- 1.6ETVGenerate GetChatCompletionMessages with pagination (#569)Christopher Scott · 45f9ea51 · 2025-07-31
- 1.5ETVAdd `AuthenticationPolicy` constructor to other clients (#575) Following up after https://github.com/openai/openai-dotnet/pull/565.Jose Arriaga Maldonado · 3613b6a0 · 2025-07-31
- 1.5ETV[Audio] Add ChunkingStrategy for audio transcription (#1036) * [Audio] Add ChunkingStrategy for audio transcriptionShivangiReja · a20168bf · 2026-03-20
- 1.5ETVAdd `ResponseItem` constructors (#625) All the classes derived from `ResponseItem` now have public constructors, and these constructors are generated. A side effect of making these classes behave as both, inputs and outputs, was that their required properties got setters. Setters make sense when the values of these properties can be updated, but in this particular case they should only be settable at construction time. This is a limitation in the code generator being tracked by the following issue: 🔗 https://github.com/microsoft/typespec/issues/5175#issuecomment-3222039076Jose Arriaga Maldonado · 4376162f · 2025-08-28
- 1.4ETVRestore `Model` in `ResponsesClient` (#870) * Restored `Model` in `ResponseClient` * Converted `ResponseTokenUsage`, `ResponseInputTokenUsageDetails`, and `ResponseOutputTokenUsageDetails` into protocol models * Fixed examplesJose Arriaga Maldonado · 74f7e256 · 2025-12-11
- 1.3ETVRemove typed ProcessMessageAsync methods (#1132)Christopher Scott · 9c02a591 · 2026-05-07
- 1.1ETV[Audio] Add SSE streaming support for speech generation (#1047) Add SSE streaming support for speech generationShivangiReja · 1eb5f826 · 2026-03-25
- 1.0ETVPrepare 2.5.0 release (#713)Jose Arriaga Maldonado · 02c8c771 · 2025-09-24
- 1.0ETVAdd derive types for ResponseMessageAnnotation (#649) * Add derive types for ResponseMessageAnnotationShivangiReja · dd6aa130 · 2025-09-03
- 1.0ETVExpose `ResponseItem.Kind` and add `protected internal` constructor to `ResponseItem` (#1183) This PR updates the Responses item model surface area by introducing a public `ResponseItemKind` extensible enum type and shifting tool models/serialization from the internal `InternalItemType` to `ResponseItemKind`, including widening `ResponseItem`’s constructor accessibility to `protected internal` to support derivation.Jose Arriaga Maldonado · 3840091c · 2026-05-30
- 0.9ETV[Audio] Add Voices API support to AudioClient (#1056) * Add voice api in Audio * Export APIShivangiReja · 8cbe969e · 2026-03-31
- 0.8ETVMake Vector Store APIs non-LRO (#655)ShivangiReja · 8c2c2479 · 2025-09-04