Skip to content

[pull] main from mhdzumair:main#259

Merged
pull[bot] merged 10 commits into
geek-cookbook:mainfrom
mhdzumair:main
May 16, 2026
Merged

[pull] main from mhdzumair:main#259
pull[bot] merged 10 commits into
geek-cookbook:mainfrom
mhdzumair:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 16, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

mhdzumair and others added 10 commits May 16, 2026 20:20
RealDebrid recently began blocking certain filename patterns, causing
content to appear as infringing (~34% of releases affected). Filter
these streams out before returning them to RD users so they never
see unplayable results.

Two block rules implemented in `is_rd_blocked_filename()`:
- Substring match (case-insensitive): web-dl, webrip, bdrip, hdrip, dvdrip
- Dot-adjacent source.codec pairs: BluRay.x264, HDTV.x264, HDTV.XviD,
  WEB.x264, WEB.h264

Filter applied in both the Stremio stream endpoint (stream.rs) and
the catalog stream endpoint (catalog_browse.rs), keyed on
provider == "realdebrid". Checks filename first, falls back to the
stream name when filename is absent.
The pg_dump header in 0001_baseline.up.sql contained two lines that
broke fresh-install migrations:

1. SET transaction_timeout = 0  — PostgreSQL 17+ only; crashes on PG 15/16
2. SELECT pg_catalog.set_config('search_path', '', false/true)  — sets
   search_path to empty inside the migration transaction; sqlx's own
   bookkeeping INSERT INTO _sqlx_migrations (unqualified) then fails with
   '42P01: relation does not exist'.  All objects in the baseline are
   already schema-qualified (public.*) so this line serves no purpose.

Verified on a fresh postgres:15-alpine container: all 5 migrations apply
cleanly, 77 tables created, server reaches 'listening' state.
pnpm@latest resolved to v11 which requires Node >= 22.13 and uses
node:sqlite (unavailable in Node 20). Switch to node:22-alpine and
pin pnpm to 10.28.2 (the version used locally) for a reproducible
build. Also update pnpm-lock.yaml to pick up the @tanstack/react-query
version bump.
- Fix stream_id i64→i32 in SuggestionRow; all stream suggestion list
  queries were silently failing due to the type decode mismatch
- Remove ::uuid casts on varchar id columns in metadata suggestions;
  was causing suggestion review/get to always return 404
- Align validate_token/get_user_role to return/accept i32 (matches
  users.id integer column) in contributions, stream_linking, and
  stream_suggestions routes
- Fix migrate_media response shape to match MigrateMediaResponse
  interface expected by the frontend (from_media_ids, migrated_sources,
  to_media_id, stream_links_migrated, etc.) to stop the UI crash on .map
Stats grid: sm:grid-cols-3 / lg:grid-cols-5 breakpoints give cards
enough room at medium viewports; shrink-0 on icons and min-w-0 on
text prevents overflow at any column width; last card spans 2 cols
on mobile so the 5th item doesn't orphan on a 3-col row.

Tabs: replace fixed grid-cols-2/sm:grid-cols-6 with flex flex-wrap
so tabs reflow to the next line instead of overlapping when the
content area is narrower than the combined tab widths.
Users who applied migration v1 before the pg_dump header cleanup
(transaction_timeout + search_path removal) have a stored checksum
that no longer matches the updated file.

repair_checksums() runs before migrator.run() on every startup:
- reads stored checksums from _sqlx_migrations
- compares against compiled checksums
- updates mismatched rows in-place with a WARN log
- migrator.run() then sees no mismatch and proceeds normally

Existing installs self-heal on the next restart with no manual
intervention required.
@pull pull Bot locked and limited conversation to collaborators May 16, 2026
@pull pull Bot added the ⤵️ pull label May 16, 2026
@pull pull Bot merged commit caf4d9e into geek-cookbook:main May 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants