Repository navigation
Releases: zombi-dev/ChatGPTWebSDK
Release list
v1.7.1
v1.7.1
Document and ZIP attachments now work through the ChatGPT web backend using the original C# SDK file types. Keep the browser-free ApiOnly default introduced in v1.7.0; this update extends the shared file adapter used by the drop-in SDK, native SDK and proxy.
Files and compatibility
- Support Chat Completions
fileparts and Responsesinput_fileparts with inline base64/data URIs or an uploaded file ID. Preserve the original client signatures and OpenAI compatibility assembly version 2.14.0.0. - Upload documents as
my_files, ZIP archives asace_uploadand images asmultimodal. Use the same category and resolved MIME type for creation, signed storage upload and processing. - Infer MIME types from common document, spreadsheet, code, image and archive extensions, including uppercase filenames. Explicit MIME types take precedence; JPEGs retain
image/jpeg. - Represent documents as metadata attachments with text, rather than synthetic image pointers or zero image dimensions. Mixed image/document messages keep the existing image pointer format alongside file metadata.
Validation and state
- Validate every content part and file reference within a message before starting uploads. Reject malformed base64, conflicting sources, invalid MIME values, remote file URLs and unsupported rendering-detail overrides explicitly.
- Retain account/application-user ownership checks, bounded uploads, signed-host credential isolation, cached history attachments and append-only continuation. Collected replies and SSE share the same behavior in ordinary, project and temporary chats.
- Keep the existing native Sentinel decoder and fresh-proof handling. The reviewed fork adds no newer solver; its external-host authorization and broken image callers were not adopted.
Verification and downloads
- Add 55 core/drop-in cases and four native integration cases. The build gate requires 1,639 core/drop-in, 26 native, 168 automation and 12 extension checks before packaging.
- Signed-in live tests uploaded and processed a PDF and an uppercase
.ZIParchive, then ChatGPT recovered a private synthetic marker from each file through Responses file references. Both test conversations were deleted. The backend rejected direct file deletion with HTTP 404, so no remote file-purge claim is made. - Synchronize SDK packages, browser extensions, DLL/proxy archives and browser bundles at 1.7.1. No new runtime dependency is required.
See the file examples, reference review and verification record. All commits are linked in the collapsed appendix below.
All 7 commits
Fixes
- aafcf6e fix(files): route document and archive uploads
Features
- ada8426 feat(compat): support original SDK file inputs
Tests
- 1e955ff test(files): cover attachments and ownership
- 7f0d567 test(native): verify original file parts and SSE
Build and CI
- 3b00700 ci(tests): gate document and archive coverage
Documentation and maintenance
v1.7.0
v1.7.0
Up to 100× faster Sentinel startup
ChatGPT web generation now defaults to ApiOnly, a native C# HTTP Sentinel implementation. It obtains fresh requirements, solves proof of work and decodes supported challenges without starting Chromium or Python. A complete cold authenticated handshake measured 0.89 seconds, with three warm handshakes at 0.38–0.42 seconds. The headline compares this path with the up-to-100-second browser waits reported in the live example; it describes Sentinel preparation, and total response time still depends on the service and network.
Features and compatibility
- Add
HttpSentinelProviderfor direct web clients and select it automatically in both the drop-in and native OpenAI runtimes, proxy, CLI and quick-start example. Signed-in access, append-only remote conversations, SSE and MCP use the existing shared conversation implementation. - Rename the previous
ApiOnlymode to ExternalApi. Keep externally supplied session/challenge providers, explicit Hybrid browser assistance and reserved BrowserOnly. Preserve compiled enum values 0, 1 and 2; the new nativeApiOnlyis 3. Source consumers should rebuild to adopt the new initializer default. - Default native
ApiOnlyto managed .NET HTTP; retain system curl defaults forHybridandExternalApi, with explicit driver overrides. The daily UI monitor selects Hybrid explicitly so it continues observing frontend changes.
Performance and safeguards
- Read build and location metadata from ChatGPT itself, eliminating the reference client's two external geolocation requests. Cache metadata separately by account and credentials for 30 minutes, reuse HTTP connections and keep
WarmUpAsync()free of proof collection. - Decode bounded symbolic instructions directly instead of generating JavaScript and parsing an AST. The same captured challenge measured 3.1 ms median warm C# decoding versus 1.3 seconds for the Python reference. Pre-serialize fixed proof fields and bound instruction depth, size and CPU work; no downloaded code executes.
- Obtain fresh answers for every turn, preserve credential redaction and never replay proofs or automatically repeat uncertain generations. Unsupported formats and Cloudflare blocks remain explicit errors; the application can select Hybrid or ExternalApi when needed.
Verification and downloads
- Add 100 core regression cases, four native integration cases and one workflow check. The gate requires 1,584 core/drop-in, 22 native, 168 automation and 12 extension checks. Tests on all four platforms and native browser bundle verification precede publication.
- A fresh authenticated live run passed a collected reply, an SSE follow-up with only the new message, an independent remote conversation read and a temporary-chat MCP tool loop. The test conversation was deleted afterwards. A repeat packaged MCP assertion failed while a separate fresh control passed; live tool invocation remains variable. The extension export and challenge fixtures stay private.
- Synchronize all four NuGet packages, DLL/proxy archives, Chromium/Firefox extensions and four browser bundles at 1.7.0. The OpenAI compatibility assembly remains 2.14.0.0. The existing OAuth and official-platform backends retain their separate authentication contracts.
See the verification record for timings, protocol scope and remaining live-test limits. All commits are linked in the collapsed appendix below.
All 12 commits
Features
- e735325 feat(sentinel): decode HTTP challenges and solve proofs in C#
- 5953b37 feat(sentinel): obtain fresh authorization without a browser
- c6525ca feat(runtime): default to ApiOnly and retain ExternalApi
- f568bc3 feat(proxy): select native Sentinel in proxy and CLI
Implementation
- b3c21ce refactor(transport): share authenticated HTTP request construction
Security
- a1731fe fix(security): invalidate cached sessions when context changes
Tests
- 4e04718 test(sentinel): cover challenges isolation and mode migration
- e858bfa test(native): verify default HTTP mode with official clients
Build and CI
- 58d21e0 ci(tests): gate HTTP Sentinel and preserve UI monitoring
Documentation and maintenance
v1.6.2
v1.6.2
Hide a leading <escape>[[final:NONCE]]</escape> before an MCP-assisted answer. The answer now reaches streamed output, returned responses and the saved visible conversation without the escaped protocol prefix. This fixes final-answer formatting after successful tool execution; the escaped tool-request support introduced in v1.6.1 remains in place.
Fixes
- Recognize the current exchange's final marker when only that marker is wrapped in escape tags and the answer follows the closing tag. Preserve the answer's original whitespace, Unicode and subsequent literal text.
- Buffer partial opening tags, final markers and closing tags across SSE snapshots. Apply the same normalization to every cumulative snapshot, including the completed response used for persistence, so a later update cannot reintroduce the prefix.
- Preserve quoted markers in prose or explicitly marked answers, ordinary escaped text and text that does not form a complete matching wrapped final marker. The decoder removes the leading protocol wrapper rather than replacing matching strings throughout an answer.
- Keep application approval, bounded repair and durable tool outcomes on their existing paths. Formatting cleanup uses the current response and requires neither another generation nor repeated tool execution.
Validation and downloads
- Add 40 regression cases covering fresh chats, follow-ups, mixed and resubmitted history, six stream chunk sizes, saved responses, visible history, empty answers, partial wrappers, quoted text and replacement updates. Typed Chat Completions and Responses clients are checked with streamed and collected output.
- Require at least 1,484 core/drop-in SDK cases, plus 18 native SDK, 167 automation and 12 extension cases: 1,681 passing checks in the local gate. Four platform test jobs and all bundled-browser checks remain required before publication.
- Synchronize SDK packages, Chromium and Firefox extensions, install instructions and download links at 1.6.2. The OpenAI compatibility assembly retains version 2.14.0.0.
See the verification record for the deterministic binary probe and test scope. Fresh live generation, OAuth, images and the full historical edit/regenerate suite were not rerun for this formatting patch. All commits are linked in the collapsed appendix below.
v1.6.1
v1.6.1
Fix MCP tool requests wrapped in <escape>...</escape> becoming literal final answers on follow-ups. Valid wrapped requests now execute through the existing tool pipeline, while malformed requests reach bounded protocol repair. This closes a prefix-recognition gap also present in v1.5.1; it is not identified as a new v1.6.0 regression.
Fixes
- Buffer partial escape tags and tool prefixes across SSE snapshots. Keep wrapped requests out of final-answer text, streaming deltas and the visible transcript while the tool exchange completes.
- Require the current nonce, matching tool markers and a closing escape tag before validating the complete JSON batch. Ordinary escaped text and commands quoted in prose or explicitly marked final answers retain their original text.
- Apply the existing hidden correction budget to malformed JSON, incomplete wrappers and stale wrapped markers. Strict mode still rejects invalid requests without executing tools; repeated failures stop at the configured limit.
- Preserve application approval, progress events and durable outcome records. Confirmed calls execute once; uncertain calls remain pending and block continuation until explicitly resolved.
Validation and downloads
- Add 83 regression cases covering fresh chats, follow-ups, mixed and resubmitted history, stream boundaries, three-call batches, approval and uncertain outcomes. Typed Chat Completions and Responses clients are checked with both streaming and collected results.
- Require at least 1,444 core/drop-in SDK cases plus 18 native SDK, 167 automation and 12 extension cases. Four platform test jobs and all bundled-browser checks remain required before publication.
- Update SDK packages, browser extensions, installation instructions and download links to 1.6.1. The OpenAI compatibility assembly retains version 2.14.0.0.
See the verification record for reproduction and test details. All commits are linked in the collapsed appendix below.
v1.6.0
v1.6.0
Keep browser sessions and MCP connections ready between messages, with bounded idle cleanup and explicit ownership. Add browser-free Codex OAuth and integration with the real official C# SDK, making three explicit backend choices available. Each website generation still obtains fresh Sentinel answers; MCP recovery avoids repeating tool side effects.
MCP reliability
- Reuse owned HTTP and stdio connections within the same account, application user and chat. Endpoint, credentials and process settings form part of the connection identity; scoped server selections and tool allowlists are checked again on each message.
- Refresh tool discovery for every message and retry transient initialization or discovery failures once by default. An expired HTTP session is replaced before execution. Authentication failures and application-supplied clients are not automatically retried.
- Resume interrupted Streamable HTTP SSE responses with GET and
Last-Event-IDwhen the server supports it. Never repeat the original tool-call POST; an outcome that cannot be confirmed retains the existing reconciliation requirement. - Accept tool blocks wrapped in Markdown fences and request one hidden correction for malformed JSON or arguments before executing any tools in that batch. Approval, call limits and durable execution records remain in effect. Progress observer failures no longer change a confirmed tool outcome.
Browser and Sentinel
- Retain isolated account sessions for two minutes of inactivity by default, avoiding a fresh Chromium process and context on every turn. Reuse is configurable, session counts are bounded, changed credentials replace the context, and asynchronous disposal releases owned resources.
- Add
WarmUpAsync()to load the authenticated composer ahead of a send, plus sanitized phase timings throughBrowserSentinelOptions.TimingObserved. Warm-up does not submit a draft or request challenge answers. - Preload the next composer after capture while the current HTTP generation runs, enabled by default. Reuse the pending navigation on the next send instead of loading it again. Preloading collects no fresh proofs; disabling it restores loading at send time.
- Keep the same browser open through repeated Cloudflare challenge pages until the configured timeout or cancellation. A repeated challenge response alone does not close or restart it; configured startup retries follow a full failed attempt.
- Keep generation interception active while a session is idle, including conversation URLs with query parameters. Fresh answers are captured only during an SDK handshake, and the browser-generated draft request is aborted before transmission.
- Preserve invisible Chromium support and automatic hardware-to-software rendering fallback. HTTP-only mode continues to accept an external authorized Sentinel provider. Actual challenge latency depends on the upstream service and sign-in state; a one-second live handshake is not guaranteed.
Optional Codex OAuth transport
- Add a separate browser-free transport adapted from
evanzhoudev/openai-oauth, with upstream Apache-2.0 attribution retained in NuGet packages and downloadable bundles. The default web backend continues to bind actual ChatGPT website conversations. - Add explicit Codex auth-file import, PKCE authorization/callback exchange, account validation and serialized refresh-token rotation. Credential writes are atomic, preserve unrelated file fields and use owner-only permissions on Unix. The SDK does not automatically inspect or modify a shared Codex login.
- Support the existing official .NET Responses, Chat Completions and model clients over OAuth, including SSE, native function-call results, one-shot tool arguments and non-streaming response collection. Truncated or failed streams do not become successful completions, and generation requests are never automatically replayed.
- Support direct OAuth image generation/editing through the existing ImageClient, with base64 output, up to five reference images, bounded uploads and explicit unsupported-option errors.
- Discover account-specific models and cache their capabilities, including reasoning/verbosity defaults and Responses Lite request normalization. Keep local continuation and item-reference history isolated by account, user and thread, with count and memory limits. This stateless backend replays history and does not create website chats.
Native official SDK and backend selection
- Add
ChatGPTWebSdk.Native, which references the real signed OpenAI 2.14.0 NuGet library and supplies explicit web and Codex client factories. Existing native constructors retain their platform defaults; official, web and OAuth clients can coexist without globally changing transport. - Add
ChatGPTOfficialto both package alternatives for API-key clients with the native endpoint, authentication, retry options and platform features. Backend selection never silently retries a generation or moves a website conversation ID to another service. - Keep the integration and drop-in packages separate to avoid duplicate OpenAI assemblies. Publish the Native NuGet alongside the existing packages and verify its three methods against the original SDK.
Lifecycle, packaging and validation
- Add asynchronous runtime/client disposal and preserve application ownership of supplied providers and MCP clients. Update the proxy and diagnostic commands to release the resources they create.
- Require native browser bundles to pass an offline test in real Chromium: repeated challenge pages, warm-up, two fresh handshakes, one reused session and interception of generation requests. The diagnostic must load the exact packaged SDK assemblies; prepare/verify receipts include the core, browser and compatibility DLL hashes.
- Add 155 core/drop-in SDK cases, 18 native SDK integration cases and a native packaging gate, bringing the automated gate to 1,361 core/drop-in SDK, 18 native SDK, 167 automation and 12 extension tests. Packages and browser extensions share version 1.6.0; the OpenAI compatibility assembly keeps version 2.14.0.0.
See verification details for the measured local results and live-service limits. The release workflow adds all linked commits in a collapsed categorized appendix.
All 36 commits
Features
- aeb856a feat(resources): add bounded exclusive async leases
- def7774 feat(mcp): configure discovery recovery and SSE resumption
- 8d87b2c feat(mcp): reuse scoped connections and repair tool requests
- b6c0940 feat(runtime): add warmup and asynchronous ownership cleanup
- f1f2f9c feat(oauth): add explicit sessions and serialized refresh
- 868d3d7 feat(codex): bound isolated response continuation history
- 5c839c3 feat(codex): adapt Responses and Chat over direct OAuth HTTP
- bfbf1bd feat(images): support Codex generation and reference edits
- 089feb0 feat(codex): expose explicit typed OAuth clients
- d11cc24 feat(official): add explicit platform API clients
- eae7140 feat(native): integrate the real official OpenAI package
- dfbf13c feat(cli): verify real browser reuse without remote generation
Tests
- a1e1a0c test(resources): cover lease contention and cleanup
- f478316 test(mcp): verify HTTP and stdio session recovery
- e06ae60 test(mcp): cover tool protocol repairs and uncertain calls
- f9948cb test(sentinel): verify fresh proofs and challenge waiting
- b852ab3 test(runtime): verify owned and external resource lifetimes
- 2b7f956 test(oauth): verify callbacks refresh and private storage
- f223813 test(codex): cover streaming history and model capabilities
- 93d4c53 test(images): verify OAuth image input and output contracts
- b2d54ff test(official): verify platform and web clients coexist
- d06ab3d test(native): validate all three backends and public signatures
- [cdcc17e](cdcc17ebd5d7...
v1.5.1
v1.5.1
A patch release for fuller changelogs and updated GitHub Actions dependencies. Release pages now explain the changes in more detail while keeping the complete commit history folded away until requested.
Release notes
- Add a categorized appendix containing every commit in the update, with a direct link to each commit. The section stays collapsed when readers first open the release page.
- Put a version note at the top when an internal release checkpoint was never publicly released, and explain that its changes are included in the next public update.
- Match historical release boundaries by source tree after a history rebuild, preserving the original published tags and download targets.
- Use the same formatter for automatic workflow publication and manual releases.
- Expand the existing public changelogs, including the note that internal v1.4.0 shipped through v1.5.0.
Dependencies
- Include Dependabot #4: setup-node 7.1.0, upload-artifact 7.0.2 and download-artifact 8.0.2, pinned to exact commits.
Build and CI
- Run Apple Silicon tests and native browser verification on GitHub's macOS 15 ARM image after repeated macOS 26 runner stalls. Automatic and software rendering checks remain required before publishing a browser bundle.
- Accept release versions followed by sentence punctuation in commit bodies, while rejecting partial matches against other versions. The workflow now uses the tested commit validator for both title and version checks.
- Bound browser driver initialization, CDP detach and context/browser cleanup, including disposal of drivers that finish after cancellation. A stalled browser close still terminates the owned process and removes its profile.
- Log native verification stages and enforce an independent process deadline. Descendants that retain output pipes fail the build instead of leaving CI waiting indefinitely.
Validation and downloads
- Run 1,206 SDK tests, 164 automation tests and 12 extension tests before building release assets on each of the four supported platforms.
- Publish synchronized SDK, proxy and extension packages, plus native Chromium bundles for Windows, Linux, Intel macOS and Apple Silicon, with SHA256 checksums.
All 20 commits
Dependencies
- 61ad5e8 build(deps): update GitHub Actions [skip ci]
Features
- 62abd58 feat(release): append categorized commit links
Build and CI
- 71635e4 build(release): share notes formatter with manual publishing
- 4b4a0cd ci(release): embed changelog formatting in publisher
- 9553196 ci(macos): use macOS 15 for Apple Silicon builds
- 0e3bb06 ci(browser): enforce a native verification deadline
- 8a447f2 build(browser): report native verification stages
Tests
- 42648f5 test(release): cover changelog links and release boundaries
- afeed91 test(release): verify manual formatter pagination
- 1f484b4 test(ci): cover commit version boundaries
- 86264ca test(browser): verify owned cleanup after timeouts
- 5e94da8 test(ci): cover stalled processes and output pipes
Documentation and maintenance
- 74e84f9 docs(release): expand changelogs and explain internal versions
- 3b0d363 docs(downloads): update patch release links
- f4fe81c chore(release): 1.5.1
- 4c40cf8 docs(ci): record Apple Silicon runner workaround
- 4f1c89a docs(ci): record commit validation fix
- 74c50da docs(ci): record bounded browser verification
Fixes
v1.5.0
Version note: v1.4.0 was an internal development version and was not publicly released. Its changes are included in this release.
v1.5.0
Publish the accumulated model-policy and monitoring work, repair the CI/release pipeline and include the pending dependency updates.
Features
- Default to the observed GPT-6 and GPT-5.6 Sol families, plus GPT-5.5 before its documented October 14 retirement boundary. Initialization options can disable these restrictions.
- Run daily compatibility monitoring for API, model-catalog and UI changes, alongside the SDK example. Confirmed complete example failures escalate to CRITICAL.
Fixes
- Handle Windows CRLF checkouts when comparing and synchronizing embedded workflow scripts.
- Check missing tags through the Git references endpoint and resolve existing annotated tags before comparing release targets.
- Separate Chromium preparation, native verification and archiving into bounded CI steps; require matching verification fingerprints before creating a browser archive.
- Treat authentication, challenge and incomplete-probe results as UNAVAILABLE warnings without opening false CHANGE issues or closing an existing incident.
Security and dependencies
- Validate trusted test/build provenance in the privileged publisher, with no repository checkout or execution of downloaded code.
- Include Dependabot #1 for github-script and Dependabot #3 for seven .NET packages.
- Preserve OpenAI 2.14 streaming signatures after the System.ClientModel 1.16 type rename.
Validation and maintenance
- Pass 1,327 tests on each supported platform, all four native browser bundle builds and CodeQL checks.
- Verify 13 published assets and their checksums, plus MCP scopes and typed SSE in a fresh .NET 8 consumer.
- Rebuild main into focused Conventional Commits while preserving the original published release tags.
All 70 commits
Commit links follow the rebuilt main history. Published tags and downloads retain their original targets.
Build and CI
- af0d4be build(sdk): update solution and package configuration
- 76abbd0 ci(monitor): add monitor issue implementation
- 18fb332 ci(release): add release implementation
- db2ce4c ci(workflows): add sync workflows implementation
- 567ff87 ci(monitor): record reviewed UI and API baseline
- 404a99c ci(monitor): compare sanitized compatibility reports
- b5108f2 build(tools): package native Chromium and SDK bundles
- cdcf269 build(tools): publish verified release assets
- 109810e ci(ci): update platform browser bundles
- 34f0c31 ci(ci): add daily compatibility probes
- c703661 ci(ci): update cross-platform test gates
- 7c4a0f5 ci(commits): validate short Conventional Commit titles
- 44be894 ci(release): use concise version titles
- 9bad822 build(browser): separate bundle preparation and verification
- 6a283f0 ci(browser): isolate bundle phases for 1.5.0
Tests
- ec2ce2a test(monitor): cover monitor behavior
- 71d8fc2 test(release): cover release behavior
- 7ab24ba test(ci): cover workflows behavior
- 5133d7d test(example): update QuickStart and configuration examples
- 2e80d2a test(example): add automated two-turn SSE smoke checks
- 95c9f1c test(ci): update required SDK and extension checks
- a9b72fc test(models): align existing fixtures with the supported model policy
- f3f3064 test(sdk): extend captured operation behavior
- 01e4e80 test(sdk): cover example smoke behavior
- db34f04 test(sdk): cover model policy behavior
- 0ce4fec test(sdk): extend test support behavior
- fc9bc56 test(commits): cover categorized commit titles
- 401a4bd test(monitor): prevent false incidents for blocked checks
- b30ba57 test(release): require concise version titles
- 158bda0 test(streaming): cover legacy factory parsing, cancellation and disposal
- d8ea094 test(ci): update required SDK and extension checks
- e6a57b5 test(windows): verify workflow synchronization in CRLF checkouts
- 5e3216c test(release): cover missing and annotated tag responses
- fa8b05a test(ci): enforce browser verification before archiving
Dependencies
- 6411314 build(deps): configure dependency update automation
- 1b728a7 build(deps): update github-script action
- 7159b64 build(deps): categorize future Dependabot commit titles
- a944d94 build(deps): update .NET client and test packages
Documentation and maintenance
- e077a87 docs(sdk): document daily compatibility checks and incident rules
- 4bf7049 docs(release): document release changelog
- 6f5ba06 docs(sdk): document tested build and release process
- a752657 docs(sdk): document verified behavior and limitations
- 9727677 docs(readme): update installation and feature guidance
- 0b8f826 chore(release): 1.4.0
- 99d2309 docs(commits): define focused commits and concise releases
- d1f24e6 docs(sdk): document daily compatibility checks and incident rules
- b70c9af docs(release): document release changelog
- 767a980 docs(sdk): document tested build and release process
- aa89bae docs(sdk): document verified behavior and limitations
- 6c5a251 docs(readme): update installation and feature guidance
- [21f7458](21f74584ad6000a6...
v1.3.0
Scope MCP servers to an individual chat or one logical message while retaining initialization-wide registrations and their defaults.
Features
- Select servers in initialization, chat and message order, so each turn can use the appropriate tools without reinitializing the SDK.
- Give every scope independent URLs, endpoints, credentials and connection settings; scopes may also share an endpoint.
- Override a server by label, exclude selected inherited servers or replace the inherited set completely.
Behavior and validation
- Keep the selected scope stable through the full tool loop, then restore the chat or initialization defaults for later turns.
- Support scoped tools in normal, project and temporary chats, including compatible Responses declarations and typed SSE.
- Test account/user/thread isolation, message lifetimes, concurrent contexts and recovery after an uncertain tool call.
All 17 commits
Commit links follow the rebuilt main history. Published tags and downloads retain their original targets.
Documentation and maintenance
- efc05ea docs(sdk): document MCP configuration and scoped tool calls
- 68a4144 docs(sdk): document verified behavior and limitations
- 0a884f2 docs(readme): update installation and feature guidance
- 37c112a chore(release): 1.3.0
Features
- 0d44be4 feat(openai): extend OpenAI client initialization and web modes
- 82b3487 feat(conversations): extend append, edit and reconciliation behavior
- 865fe80 feat(mcp): extend MCP initialization settings
- ea017c8 feat(mcp): extend conversation tool-call bridge
- 406f7d4 feat(mcp): add scoped MCP selection options
- 745f145 feat(compat): extend Chat and Responses request adaptation
- 4e68c9b feat(compat): extend in-process OpenAI HTTP transport
Tests
- e5aea37 test(ci): update required SDK and extension checks
- 8698918 test(sdk): cover mcp scope behavior
- 35c69e4 test(sdk): cover mcp scope transport behavior
- 605616b test(sdk): extend mcp transport behavior
- cf5612b test(sdk): extend mcp server behavior
Build and CI
- 9841d11 build(tools): publish verified release assets
v1.2.0
Add MCP tools to linked ChatGPT conversations through a message-based tool loop, available through the compatible clients and proxy.
Features
- Connect reusable stdio, Streamable HTTP and legacy SSE MCP servers with independent connection settings.
- Adapt tool requests and results into conversation turns, filtering control traffic from the completion text returned to applications.
- Preserve conversation context through multiple tool rounds and typed SSE streaming.
Controls and validation
- Apply tool allowlists, approval callbacks, size/count limits, timeouts and per-user proxy permissions.
- Record uncertain tool outcomes so recovery does not blindly execute an operation again.
- Expand integration coverage with real fixture processes, HTTP/SSE servers, cancellation and browser bundle checks.
All 33 commits
Commit links follow the rebuilt main history. Published tags and downloads retain their original targets.
Dependencies
- ddfebcc build(deps): configure dependency update automation
- 7efbe15 build(deps): remove initial dependency update automation
- 373d4bf build(deps): vendor modelcontextprotocol sources and notices
Build and CI
- c4bac65 build(sdk): update solution and package configuration
- d82d380 build(packaging): update SDK and extension artifacts
- 2710e49 build(tools): publish verified release assets
- 4a4621c ci(ci): update platform browser bundles
- d98c294 ci(ci): update platform browser bundles
Documentation and maintenance
- a74e9aa docs(sdk): document MCP configuration and scoped tool calls
- a444668 docs(sdk): document tested build and release process
- 1ff23c0 docs(sdk): document verified behavior and limitations
- 05bad62 docs(readme): update installation and feature guidance
- 8e4109f chore(release): 1.2.0
- 3fc60ec chore(release): 1.2.0
Tests
- 0b6dee6 test(example): update QuickStart and configuration examples
- fdbc4a2 test(ci): update required SDK and extension checks
- 7c897b7 test(sdk): cover mcp bridge behavior
- 104a133 test(sdk): cover mcp policy behavior
- 5398c9c test(sdk): cover mcp proxy behavior
- dcda479 test(sdk): cover mcp reconciliation behavior
- 64855cc test(sdk): cover mcp transport behavior
- 51169e6 test(sdk): cover mcp server behavior
Features
- f9ae727 feat(openai): extend OpenAI client initialization and web modes
- 77ebae5 feat(conversations): extend append, edit and reconciliation behavior
- 8220126 feat(storage): extend per-user linked conversation storage
- 75924f7 feat(mcp): add MCP initialization settings
- 1d52f56 feat(mcp): add conversation tool-call bridge
- d130c91 feat(mcp): add MCP server connection ownership
- 7e5dbc3 feat(mcp): add MCP client transports
- a69f768 feat(compat): extend Chat and Responses request adaptation
- ab082e5 feat(compat): extend in-process OpenAI HTTP transport
- c8427f5 feat(proxy): extend OpenAI-compatible proxy routes
- 18181fe feat(proxy): extend per-user proxy configuration
v1.1.0
Add project-aware conversations, temporary chats and complete browser bundles, with broader coverage of the ChatGPT web operations captured in the HAR.
Features
- Continue, edit and regenerate turns in project or temporary conversations, with temporary transcript state kept in memory.
- Support file/image uploads, generated-image downloads and image editing through the compatible client surface.
- Expand conversation, account, project and file operation mappings, with routing and parameter-validation coverage.
Browsers and CI
- Bundle matching Chromium binaries and drivers for Windows, Linux, Intel macOS and Apple Silicon.
- Offer invisible launch and software-rendering options for environments without usable hardware acceleration.
- Separate tests, builds and releases; verify native browser launch and rendering before packaging platform downloads.
All 45 commits
Commit links follow the rebuilt main history. Published tags and downloads retain their original targets.
Build and CI
- 650e8d0 build(sdk): update solution and package configuration
- 2901af6 build(packaging): update SDK and extension artifacts
- 488e916 build(tools): package native Chromium and SDK bundles
- ce0b426 build(tools): publish verified release assets
- dc43c73 ci(ci): add platform browser bundles
- 60155b1 ci(ci): update build release
- aed5be0 ci(ci): add verified release publication
- 4efacde ci(ci): add cross-platform test gates
Documentation and maintenance
- 49b2080 docs(sdk): document captured web feature coverage
- e3a751e docs(sdk): document upstream repository findings and licenses
- 23ec15b docs(sdk): document tested build and release process
- 0a6635a docs(sdk): document verified behavior and limitations
- 020643e docs(readme): update installation and feature guidance
- 5eed1fe chore(release): 1.1.0
- cf04773 docs(sdk): document tested build and release process
- 4cd2fab docs(readme): update installation and feature guidance
- d5ae02d chore(release): 1.1.0
Tests
- 3312973 test(example): update QuickStart and configuration examples
- e0f43fd test(ci): update required SDK and extension checks
- 78a6e97 test(sdk): cover additional feature behavior
- 0df1c0d test(sdk): cover bundle and stream behavior
- 18f9833 test(sdk): cover captured operation behavior
- a46c2ba test(sdk): cover invisible browser behavior
- 9cb6109 test(sdk): extend modern features behavior
- 0330629 test(sdk): cover project chat behavior
Features
- 5bb7719 feat(api): generate official OpenAPI operation coverage
- 8d83471 feat(browser): add native browser diagnostics
- de09d58 feat(sentinel): extend browser session and Sentinel provider
- a242546 feat(browser): add bundled browser resolution and rendering
- ecdec0e feat(openai): extend OpenAI client initialization and web modes
- 662bd5d feat(conversations): extend append, edit and reconciliation behavior
- 01732c5 feat(storage): extend per-user linked conversation storage
- fad7f2c feat(auth): extend HAR credential import
- 248c913 feat(http): extend HTTP response and error handling
- f60463d feat(compat): extend Chat and Responses request adaptation
- b485f10 feat(compat): extend in-process OpenAI HTTP transport
- 00a037c feat(browser): extend owned browser lifecycle
- 0b5e1f6 feat(proxy): extend OpenAI-compatible proxy routes
- 80b721e feat(sdk): add web additional features
- 4c4a547 feat(sdk): add web captured operations
- f45bbc6 feat(projects): add project and temporary chat context
- 1bc8e26 feat(config): extend web endpoint and credential options
- a2cc0b6 feat(files): extend web file upload and download operations
- a363f0c feat(sdk): add web projects
Security
- b5577a9 test(security): cover authentication boundary behavior