Review of "AudioRec" version 1

Details Page Preview

One-click microphone recording from Quick Settings. Each recording gets a name and always stays on disk; you choose whether it also goes into the store (voice reminders) for quick access. Per-item play / rename / pin / delete. While recording, a red indicator with a timer appears in the panel and doubles as the stop button. Records with ffmpeg (Opus), plays back with ffplay.

Extension Homepage
https://github.com/mdoksa76/audiorec

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 2

Shexli found 2 issues that may need reviewer attention.

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:77
            this._entry = new St.Entry({
                text: defaultName, can_focus: true, x_expand: true,
                style_class: 'audiorec-name-entry',
            })
  • extension.js:86
    this._toggle = new PopupMenu.Switch(false)
  • extension.js:138
            this._entry = new St.Entry({
                text: currentName, can_focus: true, x_expand: true,
                style_class: 'audiorec-name-entry',
            })

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:77
            this._entry = new St.Entry({
                text: defaultName, can_focus: true, x_expand: true,
                style_class: 'audiorec-name-entry',
            })
  • extension.js:86
    this._toggle = new PopupMenu.Switch(false)
  • extension.js:138
            this._entry = new St.Entry({
                text: currentName, can_focus: true, x_expand: true,
                style_class: 'audiorec-name-entry',
            })
  • extension.js:360
    this._settings = extension.getSettings()

All Versions

Version Status
2 Unreviewed
1 Rejected

Previous Reviews on this Version

JustPerfection waiting for author
Is this code generated by AI? If so, 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)
mdoksa auto- rejected
Auto-rejected because of new version 2 was uploaded
mdoksa posted a review
I use AI as a development tool, but I make all the design and architectural decisions myself, and I test and stand behind the code. You're right that the earlier submission didn't fully follow the guidelines. The newly uploaded code contains changes brought in line with the guidelines — cleaned-up comments, corrected debug/logging and try/catch patterns, and resolved linter warnings. Happy to explain any part of the implementation if you'd like.