Skip to content

Releases: SysAdminDoc/RES-Slim

RES-Slim v0.15.1

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 09 Jul 14:42

Old.reddit-focused fork of Reddit Enhancement Suite. Chrome MV3 + Firefox MV2. 494 contract tests. Bundles everything since v0.14.1 (v0.14.2, v0.15.0, v0.15.1).

New: theme old.reddit (v0.15.0)

  • New pageTheme module (disabled by default) — an opt-in dark/OLED skin for old.reddit with selectable palettes: OLED Black, Graphite, Midnight, Catppuccin Mocha, Tokyo Night, Rosé Pine. Options for an accent colour (visited links / flair outlines), decluttering page chrome (ads, banners, redesign opt-in, gold prompts, promoted posts), subtle rounded corners, and a collapse-to-hover sidebar. Palette is CSS-variable-driven and ships in the document_start stylesheet with a cached early-apply to avoid a flash of un-themed Reddit. Fully reversible. Enable it under "Old Reddit theme" in the settings console and pick a palette.

Fixes

  • scrollRestore (v0.14.2) — no longer restores a saved scroll position on listing pages, which could land you at the bottom of a subreddit / home feed on load. Scroll memory is now scoped to comment threads only; subreddit fronts, the home feed, and user/search pages always load at the top.

Removed

  • The .res-commentNavToggle "Navigate by" hover button that commentNavigator injected into comment pages (v0.15.1). The comment navigator panel itself is unchanged and still appears when its "show by default" option is enabled.

Install

  • Chrome/Chromium: download RES-Slim-v0.15.1-chrome.zip, unzip, then load the unpacked folder via chrome://extensions (Developer mode -> Load unpacked).
  • Firefox: RES-Slim-v0.15.1-firefox.zip (MV2) via about:debugging -> Load Temporary Add-on.

RES-Slim v0.14.1

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 08 Jul 21:35

Old.reddit-focused fork of Reddit Enhancement Suite. Chrome MV3 + Firefox MV2. 482→487 contract tests. This is the first tagged release since v0.12.7 and bundles the v0.13.0, v0.14.0, and v0.14.1 work.

v0.14.1 — bugfix

  • commentHighlights no longer highlights every comment on the first visit to a thread. It now only highlights on a genuine revisit (comments posted since your last view); the first visit is recorded silently so later visits work as intended.

v0.14.0 — resilience, security, and features

Security: fixed a wiki-TOC DOM-XSS in comment preview, origin-gated the settings-console postMessage handler, sanitized notification messages through DOMPurify, added a CSV formula-injection guard on exports, a fail-closed ReDoS guard on user filter regexes, an http(s)-only guard on the background proxies, and upgraded DOMPurify 3.1.6 → 3.4.11.
Resilience: Reddit .json 403/429 responses now surface a single throttled notice instead of failing silently (auto-refresh backs off on 429); streamable/redditgallery handlers degrade cleanly on bad responses; the rate limiter releases its slot on synchronous throws; imgurFlatten default mirror updated to a live instance.
New modules (all disabled by default): fencedCodeBlocks (triple-backtick rendering + local highlighter), editedCommentDiff (Arctic Shift/PullPush original-vs-current diff), repostDedupe (URL/thumbnail dedupe), cleanLinkCopy (tracking-param-stripped permalink copy). Plus cobaltDownloader multi-instance failover with a localhost-companion fallback, and a gallery n/total counter.
Dependencies: esbuild 0.23.1 → 0.25.10, dayjs → 1.11.21.

v0.13.0 — settings console

Command-center settings console redesign: three-zone desktop shell (module library, focused workspace, persistent utility rail) with staged-change controls, theme/density/motion controls, and import/export.

Install

  • Chrome/Chromium: download RES-Slim-v0.14.1-chrome.zip, unzip, then load the unpacked folder via chrome://extensions (Developer mode → Load unpacked).
  • Firefox: RES-Slim-v0.14.1-firefox.zip (MV2) via about:debugging → Load Temporary Add-on, or install unsigned in a build that permits it.

v0.12.7 — senior-engineer refactor pass

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 22 May 22:11

No new modules — bug hunt + hardening + UX consistency pass across the v0.10–v0.12 modules shipped during the autonomous-loop sprint.

Highlights

  • New lib/utils/buttonStatus.js — shared flashStatus helper with WeakMap timer dedup. Consolidates 7 modules' inline setTimeout label-flips (cobaltDownloader, galleryZip, localCompanion, savedBackup, voteHistory, mediaArchiveManifest, commentTreeExport).
  • Lazy rateLimiter refill — interval now starts on first schedule() and stops when bucket is full + queue/active empty. Closes a per-page background-tick leak.
  • Granular arcticShift failures — distinguishes rate-limited / network / server-error / bad archive response / not in archive instead of folding into a flat "not in archive" label.
  • dragResize pointercancel + window-blur teardown — drag cleanup no longer leaks listeners when the tab loses focus or the OS steals the pointer.
  • userTagger Esc-close + single active popover — only one popover open at a time; Esc dismisses; deferred outside-click handler guards against teardown races.
  • botCollapse reveal-button now drives label off the live .collapsed class — stays in sync with reddit's native [-]/[+] toggle.
  • filterRules collapse-for-posts degrades to dim (posts have no native collapse on old.reddit). data-rsm-filter-hit is now space-separated and dedupes IDs.
  • redgifsLayoutFix per-Thing scoped observers — replaces the previous body-wide MutationObserver. Dramatically less work on busy listings.
  • IDB-promise reset on failurevoteHistory + mediaArchiveManifest no longer break permanently on a transient IndexedDB hiccup.
  • cobaltDownloader host mergeeligibleHosts() now merges defaults + custom list (was replacing). res.json() wrapped in try/catch.
  • galleryZip jszip retry — cached promise resets on rejection so a transient CDN failure doesn't permanently break the button.
  • commentTreeExport — dead includeAllChildren: false option branch removed.

Fixture hygiene

  • Privacy outbound-URL snapshot regenerated; regen helper at scripts/regen-privacy-snapshot.mjs for future use.
  • expectedHostCount bumped 86 → 88 (mastodon + threads from v0.11.11).
  • threads host permissions added to both chrome + firefox manifests.

Verification

  • 358/358 tests green.
  • Chrome + Firefox production builds clean.

Install

  • Chrome / Brave / Edge: Load unpacked from dist/chrome/ (recommended — Chromium 75+ rejects self-signed CRX with CRX_REQUIRED_PROOF_MISSING regardless). The .crx is provided for completeness and works in enterprise-policy installs.
  • Firefox: Load res-slim-firefox-v0.12.7.zip via about:debugging → "Load Temporary Add-on".

SHA-256 sums in SHA256SUMS-v0.12.7.txt.

RES-Slim v0.4.0

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 13 Apr 15:06

Comprehensive QA Audit + Settings Console Rebuild

Settings Console Rebuild (new)

  • Full two-panel layout with independent sidebar and workspace scrolling
  • Search workspace fixes and search-results rendering corrections
  • Mobile and deep-link behavior improvements
  • Save/discard state and staged-count UX fixes
  • Disabled-module accessibility: options pane becomes inert, controls behind scrim are no longer keyboard-focusable
  • Localization cleanup for the rebuilt settings UI
  • Right-panel toggle fix: legacy RES toggle CSS no longer leaks into the console; toggles correctly centered and sized

Build System

  • Fixed noSourcemap parameter name mismatch (Firefox/Opera always got sourcemaps)
  • Wrapped async builds in Promise.all (previously exited before completion)
  • Fixed undefined token injection for browserMobileMinVersion
  • Removed dead chromebeta/edge/opera targets with missing manifests

Manifests

  • Removed dead webRequest permission (Chrome MV3)
  • Removed redundant script-src-elem from Chrome CSP
  • Removed unused cookies/identity permissions from Firefox MV2

Modules

  • Added missing module.include to fixImageLinks and downloadButtons (ran on options page)
  • Fixed archiveLinks Unddit URL double /r/ bug
  • Fixed reddEye hideFlagged using bare .collapsed class instead of clicking expand toggle
  • Fixed viewDeleted detached-DOM check using thing.entry instead of thing.element
  • Fixed nextTopComment duplicate button injection on re-navigation

Settings Console (QA fixes)

  • Fixed a.target concatenation bug (produced invalid _blank _parent)
  • Fixed noreferer typo → noreferrer (7 occurrences, 3 files)
  • Fixed table keycode options dropping metaKey bit (4-element array instead of 5)

CSS & Dependencies

  • Removed 26 dead SCSS imports for stripped modules — 50KB smaller res.css (282KB → 232KB)
  • Removed dead suncalc and favico.js dependencies

Install

  • Chrome: Download the .crx or load RES-Slim-v0.4.0-chrome.zip unpacked via chrome://extensions
  • Firefox: Load RES-Slim-v0.4.0-firefox.zip as a temporary add-on via about:debugging

RES-Slim v0.3.9 — rewrite nightwatch test fixtures for RES-Slim modules

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 22:52

Housekeeping release. No runtime changes — only the stale nightwatch test suite gets rewritten.

What changed

The upstream RES tests/settingsConsole.js referenced modules that were stripped from this fork in v0.1.0: accountSwitcher, keepLoggedIn, quickMessage, wheelBrowse. The tests could not run against RES-Slim regardless of CI state — they were dead fixtures from the fork. A prior session had started updating selectors to match the v0.3.6 global-save layout but left the module references pointing at things that don't exist.

Remapped each test to a module that actually ships in RES-Slim:

Test Upstream module RES-Slim replacement
Boolean option accountSwitcher.keepLoggedIn commentDepth.commentPermalinks
Enum option accountSwitcher.dropDownStyle absoluteTimestamps.format (locale/iso)
Text option quickMessage.defaultSubject commentDepth.defaultCommentDepth
Table option accountSwitcher.accounts commentDepth.subredditCommentDepths
Disable module wheelBrowse autoExpand
Discard reset accountSwitcher.keepLoggedIn commentHighlights.borderOnly
Nested click #res:settings/accountSwitcher #res:settings/commentHighlights
Dependent option commentQuickCollapse.leftEdgeColor unchanged — this module survived

commentDepth was the only viable target for the table test because it's the only RES-Slim module with type: 'table' (the subredditCommentDepths table with list + text + text sub-fields). Table input IDs follow the ${optionKey}_${field.name}_${rowIndex} pattern — #subredditCommentDepths_commentDepthCommentDepth_1 for the first newly-added row, _0 for the persisted row after refresh.

Selectors already use the v0.3.6 global-save layout (#RESGlobalSave, #RESGlobalStageBar, #RESGlobalDiscard, .is-saved, .is-dirty). Nothing else to port.

Still no CI

The nightwatch suite has never been wired into a CI workflow and this release doesn't change that. The suite is kept in-tree for forward consistency — if someone revives the test infrastructure later, the selectors and module references will already be pointing at things that actually exist. Running it locally still requires nightwatch + a browser + a live reddit.com session.

Install

CRX (signed, auto-updates from prior RES-Slim CRX installs — same extension ID)

Download res-slim-chrome-v0.3.9.crx and drag into chrome://extensions with Developer mode enabled.

Zip (unpacked)

Download RES-Slim-v0.3.9-chrome.zip, extract, and load unpacked from chrome://extensions.

Verification

  • yarn once clean
  • yarn eslint tests/settingsConsole.js clean
  • npx flow check 0 errors

RES-Slim v0.3.8 — settingsNavigation click handler and URL parser fixes

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 22:46

Five real bug fixes to settingsNavigation. These were sitting uncommitted in the working tree (work-in-progress from a prior session) and got triaged as part of the v0.3.7 audit cycle — the four original fixes are solid, plus one additional regression I caught during verification.

Fixed

Click interceptor

  1. Modifier clicks — the click handler previously only respected ctrlKey, so cmd-click (macOS), shift-click, and alt-click on a settings link would still intercept and open the console instead of honoring the modifier's native behavior (open in new tab, etc.). Now checks all four modifier keys.

  2. Nested click targets — the old check e.target instanceof HTMLAnchorElement broke if the user clicked an icon or span inside a settings link. Now walks up via e.target.closest('a').

  3. target="_blank" anchors — the interceptor now skips anchors that explicitly opt into a new tab. Previously those got hijacked into the embedded console.

parseHash / makeUrlHash

  1. Proper URL encoding — the old code used a regex match + literal %20 string replace, which only handled spaces and broke on any other URL-encoded character. Now uses encodeURIComponent / decodeURIComponent for a proper round-trip. Also internally normalizes the legacy #!settings prefix so both old and new links parse to the same result.

  2. Prefix match vs substring match — [caught during verification against the existing test URLs]. The initial fix sliced the hash at position 14 (length of #res:settings), so a URL like #res:settings-redirect-standalone-options-page/accountSwitcher (a distinct test-harness route that happens to share #res:settings as a literal prefix) was getting parsed with -redirect-standalone-options-page as the moduleID. Fixed by requiring the prefix to be followed by / or end-of-string before treating the remainder as a path.

Verified with

Edge-case test harness in a node one-liner:

"#res:settings"                                                   => {}
"#res:settings/"                                                  => {}
"#res:settings/commentHighlights"                                 => {"moduleID":"commentHighlights"}
"#res:settings/commentHighlights/color"                           => {"moduleID":"commentHighlights","optionKey":"color"}
"#res:settings/commentHighlights/expire%20days"                   => {"moduleID":"commentHighlights","optionKey":"expire days"}
"#!settings/autoExpand"                                           => {"moduleID":"autoExpand"}
"#!settings"                                                      => {}
"#something-else"                                                 => {}
""                                                                => {}
"#res:settings-redirect-standalone-options-page/accountSwitcher"  => {}

All cases return the expected result — URL encoding round-trips (expire%20daysexpire days), both hash styles parse, and the prefix-substring trap returns empty instead of a bogus moduleID.

Not shipped in this release

The tests/settingsConsole.js diff is still uncommitted. It's a mechanical selector refresh (#moduleOptionsSave#RESGlobalSave, workspaceStageStatusRESGlobalStageBar, .optionsSaved.is-saved) plus two new tests — but it references upstream RES modules (accountSwitcher, keepLoggedIn, quickMessage, wheelBrowse) that were stripped from RES-Slim in v0.1.0. Shipping the selector sync on tests that can't actually run against this private fork would just propagate stale fixtures. Those tests need a separate rewrite against modules that actually exist in RES-Slim; out of scope for a bug-fix release. There's also no CI wiring, so they're never executed regardless.

Install

CRX (signed, auto-updates from prior RES-Slim CRX installs — same extension ID)

Download res-slim-chrome-v0.3.8.crx and drag into chrome://extensions with Developer mode enabled.

Zip (unpacked)

Download RES-Slim-v0.3.8-chrome.zip, extract, and load unpacked from chrome://extensions.

Verification

  • yarn once clean
  • yarn eslint lib/modules/settingsNavigation.js clean
  • yarn stylelint clean
  • npx flow check: 0 errors

RES-Slim v0.3.7 — QA audit on v0.3.6 + second-look on v0.3.5 modules

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 22:28

Full comprehensive audit on v0.3.6 settings console transformation + a second-look pass on the v0.3.5 module fixes. Three parallel Explore agents surfaced findings; I verified each one against the source, filed false positives, and fixed the confirmed bugs.

Fixed

Settings console (v0.3.6 regressions + rough edges)

  • Filter chip ARIA — the v0.3.6 templates shipped role="tab" + aria-selected on each chip, which is an incomplete ARIA tab pattern (would need role="tabpanel", aria-controls, and arrow-key navigation between chips to be compliant). Switched to the correct semantic for toggle-style filter buttons: role="group" on the container + aria-pressed on each chip.
  • .moduleRowToggle thumb asymmetry — off-state margin-left: 2px sat 2px from the left edge, but on-state margin-left: 16px sat 4px from the right edge instead of 2px. Track 34 − thumb 14 − 2 = 18, so on-state should be 18px. Fixed.
  • Responsive 680px breakpoint — the v0.3.6 media query applied justify-content: center to .globalSaveButton / .globalDiscardButton at narrow widths. Those are non-flex buttons (display: inline-block), so justify-content did nothing. Switched to text-align: center.
  • Empty filter state — when a filter matched zero modules the entire sidebar list went blank with no explanation. Added a placeholder: dashed-border card with "No modules match this filter." and a "Show all modules" reset button that fires setModuleFilter('all').
  • Stale $moduleOptionsScrim referencedrawConfigOptions only reassigned this jQuery wrapper when the current module actually had options. For no-options modules, the variable kept pointing at a detached div left over from the previous module, and subsequent updateCurrentModuleState calls silently mutated a ghost. Fixed by clearing it to undefined before the create/skip branch.
  • Category .active vs .is-expanded desync — manually collapsing the currently-highlighted category left the .active highlight in place, reading visually as "this category is still selected" while its content was hidden. Now drops .active on manual collapse.

Modules (second-look on v0.3.5)

  • viewDeleted — the restore flow awaited a pullpush.io fetch, then wrote the archived body into thing.entry.querySelector('.usertext-body .md') without re-checking that the comment was still in the live document. With infinite-scroll now live in v0.3.5, it's realistic for the comment to be detached mid-ajax. Now re-queries after the await, bails if document.contains(thing.entry) is false, and also guards trigger.remove().
  • hideGifComments — the module detected gif-only comments correctly but then just added the .collapsed class, which does nothing visually on old.reddit. Reddit's collapse is driven by a JS click handler that rewrites the DOM into a one-line stub AND adds the class; adding the class alone leaves the comment fully expanded. Now clicks the .expand toggle to run Reddit's native collapse logic, falling back to class-only if the toggle isn't present.

Agent false positives I verified and did NOT fix

The agents flagged several issues that turned out to be non-problems after verification:

  • nextTopComment "off-by-one in visibleIndex" — the bounds are correctly clamped by Math.max(0, ...) / Math.min(len-1, ...).
  • downloadButtons "double-button injection" — the expando.querySelector('.res-slim-download-btn') guard inside decorate() makes the rAF + setTimeout double-fire idempotent.
  • currentColor "spec case violation" — the agent got it backwards; stylelint-config-standard REQUIRES lowercase currentcolor and I fixed this in v0.3.6 after a stylelint failure.
  • saveAllStagedOptions "race with autostageDebounce" — after commit, re-staging the same values is a no-op because stage.add compares against the committed state.
  • commentHighlights "unbounded store.getAll()" — 10% probabilistic prune at thread load on bounded storage; not a real issue at realistic thread counts.
  • Collapsed category with filtered-out children "doesn't re-expand" — this is correct behavior; the user collapsed it manually, it should stay collapsed.

Install

CRX (signed, auto-updates from v0.3.5/v0.3.6 CRX installs — same extension ID)

Download res-slim-chrome-v0.3.7.crx and drag into chrome://extensions with Developer mode enabled.

Zip (unpacked)

Download RES-Slim-v0.3.7-chrome.zip, extract, and load unpacked from chrome://extensions.

Verification

  • yarn once clean
  • yarn eslint lib/ clean
  • yarn stylelint clean
  • npx flow check: 0 errors (first time this repo has flow-clean since the fork; the pre-existing scrollIntoView({ block: 'nearest' }) error turned out to be stale cache)
  • Playwright visual verification at 1400×900 and 650×900: confirmed toggle thumb symmetry (OFF 2px left / ON 2px right), filter empty state card, dirty stage bar coloring, responsive save/discard button centering, and active filter chip highlight

RES-Slim v0.3.6 — Settings console UX transformation

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 10:25

Settings console UX rework. No functional module changes in this release — only the settings page itself.

What changed

Sidebar

  • Categories no longer accordion-collapse. Every category stays expanded by default so the full 45-module list is always scannable. Click a category header (chevron flips) to collapse just that one — siblings never collapse under the user. This was the single biggest friction point: selecting a module in one category used to close every other category, forcing users to re-find their place every time they wanted to jump between groups.
  • Inline toggle switch on every module row. No more navigate-then-toggle two-click dance. Flip modules on/off directly in the sidebar without loading their options workspace. alwaysEnabled modules (Menu, Version, etc.) show a lock dot instead of a toggle.
  • Filter chip row (All / On / Off / Modified) above the module list with live counts. Lets you see just the modules you've touched before saving, or just the disabled ones, without scrolling.

Header

  • Global Save + Discard + stage-status bar in the top header, replacing the per-module workspace Save button. Unsaved changes are visible and actionable from any module you're viewing.
    • Dirty state renders warning-colored with a live count: "3 changes staged across 2 modules"
    • Saved state renders success-colored with a pulse animation on commit
    • Discard button appears alongside when the stage is dirty and hard-resets via Options.stage.reset()
  • Dropped the /r/Enhancement sidebar link (wrong for a private fork that explicitly stripped upstream RES), the "Settings" eyebrow, and the marketing subtitle. Header is now a single clean title row.

Internals

  • New shared toggleModuleEnabled(id) function is the single entry point for enable/disable. Both the sidebar inline toggle and the workspace toggle call it. Global save/discard also call it when re-syncing the sidebar after a commit.
  • New syncSidebarModuleState(moduleID, enabled) keeps the sidebar toggle visually in sync with stage + commit operations without a full re-render.
  • Removed dead selectors from options.scss: #moduleOptionsSave, .workspaceStageStatus, .moduleActionRow, .moduleWorkspaceEyebrow, #RESConsoleSubredditLink, .consoleEyebrow, .consoleSubtitle.
  • Added: .globalStageBar, .globalSaveButton, .globalDiscardButton, .filterChips, .filterChip, .filterChipCount, .moduleRow, .moduleRowToggle, .moduleRowLock, .categoryButtonChevron, .sidebarFooter.

Install

CRX (signed, auto-updates from prior RES-Slim CRX installs — same extension ID)

  1. Download res-slim-chrome-v0.3.6.crx.
  2. Drag and drop into chrome://extensions with Developer mode enabled.

Zip (unpacked)

  1. Download RES-Slim-v0.3.6-chrome.zip and extract.
  2. Load unpacked from chrome://extensions.

Verification

  • yarn once clean
  • yarn eslint lib/options/ clean
  • yarn stylelint clean
  • npx flow check: 1 pre-existing error only (scrollIntoView({ block: 'nearest' }) — flow-bin 0.84 dom.js.flow out of date, the value is spec-valid)
  • Preview rendered in playwright at 1200×1500 to validate layout, spacing, filter chip counts, dirty-state colors, category expand state, inline toggles, lock dot on alwaysEnabled modules

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)

RES-Slim v0.3.4 - Settings workspace refinement

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 10 Apr 06:14

Another UX refinement pass on the settings workspace, authored via Codex.

Changes

  • lib/options/settingsConsole.js — further behavior refinements (+119 lines)
  • lib/options/options.scss — ~500 lines of styling updates
  • lib/options/templates.js — console template adjustments to match
  • lib/modules/search.js — settings-search simplification (-52 lines)
  • lib/core/options/stage.js — small staging layer additions

No module additions or behavior changes. Module count unchanged at 45.

Install

  • Chrome/Edge: drag res-slim-chrome-v0.3.4.crx onto chrome://extensions (Developer mode), or load the .zip unpacked. Extension ID 28d1c92ee72e3b2f56327d428e883526 (stable).
  • Firefox: res-slim-firefox-v0.3.4.xpi via about:debugging, or load the .zip unpacked in Dev/Nightly.

License: GPL-3.0 (inherited from upstream RES).