Skip to content

track mod enable/disable/remove and install kind in mixpanel#23649

Open
IDCs wants to merge 3 commits into
masterfrom
task/laz-673-2
Open

track mod enable/disable/remove and install kind in mixpanel#23649
IDCs wants to merge 3 commits into
masterfrom
task/laz-673-2

Conversation

@IDCs

@IDCs IDCs commented Jul 8, 2026

Copy link
Copy Markdown
Contributor
  • Add mods_state_changed and mods_removed events, gated to Nexus mods like the other per-mod events, carrying a ModChangeReason (user_manual, variant_replace, version_update, profile_replace, collection_update, collection_uninstall, stop_managing_game, health_check) threaded through IRemoveModOptions and IEnableOptions from the remove/enable call sites.
  • Add install_kind (fresh / version_update / reinstall / variant / profile_replace) to the mods_installation_* events, classified in InstallManager and carried to the terminal events via InstallContext.
  • Report mods_state_changed.duration_ms as time spent in the prior state in both directions; add a durable disabledTime to profile mod-state alongside enabledTime.
  • Base mods_download_completed duration_ms on the durable startTime.
  • Move ReplaceChoice/IReplaceChoice to their own types file.
  • Add test harness (makeModChangeHarness/modChangeTest, makeProfile) and coverage for classifyInstallKind and the mod-change analytics.

closes LAZ-673

- Add mods_state_changed and mods_removed events, gated to Nexus mods like the
  other per-mod events, carrying a ModChangeReason (user_manual, variant_replace,
  version_update, profile_replace, collection_update, collection_uninstall,
  stop_managing_game, health_check) threaded through IRemoveModOptions and
  IEnableOptions from the remove/enable call sites.
- Add install_kind (fresh / version_update / reinstall / variant / profile_replace)
  to the mods_installation_* events, classified in InstallManager and carried to
  the terminal events via InstallContext.
- Report mods_state_changed.duration_ms as time spent in the prior state in both
  directions; add a durable disabledTime to profile mod-state alongside enabledTime.
- Base mods_download_completed duration_ms on the durable startTime.
- Move ReplaceChoice/IReplaceChoice to their own types file.
- Add test harness (makeModChangeHarness/modChangeTest, makeProfile) and coverage
  for classifyInstallKind and the mod-change analytics.

closes LAZ-673
@IDCs IDCs self-assigned this Jul 8, 2026
@IDCs IDCs requested a review from a team as a code owner July 8, 2026 11:09
IDCs added 2 commits July 8, 2026 12:25
It's timing out when the full suite is running and the emit-helper tests
already cover this path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants