Review of "Tag Time Tracker" version 1

Details Page Preview

Light time tracker in the top bar. Start an activity with a name and a tag (work, study, paper-reading, …), pause and resume it with one click or Super+Shift+P, and continue earlier activities from the menu. Time is stored as start–end intervals that you can edit in a separate window, including records you forgot to make. Pauses shorter than a minute are ignored, and the clock stops when the computer sleeps. Weekly reports are exported as HTML and CSV.

Extension Homepage
https://github.com/Vor-Art/gnome-timetrack

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 3

Shexli found 3 issues that may need reviewer attention.

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • editor.js

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:181
            this._monitor.connect('changed', (m, file, other) => {
                if (file.get_basename() !== 'data.json' && other?.get_basename() !== 'data.json')
                    return;
                if (this._reloadId)
                    GLib.source_remove(this._reloadId);
                this._reloadId = GLib.t
  • extension.js:90
            this.menu.connect('open-state-changed', (menu, open) => {
                if (open) {
                    this._rebuildMenu();
                    this._focusId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                        this._focusId = 0;
                        this._entry.grab_key_focus();
           

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:93
                    this._focusId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                        this._focusId = 0;
                        this._entry.grab_key_focus();
                        return GLib.SOURCE_REMOVE;
                    })
  • extension.js:354
                this._heartbeatId = GLib.timeout_add_seconds(GLib.PRIORITY_LOW, HEARTBEAT_SECS, () => {
                    this._writeHeartbeat(false);
                    return GLib.SOURCE_CONTINUE;
                })
  • extension.js:186
                this._reloadId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 300, () => {
                    this._reloadId = 0;
                    this._reload();
                    return GLib.SOURCE_REMOVE;
                })
  • extension.js:347
                this._tickId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, ms, () => {
                    this._tickId = 0;
                    this._sync();
                    return GLib.SOURCE_REMOVE;
                })

All Versions

Version Status
1 Unreviewed