Review of "AI Limits" version 1.0.1 (2)

Details Page Preview

Shows how much of your Codex and Claude usage limits is left, right in the top panel. Click for the 5-hour and weekly windows and their reset times. Reads the local Codex CLI and Claude Code login files; no extra sign-in.

Extension Homepage
https://github.com/ilysenko/ai-limits-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 3

Shexli found 3 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:44
    this._fill = new St.Widget({style_class: 'ai-limits-fill'})
  • extension.js:42
    this._name = new St.Label({text: title, style_class: 'ai-limits-row-name', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:46
    this._pct = new St.Label({style_class: 'ai-limits-row-pct', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:47
    this._reset = new St.Label({style_class: 'ai-limits-row-reset', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:43
    this._track = new St.Widget({style_class: 'ai-limits-track', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:40
    this.actor = new St.BoxLayout({style_class: 'ai-limits-row', x_expand: true})
  • extension.js:87
    this._details = new St.BoxLayout({orientation: Clutter.Orientation.VERTICAL, x_expand: true})
  • extension.js:90
    this._message = new St.Label({style_class: 'ai-limits-error'})
  • extension.js:78
    this._plan = new St.Label({style_class: 'ai-limits-service-plan', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:75
    this.actor = new St.BoxLayout({orientation: Clutter.Orientation.VERTICAL, style_class: 'ai-limits-service', x_expand: true})
  • extension.js:191
    this._footer = new St.Label({style_class: 'ai-limits-footer', text: 'Not updated yet'})
  • extension.js:157
    this._panelBox = new St.BoxLayout({style_class: 'ai-limits-panel'})
  • extension.js:159
    this._panelSlash = new St.Label({text: '/', y_align: Clutter.ActorAlign.CENTER})

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:44
    this._fill = new St.Widget({style_class: 'ai-limits-fill'})
  • extension.js:42
    this._name = new St.Label({text: title, style_class: 'ai-limits-row-name', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:46
    this._pct = new St.Label({style_class: 'ai-limits-row-pct', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:47
    this._reset = new St.Label({style_class: 'ai-limits-row-reset', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:43
    this._track = new St.Widget({style_class: 'ai-limits-track', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:40
    this.actor = new St.BoxLayout({style_class: 'ai-limits-row', x_expand: true})
  • extension.js:87
    this._details = new St.BoxLayout({orientation: Clutter.Orientation.VERTICAL, x_expand: true})
  • extension.js:90
    this._message = new St.Label({style_class: 'ai-limits-error'})
  • extension.js:78
    this._plan = new St.Label({style_class: 'ai-limits-service-plan', y_align: Clutter.ActorAlign.CENTER})
  • extension.js:75
    this.actor = new St.BoxLayout({orientation: Clutter.Orientation.VERTICAL, style_class: 'ai-limits-service', x_expand: true})
  • extension.js:191
    this._footer = new St.Label({style_class: 'ai-limits-footer', text: 'Not updated yet'})
  • extension.js:157
    this._panelBox = new St.BoxLayout({style_class: 'ai-limits-panel'})
  • extension.js:159
    this._panelSlash = new St.Label({text: '/', y_align: Clutter.ActorAlign.CENTER})

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

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

Disconnect all signals

  • extension.js:332
    this._settings.connect(`changed::${key}`, () => this._indicator?.update(this._state))

All Versions

Version Status
1.0.3 (4) Unreviewed
1.0.2 (3) Rejected
1.0.1 (2) Rejected
1.0.0 (1) Rejected

Previous Reviews on this Version

Igor234234234 auto- rejected
Auto-rejected because of new version 1.0.2 (3) was uploaded