Review of "Opencode Status Pill" version 1

Details Page Preview

Glanceable pill in top bar: green idle, yellow working, red needs you, magenta error. Copies cwd to clipboard on row click. Polls local opencode plugin at 127.0.0.1:4390.

Extension Homepage
https://github.com/x0shreyash/opencode-status-pill

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 4 manual_review 1

Shexli found 5 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:48
    file.load_contents(null)
  • extension.js:160
    file.load_contents(null)

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • extension.js:309
    St.Clipboard.get_default()

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:195
    this._footerLabel = footerLabel
  • extension.js:113
    this._pill = new St.BoxLayout({ style_class: 'traffic-pill has-active', x_align: Clutter.ActorAlign.CENTER })
  • extension.js:179
    this._rowsBox = new PopupMenu.PopupMenuSection()
  • extension.js:266
    empty

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:195
    this._footerLabel = footerLabel
  • extension.js:179
    this._rowsBox = new PopupMenu.PopupMenuSection()

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:83
          this._configMonitor.connect('changed', (m, f, other, ev) => {
            const name = f.get_basename();
            if (name === 'config.json') {
              const oldPoll = this._config?.pollMs;
              this._loadConfig();
              if (this._config.pollMs !== oldPoll) this._restartPoll();
             

All Versions

Version Status
2 Unreviewed
1 Rejected

Previous Reviews on this Version

x0shreyash auto- rejected
Auto-rejected because of new version 2 was uploaded