Skip to content

Make the listing a directory people can read, and let it be sorted - #20

Merged
HarryCordewener merged 1 commit into
mainfrom
feat/games-redesign
Jul 31, 2026
Merged

Make the listing a directory people can read, and let it be sorted#20
HarryCordewener merged 1 commit into
mainfrom
feat/games-redesign

Conversation

@HarryCordewener

Copy link
Copy Markdown
Member

The filter panel was seven full-width selects in a column with a paragraph underneath explaining each one — it read like a database form. It is now a compact grid, with the evidence carried by chips (a green dot for MEASURED, an amber diamond for DECLARED) and a legend at the foot of the panel instead of a sentence per facet.

The prose went; the distinctions did not. Which facet reads a measurement and which reads a claim is still on the page. "Unticked is never a no" is still said, because leaving a protocol unticked genuinely does not mean a game lacks it. A facet with no value still says so in its own words — behind a what a blank means disclosure rather than in six lines nobody read.

Sorting

By name, by players on now, by last reached.

The unranked go after the ranked, never as zero. 226 of the 409 games in this catalogue answered without giving us a number. Sorting those as 0 would pile them at the bottom of most players looking like empty games — precisely the claim this project exists not to make. GameSorting.IsUnranked asks whether there is anything to rank a game by, never whether it is zero, and the ordering is total so two identical requests cannot shuffle. Plain mode names the order it is in, because a sorted list that does not say what it is sorted by is not readable as text.

Still one GET form, still no script, still linkable.

How this was made

A subagent did the work and was killed by a rate limit at the screenshot step — it built clean and its tests passed, but nobody had looked at it. I finished that part by hand: ran it against the live 409-game catalogue, read the page, checked the sort against real counts, and confirmed plain mode states its order. Committing a redesign nobody had looked at would have been the one thing this repository's own rules forbid.

Five suites green — Catalog 207, Web 216 — zero warnings.

The filter panel was seven full-width selects stacked in a column with a
paragraph underneath explaining each one. It read like a database form. It is now
a compact grid with the evidence carried by chips -- a green dot for MEASURED, an
amber diamond for DECLARED -- and a legend at the foot of the panel instead of a
sentence per facet.

The prose went, the distinctions did not. Which facet reads a measurement and
which reads a claim is still on the page; "unticked is never a no" is still said,
because leaving a protocol unticked genuinely does not mean a game lacks it; and
a facet with no value for a game still says so in its own words behind a "what a
blank means" disclosure rather than in six lines nobody read.

Sorting is new: by name, by players on now, by last reached.

THE UNRANKED GO AFTER THE RANKED, NEVER AS ZERO. Two hundred and twenty-six of
the four hundred and nine games in this catalogue answered without giving us a
number. Sorting those as 0 would pile them at the bottom of "most players"
looking like empty games, which is precisely the claim this project exists not to
make -- so GameSorting.IsUnranked asks whether there is anything to rank a game
by, never whether it is zero, and the ordering is total so two identical requests
cannot shuffle. Plain mode names the order it is in, because a sorted list that
does not say what it is sorted by is not readable as text.

Still one GET form, still no script, still linkable.

This is a subagent's work, finished by hand. It built clean and its tests passed
but it was killed by a rate limit before the step that mattered most: looking at
what it had made. I ran the site against the live catalogue, read the page,
checked the sort against real counts and confirmed plain mode states its order --
committing a redesign nobody had looked at would have been the one thing this
repository's own rules forbid.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 38 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5a484b0e-4732-476f-89c0-0f0f8d8775f5

📥 Commits

Reviewing files that changed from the base of the PR and between ee48650 and c16a7dc.

📒 Files selected for processing (15)
  • src/MUI.Catalog/Facets.cs
  • src/MUI.Catalog/Views.cs
  • src/MUI.Web/Api/ApiModels.cs
  • src/MUI.Web/Api/GameFilterBinding.cs
  • src/MUI.Web/Components/ActiveFilters.cs
  • src/MUI.Web/Components/FacetPanel.razor
  • src/MUI.Web/Components/FacetWords.cs
  • src/MUI.Web/Components/ListingLinks.cs
  • src/MUI.Web/Components/Pages/Games.razor
  • src/MUI.Web/Components/PlainText.cs
  • src/MUI.Web/Components/Relative.cs
  • src/MUI.Web/wwwroot/app.css
  • tests/MUI.Web.Tests/FacetSurfaceTests.cs
  • tests/MUI.Web.Tests/Render.cs
  • tests/MUI.Web.Tests/SortingTests.cs

Comment @coderabbitai help to get the list of available commands.

@HarryCordewener
HarryCordewener merged commit a3869d1 into main Jul 31, 2026
3 checks passed
@HarryCordewener
HarryCordewener deleted the feat/games-redesign branch July 31, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant