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
fix(ego-lint): add version-compat suppression and calibrate severities (#69)
## Summary
- Add `replacement-pattern` to R-VER49-02 (`Clutter.ClickGesture`),
R-VER46-05 (`ExtensionState.ACTIVE`), R-VER48-02 (`global.compositor`) —
files containing both old and new APIs are recognized as intentional
backward-compat, not errors
- Downgrade R-VER48-07 to advisory (CSS can't have runtime guards,
consistent with R-VER48-04/04b/06)
- Downgrade `non-gjs-scripts` to WARN (EGO allows when justified, per
R-PKG-14)
- Downgrade `future-shell-version` to WARN (EGO allows preemptive
declarations; dev-limit check stays FAIL)
- Update test assertions to match new severities
Expected field test impact: 56 → 44 FAILs across 10 extensions.
Closes#68
## Test plan
- [x] `bash tests/run-tests.sh` — 603 passed, 0 failed
- [ ] `bash scripts/field-test-runner.sh --no-fetch` — verify FAIL count
drops
- [ ] Verify media-controls R-VER49-02 no longer FAIL
- [ ] Verify dash-to-panel R-VER48-02 and R-VER46-05 no longer FAIL
- [ ] Verify just-perfection R-VER48-07 appears as WARN
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: skills/ego-lint/references/rules-reference.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1777,6 +1777,7 @@ Rules for APIs removed or changed in specific GNOME Shell versions. These rules
1777
1777
-**Rule**: Extension code must not use the old `ExtensionState`enumvalues (`ENABLED`, `DISABLED`, `INITIALIZED`, `DEACTIVATING`, `ACTIVATING`) when targeting GNOME46+.
1778
1778
-**Rationale**: The `ExtensionState`enum values were renamed inGNOME46 to better reflect their meaning:`ENABLED` became `ACTIVE`, `DISABLED` became `INACTIVE`, `ACTIVATING` became `ENABLING`, and `DEACTIVATING` became `DISABLING`.
1779
1779
-**Fix**: Replace `ExtensionState.ENABLED`with`ExtensionState.ACTIVE`, `DISABLED`with`INACTIVE`, `ACTIVATING`with`ENABLING`, and `DEACTIVATING`with`DISABLING`.
1780
+
-**Suppressed when**:File also contains `ExtensionState.ACTIVE` (backward-compat shim)
1780
1781
1781
1782
### GNOME47 (R-VER47)
1782
1783
@@ -1802,6 +1803,8 @@ Rules for APIs removed or changed in specific GNOME Shell versions. These rules
1802
1803
-**Rule**: Extension code must not call `Meta.disable_unredirect_for_display()`, `Meta.enable_unredirect_for_display()`, `Meta.get_window_actors()`, `Meta.get_window_group_for_display()`, or `Meta.get_top_window_group_for_display()` when targeting GNOME48+.
1803
1804
-**Rationale**: These display management functions were moved from the `Meta` namespace to `Meta.Compositor`inGNOME48. They are now accessible via `global.compositor`.
1804
1805
-**Fix**: Access these functions via `global.compositor` instead of`Meta`directly. For example, replace `Meta.get_window_actors()`with`global.compositor.get_window_actors()`.
1806
+
-**Guard**: Suppressed when `if (Meta.disable_unredirect` or `PACKAGE_VERSION >= '48'` appears within 10 lines
1807
+
-**Suppressed when**:File also contains `global.compositor` (backward-compat shim)
print_result "FAIL""non-gjs-scripts""Found $hit_count non-GJS script(s) — scripts MUST be written in GJS; no pkexec/privileged helper justification found"
374
+
print_result "WARN""non-gjs-scripts""Found $hit_count non-GJS script(s) — scripts MUST be written in GJS; no pkexec/privileged helper justification found"
0 commit comments