Files
AutopilotMonitor/rules
Oliver Kieselbach bba5761d14 refactor(v2): app_tracking_summary back to flat V1 schema
V2 had drifted to a renamed bucket schema (installedApps/failedApps/...)
plus nested perApp/byPhase. The nested objects were dead — no Web
component or rule consumed them — and the renamed counters needed a
fallback chain in every reader. Single flat schema is simpler:

- Builder rewritten to emit only the flat V1 keys: installed/failed/
  skipped/postponed (final), downloading/installing/pending (live),
  errorCount/deviceErrors/userErrors/hasErrors/isAllCompleted/
  ignoredCount (aggregate helpers), plus name lists per bucket
  (installedNames/failedNames/skippedNames/postponedNames/pendingNames).
  perApp + byPhase removed. The includePerAppDetail flag is gone — all
  emits ship the same shape (live snapshots stay cheap because the
  names lists are short strings, not per-app timing objects).

- ignoredCount needed a separate accessor: it lives on the live
  AppPackageStateList, not on the deduped phase-snapshot+live union
  used by the termination accessor. New ImeIgnoredCount property on
  DefaultComponentFactory + ignoredCountAccessor parameter on
  EnrollmentTerminationHandler.ctor (default () => 0 keeps existing
  test rigs unaffected).

- ANALYZE-APP-007.dataField back to errorCount (flat), dist regenerated.

- Web hooks (useSessionDerivedData, useProgressDerivedData) drop the
  V2 fallback chain — single-schema reads only.

- Tests rewritten for V1 schema: counter validation, device/user
  error split, hasErrors/isAllCompleted bool helpers, name-list
  population per bucket. EnrollmentTerminationHandlerTests collapsed
  the three V2-perApp tests into one V1-counts+split-errors test;
  per-app timing detail now lives only in FinalStatusBuilder /
  final-status.json, not in the event payload.

Per-transition emit cadence and ImmediateUpload=false on live
snapshots are unchanged from the previous commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 22:39:09 +02:00
..
2026-03-17 22:43:17 +01:00
2026-04-07 15:57:45 +02:00