Review of "Wetterkurve" version 4

Details Page Preview

A compact three-day weather chart for up to three saved locations

Extension Homepage
https://github.com/vibecodingwean/wetterkurve

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 1

Shexli found 1 issue 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:575
            this._bigIcon = new St.Icon({
                gicon: this._weatherIcon('unknown'),
                icon_size: 42,
                style_class: 'mw-big-icon',
            })
  • extension.js:625
    this._chart = new ForecastChart()
  • extension.js:518
            this._locationBar = new St.BoxLayout({
                style_class: 'mw-location-bar',
                x_expand: true,
            })
  • extension.js:522
            this._locationTabs = new St.BoxLayout({
                style_class: 'mw-location-tabs',
                x_expand: true,
            })
  • extension.js:494
            this._panelIcon = new St.Icon({
                gicon: this._weatherIcon('unknown'),
                icon_size: 17,
                style_class: 'mw-panel-icon',
            })
  • extension.js:581
            this._refreshButton = new St.Button({
                label: '↻',
                style_class: 'mw-refresh-button',
                can_focus: true,
                accessible_name: this._t('refreshWeather'),
            })
  • extension.js:527
            this._removeLocationButton = new St.Button({
                label: '−',
                style_class: 'mw-location-remove-button',
                can_focus: true,
                visible: false,
            })
  • extension.js:538
            this._searchBox = new St.BoxLayout({
                vertical: true,
                style_class: 'mw-search-box',
                x_expand: true,
                visible: false,
            })
  • extension.js:544
            this._searchEntry = new St.Entry({
                hint_text: this._t('searchLocation'),
                can_focus: true,
                style_class: 'mw-search-entry',
                x_expand: true,
            })
  • extension.js:556
            this._searchResults = new St.BoxLayout({
                vertical: true,
                style_class: 'mw-search-results',
                x_expand: true,
            })

All Versions

Version Status
4 Unreviewed
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

vibecodingwean posted a review
Version 4 addresses the lifecycle findings. In disable(), the extension invalidates pending request IDs, cancels requests, and calls this._session.abort() directly. It also disconnects the menu signal and destroys the panel indicator. The remaining experimental EGO-L-002 warning lists child actors of that indicator. They are destroyed recursively by this._indicator.destroy() in _destroyUi(), and the extension clears its references afterward. Calling destroy() separately on those children would duplicate teardown. The lifecycle test covers callbacks delivered synchronously during cancellation and abort. Source for this upload: https://github.com/vibecodingwean/wetterkurve/tree/v1.1.24