react-native-acoustic-connect 19.0.28 → 19.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,33 @@
1
+ ## 19.0.34 (2026-09-22)
2
+
3
+ ### Reverts
4
+
5
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
6
+ ## 19.0.33 (2026-09-22)
7
+
8
+ ### Reverts
9
+
10
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
11
+ ## 19.0.32 (2026-09-22)
12
+
13
+ ### Reverts
14
+
15
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
16
+ ## 19.0.31 (2026-09-22)
17
+
18
+ ### Reverts
19
+
20
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
21
+ ## 19.0.30 (2026-09-21)
22
+
23
+ ### Reverts
24
+
25
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
26
+ ## 19.0.29 (2026-09-17)
27
+
28
+ ### Reverts
29
+
30
+ * Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/go-acoustic/react-native-acoustic-connect/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
1
31
  ## 19.0.28 (2026-09-14)
2
32
 
3
33
  ### Reverts
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "Connect": {
3
3
  "AndroidNotificationIconResName": "ic_notification",
4
- "AndroidVersion": "11.0.13",
4
+ "AndroidVersion": "11.0.36",
5
5
  "AppKey": "YOUR_CONNECT_APP_KEY_HERE",
6
6
  "KillSwitchUrl": "YOUR_KILL_SWITCH_URL_HERE",
7
7
  "PostMessageUrl": "YOUR_POST_MESSAGE_URL_HERE",
package/README.md CHANGED
@@ -106,6 +106,29 @@ directories, and re-running either command is safe. After install, run
106
106
  `npx acoustic-connect doctor` to validate the result — see
107
107
  [Setup CLI](#setup-cli-acoustic-connect) below.
108
108
 
109
+ ### Where the Android Connect SDK is resolved from
110
+
111
+ You don't need to add any repositories. This package's `android/build.gradle`
112
+ declares both of the ones it needs, and your app inherits them:
113
+
114
+ | Repository | Carries |
115
+ | --- | --- |
116
+ | [`go-acoustic/Android_Maven`](https://github.com/go-acoustic/Android_Maven) | Beta builds (`-beta` versions) |
117
+ | Maven Central | Release builds and the older version history |
118
+
119
+ Beta artifacts are published only to the GitHub-hosted repository, so a build
120
+ that does not declare it never sees them. When `AndroidVersion` is empty the
121
+ version is resolved dynamically, and Gradle takes the newest match across
122
+ *both* repositories — the beta repository does not need to be consulted first
123
+ for a new beta to win. It is scoped to the `io.github.go-acoustic` group, so
124
+ nothing else in your build is routed through it, and Maven Central still
125
+ answers for any version the beta repository does not carry.
126
+
127
+ This matters when you pin. Leaving `AndroidVersion` empty resolves the newest
128
+ version in the supported range across **both** repositories — which, for as
129
+ long as betas are the newest builds, means a `-beta`. Pin `AndroidVersion` to
130
+ a specific release if you would rather track Maven Central's release line.
131
+
109
132
  ## Setup CLI (`acoustic-connect`)
110
133
 
111
134
  The package ships a small CLI, installed as `acoustic-connect` (invoke it with
@@ -363,7 +386,7 @@ screen / touch / keyboard tracking) can skip it entirely.
363
386
  ### 3. Log events (imperative, anywhere)
364
387
 
365
388
  ```ts
366
- import AcousticConnectRN from 'react-native-acoustic-connect'
389
+ import AcousticConnectRN, { TLTRN } from 'react-native-acoustic-connect'
367
390
 
368
391
  // Custom application event (flat key/value pairs)
369
392
  AcousticConnectRN.logCustomEvent('checkout_started', { cartId: 'abc' }, 1)
@@ -377,8 +400,12 @@ AcousticConnectRN.logSignal(
377
400
  1
378
401
  )
379
402
 
380
- // Force a logical screen name (e.g. for non-NavigationContainer screens)
403
+ // Force a logical screen name (e.g. for non-NavigationContainer screens).
404
+ // Sets the name that later events are attributed to — it does not itself emit
405
+ // a screen view or capture a layout. For a screen <Connect> cannot see, follow
406
+ // it with logScreenLayout, which does both.
381
407
  AcousticConnectRN.setCurrentScreenName('CheckoutScreen')
408
+ TLTRN.logScreenLayout('CheckoutScreen')
382
409
 
383
410
  // Manual exception capture
384
411
  AcousticConnectRN.logExceptionEvent(
@@ -953,6 +980,13 @@ leave it empty for the newest 11.x available). 12.x is intentionally outside
953
980
  the supported range pending compatibility validation — track that work
954
981
  separately if you need it.
955
982
 
983
+ If the version you pinned is a `-beta`, check that your build can reach
984
+ [`go-acoustic/Android_Maven`](https://github.com/go-acoustic/Android_Maven) —
985
+ beta artifacts live there rather than on Maven Central. This package declares
986
+ that repository for you, so a failure here usually means the build is offline
987
+ or behind a proxy that blocks `raw.githubusercontent.com`. See
988
+ [Where the Android Connect SDK is resolved from](#where-the-android-connect-sdk-is-resolved-from).
989
+
956
990
  ### Gradle can't find `node`
957
991
 
958
992
  Common when Gradle is launched outside an NVM-loaded shell. Either:
@@ -173,6 +173,39 @@ repositories {
173
173
  allprojects {
174
174
  repositories {
175
175
  google()
176
+
177
+ // Beta Connect artifacts publish HERE, not to Maven Central. Central is
178
+ // still consulted below — it carries every version up to 11.0.31-beta —
179
+ // but newer betas land only in this GitHub-hosted Maven tree, so a build
180
+ // that does not know about it silently freezes `connect:+` at whatever
181
+ // Central happens to hold. That failure is invisible: resolution
182
+ // succeeds, just against a stale SDK, and the gap widens with each beta.
183
+ //
184
+ // Declaring it is what fixes that; the position is close to cosmetic.
185
+ // `connect` is resolved through a dynamic version, and for those Gradle
186
+ // queries every declared repository and takes the newest match across
187
+ // all of them rather than stopping at the first repository that answers.
188
+ // Verified: with this entry declared LAST, after mavenCentral(),
189
+ // `connect:+` still resolves to the newest beta here rather than to
190
+ // Central's older newest. Order only decides which repository serves a
191
+ // PINNED version that both carry, where the artifact is identical
192
+ // anyway — it is kept first so a pin on a beta is served by the tree
193
+ // that is authoritative for betas.
194
+ //
195
+ // The content filter is not cosmetic. Without it every dependency in
196
+ // the build (React Native, Kotlin, AndroidX, …) would hit
197
+ // raw.githubusercontent and 404 before falling through to a repository
198
+ // that has it. Inclusive `content`, not `exclusiveContent`, so Central
199
+ // still answers for versions this tree does not carry.
200
+ //
201
+ // Declared only here, not also in the top-level `repositories` block:
202
+ // `allprojects` covers this project too, so both would feed the same
203
+ // resolution and the pair could drift.
204
+ maven {
205
+ url = "https://raw.githubusercontent.com/go-acoustic/Android_Maven/master"
206
+ content { includeGroup "io.github.go-acoustic" }
207
+ }
208
+
176
209
  mavenCentral()
177
210
  maven { url="https://s01.oss.sonatype.org/content/groups/staging" }
178
211
 
@@ -24,7 +24,7 @@
24
24
  "IpPlaceholder": "N/A",
25
25
  "KillSwitchAsync": true,
26
26
  "KillSwitchDelay": 300,
27
- "LibraryVersion": "11.0.13",
27
+ "LibraryVersion": "11.0.36",
28
28
  "LogFullRequestResponsePayloads": true,
29
29
  "MessageTypeHeader": "WorklightHit",
30
30
  "MessageTypes": "4,5",
@@ -6,7 +6,7 @@
6
6
  "CompressPostMessage": true,
7
7
  "DefaultOrientation": 0,
8
8
  "DisableCookieManager": false,
9
- "LibraryVersion": "2.1.16",
9
+ "LibraryVersion": "2.1.24-beta",
10
10
  "MNCMCC": {
11
11
  "00": "N/A",
12
12
  "20201": "Cosmote",
@@ -24,7 +24,7 @@
24
24
  "IpPlaceholder": "N/A",
25
25
  "KillSwitchAsync": true,
26
26
  "KillSwitchDelay": 300,
27
- "LibraryVersion": "10.4.28",
27
+ "LibraryVersion": "10.4.33-beta",
28
28
  "LogFullRequestResponsePayloads": true,
29
29
  "MessageTypeHeader": "WorklightHit",
30
30
  "MessageTypes": "4,5",
@@ -912,12 +912,6 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
912
912
  }
913
913
  }
914
914
 
915
- /**
916
- * Requests that the framework save the current application page name.
917
- *
918
- * @param logicalPageName The logical page name to be set.
919
- * @return True if the operation was successful, false otherwise.
920
- */
921
915
  /**
922
916
  * Whether the bridge may touch capture at all.
923
917
  *
@@ -926,7 +920,7 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
926
920
  * `<Connect>` only advances the current screen name. On Android the same
927
921
  * component also drives capture explicitly on every navigation
928
922
  * (`logScreenViewPageName` + `logScreenLayout`), and those paths used to run
929
- * regardless of the flag: `setCurrentScreenName` calls through to
923
+ * regardless of the flag: `setCurrentScreenName` called through to
930
924
  * `Tealeaf.resumeTealeaf`, which resumes logging, and `logScreenLayout`
931
925
  * captured a full layout. The net effect was that `disable()` silenced
932
926
  * capture on iOS but not on Android, for an app doing nothing unusual.
@@ -936,11 +930,60 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
936
930
  */
937
931
  private fun isCaptureAllowed(): Boolean = Connect.isEnabled()
938
932
 
933
+ /**
934
+ * Requests that the framework save the current application page name.
935
+ *
936
+ * Sets the name and nothing else, which is what the name promises and what
937
+ * iOS has always done — `TLFApplicationHelper.setCurrentScreenName:` just
938
+ * assigns `TLFScreenViewManager`'s current screen view name.
939
+ *
940
+ * `<Connect>` calls this on every touch: `onStartShouldSetResponderCapture`
941
+ * needs the name current so the click that follows is attributed to the
942
+ * right screen. It therefore has to be cheap, and on Android it was not. It
943
+ * used to be `Connect.resumeConnect` → `Tealeaf.resumeTealeaf`, which does
944
+ * four things at once: sets the name, emits a screenview LOAD, re-arms
945
+ * capture, and **captures a full screen layout**. Only the first is wanted
946
+ * here. The layout put a message of tens to hundreds of KB on the wire per
947
+ * tap on Android, where the same call on iOS sends nothing.
948
+ *
949
+ * That volume is not merely wasteful. EOCore's disk cache holds at most
950
+ * `MaxNumberOfFilesToCache` (5) chunks between post cycles and silently
951
+ * discards the rest while posting is healthy, so a tap-heavy screen loses
952
+ * whole batches: in a customer session, a `DeliveryOptionsScreen` LOAD and
953
+ * the first 8 s of capture on it went missing that way.
954
+ *
955
+ * Dropping the re-arm with it is safe, and was verified on-device rather
956
+ * than assumed: `logScreenLayout` below still calls `resumeConnect` on
957
+ * every navigation and on first paint, which arms capture before any touch
958
+ * can reach this method. Measured on the bare-workflow sample, twelve taps
959
+ * on one screen went from 21 layout messages (586 KB) to 4 (67 KB) with all
960
+ * twelve clicks still captured.
961
+ *
962
+ * Screenview and layout belong to the navigation path, which goes through
963
+ * `logScreenLayout` below and is unchanged.
964
+ *
965
+ * @param logicalPageName The logical page name to be set.
966
+ * @return True if the operation was successful, false otherwise.
967
+ */
939
968
  override fun setCurrentScreenName(logicalPageName: String): Boolean {
940
- // resumeConnect resumes logging, so this must not run while disabled.
969
+ // Nothing should advance capture state while disabled. Cheaper than it
970
+ // was — this no longer captures a layout — but still the wrong thing to
971
+ // do behind a `disable()`.
941
972
  if (!isCaptureAllowed()) return false
942
- val result = resumeConnect(getCurrentActivity(), logicalPageName, false)
943
- return result
973
+ // Guarded because of where this runs, not because the call is expected to
974
+ // fail: `<Connect>` invokes it from `onStartShouldSetResponderCapture`, so
975
+ // this is the one bridge method on the per-touch path. An exception out of
976
+ // the SDK here would surface inside React's responder negotiation on every
977
+ // tap, taking touch handling down with it. Report the failure instead — the
978
+ // click that follows is then attributed to the previous screen, which is
979
+ // wrong but survivable.
980
+ return try {
981
+ Connect.setCurrentLogicalPageName(logicalPageName)
982
+ true
983
+ } catch (e: Exception) {
984
+ Log.v(TAG, "setCurrentScreenName error: ${e.message}")
985
+ false
986
+ }
944
987
  }
945
988
 
946
989
  /**
@@ -992,13 +1035,17 @@ class HybridAcousticConnectRN : HybridAcousticConnectRNSpec(),
992
1035
  override fun logScreenLayout(name: String, delay: Double): Boolean {
993
1036
  // The wrapper calls this on every Android navigation.
994
1037
  if (!isCaptureAllowed()) return false
995
- // Advisory on purpose: a false here means the screen name did not advance,
1038
+ // Resume explicitly rather than via `setCurrentScreenName`, which now only
1039
+ // sets the name. Navigation is where resuming belongs: `resumeTealeaf`
1040
+ // re-enables capture for the screen being entered (`_isCaptureScreenContentsEnabled`)
1041
+ // after a `pauseTealeaf`, honouring the screen's layout config. Calling it
1042
+ // here keeps this path byte-identical to what it did before that split.
1043
+ //
1044
+ // The result is advisory on purpose: a false means the resume did not take,
996
1045
  // which is not a reason to skip the screenview and layout that follow — they
997
1046
  // are what the caller asked for. Treating it as fatal would suppress capture
998
- // in cases that capture fine today. The guard inside setCurrentScreenName is
999
- // redundant against the check above and deliberately left in, so the method
1000
- // stays safe for callers that reach it directly.
1001
- setCurrentScreenName(name)
1047
+ // in cases that capture fine today.
1048
+ resumeConnect(getCurrentActivity(), name, false)
1002
1049
  // The 3-arg overload takes a nullable Activity, so this one is safe to pass
1003
1050
  // through — unlike the 4-arg overload the context methods use.
1004
1051
  logScreenview(getCurrentActivity(), name, ScreenviewType.LOAD)
@@ -217,6 +217,18 @@ export interface AcousticConnectRN extends HybridObject<{
217
217
  logLocationWithLatitudeLongitude(latitude: number, longitude: number, level: number): boolean;
218
218
  logClickEvent(target: number, controlId: string): boolean;
219
219
  logTextChangeEvent(target: number, controlId: string, text: string | null | undefined): boolean;
220
+ /**
221
+ * Sets the logical screen name subsequent events are attributed to.
222
+ *
223
+ * Sets the name and nothing else — no screenview, no layout capture — on
224
+ * both platforms. `<Connect>` calls this on every touch so the click that
225
+ * follows lands on the right screen, so it has to stay cheap.
226
+ *
227
+ * Android used to route it through `Connect.resumeConnect`, which also
228
+ * emitted a screenview and captured a full layout, putting tens to hundreds
229
+ * of KB on the wire per tap where iOS sent none. Use `logScreenLayout` when
230
+ * a layout capture is what you want.
231
+ */
220
232
  setCurrentScreenName(logicalPageName: string): boolean;
221
233
  logScreenViewContextLoad(logicalPageName: string | null | undefined, referrer: string | null | undefined): boolean;
222
234
  logScreenViewContextUnload(logicalPageName: string | null | undefined, referrer: string | null | undefined): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"react-native-acoustic-connect.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/react-native-acoustic-connect.nitro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-native-acoustic-connect.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/react-native-acoustic-connect.nitro.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -215,9 +215,10 @@
215
215
  "rebuild": "npm run codegen && npm run rebuildExample --prefix ./example",
216
216
  "release": "release-it",
217
217
  "test": "jest",
218
- "test:all": "npm test && npm run test:plugin && npm run test:cli",
218
+ "test:all": "npm test && npm run test:plugin && npm run test:cli && npm run test:skills",
219
219
  "test:cli": "node --test cli/__tests__/",
220
220
  "test:plugin": "npm run build:plugin && node --test plugin/__tests__/",
221
+ "test:skills": "node .claude/skills/release-verification/scripts/assert-messages.mjs selftest",
221
222
  "test:watch": "jest --watch",
222
223
  "typecheck": "tsc --noEmit",
223
224
  "verifyConnectSetup": "node cli/index.mjs doctor $INIT_CWD",
@@ -226,7 +227,7 @@
226
227
  "source": "src/index",
227
228
  "summary": "react-native ios android tealeaf connect cxa wxca er enhanced-replay",
228
229
  "types": "./lib/typescript/src/index.d.ts",
229
- "version": "19.0.28",
230
+ "version": "19.0.34",
230
231
  "workspaces": [
231
232
  "example",
232
233
  "Examples/bare-workflow"
@@ -235,6 +235,18 @@ export interface AcousticConnectRN extends HybridObject<{ ios: 'swift', android:
235
235
  logLocationWithLatitudeLongitude(latitude: number, longitude: number, level: number): boolean
236
236
  logClickEvent(target: number, controlId: string): boolean
237
237
  logTextChangeEvent(target: number, controlId: string, text: string | null | undefined): boolean
238
+ /**
239
+ * Sets the logical screen name subsequent events are attributed to.
240
+ *
241
+ * Sets the name and nothing else — no screenview, no layout capture — on
242
+ * both platforms. `<Connect>` calls this on every touch so the click that
243
+ * follows lands on the right screen, so it has to stay cheap.
244
+ *
245
+ * Android used to route it through `Connect.resumeConnect`, which also
246
+ * emitted a screenview and captured a full layout, putting tens to hundreds
247
+ * of KB on the wire per tap where iOS sent none. Use `logScreenLayout` when
248
+ * a layout capture is what you want.
249
+ */
238
250
  setCurrentScreenName(logicalPageName: string): boolean
239
251
  logScreenViewContextLoad(logicalPageName: string | null | undefined, referrer:string | null | undefined): boolean
240
252
  logScreenViewContextUnload(logicalPageName: string | null | undefined, referrer:string | null | undefined): boolean