Review of "DevWatch" version 0.1.0 (1)

Details Page Preview

Project-aware developer intelligence layer for GNOME. Tracks running projects, ports, orphan processes, and build performance directly in your panel.

Extension Homepage
https://github.com/Adithya-Balan/DevWatch

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 5

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

  • core/buildDetector.js:226
    file.load_contents(null)
  • core/processTracker.js:360
    file.load_contents(null)
  • core/processTracker.js:381
    file.load_contents(null)
  • core/snapshotManager.js:161
    Gio.File.new_for_path(path).load_contents(null)
  • core/snapshotManager.js:506
    Gio.File.new_for_path(tasksPath).load_contents(null)
  • core/snapshotManager.js:555
    Gio.File.new_for_path(userSettingsPath).load_contents(null)
  • core/snapshotManager.js:635
    Gio.File.new_for_path(procFile).load_contents(null)
  • utils/focusAggregator.js:239
    file.load_contents(null)
  • utils/procReader.js:39
    file.load_contents(null)

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • core/snapshotManager.js:128
    console.log(`[DevWatch:SnapshotManager] Saved snapshot: ${filename}`)
  • core/snapshotManager.js:148
    console.log('[DevWatch:SnapshotManager] Auto-saved last workspace')
  • core/snapshotManager.js:262
    console.log('[DevWatch:SnapshotManager] restore(): snapshot has no projects')
  • core/snapshotManager.js:279
    console.log(`[DevWatch:SnapshotManager] restore(): skipping non-project root: ${proj.root}`)
  • core/snapshotManager.js:296
                        console.log(
                            `[DevWatch:SnapshotManager] restore(): port ${svc.port} already in use,` +
                            ` skipping: ${svc.cmdline}`
                        )
  • core/snapshotManager.js:380
    console.log(`[DevWatch:SnapshotManager] Opened VS Code: ${proj.root}`)
  • core/snapshotManager.js:413
            console.log(
                `[DevWatch:SnapshotManager] restore(): launched=${launched} skipped=${skipped} editors=${editors}`
            )
  • core/snapshotManager.js:456
    console.log(`[DevWatch:SnapshotManager] Launched service: ${svc.cmdline} (${cwd})`)
  • core/snapshotManager.js:476
    console.log(`[DevWatch:SnapshotManager] Opened editor: ${ed.exec} ${projectRoot}`)
  • core/snapshotManager.js:532
    console.log(`[DevWatch:SnapshotManager] Wrote VS Code tasks: ${tasksPath}`)

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:230
            console.log('[DevWatch] Enabled — polling every',
                this._settings.get_int('poll-interval'), 's')
  • extension.js:309
    console.log('[DevWatch] Disabled')
  • extension.js:467
    console.log('[DevWatch] Poll interval changed to', interval, 's')
  • extension.js:630
    console.log(`[DevWatch] Sent SIGTERM to PID ${pid} (port ${port})`)
  • extension.js:224
    console.warn('[DevWatch] Could not register Super+D keybinding:', e.message)
  • extension.js:724
    console.error('[DevWatch]', e instanceof Error ? e.message : String(e))

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:140
            this._panelLabel = new St.Label({
                text: ' DevWatch',
                style_class: 'devwatch-panel-label',
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:134
            this._statusDot = new St.Label({
                text: '●',
                style_class: 'devwatch-dot devwatch-dot-green',
                y_align: Clutter.ActorAlign.CENTER,
            })

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:632
                GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1500, () => {
                    this._refresh().catch(e => this._logError(e));
                    return GLib.SOURCE_REMOVE;
                })

All Versions

Version Status
2 (3) Unreviewed
2 (2) Rejected
0.1.0 (1) Rejected

Previous Reviews on this Version

Adithya B auto- rejected
Auto-rejected because of new version 2 (2) was uploaded