feat(cymbal): set posthog-python wire-order cutoff at 7.31.0 - #73511
Merged
Conversation
7.30.0 was claimed by an unrelated release before the flip merged.
cat-ph
marked this pull request as ready for review
July 27, 2026 17:04
ablaszkiewicz
approved these changes
Jul 27, 2026
Contributor
Prompt To Fix All With AIFix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
rust/cymbal/src/modes/processing/normalization.rs:359-371
**Test uses reversed fixture orientation**
The post-cutoff and reconstruction assertions reuse `make_list()`, which places `RootCause` before `Wrapper`, even though canonical post-flip order places the outermost exception first. This tests the inverse flow and does not verify that canonical Python input remains unchanged before reconstruction restores legacy root-cause-first order.
Reviews (1): Last reviewed commit: "fix(cymbal): move posthog-python cutoff ..." | Re-trigger Greptile |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The eighth and final SDK flip of the wire-order standardization (PostHog/sdk-specs#11): posthog-python ships
$exception_listin canonical order — caught/outermost exception first, root cause last — in 7.31.0 (PostHog/posthog-python#728, latest release posthog-v7.30.1 + that PR's lone minor changeset; no other changesets pending on main).Python is unique in the table: its fix reverses the exception list, not frames (python frames were always bottom-up). It's also the mildest flip by construction — single-exception events (the vast majority) are unchanged by the reversal and hash identically either way; only chained-exception events change on the wire.
Changes
posthog-pythongetscanonical_since: Some(7.31.0); everything below (or unparseable) keeps having its exception list flipped.Merge sequencing
posthog-v*release is still 7.30.x immediately before merging (other packages in the repo — e.g. the openfeature provider — release independently and don't claim this version stream).posthogpackage minor in between.Watch
et-wire-order-launchas with the previous seven. Highest event volume of the train (~2.9M/day) but the smallest behavioral delta: chained exceptions only, no frame changes, no resolution reshaping — reconstruction is byte-exact.How did you test this code?
Automated only: new
python_cutoff_gates_exception_list_normalization_by_versionunit test (16 normalization tests green); clippy-D warningsand fmt clean. Eighth instance of the reviewed cutoff pattern. The companion flip branch was rebased onto posthog-python main (58 commits of drift), verified the reversal-removal is intact, with 156 tests + ruff green.Automatic notifications
Docs update
Rollout process documented in the sdk-specs change.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Claude Code authored this under my direction as the final step of the flip rollout, following the sequencing contract established across #69837/#70879/#71365/#72350/#72962/#73319. Target version derived from the latest
posthog-vrelease plus #728's pending changeset.