Add JavaScript source map symbolication#2373
Conversation
6fb5096 to
6550a8d
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e7dd25ce7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3a42b1f6e7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 609846c581
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
/preview |
|
Preview deployed
|
|
/preview |
|
/preview |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a687fb5c4c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| using var generatedResponse = await SendAsync( | ||
| generatedFileUri, | ||
| _options.MaximumGeneratedFileSize, | ||
| request => request.Headers.Range = new RangeHeaderValue(null, 64 * 1024), |
There was a problem hiding this comment.
Request identity encoding for ranged JS probes
When a CDN honors this suffix Range request while also returning gzip/br content (advertised in SendAsync for the same request), the byte range is over the compressed representation, so the automatic decompressor cannot reliably produce the last 64 KB of JavaScript that contains sourceMappingURL. In that environment auto-discovery falls through and caches a failure for otherwise valid compressed assets; force identity/no compression for the generated-file range probe or avoid ranged reads when compression is negotiated.
Useful? React with 👍 / 👎.
…mbolication # Conflicts: # src/Exceptionless.Web/Api/Handlers/SourceMapController.cs # src/Exceptionless.Web/Controllers/EventController.cs # src/Exceptionless.Web/Controllers/TokenController.cs # src/Exceptionless.Web/Startup.cs # tests/Exceptionless.Tests/Api/Data/openapi.json # tests/Exceptionless.Tests/Api/Endpoints/SourceMapControllerTests.cs # tests/Exceptionless.Tests/Controllers/Data/controller-manifest.json # tests/Exceptionless.Tests/Controllers/OpenApiControllerTests.cs
Summary
SourceMap/X-SourceMapheaders,sourceMappingURL, or the conventional.mapURL.source-maps:writetokens for CI/CD uploads, including creation from the API Keys UI, visible scope labels, deployment documentation, and HTTP contract samples.Security and reliability
Validation
npm run validate: 0 errors, 0 warningsnpm run builddeno task buildAdversarial review
The follow-up reviews found and fixed unbounded parsed-map retention, indefinitely stale auto-downloaded maps, non-atomic replacement storage, upload/download races, canceled-caller in-flight eviction, unsafe configuration limits, hidden UI query/delete failures, missing organization-level source-map cleanup, malformed-map 500 responses, and unbounded empty mapping-line allocations. Regression coverage and HTTP contract samples were added for these paths.
Breaking changes
None.
Follow-ups
Indexed source maps and authenticated automatic downloads are intentionally left for future work; private flat maps can be uploaded now.