Repository navigation
Conversation
posthog-python Compliance ReportDate: 2026-11-12T01:30:01.102043+00:00 ✅ All Tests Passed!270/270 tests passed Capture_V1 Tests✅ 95/95 tests passed View Details
Capture_Ai Tests✅ 5/5 tests passed View Details
Feature_Flags Tests✅ 17/17 tests passed View Details
Feature_Flags_V4 Tests✅ 149/149 tests passed View Details
Feature_Flags_Local_Evaluation Tests✅ 4/4 tests passed View Details
|
SDK performance: posthog-pythonBenchmarks completed. No changes flagged for review. Flags require at least a 5% change in the median and all six pairs agreeing on direction. This is a noise filter, not proof of a performance change or a CI gate. View all results
Values are medians of paired measurements. Not flagged does not mean unchanged. Unavailable means a measurement could not be provided, not zero. Estimated allocation measurements retain their instrumentation uncertainty. RSS measures the whole process, not just SDK allocations; observed peaks are sampled checkpoints. Paired ranges in the diagnostics describe variability, not confidence intervals. Each shard uses its own runner; compare Before PR against With PR within a row, not across shards. Compared 102 metric rows; 102 rows shown in all results. Omitted or shortened data remain in |
💡 Motivation and Context
posthog.emails.send()can't send a push notification from their server the same way.posthog.push.send(template_id=..., distinct_id=..., template_data=..., idempotency_key=..., max_retries=...)queues one notification to every device of one person, and returnsSendPushResult(id, replayed).AsyncPosthog.push.send(), plus standalonePushandAsyncPushclasses, mirrorEmailsandAsyncEmails.PushError, with the same fields asEmailError.secret_key,app_host, timeout, retries and shutdown handling.workflows-transactional-push-apiflag.💚 How did you test it?
PushErrorwith the rightcode. A send with the push pipeline down retried three 503s under one key, then sent once.Local run results
datetimevaluereplayed=True, no pushidempotency_key_reused422uuid.UUIDastemplate_idnot_found404,template_not_sendable400template_id, emptydistinct_idValueError, no requestpermission_denied403app_host, disabled client, aftershutdown()PushAsyncPosthog.push.sendtest_push.pycovers the request shape, retries with one key, error mapping, input checks,app_hostrouting and shutdown.📝 Checklist
If releasing new changes
sampo addto generate a changeset file🤖 Agent context
Autonomy: Human-driven (agent-assisted)
claude-opus-5-5).writing-pr-descriptions,writing-plainly.🤖 Generated with Claude Code