diff --git a/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md b/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md index 650577f9..99515b64 100755 --- a/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md +++ b/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md @@ -43,9 +43,9 @@ Both platforms use `daily+count` (`.dailyAndCount`). The first completed episode - `response_after`: elapsed time since the first failure, bucketed as `under_30s`, `30s_to_1m` or `1m_to_deadline`. Omitted for the no-response outcome. -**Parameters to add (not implemented yet):** +**Four added background-load parameters:** -Port and adapt four fields from `alex/cpm-messaging-readiness-telemetry`: +Ported and adapted from `alex/cpm-messaging-readiness-telemetry`: - `bg_ready_after` — whether background loading is pending, failed or complete. Values: `none` (no background view), `pending`, `failed`, or completion-time buckets `under_1s`, `1s_to_4s`, `4s_to_10s`, `10s_to_30s`, `over_30s`. Separates a background still starting from one already ready. @@ -55,7 +55,11 @@ Port and adapt four fields from `alex/cpm-messaging-readiness-telemetry`: - `bg_load_error_app_state` — app state when that error occurred: `active`, `inactive` or `background` (macOS: active/inactive). Helps distinguish foreground failures from background suspension conditions. -Capture these values in the first-failure snapshot and send them in the same terminal episode report, retaining `daily+count`. Omit unavailable values. Send the two error fields only for error 6 attributed to the corresponding background-load attempt, rather than any historical error in the context. Check the added fields' combined distinguishability with the retained `bg_events`. +These values are captured in the first-failure snapshot and sent in the same terminal episode report, retaining `daily+count`. Unavailable values are omitted. The two error fields describe only the first newly observed error 6 for the corresponding background-load attempt. Repeated error-list notifications preserve its original time and app state; a replacement view/context clears that attribution. Errors seen before any view was created do not qualify. + +Readiness observation shares the existing `cpmBackgroundDelegateProxy` switch. It calls the public `loadBackgroundContent` API on the next main-queue turn after a new view is created. Disabling observation invalidates pending callbacks; reenabling on an existing view leaves readiness unknown until the next view creation. Error 6 also marks the observed load failed if WebKit never completes its load callback. Later readiness changes and errors do not replace the episode's first-failure snapshot. + +The added fields' combined distinguishability with the retained `bg_events` still needs checking. `app_state` and `open_tabs` remain deferred to targeted startup/no-view diagnostics; `loading_tabs` is not planned for this change. These additions do not change the four-second detector or add page-side `initResp` acknowledgement.