Review of "Hati Cursor Highlighter" version 5

Details Page Preview

Professional cursor highlighting for presentations and screen recording.

Extension Homepage
https://github.com/szymonwilczek/hati

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

Shexli found 5 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • modules/presets-manager.js:138
    console.warn("[Hati Presets] Warning: Imported configuration is empty.")
  • modules/presets-manager.js:185
                console.warn(
                  `[Hati Presets] Unsupported schema type: ${schemaType} for key ${key}`,
                )
  • modules/presets-manager.js:108
    console.log(`[Hati Presets] Saving preset: ${name}`)
  • modules/presets-manager.js:125
    console.log(`[Hati Presets] Save result: ${success}`)
  • modules/presets-manager.js:148
    console.log(`[Hati Presets] Applying preset: ${name}`)
  • modules/presets-manager.js:161
        console.log(
          `[Hati Presets] Preset data found. Keys in preset: ${presetKeys.join(", ")}`,
        )
  • modules/presets-manager.js:201
    console.log(`[Hati Presets] Deleting preset: ${name}`)
  • modules/presets-manager.js:60
            console.error(
              `[Hati Presets] Failed to create config dir: ${e.message}`,
            )
  • modules/presets-manager.js:86
                console.error(
                  `[Hati Presets] Failed to load user presets: ${e.message}`,
                )
  • modules/presets-manager.js:94
    console.error(`[Hati Presets] Failed to load user presets: ${e.message}`)

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

  • shaders/shaders.js:84
    console.log("[Hati Shaders] All shaders initialized")
  • shaders/shaders.js:37
    console.error(`[Hati Shaders] Failed to load: ${filename}`)
  • shaders/shaders.js:41
    console.error(`[Hati Shaders] Error loading ${filename}: ${e}`)
  • shaders/shaders.js:46
    console.error(`[Hati Shaders] Error loading ${filename}: ${e}`)
  • shaders/shaders.js:95
    console.error(`[Hati Shaders] Shader not found: ${shaderName}`)
  • shaders/shaders.js:109
    console.error(`[Hati Shaders] Shader not found: ${shaderName}`)

EGO-A-001 manual_review

extension code must not be minified or obfuscated

File appears obfuscated: 67% of identifiers are 1–2 characters (avg length 3.0).

Code must not be obfuscated

  • utils.js
    short identifier ratio: 67%, identifiers scored: 69

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:131
        this._canvas = new St.DrawingArea({
          style_class: "hati-canvas",
          reactive: false,
          can_focus: false,
          x_align: Clutter.ActorAlign.CENTER,
          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:139
        this._canvas.connect("repaint", (area) => {
          this._drawHighlight(area);
        })

All Versions

Version Status
5 Active
4 Active
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

JustPerfection active