Establish what is happening
Record the interaction and visible freeze
Choose one reproducible action, such as opening a filter or submitting a search, and record when the pointer or keyboard input begins. Capture the last visible update, the first responsive moment, dataset size, viewport, and device class. Preserve a screen recording only when it adds timing context.
Capture a performance timeline around input
Use a browser timeline with network activity, scripting, rendering, and input markers enabled. Identify long uninterrupted tasks, repeated layout work, garbage-collection gaps, and periods where the main thread is busy while the network is idle. Note stack names and timestamps without declaring them causal yet.
Compare a smaller and neighboring case
Repeat the same action with a small dataset and on a nearby route or control. Compare task duration, node count, script evaluation, layout, and response timing. If the freeze persists with no data change, shared event handling becomes a stronger investigation lead than list rendering.
What to carry forward
Return a scope statement naming the blocked interaction, timeline interval, affected conditions, and the first observed boundary. Classify the next handoff as main-thread work, network or server waiting, or unresolved. Keep stack attribution provisional until a controlled reproduction connects it to the visible freeze.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow