Repository navigation
Conversation
marandaneto
reviewed
Oct 27, 2026
marandaneto
reviewed
Oct 27, 2026
marandaneto
left a comment
Member
There was a problem hiding this comment.
Automated advisory code review. Four findings revalidated against the unchanged reviewed patch. Runtime/control reproductions and the static-only limitation are identified in the individual comments.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
eli-r-ph
force-pushed
the
eli/capture-ai-v1-specs
branch
from
October 27, 2026 16:05
70e393c to
83d9bb1
Compare
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…andling and settings scope Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…he delivery feature Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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
An SDK adding AI capture today has a spec that names only posthog-python and posthog-node, lists
/i/v0/ai/batch/as the route, and ties the routing of PostHog's own AI wrappers to theenable_full_ai_captureflag.posthog-python 8.0, posthog-node 6.0, posthog-go v2 and posthog-rs 1.0 ship AI capture on capture v1 (
/i/v1/ai/events), and their wrappers always use the AI method.The harness has no
capture_ai_v1capability, so an SDK on the v1 AI endpoint cannot be selected for any AI parity case.Depends on docs(capture): specify capture v1 delivery for server SDKs #146: the
captureandretry-queuerules this spec delegates to land there, so docs(capture): specify capture v1 delivery for server SDKs #146 merges first.Changes
capture-ainames all four implementations and adds the Go and Rust method shapes.capture-aigains the capture v1 AI lane: the endpoint, the shared body, headers and per-event results fromcapture,misrouted_eventfor a non-AI event on that endpoint, lane isolation, and the analytics endpoint's temporary acceptance of$ai_*events.capture.capture-aigains the lane configuration surface (compression, queue capacity, request timeout, an optional lower-only per-event cap) with its defaults; this supersedes draft docs(capture-ai): specify the AI lane's configuration surface #118.capture-aigains the size rules: an 8 MiB ceiling onproperties, a 5 MiB request target, size-aware batching that keeps order, and a content-free oversize log line.migration/yaml-parity-v1/capture-ai-v1.featureadds the v1 AI cases under a newcapture_ai_v1capability, reusing the registered step phrases of the v0 feature; the README documents the capability.Note
posthog-node 6 defaults the AI lane's compression to gzip and the other three SDKs to none. The requirement records the default as the SDK's documented choice rather than picking one.
How did you test this code?
openspec validate add-capture-ai-v1 --type change --strictpassed before archiving.openspec validate --specs --strict --no-interactiveafter archiving: 67 passed, 0 failed, the same totals asmain.master(rust/capture/src/v1/analytics/router.rs,constants.rs,process.rs) and the four SDKv1branches; sources are listed in the archiveddesign.md.capture_ai_v1yet, so the new feature is discoverable but unselected.🤖 Agent context
🤖 Generated with Claude Code