Review of "Brisa" version 1

Details Page Preview

Control your air conditioner from Quick Settings: power, temperature, mode, fan, air direction, timers and sensors, with a live animation of what the unit is doing. Works with LG ThinQ units (official ThinQ Connect API) and with any brand exposed as a climate entity in Home Assistant (Samsung, Midea, Gree, Daikin, Tuya and others). Access tokens are stored in the GNOME Keyring. The extension talks only to the LG ThinQ cloud or to your Home Assistant server.

Extension Homepage
https://github.com/Lciarallo/brisa

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 4 manual_review 1

Shexli found 5 issues that may need reviewer attention.

EGO-A-001 manual_review

extension code must not be minified or obfuscated

File appears obfuscated: 82% of identifiers are 1–2 characters (avg length 3.3).

Code must not be obfuscated

  • lib/labels.js
    short identifier ratio: 82%, identifiers scored: 55

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • extension.js:68
    this._dynamic = new PopupMenu.PopupMenuSection()
  • extension.js:60
    this._message = new PopupMenu.PopupMenuItem('', {reactive: false, style_class: 'brisa-message'})
  • extension.js:63
    this._setupItem = new PopupMenu.PopupMenuItem(_('Set up connection…'))

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • lib/secret.js:8
    new Secret.Schema('io.github.lciarallo.Brisa', Secret.SchemaFlags.NONE, {
        provider: Secret.SchemaAttributeType.STRING,
    })

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:68
    this._dynamic = new PopupMenu.PopupMenuSection()
  • extension.js:60
    this._message = new PopupMenu.PopupMenuItem('', {reactive: false, style_class: 'brisa-message'})
  • extension.js:63
    this._setupItem = new PopupMenu.PopupMenuItem(_('Set up connection…'))

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:410
            this._pollId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT,
                this._settings.get_uint('poll-interval'), () => {
                    this.refresh();
                    return GLib.SOURCE_CONTINUE;
                })

All Versions

Version Status
2 Unreviewed
1 Rejected

Previous Reviews on this Version

JustPerfection rejected
Didn't review since shexli issues need to be fixed first. Also please note, we have a rule for AI: - [EGO Review Guidelines: AI](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) - [Extensions Best Practices Guidelines](https://gjs.guide/extensions/review-guidelines/best-practices.html#submissions-require-maintainership)