Skip to content

Releases: DrummingBird1/GOGEnhancer

v2.6.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 12:47

v2.6.0 (current) — Genre detection from the game page

  • Real genre detection — visiting a game page now reads its actual
    "Genre:" field (confirmed values: Horror, Role-playing, Strategy) and
    caches the result per slug (gameGenres, local/per-device). Card styling
    and the wishlist genre filters use this cache when available, falling back
    to the old franchise/keyword regex (GENRE_PATTERNS) for anything not yet
    visited or outside those three genres (sci-fi, indie — GOG appears to
    classify those under its separate, unverified "Tags" cloud, not "Genre:",
    so they're left on the regex for now). Detection is text-label based
    rather than tied to a specific CSS class, since GOG's Angular markup shifts
    between releases; it silently no-ops if the label isn't found, so the
    worst case is identical to pre-2.6.0 behavior.
  • Addresses part of the "Genre detection is slug-pattern matching" known
    limitation — narrower than a full fix (3 of 5 buckets), see above for why.

Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.5.1

Choose a tag to compare

@github-actions github-actions released this 23 Jul 23:36

v2.5.1 (current) — What's new panel

  • Popup changelog — after an update, opening the popup now shows a short
    "What's new" panel with that release's highlights, dismissible with a "Got
    it" button. Tracks a new lastSeenVersion key (local, per-device) so it
    only surfaces versions you haven't acknowledged yet — including any you
    skipped if the browser was closed across several releases. Source of truth
    is lib/changelog.js; add an entry there on every user-facing version bump.

Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.5.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 13:14

v2.5.0 (current) — Smart prices & historical lows

Adds price-trust signals while browsing, plus reliability plumbing:

  • 💎 Lowest-price badge — cards for games sitting at their tracked all-time
    low now carry a gold "Low" badge, so you spot a genuine deal without opening
    the game page. Reuses the price-history you already collect; toggle it in the
    popup ("Lowest-price badge").
  • Stale-rate warning — a converted price whose FX rate is over 48h old, was
    never fetched, or last failed to refresh now shows in amber with a ⚠, instead
    of quietly using a frozen rate.
  • Rate provenance in tooltips — the conversion tooltip now shows the exact
    rate used and its age ("1 USD = 3.65 ILS · updated 4h ago").
  • Tag-colour dot on cards — a small corner dot, tinted by your first tag,
    marks games you've tagged while browsing the store.
  • Storage-routing CI guard — a new test asserts every key in defaults.js
    is routed in storage.js, catching the "falls through to local" trap at PR
    time. Refreshed dev dependencies to clear Dependabot advisories.

Internally: the archive step in build.ps1 (added in this cycle) automatically
tucks the previous webstore zip into dist/archive/ on every version bump.


Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.4.1

Choose a tag to compare

@github-actions github-actions released this 11 Jul 09:37

v2.4.1 (current) — Repo restructure: extension/ + store/

Housekeeping only — no code or behavior changes. The repo root now cleanly
separates what ships from what doesn't:

  • extension/ holds the entire shippable extension (manifest + all code +
    icons). This is what you Load-unpacked and what build.ps1 zips. All 34 code
    files moved here as git renames, so per-file history is preserved.
  • store/ holds Web-Store material that never ships: STORE_LISTING.md and
    screenshots/.
  • Repo docs (README, PRIVACY, LICENSE, CLAUDE.md) and dev tooling
    (build.ps1, tests/, package.json, .github/) stay at the root.
  • Updated to match: build.ps1 now zips extension/; test imports point at
    ../extension/…; the ESLint service-worker glob and the release workflow's
    manifest-path both target extension/.

If you Load-unpacked from the repo before: point Chrome at the extension/
subfolder now, not the repo root.


Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.4.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 04:08

v2.4.0 (current) — Support links

  • Patreon support links added in four unobtrusive spots: a "☕ Support this
    project" button in the popup footer (translated EN/HE), a "Support development"
    card in Advanced Options, an optional line on the onboarding wizard's final
    step, and a Support section in the README. All are plain external links — no
    new permissions, no fetches, no tracking. Every feature stays free.
  • Store-listing screenshot guidance updated to warn against shipping the
    current screenshots (captured from a real session) and to reshoot with a
    signed-out/demo profile so no personal account data is exposed.

Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.3.2

Choose a tag to compare

@github-actions github-actions released this 25 Jun 23:07

v2.3.2 (current) — Privacy cleanup of repo metadata

Housekeeping pass that removed personal identifiers from the public repo's
tracked files (commit history was already clean — all commits use the GitHub
noreply email):

  • Removed a personal email address that appeared in a CLAUDE.md workflow note.
  • Replaced the machine-specific local path in CLAUDE.md with a generic
    <repo-root> placeholder.
  • Changed the copyright holder and "built for" lines (LICENSE, README.md,
    options footer) from a personal name + city to the DrummingBird1 handle /
    neutral wording.
  • Fixed stale v2.1 version pills in the onboarding and options headers.

No code or behavior changes.


Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.3.1

Choose a tag to compare

@github-actions github-actions released this 21 Jun 16:23

v2.3.1 (current) — Security audit hardening

A full security/privacy review found the codebase solid (no XSS, no privacy
leaks, minimal permissions). These are the hardening fixes it produced:

  • notifLog no longer grows unbounded. The background dedup log (one
    timestamped key per fired notification) is now pruned of entries older than
    90 days on each daily run. Refund + price-alert + wishlist-jump checks were
    consolidated into a single runDailyJobs() that prunes afterwards.
  • Defense-in-depth on tag colors. The one spot that interpolated a tag
    color into an HTML style attribute (dashboard game cards) now passes it
    through a render-time #hex validator (safeHexColor), so it can't become a
    CSS-injection vector even if a future write-path forgets to validate. All
    other color usages already went through CSSOM setProperty (injection-proof).
  • AGENTS.md gitignored. A per-machine Codex mirror of CLAUDE.md (with a
    machine-specific path) is no longer flagged as untracked repo noise.

No functional behavior changes. All 34 tests pass; ESLint clean.


Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 12:51

v2.3.0 (current) — i18n, price alerts, sale heatmap, tag packs

New features

  • Hebrew UI — full Hebrew translation of the popup, plus interface-language selector in Advanced Options → Look & feel. Framework lives in lib/i18n.js (dictionary-based, supports [data-i18n] and [data-i18n-attr] markup). Sets <html lang> + dir="rtl" automatically.
  • Per-game price alerts — every game-page panel now has an alert section. Type a threshold, hit Save, and the daily background alarm fires a desktop notification when the latest recorded price drops below it. Per-slug + per-threshold dedup via notifLog. Requires the existing opt-in desktopNotifications toggle.
  • Cover-art color sampling — the game-page panel's border and header pill take on the dominant color sampled from the page's og:image cover art. Spotify-style. Falls back to the theme accent if the image is CORS-blocked.
  • Mini sparkline in hover quick-look — the tooltip that appears when you hover a game card in a listing now contains a tiny SVG sparkline of the last 10 snapshots.
  • Sale calendar heatmap — new dashboard section showing a 12-month grid colored by how often you've observed ≥1 price drop in each month, across your whole tracked library. Identifies the "hot months" GOG drops prices.
  • Shared tag packs — export the currently-visible games as a gog-plus-pack-…json (includes tags, notes, purchase dates, tag colors), and import packs others share with you. Merge mode — never overwrites existing notes / purchase dates / colors.
  • Advanced dashboard search — operators in the search box: tag:rpg, lowest:<10, lowest:>5, snapshots:>3, since:2026. Combine freely with plain-text substring search.

Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Jun 20:00

v2.2.0 — Hover quick-look, year selector, dashboard polish

New features

  • Hover quick-look on game cards — hover any game card in a listing and a rich tooltip shows current price, all-time low, your tags, and last visit date. Reuses the existing data-gog-plus-tip tooltip system; only stamped on cards that have data.
  • Year-in-review with year selector — the dashboard's year-in-review section is no longer locked to the current year. A dropdown appears when you have history spanning multiple years; pick any year to see its stats.
  • Sortable dashboard columns — sort tagged games by name, last visit date, tag count, or snapshot count. New toolbar dropdown.
  • Per-game JSON export — small button on every dashboard game card. One click downloads gog-plus-{slug}-{date}.json with that game's tags, note, purchase date, and full price history. Backup-friendly.
  • Custom hex tag colors — beyond the 8 preset swatches, the color picker now has a native color input. Pick any color from the OS color dial.
  • History depth control — number input in Advanced Options → Developer (range 10–500, default 100). lib/storage historyMaxEntries setting feeds content/price-history.js via cached read + onChange.
  • Storage usage estimate — extra stat card in the dashboard shows X KB · Y% of 5 MB local quota (computed locally, no Web Storage API call needed).

Bug fixes

  • Sparkline + price-history stats now normalize every snapshot to the user's target currency via the USD rate matrix. Previously, after changing target currency the chart silently mixed old-currency and new-currency values.
  • runMigrations() is now atomic across the v1→v2 split. If local.set fails, settingsVersion stays at 1 and the migration retries next run. If only sync.remove fails afterwards, data is preserved in local and the stale sync entries are logged but don't block progress.

Visual polish

  • 280 ms color cross-fade across panels, tooltips, badges, banner, and wishlist filter chips when switching themes. Disabled for prefers-reduced-motion.
  • Ambient background drift — the radial-gradient overlay on body::before now subtly shifts position+scale over a 90 s loop. Imperceptible motion, hints at depth. Reduced-motion friendly.

Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

Full Changelog: v2.1.1...v2.2.0

v2.1.1

Choose a tag to compare

@github-actions github-actions released this 22 May 07:52

v2.1.1 — Cross-currency wishlist filters, Light theme, polish

Bug fixes

  • Wishlist < $10 / < $25 filters now work in any locale. Page price is parsed in pageCurrency.code and converted to USD via the rate matrix before comparing — previously the regex only matched $ and silently no-op'd for EU/UK/IL users.
  • cleanLayout CSS no longer hardcodes /promo/20230 and /promo/20240. It now keys off .gog-plus-expired which hideExpiredSales stamps dynamically against currentYear, so the layout stays accurate as years roll.
  • Toolbar badge color now follows the picked theme (Neon → magenta, CRT → green, Sunset → orange, Classic → purple, Light → deep purple). Previously locked to magenta regardless.

New features

  • Light theme added as the fifth picker option. Inverts the background/text palette while keeping accents recognizable. Renders panels and tooltips as bright "windows" on GOG's dark pages — high contrast, very scannable. Selectable from Advanced Options → Look & feel and from onboarding step 4.
  • Live theme preview on the options page. Clicking a swatch now updates the page's accent colors immediately (the surrounding UI flashes to the new palette) instead of requiring a reload to see the change.
  • Compact density toggle in the tag dashboard toolbar. One click switches the entire dashboard (stat cards, year-in-review, tag pills, game cards) to a tighter layout. Useful for power users with many tags. Persisted per device in tagDashboardDensity.

Infrastructure

  • GitHub Actions CI: .github/workflows/test.yml runs npm test + npm run lint on every push to main and on every PR.
  • ESLint flat config with extension-specific globals (chrome.*, GOGPlusStorage, GOG_PLUS_DEFAULTS, etc.). npm run lint is now part of the test workflow.
  • .gitattributes pins LF for text files in the repo (PowerShell stays CRLF, binaries unchanged). Keeps diffs on GitHub clean across contributors with different core.autocrlf settings.
  • 10 new Vitest specs for content/price-history.js: record dedup + trim to 100, lowest, stats, and the input-validation edge cases. Total 34 tests, all passing.

Download gog-enhancer-webstore.zip below and load it as an unpacked extension, or wait for the Chrome Web Store listing.

Full Changelog: https://github.com/DrummingBird1/GOGEnhancer/commits/v2.1.1