Review of "Twingate Status Indicator" version 1

Details Page Preview

Panel indicator for Twingate VPN status with resource management, session renewal, and favourites.

Extension Homepage
https://github.com/graziano/twingate-gnome-extension

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 3 manual_review 1

Shexli found 4 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • extension.js:428
    file.load_contents(null)

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • extension.js:419
    St.Clipboard.get_default()

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:30
            this._icon = new St.Icon({
                gicon: Gio.icon_new_for_string(this._getIconPath('disconnected')),
                icon_size: PANEL_ICON_SIZE,
                style_class: 'twingate-panel-icon',
            })

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:403
            GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 2, () => {
                GLib.spawn_command_line_async('twingate desktop-restart');
                return GLib.SOURCE_REMOVE;
            })

All Versions

Version Status
1 Unreviewed