Review of "CodexBar" version 3

Details Page Preview

Show AI provider usage metrics in the GNOME panel. Based on codexbar by @steipete. It supports all Codexbar providers whose usage is accessible via API, now with additional support for custom providers and OpenAI Codex.

Extension Homepage
https://github.com/InledGroup/codexbar-gnome

No comments.

Diff Against

Files

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

Shexli (experimental) warning 2

Shexli found 2 issues that may need reviewer attention.

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:89
            this._contentBox = new St.BoxLayout({
                vertical: true,
                style_class: 'codexbar-usage-section',
            })
  • extension.js:45
            this._headerBox = new St.BoxLayout({
                style_class: 'codexbar-header',
                vertical: false,
                x_expand: true,
            })
  • extension.js:50
            this._headerTitle = new St.Label({
                text: _('CodexBar'),
                y_align: Clutter.ActorAlign.CENTER,
                x_expand: true,
            })
  • extension.js:30
            this._iconBox = new St.BoxLayout({
                style_class: 'codexbar-panel-icon-box',
                vertical: false,
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:35
            this._iconFill = new St.Widget({
                style_class: 'codexbar-panel-icon-fill',
                x_expand: false,
                width: 0,
            })
  • extension.js:81
            this._tabsContainer = new St.BoxLayout({
                style_class: 'codexbar-tabs-container',
                vertical: false,
            })

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

  • secret.js:5
    new Secret.Schema(
        SECRET_SCHEMA_NAME,
        Secret.SchemaFlags.NONE,
        {provider_id: Secret.SchemaAttributeType.STRING},
    )

All Versions

Version Status
4 Active
3 Active
2 Rejected
1 Active

Previous Reviews on this Version

fmuellner active