Review of "AI Agent Usage" version 1.0.0 (1)

Details Page Preview

Shows OpenAI Codex and Claude Code usage limits in the top bar. Reads a cached snapshot produced by a background collector, so the Shell never blocks on the network.

Extension Homepage
https://github.com/MostafaAlyy/ai-agent-usage

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

Shexli found 3 issues that may need reviewer attention.

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • collector.js

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:250
                this._monitorId = this._monitor.connect('changed', (_m, _f, _o, type) => {
                    if (type === Gio.FileMonitorEvent.CHANGES_DONE_HINT ||
                        type === Gio.FileMonitorEvent.CREATED ||
                        type === Gio.FileMonitorEvent.MOVED_IN ||
                       
  • extension.js:167
    this.menu.connect('open-state-changed', (_menu, isOpen) => this._onOpenStateChanged(isOpen))
  • extension.js:164
    this._settings.connect('changed::show-percentage', () => this._updatePanel())

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:657
                this._countdownId = GLib.timeout_add_seconds(GLib.PRIORITY_LOW, COUNTDOWN_TICK_SECONDS, () => {
                    this._tickCountdowns();
                    return GLib.SOURCE_CONTINUE;
                })
  • extension.js:333
            this._timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_LOW, minutes * 60, () => {
                try {
                    this._runCollector(true);
                } catch (error) {
                    // Returning without SOURCE_CONTINUE would end every future
                    // refresh over one bad ru
  • extension.js:622
            this._tooltipId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 600, () => {
                this._tooltipId = 0;
                this._showTooltip();
                return GLib.SOURCE_REMOVE;
            })

All Versions

Version Status
1.0.0 (1) Rejected

Previous Reviews on this Version

JustPerfection rejected
This code seems to be generated by AI. Please note, we have a rule for that: - [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)