Skip to content

Merge upstream sentry-native 0.16.1 - #11

Merged
mangini merged 744 commits into
masterfrom
mangini/merge-upstream-0.16.1
Jul 31, 2026
Merged

Merge upstream sentry-native 0.16.1#11
mangini merged 744 commits into
masterfrom
mangini/merge-upstream-0.16.1

Conversation

@mangini

@mangini mangini commented Jul 31, 2026

Copy link
Copy Markdown

Summary

Merge upstream sentry-native 0.16.1 into the internal fork so Dia Windows can consume current x64 and ARM64 NuGet packages.

This intentionally drops the custom crashpad-handler IPC pipe API from #10. Arc and Dia no longer use that API, and upstream 0.16.1 captures Windows fast-fail crashes through Crashpad's WER integration without changing backends.

Changes

  • Merge the upstream 0.16.1 release and its submodule revisions.
  • Resolve the obsolete IPC-pipe API conflicts to the upstream implementation.
  • Add the reviewer-requested seven-day Dependabot cooldown.

Testing

  • Built x64 RelWithDebInfo locally.
  • Built ARM64 RelWithDebInfo locally.
  • Staged and packaged both architectures with the expected Crashpad handler, WER DLL, Sentry DLL, libraries, headers, and PDBs.
  • Built Dia with cmake --build --preset dia-release.
  • Manually verified on Windows 11 that a /GS cookie failure is captured by Sentry with the existing Crashpad backend.

Context: https://thebrowsercompany.slack.com/archives/C0BHXU3GQ4B/p1784318030072259

tustanivsky and others added 30 commits April 17, 2026 10:58
…entry#1657)

* fix: disable `client_report_concurrent` test on NX platform

* Update changelog

* Update CHANGELOG.md
…ntry#1656)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
getsentry#1645)

Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 1.11.0 to 3.1.1.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](actions/create-github-app-token@v1.11.0...1b10c78)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ry#1660)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(native): int32 size and endians on mac

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(native): allow building for Xbox

* Guard ToolHelp32 use in daemon on Xbox console

* initialize XGameRuntime in daemon on Xbox console

* Forward-declare XGameRuntime entry points instead of including header

* Pre-warm network init

* Test without XGameRuntimeInitialize

* Test markers

* Restore XGameRuntime and network init in daemon

* Remove Xbox daemon diagnostic markers

* Clean up

* Update changelog

* Fix PR suggestion

* Use SENTRY_PLATFORM_XBOX in minidump dbghelp.lib guard

* Use sentry-xbox helpers for XGameRuntime init/uninit

* Update CHANGELOG.md

Co-authored-by: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com>

* Update src/backends/native/sentry_crash_daemon.c

Co-authored-by: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com>

---------

Co-authored-by: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Change `logs` option to be enabled by default
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* format
Co-authored-by: OpenAI Codex <noreply@openai.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…getsentry#1682)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
…y#1686)

* feat(transport): Support streaming request bodies from disk

Allow prepared HTTP requests to opt into a file-backed request body in the
curl and winhttp transports.

This keeps future large request bodies out of memory and isolates the
transport plumbing needed by later large-upload work from the TUS
implementation.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* fix(transport): Handle WinHTTP file read failures

Treat ReadFile failures and short WinHttpWriteData writes as failed sends
for file-backed request bodies.

Otherwise WinHTTP can wait for a response after sending fewer bytes than
the declared request body length.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* fix(transport): Open curl request bodies with wide paths

Use _wfopen for file-backed curl request bodies on Windows.

The curl transport is not the default there, but forced curl builds should
still preserve the SDK's UTF-8 path handling.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* fix(transport): Abort curl uploads on file read errors

Return CURL_READFUNC_ABORT when a file-backed request body cannot be read.

This prevents read errors from being reported to curl as EOF after declaring
a fixed upload size.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* fix(transport): Support really large WinHTTP streamed uploads :)

Use WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH for file-backed WinHTTP requests when
the body is larger than a DWORD. This preserves the full Content-Length header
instead of truncating the request length.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

---------

Co-authored-by: OpenAI Codex <noreply@openai.com>
jpnurmi and others added 12 commits July 27, 2026 13:15
* test(wer): add AppX integration coverage

Add a registered AppX fixture with the classic application
compatibility capability required by Windows Error Reporting.

Register sentry-wer.dll with
desktop7:RuntimeExceptionHelperModule so packaged Win32 crashes are
routed through the native WER integration.

Embed package identity metadata and verify that native crash reports
are delivered from the packaged test executable. Verify the matching
Windows Error Reporting report through the existing integration test
helpers.

Schema:
https://learn.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-desktop7-runtimeexceptionhelpermodule

* fix review findings

* xbox

* HAVE_APPMODEL
* chore(native): drop experimental label

* Update support matrix
* fix: include before_send attachments with local scopes

Attachment snapshots were built before calling `before_send` when an
event had local scope attachments. Move attachment collection after
`before_send` so global attachments added by the callback are included
consistently.

* Update CHANGELOG.md
* Enrich user feedback event with scope data

* Add tests

* Test also context

* Update CHANGELOG.md

* Include scope attachments

* Test feedback with attachments
* Add scoped user feedback capture

* Add tests

* Update CHANGELOG.md
…#1906)

* fix(consent): honor checks before launching crash reporter

* External reporter bypassed the consent checks usually done in capture_envelope
* Check consent early and skip reporter + materialize when blocked
* Fall through to capture_envelope so the crash is cached instead

* test(native): external crash reporter must not upload when consent is revoked

* Update CHANGELOG.md

* fix(consent): centralize external reporter checks in sentry_core

* Move sentry__run_should_skip_upload guard into sentry__launch_external_crash_reporter
* Materialize raw envelopes in launch when cache_keep needs the cache_dir header
* Remove duplicate consent/materialize logic from the native crash daemon
* breakpad/inproc inherit the consent guard via the shared launch helper

* update submodules
@mangini
mangini requested a review from sebmarchand July 31, 2026 16:32
Comment thread src/sentry_utils.c
Comment thread .github/dependabot.yml
Comment thread .mvn/wrapper/MavenWrapperDownloader.java
Comment thread ndk/sample/src/main/AndroidManifest.xml
Comment thread examples/example.c
@semgrep-code-thebrowsercompany

Copy link
Copy Markdown

Semgrep found 1 sizeof-pointer-type finding:

Using sizeof(...) on a pointer type is error prone and can lead to memory corruption if the incorrect size is used to allocate memory. An explicit length should be used instead of using sizeof(...).

Comment thread examples/example.c Dismissed
Comment thread examples/example.c Dismissed
Comment thread vendor/libunwind/src/dwarf/Gparser.c Dismissed
Comment thread vendor/libunwind/src/elfxx.c Dismissed

@sebmarchand sebmarchand left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that Devex has revamped how we push symbols? We should check with them to unblock CI. Remember to Squash&Merge to keep the history of this repo somewhat clean

@mangini
mangini force-pushed the mangini/merge-upstream-0.16.1 branch from 4a6b294 to 7820eeb Compare July 31, 2026 18:09
@mangini
mangini changed the base branch from master to mangini/fix-sentry-native-ci July 31, 2026 18:09
@mangini
mangini force-pushed the mangini/merge-upstream-0.16.1 branch from 7820eeb to 5d872c7 Compare July 31, 2026 18:23
@mangini
mangini changed the base branch from mangini/fix-sentry-native-ci to master July 31, 2026 18:24
@mangini

mangini commented Jul 31, 2026

Copy link
Copy Markdown
Author

Remember to Squash&Merge to keep the history of this repo somewhat clean

Honestly, I don't think I should squash&merge, do you? if I do so, we loose the relationship with the commits from upstream and the next version bump will be a nightmare.

@mangini
mangini merged commit 49df452 into master Jul 31, 2026
19 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.