getsentry / getsentry/sentry-javascript
Reconnect pageload and serving request under `cacheComponents`
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 1.8k
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 523
Description
*Example:* any `cacheComponents` page. The browser records pageload trace X, the server records request trace Y, and they never meet. The SDK currently disables the `sentry-trace` meta tags. because the shell HTML is cached and baked-in context would replay one stale trace to every visitor. Result: two orphan traces per visit. A slow pageload cannot be followed into its server work.
*Solves:* the incomplete-traces complaint. This is the gap users notice first.
*Fix idea:* carry trace context only in the part of the response that is never cached. For example, a small component rendered inside a dynamic hole streams the meta tag or script with trace Y's context, and the browser SDK picks it up. The prerendered shell stays context-free. This sketch has no prototype behind it yet - research this first.
Contributor guide
Research direction
No files or tests are named. Start by locating the cacheComponents handling and the browser/server trace-context entry points, then inspect how cached shell HTML and dynamic holes are rendered. Done means pageload trace X and server trace Y reconnect without replaying stale context from the cached shell, with coverage for a cacheComponents page.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- observability, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100