Review of "Claude Usage Tracker" version 3

Details Page Preview

Track Claude API usage (5-hour session, 7-day weekly, per-model breakdown, cost tracking) in the GNOME top bar with configurable color thresholds.

Extension Homepage
https://github.com/xpertik/claude-usage-tracker-linux

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 4

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:102
    file.load_contents(null)
  • extension.js:137
    file.load_contents(null)
  • extension.js:366
    file.load_contents(null)
  • extension.js:390
    file.load_contents(null)

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 6 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • extension.js:119
    console.error(`[Claude Tracker] Failed to read credentials: ${e.message}`)
  • extension.js:164
    console.error(`[Claude Tracker] Failed to write credentials: ${e.message}`)
  • extension.js:686
    console.error(`[Claude Tracker] Token refresh failed: ${e.message}`)
  • extension.js:398
    console.log(`[Claude Tracker] Shared cache read failed: ${e.message}`)
  • extension.js:1614
    console.log(`[Claude Tracker] Settings migration skipped: ${_e.message}`)
  • extension.js:629
    console.warn('[Claude Tracker] No refresh token available')

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:411
    this._settings = ext.getSettings()

EGO-L-008 warning

Soup.Session instances should be aborted during cleanup

Soup.Session instances should be aborted during cleanup.

Soup.Session.abort

  • extension.js:412
    this._session = new Soup.Session()

All Versions

Version Status
3 Unreviewed
2 Rejected
1 Rejected