docs: split README into a landing page plus Documentation~ pages - #227
Conversation
Samples~/my-unity-crasher/Scripts/BugSplatSettings.cs called AttachNativeLogFile(Application.consoleLogPath) unconditionally at Start. Native init already attaches the console log when CapturePlayerLog is on, and BugSplat_AddAttachment does not de-duplicate, so Windows native reports shipped Player.log twice - and a user who unticked CapturePlayerLog got it anyway, because the sample re-attached it behind the setting's back. The sample exists to demonstrate that privacy control, so the call is gone; CapturePlayerLog handles the file on both Windows and macOS. AttachNativeLogFile held the same trap for any consumer. It called BugSplat_AddAttachment directly and never touched nativePlayerLogAttached, the flag SetNativePlayerLogAttachment uses to decide whether the log is already attached, so attaching the console log by hand desynced it: a later CapturePlayerLog = true attached the file a second time, and a later CapturePlayerLog = false early-returned as a no-op and left it attached, defeating the opt-out for the rest of the session. AttachNativeLogFile now routes the console log path through SetNativePlayerLogAttachment, which de-duplicates and keeps the flag in sync; any other path is attached directly as before. iOS is unaffected - _attachNativeLogFileIos is an empty stub - and Android has no bridge call at all. Removing the sample call leaves AttachNativeLogFile undemonstrated in the sample. A purpose-made second file was considered and rejected: the macOS bridge holds a single log path, so attaching another file there silently replaces Player.log, and the crash scenario menu is a table of failure modes with no natural home for an API demo. The API is documented in the README instead, including the macOS single-slot behavior. Verified by compiling Runtime/** against Unity's managed assemblies under every platform define permutation the change touches - Windows, macOS, iOS, Android, WebGL, Linux, each with and without UNITY_EDITOR: 0 errors, and no warnings beyond the pre-existing CS0649 never-assigned-field ones. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The README had grown to 499 lines serving four audiences at once: evaluators,
first-time integrators, per-platform implementers, and reference readers. The
pitch was buried above 200 lines of platform setup, and there was no way to link
someone to just the Windows story.
The README keeps what a front page needs — banner, introduction, installation,
the sample walkthrough, player settings, configuration, and the platform support
matrix — plus a table routing into the new pages. It is now 142 lines.
Documentation~ takes the deep reference, split along the existing ## seams:
usage.md metadata, try/catch, throttling, background thread and
unobserved task exceptions, support responses
android.md Crashpad setup, symbols.zip, ANR reporting
ios.md PLCrashReporter setup, dSYMs, hang detection
macos.md PLCrashReporter setup, dSYMs
windows.md native setup, symbols, hang detection, WER
api.md BugSplatManager, BugSplatOptions, Player.log and privacy
symbol-upload.md credentials, resolution order, environment variables
migrating-from-4x.md the 5.0.0 breaking changes
Prose moves verbatim; only heading levels and links changed. Two sections moved
out from under headings they did not belong to: "Windows Symbols" was under Usage
and is now on the Windows page, and "Migrating from 4.x" was nested under Windows
despite being package-wide, so it is now its own page.
The trailing tilde keeps Unity from importing the folder, so no .meta files are
needed. npm pack confirms all eight pages ship to consumers.
Anchor links were re-pointed at their new homes and verified mechanically against
GitHub's own slugs. That check also caught three links that were already broken
before this change: the README's [usage](#-usage) (the real anchor for "⌨️ Usage"
retains the U+FE0F variation selector) and two ../../../README.md links in the
sample README that were one level too deep.
Closes #224
Closes #179
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR restructures the repository documentation by turning the large monolithic README into a shorter landing page and moving detailed reference material into UPM-conventional Documentation~/ pages, while updating internal links to match the new layout.
Changes:
- Split long-form sections from
README.mdinto dedicatedDocumentation~/markdown pages. - Updated cross-file links/anchors in the repo (including the sample README) to point at the new documentation locations.
- Updated
CHANGELOG.mdto link to the new migration guide location.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Samples~/my-unity-crasher/README.md | Updates relative links to Windows Error Reporting and usage throttling docs in Documentation~/. |
| README.md | Converts README into a landing page and adds a documentation index table with updated links. |
| Documentation~/usage.md | New usage/reference page moved from README (metadata, try/catch, throttling, threading/task exceptions, support response). |
| Documentation~/windows.md | New Windows-specific page (native crash reporting, symbols, hang detection, WER). |
| Documentation~/android.md | New Android-specific page (Crashpad setup, symbols.zip, ANR reporting). |
| Documentation~/ios.md | New iOS-specific page (PLCrashReporter setup, dSYM upload, hang detection). |
| Documentation~/macos.md | New macOS-specific page (PLCrashReporter setup, symbolication notes). |
| Documentation~/api.md | New API/options reference page moved from README. |
| Documentation~/symbol-upload.md | New symbol upload credentials/env var reference page moved from README. |
| Documentation~/migrating-from-4x.md | New migration guide page moved from README. |
| CHANGELOG.md | Updates the “Migrating from 4.x” link to the new docs page. |
Suppressed comments (1)
Documentation~/api.md:29
- The
CaptureScreenshotsrow is missing a verb ("Should BugSplat a screenshot..."); this is grammatically incorrect and may confuse readers.
| CaptureScreenshots | Should BugSplat a screenshot and upload it when Post is called |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| | Description | A default description that can be overridden by call to Post.| | ||
| | Email | A default email that can be overridden by call to Post.| | ||
| | Key | A default key that can be overridden by call to Post.| | ||
| | Notes | A default general purpose field that can be overridden by call to post | |
There was a problem hiding this comment.
Correct on both counts, and both predate this PR — they are verbatim from README lines 453 and 457 on main (line 29 is worse than the casing: "Should BugSplat a screenshot" is missing its verb).
Leaving them as-is deliberately. #224 scopes this change to a move-and-relink and asks that relocated prose not be reworded, so that the diff stays reviewable as a pure move. Mixing copy edits into 400 relocated lines would make it impossible to tell moved text from changed text at review time.
Both are noted in the PR description under "Pre-existing defects observed while moving" for a follow-up copy pass.
…' into restack/227 # Conflicts: # README.md
|
Restacked on #225, which also edits #225 added an Attaching Files to Native Crash Reports section to the README, in the block this PR moved to |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (2)
Documentation~/ios.md:5
- This sentence says to set
UseNativeCrashReportingForIos/UploadDebugSymbolsForIoson the BugSplatManager instance, but these settings are fields onBugSplatOptions(seeRuntime/Client/BugSplatOptions.cs:67-71). This is likely to mislead integrators configuring iOS crash reporting.
The bugsplat-unity plugin supports native crash reporting on iOS via [bugsplat-apple](https://github.com/BugSplat-Git/bugsplat-apple), which uses PLCrashReporter to capture crashes via Mach exception handling. To configure crash reporting for iOS, set the `UseNativeCrashReportingForIos` and `UploadDebugSymbolsForIos` properties to `true` on the BugSplatManager instance.
Documentation~/android.md:5
- This sentence says to set
UseNativeCrashReportingForAndroid/UploadDebugSymbolsForAndroidon the BugSplatManager instance, but these settings are fields onBugSplatOptions(seeRuntime/Client/BugSplatOptions.cs:73-77). This is likely to confuse users about where to configure Android crash reporting.
The bugsplat-unity plugin supports crash reporting for native C++ crashes on Android via Crashpad. To configure crash reporting for Android, set the `UseNativeCrashReportingForAndroid` and `UploadDebugSymbolsForAndroid` properties to `true` on the BugSplatManager instance.
AttachNativeLogFile special-cased Application.consoleLogPath and routed it through SetNativePlayerLogAttachment. That fixed the #216 symptom but left the root cause: the SDK mirrored native attachment state in a single bool that tracks one file, while the native layers model something else entirely -- Windows keeps an unbounded set with no de-duplication, and the macOS bridge kept one global slot that plain assignment replaced. Any write that bypassed the bool desynced it, and the string guard was ordinal equality, so Path.GetFullPath, a different casing, or forward slashes all missed it and reproduced #216. Worse, on macOS attaching a file and then setting CapturePlayerLog = false cleared the slot and destroyed the user's attachment, and the guard gave AttachNativeLogFile a main-thread dependency it never had by reading Application.consoleLogPath. Model the state instead: an ordered, de-duplicated list of the full paths the SDK has told the native layer to attach, compared case-insensitively on Windows. CapturePlayerLog becomes an ordinary caller of the same attach/detach primitive with a console log path cached at construction, so no public method touches the Unity API, and the string special case disappears. Detaching the player log now removes only the player log. The Apple bridges become genuinely multi-attachment so the C# model has something real to drive. macOS swaps its single _logFilePath for a list and returns one BugSplatAttachment per tracked file; the 10 MB tail read, lazy existence checking, and installing the delegate before start are preserved, and the delegate is now installed unconditionally so it is in place when start processes reports left by the previous session. iOS replaces the no-op stub with the same delegate -- its stated reason for existing, that the delegate suppresses attributes, was never true after the S3 upload flow landed (BugSplat-Git/bugsplat-apple#70). iOS multi-attachment stays inert until #70 ships and BugSplat.xcframework is re-vendored, since the vendored iOS slice still gates attachmentsForBugSplat: behind TARGET_OS_OSX. Both bridges now own their tracked paths in an NSMutableArray. The old code assigned an autoreleased NSString straight into a static, which dangles when the file is compiled without ARC -- Unity's generated Xcode projects do not enable it by default. Closes #216 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…' into sync/227 # Conflicts: # README.md
Every public type a UPM package declares in the global namespace is injected into the global scope of every project that installs it, so the package's names compete with the consumer's own. Four package types did this: Editor/PostBuild.cs BuildPostprocessors Editor/BugSplatOptionsEditor.cs BugSplatOptionsEditor Editor/BugSplatSymbolUploadCredentials.cs BugSplatSymbolUploadCredentials Runtime/Manager/BugSplatRef.cs BugSplatRef The Editor types move to BugSplatUnity.Editor and BugSplatRef to BugSplatUnity.Runtime.Manager, matching the namespace every other file in those directories already uses. Three sample scripts (BugSplatCube, BugSplatSettings, LockOrientation) had the same problem and move to Crasher, where their three siblings already live; the sample is copied into the consumer's own Assets folder on import, so those names land in Assembly-CSharp. BugSplatOptionsEditor's base class is now spelled UnityEditor.Editor: inside BugSplatUnity.Editor the simple name Editor binds to the enclosing member namespace before any using directive is consulted. BugSplatRef is an implementation detail - BugSplatManager holds one in a private field and nothing else in the package or its public API mentions the type - so it becomes internal, and its BugSplat property loses the public setter it never needed (#132 F8). The test assembly reaches it through the existing InternalsVisibleTo. No file or .meta GUID changes, so scene and asset references, which Unity serializes by script GUID, are unaffected. Discovery of the moved editor types is by attribute ([PostProcessBuild], [CustomEditor]), which does not consider namespaces. This is a breaking change to the public API surface and only free while 5.0.0 is unreleased. Closes #155 Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Updates BugSplat.xcframework and BugSplat-macOS.dylib to the 3.5.0 release, which ships bugsplat-apple#70. That un-gates attachmentsForBugSplat: on iOS (it was declared inside TARGET_OS_OSX before), so the plural delegate this branch already implements is now actually called there. The framework adds BugSplatFeedbackResult.h to every slice; nothing was removed. The five macOS framework symlinks are restored through the git index because the extraction host cannot create them on disk. Drops the stale comment in the iOS bridge explaining why attachmentsForBugSplat: was left undeclared, and the README caveat that iOS multi-attachment awaited a framework update. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…' into sync/227c # Conflicts: # README.md
# Conflicts: # Editor/IOS/ObjC/BugSplatBridge.mm # README.md # Runtime/BugSplat.cs # Runtime/Plugins/macOS/BugSplatBridgeMac.mm
Review feedback. The sentence read as though CapturePlayerLog alone attaches Player.log to native crash reports, but the whole path sits inside if (useNativeLibIos) - it needs UseNativeCrashReportingForIos as well. Since CapturePlayerLog defaults to true, the native option is in practice the operative one, which made the omission the more misleading half. Also says explicitly that managed .NET reports attach the log through the reporter and are unaffected by the native setting, which is the confusion the original sentence invited. Applied to macos.md too. That sentence predates this stack - it came in with the docs split in #227 - and carries exactly the same gap. It is out of this PR's nominal scope, but the two files are parallel docs read side by side, and fixing one while leaving its twin wrong a line away is worse than either state. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KCtsoKMLq2WeYvsPFivVAA
* fix: attach Player.log to native iOS crash reports CapturePlayerLog never reached the iOS native reporter. The bridge installed the attachment delegate before -start, and its comment said why, but the log path itself was only registered later, through _attachNativeLogFile after the constructor returned. By then -start had already processed the previous session's pending reports and asked the delegate for attachments - and the tracked list was still empty. Native crash reports upload on the launch after the crash, so attachments were requested at the one moment the list was guaranteed to be empty. Native iOS crash reports have therefore never carried Player.log, even with CapturePlayerLog on by default. Managed exception reports were unaffected; they attach the log through the .NET reporter. Pass the path into _startBugSplat and track it before -start, which is what the macOS branch already did. Both Apple start functions now take the same arguments, so the last platform-specific DllImport in the Apple block collapses too. Verified by compiling the iOS bridge against the vendored xcframework with the iOS SDK, clean under both ARC and manual retain/release, and by building and running a macOS player to confirm the shared signature did not regress it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KCtsoKMLq2WeYvsPFivVAA * refactor: hold the attachment lock at the constructor insertion sites too Review feedback: nativeAttachmentPaths doubles as the lock object for AttachNativeLogFile and DetachNativeLogFile, but the constructor added the player log to it without taking that lock. No race is possible today - the instance has not been published to another thread while its constructor runs - so this is not a fix for a live bug. It is about the invariant. "Every mutation of nativeAttachmentPaths happens under its lock" is auditable at a glance; "...except two constructor sites, which are safe because of publication timing" is not, and it decays the moment construction or publishing changes shape. The lock is uncontended here and taken once at init, so the cost is nothing. Applied at both Apple sites rather than only the iOS one this PR adds. The macOS insertion had the same gap, and leaving one locked and one not would be worse than either state. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KCtsoKMLq2WeYvsPFivVAA * docs: name both prerequisites for the native Player.log attachment Review feedback. The sentence read as though CapturePlayerLog alone attaches Player.log to native crash reports, but the whole path sits inside if (useNativeLibIos) - it needs UseNativeCrashReportingForIos as well. Since CapturePlayerLog defaults to true, the native option is in practice the operative one, which made the omission the more misleading half. Also says explicitly that managed .NET reports attach the log through the reporter and are unaffected by the native setting, which is the confusion the original sentence invited. Applied to macos.md too. That sentence predates this stack - it came in with the docs split in #227 - and carries exactly the same gap. It is out of this PR's nominal scope, but the two files are parallel docs read side by side, and fixing one while leaving its twin wrong a line away is worse than either state. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KCtsoKMLq2WeYvsPFivVAA --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closes #224
Closes #179
Note
Rebased past #225. This branch has been synced with
mainsince #225 (native multi-attachment) squash-merged. That squash mademainand this branch diverge on three code files this PR never touches —Runtime/BugSplat.csand both Apple bridges — which were resolved tomainverbatim. The diff againstmainis now docs-only; no.csor.mmfile appears in it.Documentation~/api.mdcarries #225's Attaching Files to Native Crash Reports section, which was written into the README after this PR's original split and relocated here (heading demoted###→##, and its#playerlog-and-privacylink still resolves in-file). That is the one place this branch holds content that never existed in the 499-line original, and it is why the eight pages now total 408 lines rather than the 384 recorded below.The 499-line README is now a 142-line landing page plus eight
Documentation~/pages. Prose moved verbatim — only heading levels and links changed — so the diff is a move-and-relink, not a rewrite.Section → destination mapping
Every
##/###in the original README, and where it landed. Nothing was dropped.README.md## 👋 IntroductionREADME.md## 🏗 Installation(+### OpenUPM,### Git)README.md## 🧑🏫 SampleREADME.md## 🧰 Player SettingsREADME.md## ⚙️ ConfigurationREADME.md## ⌨️ Usage(intro)Documentation~/usage.md### Adding MetadataDocumentation~/usage.md### Try/Catch ReportingDocumentation~/usage.md### Preventing Repeated ReportsDocumentation~/usage.md### Background Thread ExceptionsDocumentation~/usage.md### Unobserved Task ExceptionsDocumentation~/usage.md### Windows CrashesDocumentation~/usage.md### Windows SymbolsDocumentation~/windows.md⟵ regrouped### Support ResponseDocumentation~/usage.md## 🧭 Platform SupportREADME.md## 🤖 AndroidDocumentation~/android.md### ANR ReportingDocumentation~/android.md## 🍎 iOSDocumentation~/ios.md### Hang DetectionDocumentation~/ios.md## 🖥 macOSDocumentation~/macos.md## 🪟 WindowsDocumentation~/windows.md### Windows Hang DetectionDocumentation~/windows.md### Windows Error ReportingDocumentation~/windows.md### Migrating from 4.xDocumentation~/migrating-from-4x.md⟵ regrouped## 🧩 API(intro)Documentation~/api.md### BugSplatManagerDocumentation~/api.md### BugSplat OptionsDocumentation~/api.md### Player.log and privacyDocumentation~/api.md### BugSplat Environment VariablesDocumentation~/symbol-upload.md### Symbol Upload CredentialsDocumentation~/symbol-upload.md## 🧑💻 ContributingREADME.mdTwo sections were regrouped out from under headings they did not belong to:
###under Usage but is entirely Windows setup, so it now sits on the Windows page, right after the paragraph that already pointed at it.## 🪟 Windowseven though only one of its six bullets is Windows-related. It is package-wide and now has its own page, which is also whatCHANGELOG.mdlinks to.Everything else kept its original parent. Every
##became the page's#and every###became##; GitHub's slugger ignores heading level, so this preserves every anchor target.Content accounting. A script matched every non-blank line of the original against the new files: 335 of 335 placed, 0 dropped. The only lines not present in the original are the 8 breadcrumbs, the
📚 Documentationtable, the🔑 Symbol Uploadpage title and its one-line intro, and 10 lines whose only change is a rewritten link (each verified 1:1 against its original). Line totals: 499 → 142 (README) + 384 (eight pages, including breadcrumbs and per-page titles).Images. All 16 image references are GitHub user-content URLs, so no files moved. Each travelled with the section it illustrates: 13 stayed in the README (banner, badges, sample walkthrough, player settings, configuration), 2 went to
android.md(player and build settings), and 1 tousage.md(the support-response screenshot). 13 + 2 + 1 = 16, none lost.Anchor-link fixes
The 14 anchors from the issue map as follows. Rather than eyeball these, I scraped the rendered heading
ids off the live GitHub page, wrote a slugger that reproduces all 35/35 of them exactly, then ran it over every markdown file in the repo. Final state: 41 relative/anchor links across 12 markdown files, 0 problems.#-player-settings#-usageDocumentation~/usage.md#adding-metadata#adding-metadata(now in-file inusage.md)#trycatch-reporting#trycatch-reporting(in-file inusage.md)#preventing-repeated-reports#preventing-repeated-reports(in-file inusage.md)#preventing-repeated-reportsusage.md#preventing-repeated-reports#preventing-repeated-reports../../Documentation~/usage.md#preventing-repeated-reports#-windowswindows.md#-windowswindows.md#-windowsDocumentation~/windows.md#-android/#-ios/#-macosDocumentation~/android.md/ios.md/macos.md#background-thread-exceptionsDocumentation~/usage.md#background-thread-exceptions#background-thread-exceptionsusage.md#background-thread-exceptions#symbol-upload-credentialsDocumentation~/symbol-upload.md#symbol-upload-credentials#symbol-upload-credentialssymbol-upload.md#symbol-upload-credentials#symbol-upload-credentialssymbol-upload.md#symbol-upload-credentials#symbol-upload-credentials#symbol-upload-credentials(in-file insymbol-upload.md)#windows-error-reporting#windows-error-reporting(in-file inwindows.md)#windows-error-reporting../../Documentation~/windows.md#windows-error-reporting#windows-symbols#windows-symbols(in-file inwindows.md)#playerlog-and-privacy#playerlog-and-privacy(in-file inapi.md)README.md#migrating-from-4xCHANGELOG.mdDocumentation~/migrating-from-4x.mdThree links were already broken before this PR
The mechanical check surfaced breakage that predates the split:
README.md→[usage](#-usage). GitHub renders## ⌨️ Usageas id#️-usage— the U+FE0F variation selector in⌨️survives slugging, so the plain-hyphen#-usagenever resolved. Plain emoji (🪟,🤖,🍎) are stripped entirely, which is why#-windowsand friends worked; emoji carrying U+FE0F (⌨️,⚙️) and ZWJ sequences (🧑🏫,🧑💻) do not behave the same way. Fixed here by pointing at the file.Samples~/my-unity-crasher/README.md→../../../README.md#windows-error-reportingand#preventing-repeated-reports. Both used three../where the repo root is two up, so neither resolved on GitHub. Fixed and re-pointed at their new homes.To keep this class of bug from recurring, the new pages avoid emoji-heading anchors entirely: cross-file links target either a file or a plain-text
##heading, never an emoji#heading.External deep links
I fetched
docs.bugsplat.com/integrations/game-development/unity. It deep-links into this README eight times:#-player-settings#%E2%9A%99%EF%B8%8F-configuration⚙️-configuration; the real id is️-configuration). The section itself stayed in the README, so the correct anchor still exists — GitBook's link was simply wrong.#usage️-usage). Now also relocated → should becomeDocumentation~/usage.md.#windows-windows). Now also relocated → should becomeDocumentation~/windows.md.#adding-metadataDocumentation~/usage.md#adding-metadata#trycatch-reportingDocumentation~/usage.md#trycatch-reporting#preventing-repeated-reportsDocumentation~/usage.md#preventing-repeated-reports.../Samples~/my-unity-crasher/Scripts/ErrorGenerator.csSo three GitBook links break here and two more were already dead. All five land on the README's top rather than 404ing, and the new
📚 Documentationtable is one click from there, so nobody hits a dead end. I can't fixbugsplat-docsfrom this repo — see the follow-up below.I found no blog or support content deep-linking these anchors beyond the GitBook page.
documentationUrldecision: leave it on GitBook (no change)package.jsonstill pointsdocumentationUrlathttps://docs.bugsplat.com/integrations/game-development/unity. Reasoning:documentationUrlin a browser. ADocumentation~/folder is not a URL, so it can't be the value; the only alternative would be swapping one hosted page (GitBook) for another (agithub.com/.../blob/main/Documentation~/...link).Documentation~/is not wasted either way: Unity surfaces it for local and embedded packages, and it is what people browsing the repo or the installed package on disk actually read.Documentation~/ships to consumers ✅Verified, not assumed:
.metafiles. The trailing tilde keeps Unity from importing the folder, so none are needed and none were created (ls -a Documentation~/shows only the eight.mdfiles). This matchesSamples~/, which likewise has noSamples~.meta..npmignoreandpackage.jsonhas nofilesfield;.gitignorelists only build outputs (symbol-upload-*,BugSplat.zip,.DS_Store).npm pack --dry-runconfirms it. All eight pages appear in the tarball manifest (285 files total, alongside the 32Samples~entries that already prove a~folder survives packing). That tarball is what OpenUPM publishes; git-URL installs get the whole repo regardless.GitBook divergence — now being fixed separately
Update: a bugsplat-docs PR is in flight covering this, stacked on bugsplat-docs#327 so the whole Unity 5.0.0 docs sync ships as one PR there. No issue was filed; the work went straight to a PR. The survey below is what prompted it.
Out of scope for this repo. The GitBook page's headings are: Installation, Sample, Player Settings, Configuration, Usage, Android, iOS, macOS, API, User Feedback, Contributing. Compared with this repo it is missing Windows entirely — no native Windows crash reporting, no Windows Error Reporting, no Windows hang detection, no Windows symbols — plus no Platform Support matrix, no ANR reporting, no iOS hang detection, no background-thread or unobserved-task exceptions, no
Player.logprivacy note, no symbol upload credentials, and no 4.x migration guide. It also has aUser Feedbacksection that the README does not.Proposed issue: "Make the repo the canonical Unity docs and reduce GitBook to a pointer." Decide which copy is canonical (the repo is now clearly more current and more complete), rewrite the GitBook page as a short overview that links into
Documentation~/, and fix the three deep links this PR breaks plus the two already-dead ones. That removes the two-repo edit that produced the #166 drift batch.Nothing deleted
No content was judged obsolete, so nothing is proposed for deletion. Every original line is in the tree.
Pre-existing defects observed while moving (not fixed here)
Flagging rather than silently fixing, so the diff stays readable as a pure move. All four predate this PR:
(Line numbers below predate the
api.mdadditions noted at the top; the text is unchanged.)Documentation~/api.mdline 25 (was README:453) — "overridden by call to post" should bePost, inconsistent with the four rows around it. (raised by Copilot)Documentation~/api.mdline 29 (was README:457) — "Should BugSplat a screenshot and upload it" is missing its verb; should be "Should BugSplat capture a screenshot". (raised by Copilot)README.md3 and 99,Documentation~/api.md11 and 19. All carried over verbatim from the original.#usage,#windows, and#⚙️-configurationdeep links were already dead before this PR (see the External deep links table above).Worth a small copy pass; happy to fold 1–3 into this PR if you'd rather not carry them.
CI
These results are from the original split commit. The branch has been pushed several times since (syncing #225 and the post-squash
mainmerge), and CI is re-running on the current head — a docs-only diff shouldn't move any of them, but treat the table as the last confirmed full pass rather than the current state:(The four
* test resultsentries reportskipping, which is their normal state on this workflow and matchesmain.)Docs-only: no
.cs, nopackage.jsonversion bump, noRuntime/,Editor/, orSamples~/code touched. Per #224 this should land before #168 so the re-shot screenshots get placed into their final homes once.🤖 Generated with Claude Code