Skip to content

RES-Slim v0.3.5 — QA audit pass

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 09:50

Comprehensive QA audit pass. No new modules; existing ones get correctness fixes.

Fixed

High impact

  • disableSubredditStyles: ref= typo (should be rel=) left half the selector dead, and inline <style title="applied_subreddit_stylesheet"> blocks were never being matched at all. Module now reliably strips both external and inline subreddit CSS.
  • infiniteScroll: appended posts bypassed RES's watcher system, so selectedEntry, commentHighlights, subredditBlacklist, showImages, and hover could silently skip anything loaded past the first page. Now calls registerPage() on each appended .thing.
  • Settings console keycode modal: focusing a keycode field and then closing the console without pressing a key left the window-level keydown listener armed — it would eat innocent keystrokes on the main page (and throw when querying the destroyed console). Fixed by resetting captureKey on blur.
  • Settings console save path: Options.stage.commit() was not wrapped in try/catch. A throwing onSaveSettings hook or Modules.setEnabled failure left the stage dirty while the UI flashed "All changes saved". Failures now surface via notification and the stage is preserved for retry.

Medium

  • absoluteTimestamps, userProfileSearch, restoreSubCounts: added module.include = ['r2'] so they stop running on the extension's own options page.
  • fixProcessingImg: guarded the tree walker against a detached comment body after the ajax resolves (could happen across infinite-scroll nav or DOM churn); also CSS.escape's the image-id interpolation.
  • markAllRead: if no modhash can be found, fail loudly with No modhash ✗ instead of firing a POST that Reddit silently 403s while the button cheerfully reports "All marked read".
  • restoreSubCounts: replaced box.innerHTML = parts.join('<br>') with DOM APIs.

Low

  • fixImageLinks: MutationObserver hoisted to module scope so it isn't orphaned.

Install (Chrome / Edge / Brave)

  1. Download RES-Slim-v0.3.5-chrome.zip.
  2. Extract anywhere.
  3. Open chrome://extensions, enable Developer mode, click Load unpacked, select the extracted folder.

Verification

  • yarn once clean
  • yarn eslint lib/ clean
  • npx flow check: 1 pre-existing error on scrollIntoView({ block: 'nearest' }) (flow-bin 0.84 dom.js.flow is out of date — 'nearest' is spec-valid)