@scalebun/web 1.2.2 → 1.2.4

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.
Files changed (117) hide show
  1. package/README.md +0 -2
  2. package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -1
  3. package/dist/bootstrap/SDKBootstrapper.js +37 -1
  4. package/dist/bootstrap/SDKBootstrapper.js.map +1 -1
  5. package/dist/core/prune.d.ts +28 -4
  6. package/dist/core/prune.d.ts.map +1 -1
  7. package/dist/core/prune.js +92 -11
  8. package/dist/core/prune.js.map +1 -1
  9. package/dist/features/bugreport/BugReportFeature.d.ts +3 -2
  10. package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -1
  11. package/dist/features/bugreport/BugReportFeature.js +2 -1
  12. package/dist/features/bugreport/BugReportFeature.js.map +1 -1
  13. package/dist/features/bugreport/widget.d.ts +21 -2
  14. package/dist/features/bugreport/widget.d.ts.map +1 -1
  15. package/dist/features/bugreport/widget.js +37 -4
  16. package/dist/features/bugreport/widget.js.map +1 -1
  17. package/dist/features/coach/overlay.d.ts.map +1 -1
  18. package/dist/features/coach/overlay.js +26 -5
  19. package/dist/features/coach/overlay.js.map +1 -1
  20. package/dist/features/engage/EngageFeature.d.ts +7 -1
  21. package/dist/features/engage/EngageFeature.d.ts.map +1 -1
  22. package/dist/features/engage/EngageFeature.js +32 -10
  23. package/dist/features/engage/EngageFeature.js.map +1 -1
  24. package/dist/features/engage/normalize.d.ts.map +1 -1
  25. package/dist/features/engage/normalize.js +7 -0
  26. package/dist/features/engage/normalize.js.map +1 -1
  27. package/dist/features/engage/runtime.d.ts +11 -0
  28. package/dist/features/engage/runtime.d.ts.map +1 -1
  29. package/dist/features/engage/runtime.js +25 -10
  30. package/dist/features/engage/runtime.js.map +1 -1
  31. package/dist/features/engage/throttle.d.ts +16 -6
  32. package/dist/features/engage/throttle.d.ts.map +1 -1
  33. package/dist/features/engage/throttle.js +96 -6
  34. package/dist/features/engage/throttle.js.map +1 -1
  35. package/dist/features/engage/types.d.ts +6 -0
  36. package/dist/features/engage/types.d.ts.map +1 -1
  37. package/dist/features/engage/types.js.map +1 -1
  38. package/dist/features/inapp/InApp2Feature.d.ts.map +1 -1
  39. package/dist/features/inapp/InApp2Feature.js +1 -0
  40. package/dist/features/inapp/InApp2Feature.js.map +1 -1
  41. package/dist/features/inapp/blocks/styles.d.ts +1 -1
  42. package/dist/features/inapp/blocks/styles.d.ts.map +1 -1
  43. package/dist/features/inapp/blocks/styles.js +30 -3
  44. package/dist/features/inapp/blocks/styles.js.map +1 -1
  45. package/dist/features/inapp/center/panel.d.ts +1 -1
  46. package/dist/features/inapp/center/panel.d.ts.map +1 -1
  47. package/dist/features/inapp/center/panel.js +40 -6
  48. package/dist/features/inapp/center/panel.js.map +1 -1
  49. package/dist/features/inapp/core/engine.d.ts +2 -0
  50. package/dist/features/inapp/core/engine.d.ts.map +1 -1
  51. package/dist/features/inapp/core/engine.js +1 -1
  52. package/dist/features/inapp/core/engine.js.map +1 -1
  53. package/dist/features/inapp/core/host.d.ts.map +1 -1
  54. package/dist/features/inapp/core/host.js +5 -1
  55. package/dist/features/inapp/core/host.js.map +1 -1
  56. package/dist/features/inapp/core/targeting.d.ts +29 -2
  57. package/dist/features/inapp/core/targeting.d.ts.map +1 -1
  58. package/dist/features/inapp/core/targeting.js +78 -4
  59. package/dist/features/inapp/core/targeting.js.map +1 -1
  60. package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -1
  61. package/dist/features/inapp/surfaces/coachmark.js +5 -2
  62. package/dist/features/inapp/surfaces/coachmark.js.map +1 -1
  63. package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -1
  64. package/dist/features/inapp/surfaces/hotspot.js +5 -2
  65. package/dist/features/inapp/surfaces/hotspot.js.map +1 -1
  66. package/dist/features/inapp/surfaces/inline.d.ts.map +1 -1
  67. package/dist/features/inapp/surfaces/inline.js +7 -1
  68. package/dist/features/inapp/surfaces/inline.js.map +1 -1
  69. package/dist/features/inapp/surfaces/popover.d.ts.map +1 -1
  70. package/dist/features/inapp/surfaces/popover.js +5 -2
  71. package/dist/features/inapp/surfaces/popover.js.map +1 -1
  72. package/dist/features/inapp/surfaces/styles.d.ts +1 -1
  73. package/dist/features/inapp/surfaces/styles.d.ts.map +1 -1
  74. package/dist/features/inapp/surfaces/styles.js +60 -11
  75. package/dist/features/inapp/surfaces/styles.js.map +1 -1
  76. package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -1
  77. package/dist/features/inapp/surfaces/toolbar.js +5 -2
  78. package/dist/features/inapp/surfaces/toolbar.js.map +1 -1
  79. package/dist/features/inapp/surfaces/tour.d.ts.map +1 -1
  80. package/dist/features/inapp/surfaces/tour.js +5 -2
  81. package/dist/features/inapp/surfaces/tour.js.map +1 -1
  82. package/dist/features/inapp/types.d.ts +2 -0
  83. package/dist/features/inapp/types.d.ts.map +1 -1
  84. package/dist/features/journey/InteractionTracker.d.ts.map +1 -1
  85. package/dist/features/journey/InteractionTracker.js +137 -0
  86. package/dist/features/journey/InteractionTracker.js.map +1 -1
  87. package/dist/features/manifest.d.ts +21 -0
  88. package/dist/features/manifest.d.ts.map +1 -1
  89. package/dist/features/manifest.js +27 -10
  90. package/dist/features/manifest.js.map +1 -1
  91. package/dist/features/replay/ReplayFeature.d.ts +20 -0
  92. package/dist/features/replay/ReplayFeature.d.ts.map +1 -1
  93. package/dist/features/replay/ReplayFeature.js +155 -5
  94. package/dist/features/replay/ReplayFeature.js.map +1 -1
  95. package/dist/features/replay/lifecycle/recorder.d.ts +21 -1
  96. package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -1
  97. package/dist/features/replay/lifecycle/recorder.js +20 -4
  98. package/dist/features/replay/lifecycle/recorder.js.map +1 -1
  99. package/dist/features/session/sessionStore.d.ts +17 -1
  100. package/dist/features/session/sessionStore.d.ts.map +1 -1
  101. package/dist/features/session/sessionStore.js +17 -1
  102. package/dist/features/session/sessionStore.js.map +1 -1
  103. package/dist/pipeline/pipeline.d.ts +82 -0
  104. package/dist/pipeline/pipeline.d.ts.map +1 -1
  105. package/dist/pipeline/pipeline.js +307 -14
  106. package/dist/pipeline/pipeline.js.map +1 -1
  107. package/dist/public/ScaleBunFacade.d.ts +31 -0
  108. package/dist/public/ScaleBunFacade.d.ts.map +1 -1
  109. package/dist/public/ScaleBunFacade.js +43 -7
  110. package/dist/public/ScaleBunFacade.js.map +1 -1
  111. package/dist/scalebun.min.js +147 -65
  112. package/dist/scalebun.min.js.map +4 -4
  113. package/dist/transport/httpClient.d.ts +56 -2
  114. package/dist/transport/httpClient.d.ts.map +1 -1
  115. package/dist/transport/httpClient.js +81 -5
  116. package/dist/transport/httpClient.js.map +1 -1
  117. package/package.json +9 -3
package/README.md CHANGED
@@ -18,7 +18,6 @@ import { ScaleBun } from '@scalebun/web';
18
18
 
19
19
  await ScaleBun.init({
20
20
  clientKey: 'your-client-key',
21
- apiBaseUrl: 'https://ingest.your-scalebun-host.com/api/v1',
22
21
  });
23
22
 
24
23
  // Track product events
@@ -42,7 +41,6 @@ A prebuilt browser bundle is published for `unpkg`/`jsDelivr`. Configure via `da
42
41
  <script
43
42
  src="https://unpkg.com/@scalebun/web/dist/scalebun.min.js"
44
43
  data-client-key="your-client-key"
45
- data-api-base-url="https://ingest.your-scalebun-host.com/api/v1"
46
44
  ></script>
47
45
  ```
48
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"SDKBootstrapper.d.ts","sourceRoot":"","sources":["../../src/bootstrap/SDKBootstrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAwJ,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AACnM,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUhE;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,mGAAmG;IACnG,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,6BAA6B;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED,qBAAa,eAAe;IAC1B;;;;;OAKG;WACU,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CA2NlG"}
1
+ {"version":3,"file":"SDKBootstrapper.d.ts","sourceRoot":"","sources":["../../src/bootstrap/SDKBootstrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAwJ,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AACnM,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUhE;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,mGAAmG;IACnG,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,6BAA6B;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED,qBAAa,eAAe;IAC1B;;;;;OAKG;WACU,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CA8PlG"}
@@ -9,7 +9,7 @@ import { SessionManager } from '../features/session/sessionManager.js';
9
9
  import { HttpClient } from '../transport/httpClient.js';
10
10
  import { Pipeline } from '../pipeline/pipeline.js';
11
11
  import { FeatureRegistry } from './FeatureRegistry.js';
12
- import { FEATURES, featureRequirements } from '../features/manifest.js';
12
+ import { FEATURES, OPTIONAL_FEATURES, featureRequirements } from '../features/manifest.js';
13
13
  import { can } from '../core/index.js';
14
14
  // 0-cost-closed: map an item kind → the SDK-suppressible entitlement that gates it (or '' if
15
15
  // ungated). When the org has CLOSED one of these features (admin dashboard → /config entitlements),
@@ -139,6 +139,41 @@ export class SDKBootstrapper {
139
139
  }
140
140
  };
141
141
  registerFeatures();
142
+ /**
143
+ * P5a — register the OFF-BY-DEFAULT features, which are lazy-imported.
144
+ *
145
+ * Only reached for a name the host explicitly enabled: all five default to `false`, so the common
146
+ * page never issues any of these imports and never pays for them. That is the whole point — their
147
+ * shells used to sit in the eager core on every page load whether or not the site used them
148
+ * (measured: 1,383 B gzipped).
149
+ *
150
+ * Awaited inside `activate()` BEFORE `setupAll`, so an enabled feature is registered and set up in
151
+ * exactly the same order an eager one would be, and the setup-before-`pipeline.start` contract that
152
+ * F-VIT depends on is untouched.
153
+ *
154
+ * `Promise.all`, not sequential: two opted-in features are independent, and serialising their
155
+ * imports would put a second round trip in front of session start for no reason.
156
+ *
157
+ * A failed import must not stop the others or abort activation — a feature that cannot load is a
158
+ * missing feature, not a broken SDK. `FeatureRegistry.setupAll` already reports per-feature setup
159
+ * failures; this reports the earlier, rarer case where the chunk itself never arrives.
160
+ */
161
+ const registerOptional = async () => {
162
+ await Promise.all(Object.entries(OPTIONAL_FEATURES).map(async ([name, load]) => {
163
+ if (enabled[name] !== true)
164
+ return;
165
+ if (!featureRequirements(name).every((cap) => can(cap)))
166
+ return;
167
+ if (registry.get(name))
168
+ return; // idempotent, like registerFeatures()
169
+ try {
170
+ registry.add(await load());
171
+ }
172
+ catch (err) {
173
+ log(`[scalebun] optional feature "${name}" failed to load:`, err);
174
+ }
175
+ }));
176
+ };
142
177
  // Consent-mode (F-CNS): when consent is required and not yet granted, DEFER activation — no
143
178
  // feature setup (no observers installed) and no pipeline start (no session opened, no flush).
144
179
  // Capture begins only on the first grant. Default (not required) → activate immediately.
@@ -149,6 +184,7 @@ export class SDKBootstrapper {
149
184
  return;
150
185
  activated = true;
151
186
  registerFeatures(); // re-register after a prior deny teardownAll() cleared the registry
187
+ await registerOptional(); // P5a — opted-in lazy features, before setup so ordering is unchanged
152
188
  // Order matters: setupAll BEFORE pipeline.start (F-VIT relies on it — see its header).
153
189
  await registry.setupAll(ctx);
154
190
  // Edge-lite: skip the session-lane pipeline (no startSession fetch, no flush timer, no DOM
@@ -1 +1 @@
1
- {"version":3,"file":"SDKBootstrapper.js","sourceRoot":"","sources":["../../src/bootstrap/SDKBootstrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SDKBootstrapper.js","sourceRoot":"","sources":["../../src/bootstrap/SDKBootstrapper.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,31 @@
1
+ /** The persisted-buffer budget. Exported so producers can size their own buffers against the budget
2
+ * their data has to survive, instead of guessing — see `MAX_BUFFER_BYTES` in the replay recorder,
3
+ * which was 3MB against this 2MB and so could never be persisted whole. */
4
+ export declare const PERSIST_MAX_BYTES = 2000000;
1
5
  /** Keep only items younger than the max age (by getTime). Items with no timestamp are kept. */
2
6
  export declare function freshOnly<T>(items: T[], getTime: (it: T) => number | undefined, nowMs: number): T[];
3
- /** Trim a queue to the persisted-byte budget: shed heavy (replay-frame) items first, then oldest.
4
- * Always returns a fresh array (a synchronous snapshot) so the async IDB write can't capture a
5
- * reference that a concurrent flush() splices out from under it (pagehide save-vs-flush race). */
6
- export declare function capBytes<T>(items: T[], isHeavy?: (it: T) => boolean): T[];
7
+ /**
8
+ * Trim a queue to the persisted-byte budget.
9
+ *
10
+ * Sheds the OLDEST heavy (replay-frame) items until it fits, so what survives is the most recent
11
+ * replay plus every light item. Light telemetry is never traded for a frame: events, perf and
12
+ * network entries are two orders of magnitude smaller, so dropping them to keep a keyframe is a
13
+ * bad exchange in both directions.
14
+ *
15
+ * WHY THIS IS NOT `filter(not heavy)`:
16
+ * it used to be. One byte over budget removed EVERY frame in a single pass — keyframe included —
17
+ * while events/perf/network sailed through. That is precisely the failure signature measured on a
18
+ * live app: 44 of 164 sessions arrived complete in every other lane with not one frame stored
19
+ * (`npm run replay:diagnose`, the `missing` state). Its keyframes average 109 kB and reach 1.17 MB,
20
+ * and `persistQueue()` runs on every pagehide AND every failed flush, so a single transient 500
21
+ * mid-session was enough to discard a whole session's replay.
22
+ *
23
+ * `isBase` marks a keyframe. A delta whose keyframe was shed reconstructs nothing, so it goes too —
24
+ * storing it would only convert a `missing` session into an `orphaned` one, which is no better and
25
+ * costs bytes to find out.
26
+ *
27
+ * Always returns a fresh array (a synchronous snapshot) so the async IDB write can't capture a
28
+ * reference that a concurrent flush() splices out from under it (pagehide save-vs-flush race).
29
+ */
30
+ export declare function capBytes<T>(items: T[], isHeavy?: (it: T) => boolean, isBase?: (it: T) => boolean): T[];
7
31
  //# sourceMappingURL=prune.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/core/prune.ts"],"names":[],"mappings":"AAcA,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAKnG;AAED;;mGAEmG;AACnG,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,CAKzE"}
1
+ {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/core/prune.ts"],"names":[],"mappings":"AAWA;;4EAE4E;AAC5E,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAO3C,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAKnG;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,CAuDtG"}
@@ -8,8 +8,14 @@
8
8
  * oldest) so a few large frames can't blow the IndexedDB quota.
9
9
  */
10
10
  const MAX_AGE_MS = 24 * 60 * 60 * 1000; // 24h
11
- const MAX_BYTES = 2000000; // ~2MB well under typical IndexedDB quotas
12
- const size = (items) => JSON.stringify(items).length;
11
+ /** The persisted-buffer budget. Exported so producers can size their own buffers against the budget
12
+ * their data has to survive, instead of guessing — see `MAX_BUFFER_BYTES` in the replay recorder,
13
+ * which was 3MB against this 2MB and so could never be persisted whole. */
14
+ export const PERSIST_MAX_BYTES = 2000000; // ~2MB — well under typical IndexedDB quotas
15
+ /** Per-item cost, +1 for the separating comma. Summed once instead of re-stringifying the whole
16
+ * array per drop: the old shed loop was O(n) full stringifies, which on a 1000-item queue holding
17
+ * MB-scale keyframes is real main-thread time — spent on `pagehide`, of all moments. */
18
+ const itemSize = (it) => JSON.stringify(it).length + 1;
13
19
  /** Keep only items younger than the max age (by getTime). Items with no timestamp are kept. */
14
20
  export function freshOnly(items, getTime, nowMs) {
15
21
  return items.filter((it) => {
@@ -17,15 +23,90 @@ export function freshOnly(items, getTime, nowMs) {
17
23
  return t == null || nowMs - t <= MAX_AGE_MS;
18
24
  });
19
25
  }
20
- /** Trim a queue to the persisted-byte budget: shed heavy (replay-frame) items first, then oldest.
21
- * Always returns a fresh array (a synchronous snapshot) so the async IDB write can't capture a
22
- * reference that a concurrent flush() splices out from under it (pagehide save-vs-flush race). */
23
- export function capBytes(items, isHeavy) {
24
- if (size(items) <= MAX_BYTES)
26
+ /**
27
+ * Trim a queue to the persisted-byte budget.
28
+ *
29
+ * Sheds the OLDEST heavy (replay-frame) items until it fits, so what survives is the most recent
30
+ * replay plus every light item. Light telemetry is never traded for a frame: events, perf and
31
+ * network entries are two orders of magnitude smaller, so dropping them to keep a keyframe is a
32
+ * bad exchange in both directions.
33
+ *
34
+ * WHY THIS IS NOT `filter(not heavy)`:
35
+ * it used to be. One byte over budget removed EVERY frame in a single pass — keyframe included —
36
+ * while events/perf/network sailed through. That is precisely the failure signature measured on a
37
+ * live app: 44 of 164 sessions arrived complete in every other lane with not one frame stored
38
+ * (`npm run replay:diagnose`, the `missing` state). Its keyframes average 109 kB and reach 1.17 MB,
39
+ * and `persistQueue()` runs on every pagehide AND every failed flush, so a single transient 500
40
+ * mid-session was enough to discard a whole session's replay.
41
+ *
42
+ * `isBase` marks a keyframe. A delta whose keyframe was shed reconstructs nothing, so it goes too —
43
+ * storing it would only convert a `missing` session into an `orphaned` one, which is no better and
44
+ * costs bytes to find out.
45
+ *
46
+ * Always returns a fresh array (a synchronous snapshot) so the async IDB write can't capture a
47
+ * reference that a concurrent flush() splices out from under it (pagehide save-vs-flush race).
48
+ */
49
+ export function capBytes(items, isHeavy, isBase) {
50
+ const rows = items.map((it) => ({ it, n: itemSize(it), gone: false }));
51
+ let total = rows.reduce((a, r) => a + r.n, 0);
52
+ if (total <= PERSIST_MAX_BYTES)
25
53
  return items.slice();
26
- let kept = isHeavy ? items.filter((it) => !isHeavy(it)) : items.slice();
27
- while (kept.length && size(kept) > MAX_BYTES)
28
- kept.shift();
29
- return kept;
54
+ // Oldest-first over whatever `pick` selects, stopping the moment the budget is met.
55
+ const shed = (pick) => {
56
+ for (const r of rows) {
57
+ if (total <= PERSIST_MAX_BYTES)
58
+ return;
59
+ if (r.gone || !pick(r.it))
60
+ continue;
61
+ r.gone = true;
62
+ total -= r.n;
63
+ }
64
+ };
65
+ /**
66
+ * Pass 1 — frames, oldest first, BUT never the last surviving keyframe.
67
+ *
68
+ * Oldest-first alone is right whenever two segments exist: dropping the older base (and, via pass 3,
69
+ * its orphaned deltas) leaves a recent replay that still has motion, which beats keeping two static
70
+ * snapshots. That policy is preserved exactly.
71
+ *
72
+ * It breaks on the SINGLE-segment case. Early in a session there is one keyframe with deltas behind
73
+ * it; oldest-first sheds the base first, pass 3 then correctly drops the orphaned deltas, and the
74
+ * whole replay is gone — where shedding the deltas would have left a playable single-frame replay.
75
+ * That is the early/short session that dominates the `missing` bucket, and `persistQueue()` runs on
76
+ * every pagehide and every failed flush, so a visitor simply leaving is enough to reach it.
77
+ *
78
+ * The guard is "more than one keyframe left", not "is this the first": after the older bases have
79
+ * gone the survivor becomes protected in turn, so the rule needs no lookahead and cannot strand a
80
+ * session with deltas and no base.
81
+ */
82
+ if (isHeavy && isBase) {
83
+ let basesLeft = rows.reduce((n, r) => n + (isBase(r.it) ? 1 : 0), 0);
84
+ for (const r of rows) {
85
+ if (total <= PERSIST_MAX_BYTES)
86
+ break;
87
+ if (r.gone || !isHeavy(r.it))
88
+ continue;
89
+ const isTheBase = isBase(r.it);
90
+ if (isTheBase && basesLeft <= 1)
91
+ continue; // the last thing that makes any of this playable
92
+ r.gone = true;
93
+ total -= r.n;
94
+ if (isTheBase)
95
+ basesLeft--;
96
+ }
97
+ }
98
+ else if (isHeavy) {
99
+ shed(isHeavy); // no base predicate — nothing to protect, old behaviour
100
+ }
101
+ // Pass 2 — light items alone still over budget, or a lone keyframe that cannot fit on its own. This
102
+ // is the genuine last resort and may take the protected base with it; at that point there is no
103
+ // playable replay to save either way.
104
+ shed(() => true);
105
+ const kept = rows.filter((r) => !r.gone).map((r) => r.it);
106
+ if (!isHeavy || !isBase)
107
+ return kept;
108
+ // Pass 3 — drop deltas left with no keyframe ahead of them.
109
+ let based = false;
110
+ return kept.filter((it) => (!isHeavy(it) ? true : isBase(it) ? ((based = true), true) : based));
30
111
  }
31
112
  //# sourceMappingURL=prune.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/core/prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM;AAC9C,MAAM,SAAS,GAAG,OAAS,CAAC,CAAC,6CAA6C;AAE1E,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAExE,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAI,KAAU,EAAE,OAAsC,EAAE,KAAa;IAC5F,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;mGAEmG;AACnG,MAAM,UAAU,QAAQ,CAAI,KAAU,EAAE,OAA4B;IAClE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACnD,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/core/prune.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,16 @@
6
6
  * The actual HTTP submit is orchestrated by the facade (which holds session + transport + registry).
7
7
  */
8
8
  import type { IFeature, FeatureContext } from '@scalebun/sdk-contracts';
9
- import type { WidgetPosition } from './widget.js';
9
+ import type { SubmitResult, WidgetPosition } from './widget.js';
10
10
  export interface LauncherOptions {
11
11
  position: WidgetPosition;
12
12
  label: string;
13
13
  }
14
+ /** Resolves to the report id, or to `{ id, reason }` naming which branch of the submit path failed. */
14
15
  type SubmitFn = (input: {
15
16
  message: string;
16
17
  email?: string;
17
- }) => Promise<string | null>;
18
+ }) => Promise<SubmitResult>;
18
19
  export declare class BugReportFeature implements IFeature {
19
20
  readonly name = "bugReport";
20
21
  private ctx;
@@ -1 +1 @@
1
- {"version":3,"file":"BugReportFeature.d.ts","sourceRoot":"","sources":["../../../src/features/bugreport/BugReportFeature.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAEvF,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAKhC,8FAA8F;IAC9F,YAAY,IAAI,IAAI;IAIpB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI7B,+FAA+F;IACzF,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzD,QAAQ,IAAI,IAAI;CAMjB"}
1
+ {"version":3,"file":"BugReportFeature.d.ts","sourceRoot":"","sources":["../../../src/features/bugreport/BugReportFeature.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAgB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uGAAuG;AACvG,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEtF,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAKhC,8FAA8F;IAC9F,YAAY,IAAI,IAAI;IAIpB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI7B,+FAA+F;IACzF,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD,QAAQ,IAAI,IAAI;CAMjB"}
@@ -35,7 +35,8 @@ export class BugReportFeature {
35
35
  this.widget = createBugReportWidget({
36
36
  position: opts.position,
37
37
  label: opts.label,
38
- onSubmit: (input) => (this.submitFn ? this.submitFn(input) : Promise.resolve(null)),
38
+ // No submitFn means the facade never finished wiring — that is 'init', not a send failure.
39
+ onSubmit: (input) => this.submitFn ? this.submitFn(input) : Promise.resolve({ e: 'init' }),
39
40
  });
40
41
  }
41
42
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"BugReportFeature.js","sourceRoot":"","sources":["../../../src/features/bugreport/BugReportFeature.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,gBAAgB;IAA7B;QACW,SAAI,GAAG,WAAW,CAAC;QACpB,QAAG,GAA0B,IAAI,CAAC;QAClC,WAAM,GAAG,KAAK,CAAC;QACf,aAAQ,GAAoB,IAAI,CAAC;QACjC,WAAM,GAAwB,IAAI,CAAC;QACnC,aAAQ,GAAG,KAAK,CAAC,CAAC,yEAAyE;IA+CrG,CAAC;IA7CC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAmB;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,8FAA8F;IAC9F,YAAY;QACV,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,6FAA6F;IAC7F,SAAS,CAAC,EAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,aAAa,CAAC,IAAqB;QACvC,0FAA0F;QAC1F,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,+BAA+B;YACxD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACpF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"BugReportFeature.js","sourceRoot":"","sources":["../../../src/features/bugreport/BugReportFeature.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,gBAAgB;IAA7B;QACW,SAAI,GAAG,WAAW,CAAC;QACpB,QAAG,GAA0B,IAAI,CAAC;QAClC,WAAM,GAAG,KAAK,CAAC;QACf,aAAQ,GAAoB,IAAI,CAAC;QACjC,WAAM,GAAwB,IAAI,CAAC;QACnC,aAAQ,GAAG,KAAK,CAAC,CAAC,yEAAyE;IAiDrG,CAAC;IA/CC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAmB;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,8FAA8F;IAC9F,YAAY;QACV,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,6FAA6F;IAC7F,SAAS,CAAC,EAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,aAAa,CAAC,IAAqB;QACvC,0FAA0F;QAC1F,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,+BAA+B;YACxD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,2FAA2F;gBAC3F,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAe,EAAE,CAAC;aACjF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF"}
@@ -5,14 +5,33 @@
5
5
  * Styles are inline + prefixed to avoid clashing with the host page. Never throws into the host.
6
6
  */
7
7
  export type WidgetPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
8
+ /**
9
+ * Why a submit produced no report id. The submit path has SIX independent ways to fail and they need
10
+ * different things from the reader — "try again" is sound advice for exactly one of them and actively
11
+ * wrong for the rest (retrying a consent block or a disabled feature can never succeed).
12
+ *
13
+ * Codes rather than sentences cross the boundary on purpose: the prose lives here, in the lazily
14
+ * loaded chunk, instead of in the facade where every byte is measured by `size:check`.
15
+ */
16
+ export type SubmitFailure = 'init' | 'off' | 'empty' | 'consent' | 'send';
17
+ /**
18
+ * A submit result: the report id, or `{ e }` naming the branch that failed.
19
+ *
20
+ * The failure shape carries no `id` field on purpose — six `{ id: null, reason }` literals in the
21
+ * facade cost enough gzipped bytes to break the core-bundle gate outright. `string | null` is still
22
+ * accepted because it predates the reason codes and hosts may still pass it.
23
+ */
24
+ export type SubmitResult = string | null | {
25
+ e: SubmitFailure;
26
+ };
8
27
  export interface WidgetOptions {
9
28
  position: WidgetPosition;
10
29
  label: string;
11
- /** Returns the created report id (or null on failure). */
30
+ /** Returns the created report id, or why there isn't one. */
12
31
  onSubmit: (input: {
13
32
  message: string;
14
33
  email?: string;
15
- }) => Promise<string | null>;
34
+ }) => Promise<SubmitResult>;
16
35
  }
17
36
  export interface WidgetHandle {
18
37
  destroy: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA8BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAmFvE"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG;IAAE,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACjF;AAUD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA6CD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CA4FvE"}
@@ -5,6 +5,13 @@
5
5
  * Styles are inline + prefixed to avoid clashing with the host page. Never throws into the host.
6
6
  */
7
7
  import { injectStyle } from '../../core/index.js';
8
+ const FAILURE_TEXT = {
9
+ init: 'Reporting isn’t ready yet. Reload the page and try again.',
10
+ off: 'Bug reporting is turned off for this site.',
11
+ empty: 'Please describe the bug.',
12
+ consent: 'Reporting is paused until you accept the privacy notice on this page.',
13
+ send: 'Couldn’t reach the server. Check your connection and try again.',
14
+ };
8
15
  const Z = 2147483000; // above almost everything, below the absolute max
9
16
  function corner(pos) {
10
17
  const v = pos.startsWith('top') ? 'top: 16px;' : 'bottom: 16px;';
@@ -16,7 +23,12 @@ function corner(pos) {
16
23
  function widgetCss(pos) {
17
24
  return (`[data-scalebun-bugreport]{position:fixed;${corner(pos)}z-index:${Z};font-family:system-ui,sans-serif}` +
18
25
  `[data-scalebun-bugreport] .sbbr-launch{cursor:pointer;border:none;border-radius:9999px;padding:10px 16px;font-size:13px;font-weight:600;color:#fff;background:#ef4444;box-shadow:0 2px 8px rgba(0,0,0,.2)}` +
19
- `[data-scalebun-bugreport] .sbbr-panel{display:none;width:300px;background:#fff;color:#111827;border:1px solid #e5e7eb;border-radius:12px;padding:14px;box-shadow:0 8px 30px rgba(0,0,0,.18);margin-top:8px}` +
26
+ // The launcher and the panel are SIBLINGS in one fixed box, so opening the panel used to leave
27
+ // the red pill sitting above it at z-index 2147483000 — floating over the page next to its own
28
+ // form. Nothing referenced .sbbr-launch on open at all. The panel replaces the launcher now.
29
+ `[data-scalebun-bugreport].sbbr-expanded .sbbr-launch{display:none}` +
30
+ // Width is min() rather than a flat 300px: on a 340px phone a fixed 300 leaves 4px of margin.
31
+ `[data-scalebun-bugreport] .sbbr-panel{display:none;width:min(300px,calc(100vw - 32px));background:#fff;color:#111827;border:1px solid #e5e7eb;border-radius:12px;padding:14px;box-shadow:0 8px 30px rgba(0,0,0,.18);margin-top:8px}` +
20
32
  `[data-scalebun-bugreport] .sbbr-panel.sbbr-open{display:block}` +
21
33
  `[data-scalebun-bugreport] .sbbr-title{font-size:14px;font-weight:700;margin-bottom:8px}` +
22
34
  `[data-scalebun-bugreport] .sbbr-field{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:8px;border:1px solid #e5e7eb;border-radius:8px}` +
@@ -26,7 +38,17 @@ function widgetCss(pos) {
26
38
  `[data-scalebun-bugreport] .sbbr-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}` +
27
39
  `[data-scalebun-bugreport] .sbbr-btn{cursor:pointer;font:inherit;font-size:13px;padding:6px 12px;border-radius:8px}` +
28
40
  `[data-scalebun-bugreport] .sbbr-cancel{border:1px solid #e5e7eb;background:#fff}` +
29
- `[data-scalebun-bugreport] .sbbr-send{font-weight:600;border:none;background:#ef4444;color:#fff}`);
41
+ `[data-scalebun-bugreport] .sbbr-send{font-weight:600;border:none;background:#ef4444;color:#fff}` +
42
+ // The palette was light-only and hardcoded, so on a dark host the panel either glared white or
43
+ // was left to the browser's forced-dark heuristic to invert — an appearance nobody designed.
44
+ // Declaring the dark half means the widget decides how it looks on a dark page.
45
+ `@media(prefers-color-scheme:dark){` +
46
+ `[data-scalebun-bugreport] .sbbr-panel{background:#17161c;color:#ececf1;border-color:#2e2c36;box-shadow:0 8px 30px rgba(0,0,0,.5)}` +
47
+ `[data-scalebun-bugreport] .sbbr-field{background:#111016;color:#ececf1;border-color:#2e2c36}` +
48
+ `[data-scalebun-bugreport] .sbbr-field::placeholder{color:#8b8796}` +
49
+ `[data-scalebun-bugreport] .sbbr-status{color:#a5a1b0}` +
50
+ `[data-scalebun-bugreport] .sbbr-cancel{background:#221f2b;color:#ececf1;border-color:#2e2c36}` +
51
+ `}`);
30
52
  }
31
53
  export function createBugReportWidget(opts) {
32
54
  if (typeof document === 'undefined')
@@ -61,6 +83,7 @@ export function createBugReportWidget(opts) {
61
83
  const setOpen = (v) => {
62
84
  open = v;
63
85
  panel.classList.toggle('sbbr-open', v);
86
+ root.classList.toggle('sbbr-expanded', v); // hides the launcher — see widgetCss
64
87
  if (v)
65
88
  msg.focus();
66
89
  };
@@ -75,11 +98,19 @@ export function createBugReportWidget(opts) {
75
98
  sendBtn.disabled = true;
76
99
  status.textContent = 'Sending…';
77
100
  let id = null;
101
+ let reason;
78
102
  try {
79
- id = await opts.onSubmit({ message, email: email.value.trim() || undefined });
103
+ const r = await opts.onSubmit({ message, email: email.value.trim() || undefined });
104
+ if (r && typeof r === 'object')
105
+ reason = r.e;
106
+ else
107
+ id = r ?? null;
80
108
  }
81
109
  catch {
110
+ // A THROWN submit is a delivery failure, not an unknown one. Reporting it as "try again" is
111
+ // right here and wrong for the other branches, which is the whole reason reason codes exist.
82
112
  id = null;
113
+ reason = 'send';
83
114
  }
84
115
  sendBtn.disabled = false;
85
116
  if (id) {
@@ -93,7 +124,9 @@ export function createBugReportWidget(opts) {
93
124
  }, 1500);
94
125
  }
95
126
  else {
96
- status.textContent = 'Could not send the report. Please try again.';
127
+ // Never the old blanket "Could not send the report. Please try again." — five of the six ways
128
+ // this fails cannot be fixed by trying again, so that sentence sent the reader in a loop.
129
+ status.textContent = reason ? FAILURE_TEXT[reason] : FAILURE_TEXT.send;
97
130
  }
98
131
  };
99
132
  launcher.addEventListener('click', onLauncher);
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,SAAS,CAAC;AA+BnD,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,MAAM;IAYd,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAuDhC,yEAAyE;IACzE,OAAO,CAAC,QAAQ;IA4BhB,IAAI,IAAI,IAAI;CAMb"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,SAAS,CAAC;AAoDnD,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,MAAM;IAYd,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAuDhC,yEAAyE;IACzE,OAAO,CAAC,QAAQ;IA4BhB,IAAI,IAAI,IAAI;CAMb"}
@@ -14,20 +14,41 @@ function rectOf(el) {
14
14
  function viewport() {
15
15
  return { x: 0, y: 0, width: window.innerWidth || 1024, height: window.innerHeight || 768 };
16
16
  }
17
+ /*
18
+ * Three layout rules below are load-bearing; each fixed a defect visible on a phone but not a desktop.
19
+ * They are documented HERE rather than inside the template literal because anything inside STYLE is
20
+ * shipped bytes, and the core bundle is gated to the byte by `npm run size:check`.
21
+ *
22
+ * `.card` — WIDTH IS EXPLICIT, not `max-width`. A `position:fixed` box with `left:50%` and no width
23
+ * shrink-wraps into the space from the 50% mark to the RIGHT EDGE, i.e. half the viewport. The
24
+ * `transform` then re-centres it visually, but the width was already computed against that half. On a
25
+ * 393px phone the "320px" card rendered ~196px wide, which is what made the tour card look cramped and
26
+ * wrapped its body onto three lines. `min(320px, 100vw - 32px)` also keeps the card off the screen
27
+ * edges below 352px, which `max-width` alone never did. Desktop is unchanged: 320px still wins.
28
+ *
29
+ * `.t` — RESERVES the space the absolutely-positioned `.x` sits in. `.x` is out of flow, so without
30
+ * this the heading runs underneath it and the × lands on the last word of the title. Same approach as
31
+ * `.scalebun-toolbar-callout` in inapp/surfaces/styles.ts, which reserves its right padding this way.
32
+ *
33
+ * `.ft` / `.count` / `.btns` — flex items shrink below their content width by default. Once the footer
34
+ * overflowed, `5 of 5` collapsed into a one-character column reading `5 / of / 5` and `Skip` clipped.
35
+ * `flex:none` stops the shrink and `flex-wrap` lets a genuinely-too-wide row wrap intact instead of
36
+ * being destroyed. The width fix above removes the usual cause; these keep the failure graceful.
37
+ */
17
38
  const STYLE = `
18
39
  :host{all:initial}
19
40
  *{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
20
41
  .spot{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px rgba(12,10,20,.55);z-index:2147483600;pointer-events:none;transition:all .2s ease}
21
42
  .backdrop{position:fixed;inset:0;background:rgba(12,10,20,.55);z-index:2147483600}
22
- .card{position:fixed;z-index:2147483602;max-width:320px;background:#1b1922;color:#edeaf2;border-radius:12px;
43
+ .card{position:fixed;z-index:2147483602;width:min(320px,calc(100vw - 32px));background:#1b1922;color:#edeaf2;border-radius:12px;
23
44
  padding:16px 18px;box-shadow:0 12px 40px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08)}
24
45
  .card.modal{top:50%;left:50%;transform:translate(-50%,-50%)}
25
46
  .arrow{position:absolute;width:12px;height:12px;background:inherit;border:inherit;transform:rotate(45deg)}
26
- .t{font-size:15px;font-weight:700;margin:0 0 6px}
47
+ .t{font-size:15px;font-weight:700;margin:0 0 6px;padding-right:20px}
27
48
  .b{font-size:13px;line-height:1.5;color:#c8c3d4;margin:0 0 14px}
28
- .ft{display:flex;align-items:center;justify-content:space-between;gap:10px}
29
- .count{font-size:11px;color:#9a95a6;font-variant-numeric:tabular-nums}
30
- .btns{display:flex;gap:8px}
49
+ .ft{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
50
+ .count{font-size:11px;color:#9a95a6;font-variant-numeric:tabular-nums;flex:none;white-space:nowrap}
51
+ .btns{display:flex;gap:8px;flex:none}
31
52
  button{font:inherit;cursor:pointer;border-radius:8px;border:none}
32
53
  .skip{background:none;color:#9a95a6;font-size:12px;padding:6px 8px}
33
54
  .back{background:#262131;color:#edeaf2;font-size:12px;font-weight:600;padding:7px 12px}
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,SAAS,MAAM,CAAC,EAAW;IACzB,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IACrC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACnE,CAAC;AACD,SAAS,QAAQ;IACf,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;8DAmBgD,CAAC;AAE/D,MAAM,OAAO,aAAa;IAA1B;QACU,SAAI,GAAuB,IAAI,CAAC;QAChC,SAAI,GAAsB,IAAI,CAAC;QAC/B,SAAI,GAAuB,IAAI,CAAC;QAChC,SAAI,GAAuB,IAAI,CAAC;QAChC,QAAG,GAAyB,IAAI,CAAC;QACjC,aAAQ,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAwGjD,CAAC;IAtGS,MAAM;QACZ,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAkB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,0CAA0C;QAC1C,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC;YAC1B,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QAED,aAAa;QACb,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpE,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;QAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;QAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjG,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;YAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACxI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;YAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAEtI,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC;QAChI,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACnL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAClO,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAErB,IAAI,QAAQ,EAAE,CAAC;YAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAClH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,oCAAoC;QACpC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,yEAAyE;IACjE,QAAQ;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,CAAC,2BAA2B;QAEhE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC;QAC5F,MAAM,GAAG,GAAG,eAAe,CAAC;YAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC3C,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrE,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAuB,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,gDAAgD;YAChD,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChK,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChK,CAAC;IACH,CAAC;IAED,IAAI;QACF,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAC1F,CAAC;CACF"}
@@ -54,7 +54,13 @@ export declare class EngageFeature implements IFeature {
54
54
  /** Replay the cold-start buffer into the armed runtime, honouring each entry's remaining delay. */
55
55
  private drain;
56
56
  private closeBuffer;
57
- /** Running session number, persisted across launches; bumped exactly once per new session. */
57
+ /**
58
+ * Running session number, persisted across launches; bumped exactly once per new session.
59
+ *
60
+ * Also reports WHETHER this load opened a new session, which is what gates the lifecycle triggers
61
+ * above — a reload of an existing session is not a session start. An empty session id means the
62
+ * caller can't tell us (test mocks), so it reports new rather than suppressing.
63
+ */
58
64
  private bumpSessionCount;
59
65
  teardown(): void;
60
66
  }