Skip to content

Exercise Play Mode suspension across reload settings and in-flight work #20

Description

@wallstop

Context

PR #19 adds lifecycle guards that suspend Data Visualizer indexing, refresh, persistence, processor execution, asset mutations, and controls during Play Mode. It queues invalidation and resumes deferred work after returning to Edit Mode. The implementation is validated by compilation plus the existing EditMode and runtime PlayMode suites, but the transition matrix is not yet automated.

Scope

Add an editor integration suite or local Unity MCP scenario covering all four combinations:

  • domain reload enabled / scene reload enabled
  • domain reload enabled / scene reload disabled
  • domain reload disabled / scene reload enabled
  • domain reload disabled / scene reload disabled

Repeat transitions while the window is open and closed, including:

  • object indexing in progress
  • search-cache population in progress
  • asset import/delete/move invalidation during Play Mode
  • a window first enabled during Play Mode
  • repeated enter/exit cycles and close/disable/destroy during each state

Acceptance criteria

  • No package scheduler, delayed callback, asset postprocessor, processor constructor, or package-driven asset mutation runs during Play Mode.
  • The last available view remains intact, the paused indicator is visible for suspended loads, and mutation/inspector controls are disabled.
  • Invalidation is coalesced while paused and the minimum necessary work resumes after EnteredEditMode without duplicate subscriptions or stale-generation updates.
  • Closing, script reload, and domain reload leave no recurring scheduled item or live-asset cache owned by the window.
  • The scenario restores original Play Mode project settings even when a test fails.
  • The report includes transition timings and verifies the Play-entry p95 budget independently for open/idle, open/indexing, and closed cases.

Related: #19

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions