Repository navigation
feat(spotlight): Share Local processing across server and UI - #1690
Draft
MathurAditya724 wants to merge 16 commits into
Draft
MathurAditya724 wants to merge 16 commits into
MathurAditya724 wants to merge 16 commits into
Conversation
Extract the portable store, Node decoding pipeline, queries, and trace assembly into @sentry/telemetry. Use shared models in the Local receiver and browser workspace, and prepare independently versioned package releases. Co-Authored-By: Codex <noreply@openai.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Publish the shared package as @sentry/spotlight and update workspace, consumer, and release paths. Preserve retained trace views, incomplete span summaries, AI metadata, and thread-aware profile processing with regression coverage. Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Merge main while preserving Local schema preparation and the CLI Sentry import. Keep decoded history current when delivery IDs are reused, ignore invalid token usage, and pair each surfaced response with its finish reason. Co-Authored-By: Codex <noreply@openai.com>
Guard staged-byte cleanup by generation so cancelled parsed work cannot remove a newly admitted delivery with the same ID after reset. Co-Authored-By: Codex <noreply@openai.com>
Return 415 for unsupported envelope media types, preserve usable AI prompts and tool calls, and clip profile intervals to the available gap. Build the shared package for direct CLI test entry points even with cached schemas. Co-Authored-By: Codex <noreply@openai.com>
Remove legacy subscriptions, disabled logging, unused private helpers and types, and unnecessary async test callbacks. Preserve the public API and executable examples. Co-Authored-By: Codex <noreply@openai.com>
Let the pipeline account for admitted writes and reserve facade slots only for writes deferred behind retention controls. Immediate validation failures no longer cause false queue-full responses. Co-Authored-By: Codex <noreply@openai.com>
Share message normalization between the GenAI and Vercel handlers. Keep raw fallbacks replaceable until the first valid conversation is found. Co-Authored-By: Codex <noreply@openai.com>
Read standard tool-call attributes when the Vercel alias is absent or malformed. Preserve valid proprietary values, including explicit empty arrays. Co-Authored-By: Codex <noreply@openai.com>
Extend synthetic parent time ranges as later siblings are attached. Avoid overlapping profile gaps while preserving real children and trailing samples. Co-Authored-By: Codex <noreply@openai.com>
Classify known JSON wire items separately from processed event types. Keep report fields available to subscribers and validate malformed payloads. Co-Authored-By: Codex <noreply@openai.com>
Re-sort visible siblings after hiding missing-parent wrappers. Preserve captured parent identifiers and keep the SDK span tree immutable. Co-Authored-By: Codex <noreply@openai.com>
Read nested system instructions and prefer structured conversations and tool-call arrays over malformed aliases while retaining raw inspection values. Treat null model and provider attributes as absent so later spans can supply metadata. Co-authored-by: Codex <noreply@openai.com>
Reparent merged children and lifted frames to their surviving parent spans. Co-authored-by: Codex <noreply@openai.com>
Use a neutral graft parent for fillers between independent trace roots. Co-authored-by: Codex <noreply@openai.com>
This branch was successfully 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.
Sentry Local now uses
@sentry/spotlightfor shared envelope processing, trace assembly, queries, AI interpretation, profiles, and Web Vitals. The CLI receiver consumes the Node pipeline; the browser workspace consumes the portable store and processing helpers. HTTP/SSE transport, capture sessions, raw inspection, and rendering remain application concerns.The Apache-2.0 package is extracted from Spotlight #1374 with bounded ingestion, immutable snapshots, delivery receipts, live retention settings, and JSON exports. Local preserves replay cursors, attachment downloads, session isolation, and existing inspection models.
Accepted delivery bytes remain stable across rejected redispatches and are replaced or cleared when an evicted ID is accepted again. Reset invalidates older cleanup work, and published views follow the retained capture window. Continuous profile chunks refresh merged samples and derived spans while preserving real topology; sample intervals are clipped at the next real span rather than dropped.
AI queries preserve root identity, prioritize structured conversations over prompt fallbacks, pair finish reasons with the surfaced response, ignore malformed token/tool-call attributes, and reconcile aggregate/step usage without double counting. Incomplete traces expose the strongest observed token subtotal. Local returns HTTP 415 for unsupported envelope media types, and direct CLI test commands build the SDK even when generated schema files are cached. Regression coverage exercises these paths through public readers and real receiver inputs, including reordered captures and concurrent session changes.
Toolkit becomes the home for shared processing. The release workflow builds and checks an independently versioned npm artifact. After the first package release, Spotlight can replace its extraction with this dependency and remove its local implementation; this PR does not publish a package.
Emitted declaration checks, executable examples, SDK tests, Local tests, workspace typechecking, and lint pass. The integration command also passes without prebuilt SDK output. The full local workspace run hits two unchanged macOS failures: the Linux-musl installer assertion and a DerivedData scan timeout. Hosted CI covers the Linux workspace and Local native integrations.