Repository navigation
Conversation
eli-r-ph
marked this pull request as ready for review
October 10, 2026 04:03
eli-r-ph
force-pushed
the
v1-session-id-lift
branch
from
October 11, 2026 20:03
1149902 to
d29e7d5
Compare
eli-r-ph
force-pushed
the
v1-options-parity
branch
from
October 11, 2026 20:03
c36473b to
487b20b
Compare
eli-r-ph
force-pushed
the
v1-session-id-lift
branch
from
October 13, 2026 05:10
d29e7d5 to
1b63ff1
Compare
PR overviewAll previously flagged issues have been addressed. No open security concerns remain on this pull request. Security reviewNo open security issues remain on this pull request. Fixed/addressed: 1 · PR risk: 0/10 |
eli-r-ph
force-pushed
the
v1-options-parity
branch
from
October 18, 2026 17:52
d0ac310 to
7e1e113
Compare
eli-r-ph
force-pushed
the
v1-session-id-lift
branch
from
October 18, 2026 17:52
1b63ff1 to
bb142f6
Compare
dustinbyrne
approved these changes
Oct 20, 2026
dustinbyrne
left a comment
Contributor
There was a problem hiding this comment.
The wire-format and identity corrections look sound. One optional documentation clarification below.
AI-assisted review.
Keeps a uuid.UUID, a named string type or an empty string as $session_id / $window_id, drops nil silently, and logs a warning that names the key and the value's type for any other dropped value.
…vent cap - PostHog-Request-Timestamp and created_at use RFC 3339 with nanoseconds. Capture corrects clock skew against the header, so whole seconds moved every event up to a second later. - $groupidentify uses GroupIdentify.DistinctId, then the request context's distinct ID, then "$<type>_<key>". DistinctId was accepted and ignored. - An empty or whitespace-only distinct ID is treated as missing. - The analytics lane has no per-event size cap by default (MaxEventBytes 0). Capture v1 drops an oversized event on its own and reports it per event, so the old 500,000-byte cap only refused events PostHog accepts. An event over MaxBatchBytes is sent alone. DefaultMaxEventBytes is removed. - The batch debug log no longer prints each message. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
eli-r-ph
force-pushed
the
v1-session-id-lift
branch
from
October 20, 2026 15:58
bb142f6 to
0eaf2cd
Compare
This branch has not been deployed
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.
💡 Motivation and Context
Capture v1 drops or delays some events that the Go SDK sends as is today.
This PR fixes each case so events arrive as the caller expects.
Changes
$session_idand$window_idare sent only when they encode as JSON strings; other values are dropped with a warning.Uuidis replaced with a new one and logs a warning, also when set inBeforeSend.$groupidentifynow sendsGroupIdentify.DistinctId, then the request context's ID, then$<type>_<key>.MaxEventBytesstill sets an optional cap, andDefaultMaxEventBytesis removed.💚 How did you test it?
BeforeSend.go vet,go test -raceandmake api-diffpass in all three modules.🤖 Agent context
Autonomy: Human-driven (agent-assisted). Written with Claude Code. Same rules in posthog-rs: PostHog/posthog-rs#285.
🤖 Generated with Claude Code