Accept the timeline provider filter as repeated params

FixMediaService
Shipped
August 7, 2026 at 4:07 AM UTC
Author
Kamo
Commit
171dfdc

The web client sent ?providers=facebook,x as one CSV value. A comma in a query VALUE has to travel as %2C, and a hop that re-encodes turns that into %252C; we decode once, split on a comma that is no longer there, and the whole filter is the single run-together token "facebook%2Cx". It matches no provider code, so a multi-provider filter silently returned an empty feed. Single-provider and no-provider requests are a fixed point, which is why it went unreported. providers is now a List<String>, so the repeated form the client sends — **************** one param per selected chip — is what arrives. Provider codes contain no reserved character, so that shape survives every hop byte-for-byte. A CSV in ONE element still parses exactly as it always did: each element goes through the same comma split, so a bookmarked or cached ?providers=facebook,x, and Spring's own String->List conversion (which splits a lone providers=a,b on commas before we ever see it), land on the same set. One parsing rule, three accepted shapes. Absent, empty and all-blank still mean "no filter — every active connection" rather than an empty feed, which is what they meant before. mvn -o test: 74 tests, 0 failures.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing