Find retained job rows after repeated schedule navigation
The screen starts responsive and degrades after operators open and close it throughout a shift. Detached rows remain reachable through subscriptions.
- Focused work estimate
- 3h 30m + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Memory profiling · Resource cleanup
Estimated field mix
- Performance engineering60%
- Frontend40%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
A fictional repair coordinator opens a week containing 2,000 jobs. The initial page loads, but filtering and selecting a job can freeze the interface. Build a synthetic scheduling screen with keyboard operation before measuring changes.
Setup prerequisites
- Create a local schedule UI with 2,000 synthetic jobs, long labels, empty results and deterministic responses.
- Record browser version, viewport, device emulation, CPU/network throttling and build mode for every comparison.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- PWEB-101 · Record the schedule workflow that freezes after filtering
- PWEB-103 · Measure long tasks caused by filtering rather than counting renders alone
- PWEB-105 · Render only the visible schedule rows without losing keyboard position
- PWEB-107 · Let a new filter supersede expensive work already in progress
Acceptance criteria
- Identify a reproducible retention path using repeated mount, interaction and unmount cycles.
- Release listeners, workers and subscriptions owned by the screen without cancelling shared application resources.
- Define a post-cleanup retained-object bound on the declared browser and distinguish temporary allocation from a leak.
Implementation constraints
- Use heap snapshots and retaining paths; do not claim a leak from one process-memory sample.
Verification to include
- Run 20 navigation cycles and inspect retained job objects after the same cleanup procedure at each checkpoint.
- Navigate away during a pending filter and verify no late update, leaked listener or unhandled exception.
Deliverables
- Retention diagnosis, lifecycle fix and repeatable memory check
Rollout and recovery
Revert only the offending optimization if cleanup cannot be demonstrated; keep the regression cycle in the local suite.
Value of the work
For the engineer: Connect bundle, rendering and interaction measurements to user-visible behavior without losing accessibility.
For the team: Produce a bounded performance investigation and regression workflow for dense operational interfaces.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.