Commit 21f7390
fix(ego-lint): enhance GSettings signal leak detection for helper classes (#87)
## Summary
- Change R-LIFE-21 auto-cleanup detection from extension-wide to
**per-file**
- Previously, `connectObject`/`disconnectObject` in any file (e.g., for
widget signals) gave a free pass to bare `.connect('changed::...')`
calls in all other files
- Now auto-cleanup in one file does not suppress findings in other
files, because `connectObject`/`disconnectObject` manage signals
per-object-per-owner
**False negatives fixed:**
- media-controls: 28 bare GSettings handlers now detected (were missed
because `MenuSlider.js` used `connectObject` for widget signals)
- just-perfection: 1 bare handler in `SupportNotifier.js` now detected
(was missed because `Manager.js` used `settings.connectObject()`)
Closes #78
## Test plan
- [x] New fixture `gsettings-cross-file-leak@test` — bare connects in
`extension.js` with `connectObject` only in `helper.js` → FAIL
- [x] Existing fixtures unchanged: `gsettings-bare-connect@test` (FAIL),
`gsettings-auto-cleanup@test` (PASS), `gsettings-array-storage@test` (no
FP)
- [x] All 610 test assertions pass
- [x] Verified against field test cache: media-controls (28 hits),
just-perfection (1 hit), dash-to-panel (no regression)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 30bbeac commit 21f7390
File tree
7 files changed
+69
-13
lines changed- skills/ego-lint
- references
- scripts
- tests
- assertions
- fixtures/gsettings-cross-file-leak@test
7 files changed
+69
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2113 | 2113 | | |
2114 | 2114 | | |
2115 | 2115 | | |
2116 | | - | |
| 2116 | + | |
2117 | 2117 | | |
2118 | 2118 | | |
2119 | 2119 | | |
| 2120 | + | |
2120 | 2121 | | |
2121 | | - | |
| 2122 | + | |
2122 | 2123 | | |
2123 | 2124 | | |
2124 | 2125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1229 | 1229 | | |
1230 | 1230 | | |
1231 | 1231 | | |
1232 | | - | |
| 1232 | + | |
1233 | 1233 | | |
1234 | 1234 | | |
1235 | 1235 | | |
1236 | 1236 | | |
1237 | 1237 | | |
1238 | | - | |
1239 | | - | |
1240 | | - | |
1241 | | - | |
1242 | | - | |
1243 | | - | |
1244 | | - | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
1245 | 1245 | | |
| 1246 | + | |
1246 | 1247 | | |
1247 | 1248 | | |
1248 | 1249 | | |
| |||
1267 | 1268 | | |
1268 | 1269 | | |
1269 | 1270 | | |
1270 | | - | |
| 1271 | + | |
1271 | 1272 | | |
1272 | 1273 | | |
1273 | | - | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
1274 | 1281 | | |
1275 | 1282 | | |
1276 | 1283 | | |
1277 | 1284 | | |
1278 | 1285 | | |
1279 | 1286 | | |
1280 | | - | |
| 1287 | + | |
1281 | 1288 | | |
1282 | 1289 | | |
1283 | 1290 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Lines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
0 commit comments