You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is much closer to what we have in `posthog-js`, let's see if it's a good thing!
There's still a lot to do before deploying this:
- updating CI
- updating README with instructions
Copy file name to clipboardExpand all lines: CHANGELOG.md
+53-50Lines changed: 53 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,50 +1,53 @@
1
-
# 7.4.2 - 2025-12-22
1
+
# posthog
2
+
3
+
## 7.4.2 - 2025-12-22
2
4
3
5
feat: add `in_app_modules` option to control code variables capturing
4
6
5
-
# 7.4.1 - 2025-12-19
7
+
##7.4.1 - 2025-12-19
6
8
7
9
fix: extract model from response for OpenAI stored prompts
8
10
9
11
When using OpenAI stored prompts, the model is defined in the OpenAI dashboard rather than passed in the API request. This fix adds a fallback to extract the model from the response object when not provided in kwargs, ensuring generations show up with the correct model and enabling cost calculations.
10
12
11
-
# 7.4.0 - 2025-12-16
13
+
##7.4.0 - 2025-12-16
12
14
13
15
feat: Add automatic retries for feature flag requests
14
16
15
17
Feature flag API requests now automatically retry on transient failures:
18
+
16
19
- Network errors (connection refused, DNS failures, timeouts)
17
20
- Server errors (500, 502, 503, 504)
18
21
- Up to 2 retries with exponential backoff (0.5s, 1s delays)
19
22
20
23
Rate limit (429) and quota (402) errors are not retried.
21
24
22
-
# 7.3.1 - 2025-12-06
25
+
##7.3.1 - 2025-12-06
23
26
24
27
fix: remove unused $exception_message and $exception_type
25
28
26
-
# 7.3.0 - 2025-12-05
29
+
##7.3.0 - 2025-12-05
27
30
28
31
feat: improve code variables capture masking
29
32
30
-
# 7.2.0 - 2025-12-01
33
+
##7.2.0 - 2025-12-01
31
34
32
35
feat: add $feature_flag_evaluated_at properties to $feature_flag_called events
33
36
34
-
# 7.1.0 - 2025-11-26
37
+
##7.1.0 - 2025-11-26
35
38
36
39
Add support for the async version of Gemini.
37
40
38
-
# 7.0.2 - 2025-11-18
41
+
##7.0.2 - 2025-11-18
39
42
40
43
Add support for Python 3.14.
41
44
Projects upgrading to Python 3.14 should ensure any Pydantic models passed into the SDK use Pydantic v2, as Pydantic v1 is not compatible with Python 3.14.
42
45
43
-
# 7.0.1 - 2025-11-15
46
+
##7.0.1 - 2025-11-15
44
47
45
48
Try to use repr() when formatting code variables
46
49
47
-
# 7.0.0 - 2025-11-11
50
+
##7.0.0 - 2025-11-11
48
51
49
52
NB Python 3.9 is no longer supported
50
53
@@ -58,155 +61,155 @@ NB Python 3.9 is no longer supported
58
61
- langchain-community: 0.3.29 → 0.4.1
59
62
- langgraph: 0.6.6 → 1.0.2
60
63
61
-
# 6.9.3 - 2025-11-10
64
+
##6.9.3 - 2025-11-10
62
65
63
66
- feat(ph-ai): PostHog properties dict in GenerationMetadata
64
67
65
-
# 6.9.2 - 2025-11-10
68
+
##6.9.2 - 2025-11-10
66
69
67
70
- fix(llma): fix cache token double subtraction in Langchain for non-Anthropic providers causing negative costs
68
71
69
-
# 6.9.1 - 2025-11-07
72
+
##6.9.1 - 2025-11-07
70
73
71
74
- fix(error-tracking): pass code variables config from init to client
72
75
73
-
# 6.9.0 - 2025-11-06
76
+
##6.9.0 - 2025-11-06
74
77
75
78
- feat(error-tracking): add local variables capture
76
79
77
-
# 6.8.0 - 2025-11-03
80
+
##6.8.0 - 2025-11-03
78
81
79
82
- feat(llma): send web search calls to be used for LLM cost calculations
80
83
81
-
# 6.7.14 - 2025-11-03
84
+
##6.7.14 - 2025-11-03
82
85
83
86
- fix(django): Handle request.user access in async middleware context to prevent SynchronousOnlyOperation errors in Django 5+ (fixes #355)
84
87
- test(django): Add Django 5 integration test suite with real ASGI application testing async middleware behavior
85
88
86
-
# 6.7.13 - 2025-11-02
89
+
##6.7.13 - 2025-11-02
87
90
88
91
- fix(llma): cache cost calculation in the LangChain callback
89
92
90
-
# 6.7.12 - 2025-11-02
93
+
##6.7.12 - 2025-11-02
91
94
92
95
- fix(django): Restore process_exception method to capture view and downstream middleware exceptions (fixes #329)
- feat(ai): Add `$ai_framework` property for framework integrations (e.g. LangChain)
98
101
99
-
# 6.7.10 - 2025-10-24
102
+
##6.7.10 - 2025-10-24
100
103
101
104
- fix(django): Make middleware truly hybrid - compatible with both sync (WSGI) and async (ASGI) Django stacks without breaking sync-only deployments
102
105
103
-
# 6.7.9 - 2025-10-22
106
+
##6.7.9 - 2025-10-22
104
107
105
108
- fix(flags): multi-condition flags with static cohorts returning wrong variants
106
109
107
-
# 6.7.8 - 2025-10-16
110
+
##6.7.8 - 2025-10-16
108
111
109
112
- fix(llma): missing async for OpenAI's streaming implementation
110
113
111
-
# 6.7.7 - 2025-10-14
114
+
##6.7.7 - 2025-10-14
112
115
113
116
- fix: remove deprecated attribute $exception_personURL from exception events
114
117
115
-
# 6.7.6 - 2025-09-16
118
+
##6.7.6 - 2025-09-16
116
119
117
120
- fix: don't sort condition sets with variant overrides to the top
118
121
- fix: Prevent core Client methods from raising exceptions
119
122
120
-
# 6.7.5 - 2025-09-16
123
+
##6.7.5 - 2025-09-16
121
124
122
125
- feat: Django middleware now supports async request handling.
123
126
124
-
# 6.7.4 - 2025-09-05
127
+
##6.7.4 - 2025-09-05
125
128
126
129
- fix: Missing system prompts for some providers
127
130
128
-
# 6.7.3 - 2025-09-04
131
+
##6.7.3 - 2025-09-04
129
132
130
133
- fix: missing usage tokens in Gemini
131
134
132
-
# 6.7.2 - 2025-09-03
135
+
##6.7.2 - 2025-09-03
133
136
134
137
- fix: tool call results in streaming providers
135
138
136
-
# 6.7.1 - 2025-09-01
139
+
##6.7.1 - 2025-09-01
137
140
138
141
- fix: Add base64 inline image sanitization
139
142
140
-
# 6.7.0 - 2025-08-26
143
+
##6.7.0 - 2025-08-26
141
144
142
145
- feat: Add support for feature flag dependencies
143
146
144
-
# 6.6.1 - 2025-08-21
147
+
##6.6.1 - 2025-08-21
145
148
146
149
- fix: Prevent `NoneType` error when `group_properties` is `None`
147
150
148
-
# 6.6.0 - 2025-08-15
151
+
##6.6.0 - 2025-08-15
149
152
150
153
- feat: Add `flag_keys_to_evaluate` parameter to optimize feature flag evaluation performance by only evaluating specified flags
151
154
- feat: Add `flag_keys_filter` option to `send_feature_flags` for selective flag evaluation in capture events
152
155
153
-
# 6.5.0 - 2025-08-08
156
+
##6.5.0 - 2025-08-08
154
157
155
158
- feat: Add `$context_tags` to an event to know which properties were included as tags
156
159
157
-
# 6.4.1 - 2025-08-06
160
+
##6.4.1 - 2025-08-06
158
161
159
162
- fix: Always pass project API key in `remote_config` requests for deterministic project routing
160
163
161
-
# 6.4.0 - 2025-08-05
164
+
##6.4.0 - 2025-08-05
162
165
163
166
- feat: support Vertex AI for Gemini
164
167
165
-
# 6.3.4 - 2025-08-04
168
+
##6.3.4 - 2025-08-04
166
169
167
170
- fix: set `$ai_tools` for all providers and `$ai_output_choices` for all non-streaming provider flows properly
168
171
169
-
# 6.3.3 - 2025-08-01
172
+
##6.3.3 - 2025-08-01
170
173
171
174
- fix: `get_feature_flag_result` now correctly returns FeatureFlagResult when payload is empty string instead of None
172
175
173
-
# 6.3.2 - 2025-07-31
176
+
##6.3.2 - 2025-07-31
174
177
175
178
- fix: Anthropic's tool calls are now handled properly
176
179
177
-
# 6.3.0 - 2025-07-22
180
+
##6.3.0 - 2025-07-22
178
181
179
182
- feat: Enhanced `send_feature_flags` parameter to accept `SendFeatureFlagsOptions` object for declarative control over local/remote evaluation and custom properties
180
183
181
-
# 6.2.1 - 2025-07-21
184
+
##6.2.1 - 2025-07-21
182
185
183
186
- feat: make `posthog_client` an optional argument in PostHog AI providers wrappers (`posthog.ai.*`), intuitively using the default client as the default
184
187
185
-
# 6.1.1 - 2025-07-16
188
+
##6.1.1 - 2025-07-16
186
189
187
190
- fix: correctly capture exceptions processed by Django from views or middleware
188
191
189
-
# 6.1.0 - 2025-07-10
192
+
##6.1.0 - 2025-07-10
190
193
191
194
- feat: decouple feature flag local evaluation from personal API keys; support decrypting remote config payloads without relying on the feature flags poller
192
195
193
-
# 6.0.4 - 2025-07-09
196
+
##6.0.4 - 2025-07-09
194
197
195
198
- fix: add POSTHOG_MW_CLIENT setting to django middleware, to support custom clients for exception capture.
196
199
197
-
# 6.0.3 - 2025-07-07
200
+
##6.0.3 - 2025-07-07
198
201
199
202
- feat: add a feature flag evaluation cache (local storage or redis) to support returning flag evaluations when the service is down
200
203
201
-
# 6.0.2 - 2025-07-02
204
+
##6.0.2 - 2025-07-02
202
205
203
206
- fix: send_feature_flags changed to default to false in `Client::capture_exception`
204
207
205
-
# 6.0.1
208
+
##6.0.1
206
209
207
210
- fix: response `$process_person_profile` property when passed to capture
208
211
209
-
# 6.0.0
212
+
##6.0.0
210
213
211
214
This release contains a number of major breaking changes:
212
215
@@ -233,15 +236,15 @@ with posthog.new_context():
233
236
234
237
Generally, arguments are now appropriately typed, and docstrings have been updated. If something is unclear, please open an issue, or submit a PR!
235
238
236
-
# 5.4.0 - 2025-06-20
239
+
##5.4.0 - 2025-06-20
237
240
238
241
- feat: add support to session_id context on page method
239
242
240
-
# 5.3.0 - 2025-06-19
243
+
##5.3.0 - 2025-06-19
241
244
242
245
- fix: safely handle exception values
243
246
244
-
# 5.2.0 - 2025-06-19
247
+
##5.2.0 - 2025-06-19
245
248
246
249
- feat: construct artificial stack traces if no traceback is available on a captured exception
0 commit comments