Review of "CodexBar" version 4

Details Page Preview

Show AI provider usage metrics in the GNOME panel. Based on codexbar by @steipete. Tracks usage limits for Codex (ChatGPT), Claude, Gemini CLI, Ollama Cloud, Copilot, DeepSeek, OpenRouter, Perplexity and Mistral. Enjoy it! If you have any error or problem, tell us on Github and our discord telegram and matrix

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

Previous Reviews on this Version

Inled Group posted a review
Fixed bar icon fill calculation, added contribute section and custom provider integration
fmuellner active