diff --git a/docs/ai/agent-skills/sdk/android/v7/SKILL.md b/docs/ai/agent-skills/sdk/android/v7/SKILL.md index ffd2ff67..01a6301b 100644 --- a/docs/ai/agent-skills/sdk/android/v7/SKILL.md +++ b/docs/ai/agent-skills/sdk/android/v7/SKILL.md @@ -14,7 +14,7 @@ generated_from: bugsee-for-ai/skills/bugsee-android-sdk/SKILL.md Opinionated wizard that scans the Android project and wires up Bugsee 7.x — core SDK, Gradle plugin, extension modules for network clients / Compose / feedback / NDK, APM, and manifest-based auto-launch. -> **7.x is the current Android SDK** (`com.bugsee:bugsee-android:7.4.2`, Gradle plugin `com.bugsee.android.gradle` / `com.bugsee:bugsee-android-gradle-plugin:4.0.8`, re-verified 2026-11-03 on Maven Central; SDK lastUpdated 2026-10-19, plugin 2026-10-08) and the default for new and existing apps. Keep the two pins paired — the plugin's Compose launch crash fix (4.0.6+) requires SDK 7.1.4+; **7.4.2** satisfies that. **Never pin plugin 4.0.6** — it silently disables every SDK extension (see Phase 2). Plugin latest is **4.0.8** (7.4.2 does not require a plugin bump). 7.4.2 is the current Maven Central patch; the [release notes](https://docs.bugsee.com/sdk/android/release-notes/) still document through 7.4.1 (a touch-capture fix on 7.4.0's reliability and API-clarity work) — upgrade apps on 7.0.0-beta1 through 7.4.1. It is plugin-based with a new API. If you are maintaining an app still pinned to the 6.x line, use the legacy [6.x skill](https://docs.bugsee.com/ai/agent-skills/sdk/android/SKILL.md) instead; when upgrading from 6.x, follow the [migration guide](https://docs.bugsee.com/sdk/android/migration/). +> **7.x is the current Android SDK** (`com.bugsee:bugsee-android:7.5.0`, Gradle plugin `com.bugsee.android.gradle` / `com.bugsee:bugsee-android-gradle-plugin:4.0.8`, re-verified 2026-11-06 on Maven Central; SDK lastUpdated 2026-11-06, plugin 2026-10-08) and the default for new and existing apps. Keep the two pins paired — the plugin's Compose launch crash fix (4.0.6+) requires SDK 7.1.4+; **7.5.0** satisfies that. **Never pin plugin 4.0.6** — it silently disables every SDK extension (see Phase 2). Plugin latest is **4.0.8** (7.5.0 does not require a plugin bump). 7.5.0 is the current Maven Central release; the [release notes](https://docs.bugsee.com/sdk/android/release-notes/) still document through 7.4.2 (a lifecycle and privacy release on 7.4.1's touch-capture fix and 7.4.0's reliability and API-clarity work) — upgrade apps on 7.0.0-beta1 through 7.4.2. **No documented public API or `Options` change** for 7.5.0 — do not invent any. It is plugin-based with a new API. If you are maintaining an app still pinned to the 6.x line, use the legacy [6.x skill](https://docs.bugsee.com/ai/agent-skills/sdk/android/SKILL.md) instead; when upgrading from 6.x, follow the [migration guide](https://docs.bugsee.com/sdk/android/migration/). ## Invoke This Skill When @@ -27,7 +27,7 @@ Opinionated wizard that scans the Android project and wires up Bugsee 7.x — co - User mentions detection providers: `DetectAndReportMainThreadMisuse`, `DetectAndReportExit*`, `DetectAndReportEarlyCrash`, `DetectAndReportHangSampling`, `DetectAndReportAnrSampling`. - User mentions **`Bugsee.notify()`**, notification relay, or sending a message to Slack/Teams without creating an issue. - User mentions **pending-report caps** (`MaxDataSize`, `MaxPendingReports`, `MaxPendingReportAge`), **`Bugsee.getDefaultNetworkSanitizer()`**, **`Bugsee.getHostLaunchOptions()`**, or a **`ReportHandler`** that touches UI. -- User mentions **`NetworkEvent.isOverride()`** / **`setOverride`**, **`DetectAndReportCrash`** also disabling NDK, **`Bugsee.deleteCollectedDataOnDevice()`** (including the 7.4.0 bundles overload), **`Bugsee.logException(Throwable, String, int)`**, the **`logException(Throwable, Map)`** deprecation, **`Bugsee.startBlackout()`** before `launch()`, or **`capture.logs`** vs **`Bugsee.log()`**. +- User mentions **`NetworkEvent.isOverride()`** / **`setOverride`**, **`DetectAndReportCrash`** also disabling NDK, **`Bugsee.deleteCollectedDataOnDevice()`** (including the 7.4.0 bundles overload), **`Bugsee.logException(Throwable, String, int)`**, the **`logException(Throwable, Map)`** deprecation, **`Bugsee.startBlackout()`** before `launch()`, **`capture.logs`** vs **`Bugsee.log()`**, **`relaunch()`** always calling back, **`stop()`** cancelling a pending relaunch, or **secure-field masking while views move** (7.4.2). For an app explicitly pinned to the **6.x** line (or when the user asks for "6.x" / the "legacy" SDK), switch to the [6.x skill](https://docs.bugsee.com/ai/agent-skills/sdk/android/SKILL.md). @@ -90,7 +90,7 @@ Decision table: ### Step 1 — Apply the Bugsee Gradle plugin (mandatory) -7.x requires the plugin. Without it, APM, main-thread misuse detection, log capture rewrites, OkHttp injection, and Compose secure redaction do not work. Pin plugin **4.0.8** with SDK **7.4.2** (current Maven Central release as of 2026-11-03; keep the two pins paired). Do not stay on 4.0.7: it pins bugsee-cli 0.6.0, which silently uploads nothing for NDK `SYMBOL_TABLE` symbols when the CLI's auto-update is off or its download host is unreachable; 4.0.8 pins bugsee-cli 0.8.1. Plugin 4.x pairs with SDK 7.x; do not mix with plugin 3.x / SDK 6.x. There is no separate Gradle-plugin skill — apply the notes below from the [plugin release notes](https://docs.bugsee.com/sdk/android/gradle-plugin/releases/). +7.x requires the plugin. Without it, APM, main-thread misuse detection, log capture rewrites, OkHttp injection, and Compose secure redaction do not work. Pin plugin **4.0.8** with SDK **7.5.0** (current Maven Central release as of 2026-11-06; keep the two pins paired). Do not stay on 4.0.7: it pins bugsee-cli 0.6.0, which silently uploads nothing for NDK `SYMBOL_TABLE` symbols when the CLI's auto-update is off or its download host is unreachable; 4.0.8 pins bugsee-cli 0.8.1. Plugin 4.x pairs with SDK 7.x; do not mix with plugin 3.x / SDK 6.x. There is no separate Gradle-plugin skill — apply the notes below from the [plugin release notes](https://docs.bugsee.com/sdk/android/gradle-plugin/releases/). **Kotlin DSL (`app/build.gradle.kts`):** @@ -149,26 +149,26 @@ pluginManagement { With the plugin applied, the core `com.bugsee:bugsee-android` artifact is auto-pulled (bounded to the same MAJOR.MINOR series as the plugin's `sdk-min-version`). Dependency-driven extensions (OkHttp, Ktor 2/3, Cronet, Compose) are auto-installed when the matching library is in the graph. Feedback, NDK, and leak are **not** dependency-driven — enable them with the DSL toggles above. -From plugin **4.0.6** (carried into 4.0.7 and 4.0.8): variants that do **not** include Bugsee (e.g. `debugImplementation` only) are no longer instrumented or wired. Flavors are handled the same way. Plain `implementation` is unchanged — do not invent extra plugin flags for that case. The Compose launch crash fix requires SDK **7.1.4+**; **7.4.2** satisfies that — do not pair plugin 4.0.6+ with an older 7.1.x SDK. No DSL changes. Plugin latest is **4.0.8** (Maven Central lastUpdated 2026-10-08; re-verified 2026-11-03). +From plugin **4.0.6** (carried into 4.0.7 and 4.0.8): variants that do **not** include Bugsee (e.g. `debugImplementation` only) are no longer instrumented or wired. Flavors are handled the same way. Plain `implementation` is unchanged — do not invent extra plugin flags for that case. The Compose launch crash fix requires SDK **7.1.4+**; **7.5.0** satisfies that — do not pair plugin 4.0.6+ with an older 7.1.x SDK. No DSL changes. Plugin latest is **4.0.8** (Maven Central lastUpdated 2026-10-08; re-verified 2026-11-06). > **Plugin 4.0.6 is broken — upgrade it on sight.** In apps built against the published SDK, 4.0.6 stripped the extension providers from the manifest without registering the extensions in their place: **NDK crash reporting, feedback, Compose, OkHttp, Ktor, Cronet and leak detection never ran**, with a green build and a normally working app. Because the Compose extension never installed, content marked `bugseeSecure` was **not masked** in report screenshots. 4.0.7 fixes it. If an app is on 4.0.6 and cannot move yet, stay on 4.0.5 or set `optimizeExtensionsLoading.set(false)` in `bugsee {}`. Also in 4.0.7 ([release notes](https://docs.bugsee.com/sdk/android/gradle-plugin/releases/)): > - Only Bugsee's own extension providers are consolidated — a `BugseeInitProvider` in the app or a wrapper SDK is no longer silently removed (4.0.0-beta10 → 4.0.6 removed them). > - If the plugin would strip extension providers it cannot register (e.g. an SDK older than 7.0.0-beta11 declared with a non-literal version such as `7.+`), the build now **fails** naming the providers and pointing at `optimizeExtensionsLoading` — that error means "pin a literal SDK version", not "disable the plugin". > - The built-in fallback uploader treats the server's "already uploaded" reply as success, so an unchanged mapping is no longer re-uploaded on every build. -> - The auto-added SDK floor is still 7.2.0 (plugin 4.0.8). Auto-pull on `[7.2.0,8.0.0)` can resolve 7.4.2, but pin **7.4.2** explicitly so the latest 7.4.x patch is locked (7.4.0 reliability/API-clarity, 7.4.1 touch-capture, 7.4.2 Maven Central latest). +> - The auto-added SDK floor is still 7.2.0 (plugin 4.0.8). Auto-pull on `[7.2.0,8.0.0)` can resolve 7.5.0, but pin **7.5.0** explicitly so the latest 7.x release is locked (7.4.0 reliability/API-clarity, 7.4.1 touch-capture, 7.4.2 lifecycle/privacy, 7.5.0 Maven Central latest). ### Step 2 — Pin the core SDK (recommended) -An explicit `com.bugsee:bugsee-android` declaration wins over auto-pull and locks the runtime. Pin **7.4.2**. Avoid `+`. +An explicit `com.bugsee:bugsee-android` declaration wins over auto-pull and locks the runtime. Pin **7.5.0**. Avoid `+`. **Kotlin DSL:** ```kotlin dependencies { - implementation("com.bugsee:bugsee-android:7.4.2") + implementation("com.bugsee:bugsee-android:7.5.0") // Only if you did not use feedback.set(true) / ndk { enabled.set(true) } and need a manual pin: - // implementation("com.bugsee:bugsee-android-feedback:7.4.2") - // implementation("com.bugsee:bugsee-android-ndk:7.4.2") + // implementation("com.bugsee:bugsee-android-feedback:7.5.0") + // implementation("com.bugsee:bugsee-android-ndk:7.5.0") } ``` @@ -176,15 +176,18 @@ dependencies { ```groovy dependencies { - implementation 'com.bugsee:bugsee-android:7.4.2' + implementation 'com.bugsee:bugsee-android:7.5.0' } ``` To suppress auto-install of a dependency-driven extension, set the corresponding flag in `bugsee { instrumentation { ... } }` (e.g. `cronet.set(false)`). To opt out of core auto-pull entirely, `sdkAutoLoad.set(false)`. -> **Current stable releases (re-verified 2026-11-03 against Maven Central; SDK lastUpdated 2026-10-19):** SDK `com.bugsee:bugsee-android:7.4.2` (and matching `bugsee-android-compose`, `bugsee-android-ndk`, `bugsee-android-feedback`, `bugsee-android-okhttp`, `bugsee-android-ktor-2`, `bugsee-android-ktor-3`, `bugsee-android-cronet`, `bugsee-android-leak` at **7.4.2**) and Gradle plugin `4.0.8` (`com.bugsee:bugsee-android-gradle-plugin` / Plugin Portal `com.bugsee.android.gradle`; plugin lastUpdated 2026-10-08). The plugin tracks its own 4.x line, separate from the SDK — pin both together. 7.4.2 does not require a plugin bump. +> **Current stable releases (re-verified 2026-11-06 against Maven Central; SDK lastUpdated 2026-11-06):** SDK `com.bugsee:bugsee-android:7.5.0` (and matching `bugsee-android-compose`, `bugsee-android-ndk`, `bugsee-android-feedback`, `bugsee-android-okhttp`, `bugsee-android-ktor-2`, `bugsee-android-ktor-3`, `bugsee-android-cronet`, `bugsee-android-leak` at **7.5.0**) and Gradle plugin `4.0.8` (`com.bugsee:bugsee-android-gradle-plugin` / Plugin Portal `com.bugsee.android.gradle`; plugin lastUpdated 2026-10-08). The plugin tracks its own 4.x line, separate from the SDK — pin both together. 7.5.0 does not require a plugin bump. > -> **SDK 7.4.2 / plugin 4.0.8 — cite, do not invent APIs.** 7.4.2 pin, changelog gap, and "do not invent APIs" are under **SDK 7.4.2 — agent notes** below. 7.4.0 public API is **additive**: `Bugsee.deleteCollectedDataOnDevice(includingIntermediate, includingBundles, callback)` and `Bugsee.logException(Throwable, String domain, int skipFrames)`; `logException(Throwable, Map)` is deprecated. [Gradle plugin 4.0.8](https://docs.bugsee.com/sdk/android/gradle-plugin/releases/) is the latest Maven Central release. Its default `bugsee-cli` download floor is **0.8.1** (verified in the [plugin source](https://github.com/bugsee/bugsee-android-gradle-plugin) `CliBinaryResolver.DEFAULT_VERSION`, 2026-11-03) — standalone CLI 0.9.0 does not bump the plugin. Agents should **not** advise workarounds 7.1.4 / 4.0.6 made unnecessary: +> **SDK 7.5.0 / plugin 4.0.8 — cite, do not invent APIs.** 7.5.0 pin, changelog gap, and "do not invent APIs" are under **SDK 7.5.0 — agent notes** below. 7.4.2 is documented (lifecycle/privacy — no new public API or `Options`). 7.4.0 public API is **additive**: `Bugsee.deleteCollectedDataOnDevice(includingIntermediate, includingBundles, callback)` and `Bugsee.logException(Throwable, String domain, int skipFrames)`; `logException(Throwable, Map)` is deprecated. [Gradle plugin 4.0.8](https://docs.bugsee.com/sdk/android/gradle-plugin/releases/) is the latest Maven Central release. Its default `bugsee-cli` download floor is **0.8.1** (verified in the [plugin source](https://github.com/bugsee/bugsee-android-gradle-plugin) `CliBinaryResolver.DEFAULT_VERSION`, 2026-11-03) — standalone CLI 0.9.0 does not bump the plugin. Agents should **not** advise workarounds 7.1.4 / 4.0.6 made unnecessary: +> - **`relaunch()` callback (7.4.2).** A relaunch that cannot run (SDK not launched, launching, or stopping) now calls back with `false` (the callback was previously skipped). A second `relaunch()` while one is in progress joins it and receives its outcome. +> - **`stop()` cancels a pending relaunch (7.4.2).** Calling `stop()` while a relaunch is stopping the SDK, or in the gap before it launches again, now leaves the SDK stopped. Before, the relaunch launched it again afterwards. +> - **Secure fields while they move (7.4.2).** A password field that scrolls, is flung in a list, is removed, or sits in a screen that transitions or pans for the keyboard is masked along its whole path (short margin and a brief trail). Rectangles follow what is on screen (a field partly scrolled under a bottom bar no longer swallows taps on the bar; a field re-attached without a new layout pass is masked again). Overlapping secure-mask rectangles are merged before paint — masked pixels do not change. > - **Touches (7.4.1).** Touches are captured again for views with small numeric ids (especially React Native, and native apps whose view id collided with an internal one since 7.0.0). Reports had video but no touch data. No app code change. > - **`deleteCollectedDataOnDevice` bundles (7.4.0).** The new overload `deleteCollectedDataOnDevice(includingIntermediate, includingBundles, callback)` can remove finished report bundles (logout / privacy). The two-argument method is unchanged and keeps bundles. A bundle mid-upload is kept; the result is `false`. Stop the SDK first ([data cleanup](https://docs.bugsee.com/sdk/android/privacy/cleanup/)). > - **`logException` domain / skipFrames (7.4.0).** New `Bugsee.logException(Throwable, String domain, int skipFrames)`. `logException(Throwable, Map)` is deprecated — only `domain` / `skipFrames` ever worked; add labels with `Report.addLabels` in a handler; omitting video on a single report is not supported. The [crash & error reporting](https://docs.bugsee.com/sdk/android/manual/crash-error-reporting/) page may still list the Map overload; follow the 7.4.0 [release notes](https://docs.bugsee.com/sdk/android/release-notes/). @@ -205,7 +208,7 @@ To suppress auto-install of a dependency-driven extension, set the corresponding > - **Video last-frame hold (7.3.1).** A report that ends on a still screen holds the last shown frame until the end of the video instead of ending in black. Mid-video pauses and backgrounding remain black. > - **OTel-shaped performance spans (7.3.1).** Report performance data follows the OpenTelemetry trace format: transactions as spans, HTTP request spans named by method not URL, each span carrying device/app/network context, span ids 16 hex characters. No new `Options`. > - **Upgrade from 7.2.0 (and any 7.0.0-beta1+).** The SDK internal log attached to reports no longer records app HTTP URLs (including embedded credentials and query strings), `setUserIdentifier` / `setAttribute` values, performance-transaction URLs, or filter/listener text. Data written by an earlier 7.x is deleted on the first 7.3.0+ launch and never attached. Recommend the upgrade; do not invent a third-party leak — it stayed in the app's own Bugsee project. -> - **Ktor.** 7.2.0 `bugsee-android-ktor-2` / `bugsee-android-ktor-3` did not compile `install(BugseeKtor2Plugin)`, `install(BugseeKtor3Plugin.Plugin)`, or `bugseeWebSocket` in Kotlin apps. Pin **7.4.2**. +> - **Ktor.** 7.2.0 `bugsee-android-ktor-2` / `bugsee-android-ktor-3` did not compile `install(BugseeKtor2Plugin)`, `install(BugseeKtor3Plugin.Plugin)`, or `bugseeWebSocket` in Kotlin apps. Pin **7.5.0**. > - **Pending-report caps (defaults on).** `MaxDataSize` (150 MB), `MaxPendingReports` (30), `MaxPendingReportAge` (30 days). Past a limit, oldest unsent reports are deleted (errors before bugs before crashes). A device offline more than 30 days now drops the oldest instead of keeping them all. > - **ReportHandler.** Handlers no longer run on the main thread (they now also run for hang/ANR). If a handler touches views, post to the main thread. With `ReportHandlerCallbackTimeout` `0`, a handler that never completes no longer holds the report indefinitely. > - **`Bugsee.logException(null)`.** Now reports a simulated exception from the call site (groups by call site, not one empty issue). @@ -214,7 +217,7 @@ To suppress auto-install of a dependency-driven extension, set the corresponding > - **Host logging.** Logging statements in the host app are unaffected by failures inside Bugsee capture. > - **Report UI / notifications.** Crash when the report screen is restored after process death; crash on light/dark theme change while a notification-opened report is on screen; Huawei Android 6 notification small-icon fallback; screenshot loss on some storage configs. > - **Variant / flavor wiring (4.0.6+).** Variants (and flavors) that do not include Bugsee are left uninstrumented. Plain `implementation` is unchanged. -> - **Compose.** The Compose launch crash fix **requires SDK 7.1.4+**. **7.4.2** satisfies that. Keep the two pins paired. +> - **Compose.** The Compose launch crash fix **requires SDK 7.1.4+**. **7.5.0** satisfies that. Keep the two pins paired. > - **Instrumentation / APM.** Thread-instrumentation crash fix; failed DB/file operations are now timed (host exception handling unchanged). Manifest optimization is applied only when the SDK version supports it; already-minified third-party libraries are left as-is. --- @@ -318,7 +321,7 @@ Common toggles (including 7.1.x / 7.2.0 / 7.3.0 setup-relevant options): ### NDK native crashes (`bugsee-android-ndk`) -Native crash detection is **not** in the core artifact. Enable it with the plugin DSL (`ndk { enabled.set(true) }`) or `implementation("com.bugsee:bugsee-android-ndk:7.4.2")`. The programmatic constant is `NdkOptions.DetectAndReport` (`com.bugsee.library.ndk.contracts.options.NdkOptions`), **not** the removed `Options.DetectAndReportCrashNdk`. Manifest key `com.bugsee.option.detect.crash-ndk` is unchanged; default is `true` once the module is on the classpath. From **7.3.1**, `DetectAndReportCrash` set to `false` also turns off native crash reporting (with the NDK extension present, earlier 7.x reported native crashes whatever `DetectAndReportCrash` said). A native crash an earlier run with detection on left on the device is still reported once. See [native crashes](https://docs.bugsee.com/sdk/android/issue-detection/native-crashes/). +Native crash detection is **not** in the core artifact. Enable it with the plugin DSL (`ndk { enabled.set(true) }`) or `implementation("com.bugsee:bugsee-android-ndk:7.5.0")`. The programmatic constant is `NdkOptions.DetectAndReport` (`com.bugsee.library.contracts.options.NdkOptions`; the `com.bugsee.library.ndk.contracts.options.NdkOptions` alias is `@Deprecated`), **not** the removed `Options.DetectAndReportCrashNdk`. Manifest key `com.bugsee.option.detect.crash-ndk` is unchanged; default is `true` once the module is on the classpath. From **7.3.1**, `DetectAndReportCrash` set to `false` also turns off native crash reporting (with the NDK extension present, earlier 7.x reported native crashes whatever `DetectAndReportCrash` said). A native crash an earlier run with detection on left on the device is still reported once. See [native crashes](https://docs.bugsee.com/sdk/android/issue-detection/native-crashes/). ### WebSocket @@ -363,9 +366,15 @@ The SDK must be stopped first ([data cleanup](https://docs.bugsee.com/sdk/androi `Bugsee.startBlackout()` / `endBlackout()` blank video and drop touches ([lifecycle](https://docs.bugsee.com/sdk/android/lifecycle/)). From 7.4.0, `startBlackout()` before `launch()` is honored until `endBlackout()`. A blackout ends when the SDK stops — call `startBlackout()` again before the next `launch()`. A launch that starts blacked out reports `BlackoutStarted` after `Launched`; a stop with an active blackout reports `BlackoutEnded` before `Stopped`. +### SDK 7.5.0 — agent notes + +- **Pin.** Maven Central latest (`lastUpdated` 2026-11-06; re-verified 2026-11-06) with matching compose/ndk/feedback/okhttp/ktor-2/ktor-3/cronet/leak artifacts. The [Android release notes](https://docs.bugsee.com/sdk/android/release-notes/) and [github.com/bugsee/docs](https://github.com/bugsee/docs) `docs/sdk/android/release-notes.md` still stop at 7.4.2. **No documented public API or `Options` change** relative to 7.4.2 — do not invent any. Pin **7.5.0** anyway. Plugin stays **4.0.8** (7.5.0 does not require a plugin bump). [React Native 7.0.0-beta1 through 7.0.0-beta3](https://docs.bugsee.com/sdk/react_native/release-notes/) still lists Android SDK 7.4.2 as the native SDK they wrap — that is the RN package pin, not this skill's Android pin. + ### SDK 7.4.2 — agent notes -- **Patch pin.** Maven Central latest (`lastUpdated` 2026-10-19; re-verified 2026-11-03). The [Android release notes](https://docs.bugsee.com/sdk/android/release-notes/) still stop at 7.4.1 (a touch-capture fix on 7.4.0's reliability and API-clarity release). **No documented public API or `Options` change** relative to 7.4.1 — do not invent any. Pin **7.4.2** anyway. [React Native 7.0.0-beta1 through 7.0.0-beta3](https://docs.bugsee.com/sdk/react_native/release-notes/) lists Android SDK 7.4.2 as the native SDK they wrap. Plugin stays **4.0.8** (7.4.2 does not require a plugin bump). +- **Lifecycle.** `relaunch()` always calls back: a relaunch that cannot run (SDK not launched, launching, or stopping) calls back with `false`; a second `relaunch()` while one is in progress joins it and receives its outcome. `stop()` during a pending relaunch (while the SDK is stopping, or in the gap before it launches again) leaves the SDK stopped. +- **Secure fields.** Masks follow a field while it scrolls, is flung, is removed, or sits in a transitioning/panning screen (short margin and a brief trail). Rectangles follow what is on screen. Overlapping masks are merged before paint; masked pixels do not change. +- **Compatibility.** **No new public API or `Options`.** ### SDK 7.4.1 — agent notes @@ -416,7 +425,7 @@ when (Bugsee.getStatus()) { } ``` -`Bugsee.getLaunched()` remains the boolean shortcut (`true` between a successful launch/auto-init and the next `stop()`). From **7.4.0**, `Bugsee.stop(callback)` during an in-progress stop waits for that stop, and stopping always completes (the SDK no longer stays in `Stopping` and refuses a later `launch()`). See [lifecycle](https://docs.bugsee.com/sdk/android/lifecycle/). +`Bugsee.getLaunched()` remains the boolean shortcut (`true` between a successful launch/auto-init and the next `stop()`). From **7.4.0**, `Bugsee.stop(callback)` during an in-progress stop waits for that stop, and stopping always completes (the SDK no longer stays in `Stopping` and refuses a later `launch()`). From **7.4.2**, a `relaunch()` that cannot run calls back with `false` (the callback was previously skipped), a second `relaunch()` while one is in progress joins it, and `stop()` during a pending relaunch leaves the SDK stopped. See [lifecycle](https://docs.bugsee.com/sdk/android/lifecycle/) and [release notes 7.4.2](https://docs.bugsee.com/sdk/android/release-notes/). Network client wiring (required for non-OkHttp clients): diff --git a/docs/ai/agent-skills/sdk/cordova/SKILL.md b/docs/ai/agent-skills/sdk/cordova/SKILL.md index 9b15fd27..c4b54244 100644 --- a/docs/ai/agent-skills/sdk/cordova/SKILL.md +++ b/docs/ai/agent-skills/sdk/cordova/SKILL.md @@ -96,7 +96,7 @@ Launch with options: ```javascript var options = { - shakeToTrigger: true, + shakeToReport: true, maxRecordingTime: 60, videoEnabled: true }; diff --git a/docs/ai/agent-skills/sdk/dotnet/SKILL.md b/docs/ai/agent-skills/sdk/dotnet/SKILL.md index b2c01c80..2dc20bd8 100644 --- a/docs/ai/agent-skills/sdk/dotnet/SKILL.md +++ b/docs/ai/agent-skills/sdk/dotnet/SKILL.md @@ -104,7 +104,7 @@ namespace YourNameSpace public override void OnCreate() { base.OnCreate(); - BugseePlugin.Bugsee.Launch(this, ""); + BugseePlugin.Bugsee.Launch(""); } } } @@ -133,9 +133,9 @@ BugseePlugin.Bugsee.Launch("", options); ```csharp var options = new BugseePlugin.AndroidLaunchOptions(); -options.ShakeToTrigger = true; +options.ShakeToReport = true; options.VideoEnabled = true; -BugseePlugin.Bugsee.Launch(this, "", options); +BugseePlugin.Bugsee.Launch("", options); ``` Full options: [docs.bugsee.com/sdk/dotnet/configuration/](https://docs.bugsee.com/sdk/dotnet/configuration/) @@ -150,7 +150,7 @@ Build and run on a device. The Bugsee floating button should appear. Tap it to f ## Debug Symbols -Upload the symbol files for the release build so managed and native frames resolve. The .NET MAUI MSBuild target bundles and invokes the [Bugsee CLI](https://github.com/bugsee/bugsee-for-ai/blob/main/skills/bugsee-cli/SKILL.md); in CI you can run the same binary directly. +Upload the symbol files for the release build so managed and native frames resolve. The `Bugsee` NuGet package ships an MSBuild target (`UploadSymbols`, hooked after `Build`/`Publish` on iOS, Mac Catalyst, and Android) that collects and uploads managed and native symbols during the build. It needs the app token as an assembly attribute, for example `[assembly: BugseePlugin.BugseeAppToken("")]` — see [.NET symbolication](https://docs.bugsee.com/sdk/dotnet/symbolication/). It does not use the [Bugsee CLI](https://github.com/bugsee/bugsee-for-ai/blob/main/skills/bugsee-cli/SKILL.md); use the CLI only for CI jobs that upload symbols outside the MSBuild flow. A MAUI app crashing on iOS or Android also needs that platform's native symbols — dSYMs or the R8 mapping — not just the managed ones. diff --git a/docs/ai/agent-skills/sdk/flutter/SKILL.md b/docs/ai/agent-skills/sdk/flutter/SKILL.md index 6b586235..5fc7cbd9 100644 --- a/docs/ai/agent-skills/sdk/flutter/SKILL.md +++ b/docs/ai/agent-skills/sdk/flutter/SKILL.md @@ -61,7 +61,7 @@ dependencies: bugsee_flutter: ^9.0.4 ``` -Current pub.dev latest (re-verified 2026-08-25): **9.0.4**. Docs still show `^8.0.0` — pin from the registry, not the installation page. +Current pub.dev latest (re-verified 2026-08-25): **9.0.4**. The installation page shows `^9.0.0`; pin the exact latest from the registry. Then run: diff --git a/docs/ai/agent-skills/sdk/react-native/SKILL.md b/docs/ai/agent-skills/sdk/react-native/SKILL.md index a0064ede..4979538a 100644 --- a/docs/ai/agent-skills/sdk/react-native/SKILL.md +++ b/docs/ai/agent-skills/sdk/react-native/SKILL.md @@ -140,7 +140,7 @@ Launch with options: ```javascript const options = { - shakeToTrigger: true, + shakeToReport: true, maxRecordingTime: 60, videoEnabled: true, }; diff --git a/docs/ai/agent-skills/sdk/xamarin/SKILL.md b/docs/ai/agent-skills/sdk/xamarin/SKILL.md index db3e6a5c..8d19aa06 100644 --- a/docs/ai/agent-skills/sdk/xamarin/SKILL.md +++ b/docs/ai/agent-skills/sdk/xamarin/SKILL.md @@ -22,6 +22,8 @@ Opinionated wizard that guides you through complete Bugsee setup in Xamarin — > **Note:** Always verify against [docs.bugsee.com/sdk/xamarin/installation/](https://docs.bugsee.com/sdk/xamarin/installation/). +> **Deprecated:** Microsoft ended support for Xamarin on May 1, 2024, and the Bugsee Xamarin SDK is no longer actively maintained (last release **3.1.5**). For new projects, or when migrating, use [`bugsee-dotnet-sdk`](https://docs.bugsee.com/ai/agent-skills/sdk/dotnet/SKILL.md) (.NET / MAUI). + --- ## Phase 1: Detect @@ -56,15 +58,15 @@ find . -name "AppDelegate.cs" -o -name "MainApplication.cs" -o -name "App.xaml.c Install via NuGet in each platform project: -In Visual Studio: right-click project > Add > Add NuGet Packages > search "Bugsee" > Add Package. +In Visual Studio: right-click project > Add > Add NuGet Packages > search "Bugsee.Xamarin" > Add Package. Or via CLI: ```bash -nuget install Bugsee -Version 6.0.3 +nuget install Bugsee.Xamarin -Version 3.1.5 ``` -Current NuGet latest (re-verified 2026-08-25): **Bugsee 6.0.3** (same package as .NET / MAUI). +The Xamarin package is **`Bugsee.Xamarin`** (last release **3.1.5**). Do not install `Bugsee` here — that is the .NET / MAUI package (6.x) and has no Xamarin target (`net6.0-android` / `net6.0-ios` only). > Install the Bugsee package in each platform-specific project (iOS and Android), not the shared/PCL project. @@ -98,7 +100,7 @@ public class MyApplication : Application protected override void OnCreate() { base.OnCreate(); - Bugsee.Launch(this, ""); + Bugsee.Launch(""); } } ``` @@ -128,9 +130,9 @@ Bugsee.Launch("", options); ```csharp var options = new AndroidLaunchOptions(); -options.ShakeToTrigger = true; +options.ShakeToReport = true; options.VideoEnabled = true; -Bugsee.Launch(this, "", options); +Bugsee.Launch("", options); ``` Full options: [docs.bugsee.com/sdk/xamarin/configuration/](https://docs.bugsee.com/sdk/xamarin/configuration/) diff --git a/scripts/skills-source.json b/scripts/skills-source.json index e475bf4e..d356b2e4 100644 --- a/scripts/skills-source.json +++ b/scripts/skills-source.json @@ -1,3 +1,3 @@ { - "ref": "25e8d945c6ed765adb0538c96f70e64989c13fd8" + "ref": "17755e90d3696e85f4af4b47a3357c4aa8a362dd" }