You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
- Expand instantiation cleanup tracking in `build-resource-graph.py` to
recognize custom cleanup method calls (e.g., `disconnect_all()`,
`remove()`) on child references inside parent cleanup method bodies —
not just `.destroy()` and `.disable()`
- Add `parent_calls_destroy` guard to Case 1 in `detect_orphans()` so
utility classes without a standard cleanup method are not flagged when
their parent manages cleanup via a custom method call
- Fixes 10 FPs in blur-my-shell (utility classes with
`disconnect_all`/`remove`)
Closes#77
## Test plan
- [x] New test fixture `parent-managed-cleanup@test` verifies custom
cleanup suppression
- [x] All 607 test assertions pass
- [ ] Field test: `bash scripts/field-test-runner.sh --no-fetch
--extension blur-my-shell` shows FP reduction
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- **Rule**: Module creates resources but has no cleanup method (`destroy()`, `disable()`, or `onDestroy()`) for cleanup.
2021
2021
- **Fix**: Add a `destroy()` method that cleans up all resources, or use `onDestroy()` connected via `this.connect('destroy', this.onDestroy.bind(this))`.
2022
+
- **Note**: Suppressed when the parent calls any method on the child ref (e.g., `this._helper.disconnect_all()`) or nulls it inside a cleanup method body. This covers utility classes with custom cleanup methods managed by their parent.
0 commit comments