From 8ae4467266185f1179956faa3980df815a8120dd Mon Sep 17 00:00:00 2001 From: Jeff Dwyer Date: Wed, 25 Feb 2026 15:20:52 -0500 Subject: [PATCH 1/3] Fix SDK version header name and value format The Python SDK was sending the wrong header name (`X-Reforge-Client-Version`) and wrong value format (`reforge-python-{version}`). The server expects `X-Reforge-SDK-Version` with format `sdk-python-{version}`, matching all other SDKs (Go, Node, Java, Ruby, JavaScript, React). Co-Authored-By: Claude Opus 4.6 --- sdk_reforge/_requests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk_reforge/_requests.py b/sdk_reforge/_requests.py index b2a2de5..46763ab 100644 --- a/sdk_reforge/_requests.py +++ b/sdk_reforge/_requests.py @@ -132,7 +132,7 @@ def __init__(self, options): self.session.mount("http://", requests.adapters.HTTPAdapter()) self.session.headers.update( { - "X-Reforge-Client-Version": f"reforge-python-{getattr(options, 'version', 'development')}" + VersionHeader: f"sdk-python-{getattr(options, 'version', 'development')}" } ) # Initialize a cache (here with a maximum of 2 entries). From e64b9842f20568d9361b8aa8bab0e920fe40b28d Mon Sep 17 00:00:00 2001 From: Jeff Dwyer Date: Wed, 25 Feb 2026 15:25:13 -0500 Subject: [PATCH 2/3] Bump version to 1.2.1 and update CHANGELOG Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 4 ++++ pyproject.toml | 2 +- sdk_reforge/VERSION | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1a5e27..a7dab6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [1.2.1] - 2026-02-25 + +- Fix SDK version header: use correct header name `X-Reforge-SDK-Version` and value format `sdk-python-{version}` to match all other SDKs [#25] + ## [1.2.0] - 2026-01-22 - Add SSE watchdog to detect stuck connections and trigger recovery via polling fallback [#20] diff --git a/pyproject.toml b/pyproject.toml index a293bed..e3f175c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "sdk-reforge" -version = "1.2.0" +version = "1.2.1" description = "Python sdk for Reforge Feature Flags and Config as a Service: https://www.reforge.com" license = "MIT" authors = ["Michael Berkowitz ", "James Kebinger "] diff --git a/sdk_reforge/VERSION b/sdk_reforge/VERSION index 26aaba0..6085e94 100644 --- a/sdk_reforge/VERSION +++ b/sdk_reforge/VERSION @@ -1 +1 @@ -1.2.0 +1.2.1 From f889cee7ad529ae70d62115fc775e6445bafbd6d Mon Sep 17 00:00:00 2001 From: Jeff Dwyer Date: Wed, 25 Feb 2026 15:29:37 -0500 Subject: [PATCH 3/3] Apply black formatting Co-Authored-By: Claude Opus 4.6 --- sdk_reforge/_requests.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sdk_reforge/_requests.py b/sdk_reforge/_requests.py index 46763ab..1f791b6 100644 --- a/sdk_reforge/_requests.py +++ b/sdk_reforge/_requests.py @@ -131,9 +131,7 @@ def __init__(self, options): self.session.mount("https://", requests.adapters.HTTPAdapter()) self.session.mount("http://", requests.adapters.HTTPAdapter()) self.session.headers.update( - { - VersionHeader: f"sdk-python-{getattr(options, 'version', 'development')}" - } + {VersionHeader: f"sdk-python-{getattr(options, 'version', 'development')}"} ) # Initialize a cache (here with a maximum of 2 entries). self.cache = LRUCache(max_size=2)