angular/devtools/projects
Aleksander Bodurri 33b001d478 fix(devtools): clean up removed directive entries in IdentityTracker to prevent memory leak
The IdentityTracker singleton never deleted entries from its internal
  maps (_currentDirectiveId, _currentDirectivePosition, isComponent) for
  destroyed directives. This caused the maps to grow monotonically for
  the entire DevTools session, retaining references to destroyed component
  instances and preventing garbage collection.

  The cleanup was intentionally commented out because the profiler needs
  to resolve IDs and positions of removed components during recording.

  Introduce `setProfilingActive()` to gate cleanup: when profiling is
  inactive, removed entries are deleted immediately during `index()`.
  When profiling is active, removals are deferred into a `_pendingRemovals`
  set and flushed once profiling stops via `capture.ts` start/stop calls.
2026-04-06 11:36:07 -07:00
..
demo-no-zone refactor(devtools): use whenStable instead of detectChanges 2026-01-05 12:24:58 -05:00
ng-devtools refactor(devtools): show appropriate change detection label in the directive tree 2026-04-02 11:37:34 -07:00
ng-devtools-backend fix(devtools): clean up removed directive entries in IdentityTracker to prevent memory leak 2026-04-06 11:36:07 -07:00
protocol refactor(devtools): show appropriate change detection label in the directive tree 2026-04-02 11:37:34 -07:00
shared-utils refactor(devtools): use whenStable instead of detectChanges 2026-01-05 12:24:58 -05:00
shell-browser fix(devtools): fix incorrect logic in destroy function for ChromeMessageBus 2026-03-23 14:51:27 -07:00