Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
415 commits
Select commit Hold shift + click to select a range
b179280
feature: Add `$feature_flag_error` property to track flag evaluation …
haacked Dec 16, 2025
5d0bae1
feat(flags): Add retry support for feature flag requests (#392)
haacked Dec 16, 2025
80e6e43
fix: Respect `send_feature_flags` setting and deprecate `send_feature…
dustinbyrne Dec 17, 2025
14d1d0b
fix(llma): extract model from response for OpenAI stored prompts (#395)
andrewm4894 Dec 21, 2025
7ac63e1
feat: add in_app configuration for python SDK (#396)
hpouillot Dec 22, 2025
f1c6da2
fix: double counting anthropic langchain (#399)
carlos-marchal-ph Jan 5, 2026
c1548c4
fix(release): restore GitHub release creation with gh CLI (#401)
andehen Jan 6, 2026
4e4cd18
feat: llma / error tracking integration (#376)
daibhin Jan 7, 2026
7dd6229
chore: add a test to describe upload behaviour when there are errors …
pauldambra Jan 7, 2026
50f675b
chore: add SDK version support table to README (#402)
pauldambra Jan 7, 2026
2b3eb67
feat: add CodeQL Advanced workflow (#405)
Piccirello Jan 8, 2026
f9c2959
fix: avoid return from finally block to fix Python 3.14 SyntaxWarning…
jodal Jan 8, 2026
92d810e
chore: check for syntax warnings (#404)
pauldambra Jan 8, 2026
d3609c2
Fix link formatting in CHANGELOG.md (#406)
pauldambra Jan 8, 2026
661a0ec
feat: add device_id to flags request payload (#407)
andehen Jan 19, 2026
1875b71
feat(ai): add OpenAI Agents SDK integration (#408)
andrewm4894 Jan 27, 2026
c32c783
feat(llma): pass raw provider usage metadata for backend cost calcula…
richardsolomou Jan 28, 2026
4350389
feat(llma): add prompt management (#417)
Radu-Raicea Jan 30, 2026
72f4488
feat: SDK Compliance (#397)
jose-sequeira Jan 30, 2026
d4f2d6d
fix(llma): small fixes for prompt management (#420)
Radu-Raicea Feb 4, 2026
f5719f3
fix(llma): default prompts url (#423)
Radu-Raicea Feb 4, 2026
4f32fa4
Fix feature flag 401 errors causing HTTP request storm (#422)
GabiGrin Feb 4, 2026
b6e6633
fix: openAI input image sanitization (#384)
vikas5914 Feb 6, 2026
fe3a9bb
fix: openai image sanitization (#425)
ablaszkiewicz Feb 6, 2026
bca1752
fix: Retry on 408 and respect Retry-After header (#426)
andehen Feb 9, 2026
7780ca8
fix: long variables pattern matching (#428)
ablaszkiewicz Feb 9, 2026
ffb8e9b
feat: further optimize code variables regex search (#429)
ablaszkiewicz Feb 9, 2026
499194e
feat: limit max number of items in collection to scan (#430)
ablaszkiewicz Feb 11, 2026
bb0c7b4
test(flags): make wrong-key load_feature_flags deterministic (#432)
andehen Feb 13, 2026
603ed37
feat: Support device_id as bucketing identifier for local evaluation …
andehen Feb 16, 2026
73bec04
chore: release v7.9.0 (#434)
andehen Feb 17, 2026
23dae56
fix(ai): bind prompt reads to project token (#433)
Radu-Raicea Feb 17, 2026
f1dc4d7
chore: Migrate releases to `sampo` (#398)
rafaeelaudibert Feb 18, 2026
16bc87b
chore: Release v7.9.2
github-actions[bot] Feb 18, 2026
9f9553a
Small fixes for python publishing (#441)
rafaeelaudibert Feb 18, 2026
d45c046
chore: Release v7.9.3
github-actions[bot] Feb 18, 2026
a8b5529
fix: use $ip not $ip_addess (#356)
iloveitaly Feb 20, 2026
150e24b
feat(llma): add $ai_tokens_source property to detect token value over…
andrewm4894 Feb 25, 2026
a68a6a6
fix: revert manual release and add sampo changeset for ai_tokens_sour…
carlos-marchal-ph Feb 25, 2026
60001f1
chore: Release v7.9.4
github-actions[bot] Feb 25, 2026
830244b
feat: add semver targeting support to local flag evaluation (#447)
dmarticus Mar 2, 2026
1e1e566
chore: Release v7.9.5
github-actions[bot] Mar 2, 2026
8d83315
refactor: add PROPERTY_OPERATORS constant for match_property (#448)
dmarticus Mar 2, 2026
16e1802
chore: Release v7.9.6
github-actions[bot] Mar 2, 2026
b206669
fix(llma): use distinct_id from outer context if not provided (#449)
ethanporcaro Mar 5, 2026
a99c7d7
Add warning log for local flag evaluation cold start (#452)
dmarticus Mar 5, 2026
ef5e135
chore: Release v7.9.7
github-actions[bot] Mar 5, 2026
11466c6
feat(llma): support prompt versions in prompts sdk (#454)
Radu-Raicea Mar 6, 2026
535e9c5
chore(llma): apply prompt SDK review cleanups (#456)
Radu-Raicea Mar 9, 2026
4f570cc
chore: Release v7.9.8
github-actions[bot] Mar 9, 2026
7ffac1b
Update release.yml to support commit signing (#458)
Piccirello Mar 10, 2026
591d3e0
Trigger release (#459)
Piccirello Mar 10, 2026
5caff95
chore: Release v7.9.9
releaser-posthog-python[bot] Mar 10, 2026
b48a7ac
fix(ci): attribute release tag to GitHub App (#460)
Piccirello Mar 10, 2026
579cfdc
chore: Release v7.9.10
releaser-posthog-python[bot] Mar 10, 2026
4547810
chore(ci): fix release attribution (#461)
Piccirello Mar 11, 2026
63d4644
chore: Release v7.9.11
releaser-posthog-python[bot] Mar 11, 2026
1729be4
chore(flags): expose flag_definition_cache_provider (#462)
matheus-vb Mar 12, 2026
7c58d11
chore: Release v7.9.12
releaser-posthog-python[bot] Mar 12, 2026
2cac15a
docs: add AI provider integration examples (#466)
richardsolomou Mar 20, 2026
dd8ee65
fix: update localhost port in examples from 8000 to 8010 (#453)
parinporecha Mar 23, 2026
b4f15a5
chore: pin litellm to 1.81.13 in example (#469)
marandaneto Mar 24, 2026
fc4e85a
feat: add minimum fastapi exception capture repro case (#470)
marandaneto Mar 25, 2026
795ee41
chore: enforce 7-day minimum release age via uv exclude-newer (#476)
marandaneto Mar 31, 2026
0fdbc2e
chore(examples): migrate AI examples from pip to uv with locked versi…
richardsolomou Apr 2, 2026
d234b53
feat(ai): add Claude Agent SDK integration for LLM analytics (#477)
andrewm4894 Apr 3, 2026
7223c52
docs: add AI provider examples for all LLM analytics integrations (#478)
richardsolomou Apr 7, 2026
754c45f
fix: propagate missing params in module-level wrapper functions (#479)
dustinbyrne Apr 7, 2026
95df295
chore: Release v7.10.0
releaser-posthog-python[bot] Apr 7, 2026
a5052b0
fix: pass capture_exceptions as keyword arg in Django middleware (#488)
marandaneto Apr 8, 2026
c3f9cfc
chore: Release v7.10.1
releaser-posthog-python[bot] Apr 8, 2026
bae355c
chore: configurabel endpoint for flags local evaluation (#483)
patricio-posthog Apr 8, 2026
d3f48e6
chore: Release v7.10.2
releaser-posthog-python[bot] Apr 8, 2026
2fe179a
fix: pass before_send through module-level setup (#472)
sipa-echo-zaoa Apr 8, 2026
e22e893
chore: add sampo changeset for before_send module-level setup fix (#4…
marandaneto Apr 8, 2026
6a660b0
chore: Release v7.10.3
releaser-posthog-python[bot] Apr 8, 2026
7c5cad8
fix(llma): graceful fallback in claude_agent_sdk wrapper (#495)
andrewm4894 Apr 9, 2026
44b92a8
feat(llma): add $ai_stop_reason extraction for all providers (#499)
carlos-marchal-ph Apr 10, 2026
b921fe3
feat: add Gemini embed_content tracking (#498)
carlos-marchal-ph Apr 10, 2026
e46a0f9
chore: Release v7.11.0
releaser-posthog-python[bot] Apr 10, 2026
b29635a
chore: add stale workflow for issues and PRs (#502)
marandaneto Apr 13, 2026
ecd197a
fix(compliance): declare capabilities in health endpoint (#501)
andehen Apr 13, 2026
c3f097f
feat: Add os_distro information to events (#467)
parinporecha Apr 14, 2026
3334277
chore: Release v7.11.1
releaser-posthog-python[bot] Apr 14, 2026
c59ca59
chore: add GitHub community health files (#505)
marandaneto Apr 14, 2026
eba4a39
chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 (#465)
dependabot[bot] Apr 14, 2026
bb69ddb
chore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-…
dependabot[bot] Apr 14, 2026
5f81548
chore(deps): bump requests from 2.32.5 to 2.33.0 (#473)
dependabot[bot] Apr 14, 2026
055f8fd
chore: update branch references to main (#506)
marandaneto Apr 15, 2026
f5a95b4
chore: update endpoint for flags local eval (#509)
patricio-posthog Apr 15, 2026
82f5993
chore: Release v7.11.2
releaser-posthog-python[bot] Apr 15, 2026
220d9e8
chore: merge master into main (#513)
marandaneto Apr 16, 2026
825bf1a
chore: Release v7.12.0
releaser-posthog-python[bot] Apr 16, 2026
776a93d
chore: use engineering@posthog.com in package metadata (#514)
marandaneto Apr 16, 2026
a221153
feat(examples): add Dedalus Labs and Cloudflare AI Gateway examples (…
richardsolomou Apr 16, 2026
e77514d
feat(flags): implement get_feature_flag endpoint in SDK compliance ad…
andehen Apr 16, 2026
980bc48
docs: fix python release docs package registry (#516)
marandaneto Apr 16, 2026
5346370
chore: use client-id for create-github-app-token (#517)
marandaneto Apr 16, 2026
43386cc
chore: update GitHub Actions for Node 24 (#518)
marandaneto Apr 16, 2026
c296255
chore: remove use of six and mock (#442)
s-t-e-v-e-n-k Apr 17, 2026
b178565
chore: reduce Dependabot PR noise (#519)
marandaneto Apr 17, 2026
12c38e7
feat(prompts): add capture_errors option for error tracking (#520)
andrewm4894 Apr 17, 2026
fe12309
docs: add dedicated contributing guides (#521)
marandaneto Apr 17, 2026
15c1527
docs: align contributing guide with CI checks (#522)
marandaneto Apr 17, 2026
8d82855
chore: remove v prefix from release tags (#524)
marandaneto Apr 20, 2026
1b098e7
fix: trim whitespace from API keys and host config (#525)
marandaneto Apr 20, 2026
48012cb
chore: Release v7.13.0
releaser-posthog-python[bot] Apr 21, 2026
c53aaa3
chore(deps): bump python-dotenv from 1.1.1 to 1.2.2 (#528)
dependabot[bot] Apr 22, 2026
57c3561
chore(deps): bump python-dotenv from 1.1.1 to 1.2.2 in /examples/exam…
dependabot[bot] Apr 22, 2026
3c0c17f
chore(deps): bump python-dotenv from 1.2.1 to 1.2.2 in /integration_t…
dependabot[bot] Apr 22, 2026
96f2e68
chore: upgrade PostHog GitHub Action to v1 (#531)
marandaneto Apr 22, 2026
0d36184
feat(flags): support mixed targeting in local evaluation (#523)
patricio-posthog Apr 24, 2026
0854afc
chore: Release v7.13.1
releaser-posthog-python[bot] Apr 24, 2026
fa22102
chore(deps): bump litellm from 1.83.0 to 1.83.7 in /examples/example-…
dependabot[bot] Apr 25, 2026
c50dcdf
chore(deps): bump litellm from 1.81.13 to 1.83.7 in /examples/example…
dependabot[bot] Apr 25, 2026
3bd841f
chore(deps): bump litellm from 1.74.9 to 1.83.7 in /examples/example-…
dependabot[bot] Apr 26, 2026
dea848f
fix: remove python-dateutil runtime dependency (#540)
marandaneto Apr 28, 2026
6b3d1c7
fix: sanitize Django tracing headers (#538)
dustinbyrne Apr 29, 2026
f4af88a
fix: acknowledge oversized dropped events (#543)
marandaneto Apr 30, 2026
8bdd3fa
fix: no-op clients without api key (#544)
marandaneto Apr 30, 2026
a1c6640
fix: clarify feature flag auth errors (#542)
marandaneto Apr 30, 2026
00f5607
chore: Release v7.13.2
releaser-posthog-python[bot] Apr 30, 2026
33ebe3b
chore: remove unsupported setup-uv input (#545)
marandaneto Apr 30, 2026
b490908
chore: commit generated references with GitHub App (#546)
marandaneto Apr 30, 2026
69dc2a8
feat: add evaluate_flags() API for single-call flag evaluation (#539)
dmarticus May 1, 2026
a22c77e
chore: Release v7.14.0
releaser-posthog-python[bot] May 1, 2026
23b62b3
chore: fix release reference commit workflow (#547)
marandaneto May 2, 2026
d69038a
chore: trigger releases from main changesets (#548)
marandaneto May 4, 2026
d209f93
chore(deps): bump pillow from 12.1.1 to 12.2.0 in /examples/example-a…
dependabot[bot] May 5, 2026
1871a9c
chore(deps): bump pillow from 12.1.1 to 12.2.0 in /examples/example-a…
dependabot[bot] May 5, 2026
62fa9e9
Run Python CI on main pushes (#551)
marandaneto May 5, 2026
f8e104a
chore: use changelog for GitHub release notes (#552)
marandaneto May 5, 2026
ba66a6d
chore(deps): bump pillow from 12.1.1 to 12.2.0 in /examples/example-a…
dependabot[bot] May 7, 2026
c5a4c7b
chore(deps): bump python-multipart from 0.0.22 to 0.0.27 (#555)
dependabot[bot] May 7, 2026
0efa914
chore: ignore examples in dependabot (#556)
marandaneto May 7, 2026
f055e76
chore(deps): bump mako from 1.3.10 to 1.3.12 in /examples/example-ai-…
dependabot[bot] May 7, 2026
f6c8ede
fix: type warning on `new_context` (#558)
itsaphel May 9, 2026
9317783
chore(deps): bump banks from 2.4.1 to 2.4.2 in /examples/example-ai-l…
dependabot[bot] May 11, 2026
f994c31
chore: Release v7.14.1 [skip ci]
releaser-posthog-python[bot] May 11, 2026
7348d56
Update generated references
releaser-posthog-python[bot] May 11, 2026
44c1261
fix: support scoped async functions (#569)
marandaneto May 13, 2026
a926118
chore: Release v7.14.2 [skip ci]
releaser-posthog-python[bot] May 13, 2026
894f419
Update generated references
releaser-posthog-python[bot] May 13, 2026
52cd20e
feat: celery integration (#527)
parinporecha May 19, 2026
6aefc70
chore: Release v7.15.0 [skip ci]
releaser-posthog-python[bot] May 19, 2026
14d46e8
Update generated references
releaser-posthog-python[bot] May 19, 2026
83b707d
chore: update Dependabot exclusions (#579)
marandaneto May 19, 2026
39be7c9
docs: document public SDK APIs (#581)
marandaneto May 19, 2026
b0004cb
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-crewai
dependabot[bot] May 20, 2026
2dad56d
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-deep…
dependabot[bot] May 20, 2026
c930083
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-perp…
dependabot[bot] May 20, 2026
0438602
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-cere…
dependabot[bot] May 20, 2026
28e2693
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-autogen
dependabot[bot] May 20, 2026
aa9d6f8
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-toge…
dependabot[bot] May 20, 2026
decbfb4
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-aws-…
dependabot[bot] May 20, 2026
e3d20b5
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-open…
dependabot[bot] May 20, 2026
df33f0a
chore(deps): bump idna from 3.11 to 3.15 in /integration_tests/django5
dependabot[bot] May 20, 2026
fbd0d67
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-open…
dependabot[bot] May 20, 2026
7cadd4b
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-smol…
dependabot[bot] May 20, 2026
76a3a1c
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-azur…
dependabot[bot] May 20, 2026
1703ac0
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-hugg…
dependabot[bot] May 20, 2026
8c3f359
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-openai
dependabot[bot] May 20, 2026
89b78df
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-clou…
dependabot[bot] May 20, 2026
37b989d
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-portkey
dependabot[bot] May 20, 2026
e59cd52
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-inst…
dependabot[bot] May 20, 2026
ede0b02
Remove exception autocapture alpha marker (#600)
marandaneto May 20, 2026
a098aa7
fix: handle Gemini responses without candidates (#599)
marandaneto May 21, 2026
042808a
chore: Release v7.15.1 [skip ci]
releaser-posthog-python[bot] May 21, 2026
d9ab5b8
Update generated references
releaser-posthog-python[bot] May 21, 2026
98057be
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-deda…
dependabot[bot] May 21, 2026
732fcd4
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-groq…
dependabot[bot] May 21, 2026
c49781f
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-dspy…
dependabot[bot] May 21, 2026
0117f2b
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-fire…
dependabot[bot] May 21, 2026
445357f
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-cohe…
dependabot[bot] May 21, 2026
1574b1b
fix: guard null token usage fields in OpenAI converter (#575)
michael-ciridae May 21, 2026
7ca77bf
chore: Release v7.15.2 [skip ci]
releaser-posthog-python[bot] May 21, 2026
3dbbb33
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-pyda…
dependabot[bot] May 21, 2026
881b666
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-lite…
dependabot[bot] May 21, 2026
7493614
chore: pin github actions to commit shas (#602)
Piccirello May 21, 2026
20ef1c3
chore: update vulnerable dependencies (#611)
marandaneto May 21, 2026
8905fa1
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-lang…
dependabot[bot] May 21, 2026
a2aa9bc
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-gemi…
dependabot[bot] May 21, 2026
be9b78b
fix: reject leading-zero semver values in local evaluation (#601)
dmarticus May 21, 2026
cab9d1c
chore: Release v7.15.3 [skip ci]
releaser-posthog-python[bot] May 21, 2026
61fcd6e
Update generated references
releaser-posthog-python[bot] May 21, 2026
b3ebea2
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-anth…
dependabot[bot] May 21, 2026
8d23eff
chore(ci): bump pinned PostHog/.github reusable workflow SHA (#615)
Piccirello May 22, 2026
cb7c8da
chore(ci): bump pinned posthog-sdk-test-harness SHA (#616)
Piccirello May 22, 2026
15df3a4
chore: stabilize sdk compliance adapter (#617)
marandaneto May 22, 2026
e8f3aae
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-olla…
dependabot[bot] May 22, 2026
b010cca
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-mira…
dependabot[bot] May 22, 2026
0207088
fix: track OpenAI chat completions parse calls (#618)
marandaneto May 23, 2026
1359d64
chore(deps): bump idna from 3.11 to 3.15 in /examples/example-ai-heli…
dependabot[bot] May 23, 2026
5ff3c82
chore: Release v7.15.4 [skip ci]
releaser-posthog-python[bot] May 25, 2026
b172ff2
Update generated references
releaser-posthog-python[bot] May 25, 2026
033d32b
chore: add targeted utils mutation tests (#576)
marandaneto May 26, 2026
461226c
chore: add utils CRAP score check (#577)
marandaneto May 26, 2026
2daebb5
chore(deps): bump the ai-providers group with 4 updates (#624)
dependabot[bot] May 27, 2026
45312bd
chore: add client libraries team as Dependabot reviewer (#627)
marandaneto May 27, 2026
481e186
chore: update PostHog/.github pins (#628)
marandaneto May 27, 2026
a44e0be
feat: Support async flag definition cache providers (#626)
dustinbyrne May 27, 2026
f9c31e4
chore: Release v7.16.0 [skip ci]
releaser-posthog-python[bot] May 27, 2026
abf259b
Update generated references
releaser-posthog-python[bot] May 27, 2026
bf63368
chore: validate PR titles with conventional commits (#629)
dustinbyrne May 27, 2026
8f6d6c8
fix: include group context in $feature_flag_called dedupe key (#625)
gustavohstrassburger May 27, 2026
4d00801
chore: Release v7.16.1 [skip ci]
releaser-posthog-python[bot] May 27, 2026
b7da401
Update generated references
releaser-posthog-python[bot] May 27, 2026
7dbeddb
chore: use shared semantic PR title workflow (#630)
dustinbyrne May 27, 2026
07a4c16
docs: remove experimental flag definition cache labels (#631)
dustinbyrne May 28, 2026
b0726d1
Refactor AI wrapper callback helpers (#623)
marandaneto May 28, 2026
034dce2
fix: no-op global client for blank api key (#632)
marandaneto May 28, 2026
50b9a81
chore: Release v7.16.2 [skip ci]
releaser-posthog-python[bot] May 28, 2026
fa49fe5
Update generated references
releaser-posthog-python[bot] May 28, 2026
85f038b
chore: configure dependency minimum release age / cooldown (#633)
Piccirello May 29, 2026
5b3035b
chore: Bump flags-project-board workflow pin to latest (#634)
haacked May 29, 2026
17952a6
chore(deps): bump uv from 0.9.30 to 0.11.15 in /examples/example-ai-c…
dependabot[bot] Jun 1, 2026
643a810
fix: no-op flag helpers on API errors (#639)
marandaneto Jun 1, 2026
d5cddca
chore: Release v7.16.3 [skip ci]
releaser-posthog-python[bot] Jun 1, 2026
6a6c8ee
Update generated references
releaser-posthog-python[bot] Jun 1, 2026
20cc088
chore: add explicit type definitions to consumer arrays and datetime …
Kshitijmishradev Jun 2, 2026
5b4a91a
chore: Correct Sentry Python attribution (#646)
marandaneto Jun 3, 2026
44e6b14
fix(ai): support `async with` on async streaming responses (Fixes #39…
turnipdabeets Jun 3, 2026
73944fd
chore: Release v7.16.4 [skip ci]
releaser-posthog-python[bot] Jun 3, 2026
a185fdb
Update generated references
releaser-posthog-python[bot] Jun 3, 2026
3aed638
feat: emit $is_server property on captured events (#643)
turnipdabeets Jun 3, 2026
4e917d8
chore: Release v7.17.0 [skip ci]
releaser-posthog-python[bot] Jun 3, 2026
9bc9015
Update generated references
releaser-posthog-python[bot] Jun 3, 2026
a91ca2b
chore: Update Sentry license attribution (#647)
marandaneto Jun 3, 2026
ea9d041
chore(deps): bump starlette from 1.0.0 to 1.0.1 in /examples/example-…
dependabot[bot] Jun 4, 2026
6465e05
chore(deps): bump starlette from 1.0.0 to 1.0.1 in /examples/example-…
dependabot[bot] Jun 4, 2026
b141bed
chore(deps): bump starlette from 1.0.0 to 1.0.1 in /examples/example-…
dependabot[bot] Jun 4, 2026
b9b198e
chore(deps): bump the ai-providers group across 1 directory with 8 up…
dependabot[bot] Jun 4, 2026
97c11ad
ci: skip flags project board workflow for Dependabot PRs (#652)
turnipdabeets Jun 4, 2026
1117c5e
ci: consolidate Dependabot skip into reusable flags-board workflow (#…
turnipdabeets Jun 4, 2026
a2ce51e
feat(feature-flags): support early_exit in local evaluation (#648)
gustavohstrassburger Jun 5, 2026
98e9b71
chore: Release v7.18.0 [skip ci]
releaser-posthog-python[bot] Jun 5, 2026
d7c0d50
Update generated references
releaser-posthog-python[bot] Jun 5, 2026
4845e48
chore(deps): bump the ai-providers group with 5 updates (#654)
dependabot[bot] Jun 8, 2026
00b2091
feat: dedicated AI endpoint routing (#656)
carlos-marchal-ph Jun 10, 2026
49b63b0
chore: Release v7.18.1 [skip ci]
releaser-posthog-python[bot] Jun 10, 2026
ea94d4b
Update generated references
releaser-posthog-python[bot] Jun 10, 2026
508b89f
chore: Split CI checks into separate jobs (#659)
marandaneto Jun 12, 2026
fe76fc9
chore: bring codebase to 100% clean mypy compliance across core modul…
Kshitijmishradev Jun 12, 2026
aebf876
chore: Release v7.18.2 [skip ci]
releaser-posthog-python[bot] Jun 12, 2026
84a4ee4
Update generated references
releaser-posthog-python[bot] Jun 12, 2026
ee6a3c8
feat(ai): warn when AI wrapper is pointed at the PostHog AI Gateway (…
richardsolomou Jun 12, 2026
800db99
chore: Release v7.18.3 [skip ci]
releaser-posthog-python[bot] Jun 12, 2026
884f7b7
Update generated references
releaser-posthog-python[bot] Jun 12, 2026
99daffa
Add installation command for Semantic Kernel dependencies
Premiermoney Jun 13, 2026
d3677d3
Refactor os configuration parameters
Premiermoney Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# PostHog API Configuration
# Copy this file to .env and update with your actual values

# Your project API key (found on the /setup page in PostHog)
POSTHOG_PROJECT_API_KEY=phc_your_project_api_key_here

# Your personal API key (for local evaluation and other advanced features)
POSTHOG_PERSONAL_API_KEY=phx_your_personal_api_key_here

# PostHog host URL (remove this line if using posthog.com)
POSTHOG_HOST=http://localhost:8010
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @PostHog/team-client-libraries
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: 🐞 Bug Report
description: Tell us about something that's not working the way we (probably) intend.
labels: ["bug"]
body:


- type: input
id: version
attributes:
label: Version
description: SDK Version
placeholder: 3.0.0 ← should look like this
validations:
required: true

- type: textarea
id: repro
attributes:
label: Steps to Reproduce
description: How can we see what you're seeing? Specific is terrific.
placeholder: |-
1. foo
2. bar
3. baz
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Result
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Result
description: Logs? Screenshots? Yes, please.
validations:
required: true
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Ask in the forums
url: https://posthog.com/questions
about: A place to ask questions.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: 💡 Feature Request
description: Tell us about a problem our SDK could solve but doesn't.
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem Statement
description: What problem could we solve that it doesn't?
placeholder: |-
I want to make whirled peas, but it doesn't blend.
validations:
required: true

- type: textarea
id: expected
attributes:
label: Solution Brainstorm
description: We know you have bright ideas to share ... share away, friend.
placeholder: |-
Add a blender to it.
validations:
required: false
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/maintainer-blank.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Blank Issue
description: Blank Issue. Reserved for maintainers.
body:
- type: textarea
id: description
attributes:
label: Description
description: Please describe the issue.
validations:
required: true
26 changes: 26 additions & 0 deletions .github/actions/setup-python-dev/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Setup Python dev environment
description: Set up Python, uv, and dev dependencies for CI checks.

inputs:
python-version:
description: Python version to install.
required: false
default: 3.11.11

runs:
using: composite
steps:
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55
with:
python-version: ${{ inputs.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
enable-cache: true

- name: Install dev dependencies
shell: bash
run: |
UV_PROJECT_ENVIRONMENT=$pythonLocation uv sync --extra dev
68 changes: 68 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
version: 2
updates:
- package-ecosystem: "uv"
cooldown:
default-days: 7
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "10:00"
timezone: "UTC"
exclude-paths:
- "examples/**"
- "integration_tests/**"
groups:
ai-providers:
patterns:
- "openai"
- "anthropic"
- "google-genai"
- "langchain*"
- "langgraph"
allow:
- dependency-name: "openai"
- dependency-name: "anthropic"
- dependency-name: "google-genai"
- dependency-name: "langchain*"
- dependency-name: "langgraph"
open-pull-requests-limit: 1
reviewers:
- "PostHog/team-client-libraries"
- "PostHog/team-llm-analytics"

- package-ecosystem: "pip"
cooldown:
default-days: 7
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "10:00"
timezone: "UTC"
exclude-paths:
- "examples/**"
- "integration_tests/**"
groups:
ai-providers:
patterns:
- "openai"
- "anthropic"
- "google-genai"
- "langchain*"
- "langgraph"
allow:
- dependency-name: "openai"
- dependency-name: "anthropic"
- dependency-name: "google-genai"
- dependency-name: "langchain*"
- dependency-name: "langgraph"
open-pull-requests-limit: 1
reviewers:
- "PostHog/team-client-libraries"
- "PostHog/team-llm-analytics"
# Uncomment below to enable auto-merge for minor updates when CI passes
# pull-request-branch-name:
# separator: "/"
# assignees:
# - "PostHog/ai-team"
21 changes: 21 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## :bulb: Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->


## :green_heart: How did you test it?


## :pencil: Checklist
<!--- Put an `x` in the boxes that apply -->

- [ ] I reviewed the submitted code.
- [ ] I added tests to verify the changes.
- [ ] I updated the docs if needed.
- [ ] No breaking change or entry added to the changelog.

### If releasing new changes

- [ ] Ran `sampo add` to generate a changeset file

<!-- For more details check RELEASING.md -->
51 changes: 51 additions & 0 deletions .github/scripts/check_crap_threshold.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/usr/bin/env python3
"""Fail when pytest-crap reports a CRAP score at or above a threshold."""

from __future__ import annotations

import argparse
import sys
from pathlib import Path

from coverage import CoverageData
from pytest_crap.calculator import calculate_crap


def covered_lines_for_file(coverage_file: Path, source_file: Path) -> set[int]:
data = CoverageData(basename=str(coverage_file))
data.read()

source_file = source_file.resolve()
for measured_file in data.measured_files():
if Path(measured_file).resolve() == source_file:
return set(data.lines(measured_file) or [])

raise SystemExit(f"No coverage data found for {source_file}")


def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("source_file", type=Path)
parser.add_argument("--coverage-file", type=Path, default=Path(".coverage"))
parser.add_argument("--max-crap", type=float, required=True)
args = parser.parse_args()

covered_lines = covered_lines_for_file(args.coverage_file, args.source_file)
scores = calculate_crap(str(args.source_file), covered_lines)
offenders = [score for score in scores if score.crap >= args.max_crap]

if not offenders:
print(f"All CRAP scores are below {args.max_crap:g} for {args.source_file}")
return 0

print(f"CRAP scores must be below {args.max_crap:g} for {args.source_file}")
for score in sorted(offenders, key=lambda item: item.crap, reverse=True):
print(
f"{score.name}: CRAP={score.crap:.2f}, "
f"CC={score.cc}, coverage={score.coverage_percent:.1f}%"
)
return 1


if __name__ == "__main__":
sys.exit(main())
17 changes: 17 additions & 0 deletions .github/workflows/call-flags-project-board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This workflow is used to call the flags-project-board workflow when a pull request is opened, ready for review, review requested, synchronized, converted to draft, or reopened.
# It is used to update the feature flags project board with the pull request information.

name: Call Feature Flags Project Workflow

on:
pull_request:
types: [opened, ready_for_review, review_requested, synchronize, converted_to_draft, reopened]

jobs:
call-flags-project:
uses: PostHog/.github/.github/workflows/flags-project-board.yml@69336b569d22687f8982eea6ff7d450a885cda05
with:
pr_number: ${{ github.event.pull_request.number }}
pr_node_id: ${{ github.event.pull_request.node_id }}
is_draft: ${{ github.event.pull_request.draft }}
secrets: inherit
Loading