HKPL โ Round 14 ยท New feedback + a platform-wide polish pass ยท 11 July 2026 ยท updated 12 July
A lot is new for you to try this round. Alongside Richard's league & division-management requests and the newest tester reports, we did a broad polish pass across the whole site โ registration, full Chinese, a smarter assistant, smoother navigation, and a new โdelightโ layer. It's all live now on UAT โ the highlights below are things you'll see and use straight away.
Best way to explore: open
the role picker, sign in as any role, and follow the "please try" notes below. Toggle
EN / ็น / ็ฎ in the top-right on any page. The
assistant is the green bubble, bottom-right โ ask it anything.
New โ one window, no more juggling logins: the role picker now signs you in right in the same tab. Pick a role and this window becomes that person; to try someone else, use the โTesting as โฆ ยท Exit / new userโ bar at the bottom โ no more opening a separate login window for every role.
45+Improvements live
5Owner (Richard) requests
5Tester reports
0Blocked on you
๐งช How to test Round 14 โ a step-by-step guide by role
This is a big round, so here's the exact way to try everything. Every step below was walked on the live UAT site before we wrote it โ the buttons, pages and counts are real. Pick a role, follow its steps, and you'll see the new features in context.
โถ Start here โ one window, no juggling logins
- Open the role picker: uat.silkvo.com/qa.html. Tap a role and this same tab becomes that person โ no separate login windows any more.
- To try a different role, use the โTesting as โฆ ยท Exit / new userโ bar at the bottom of the screen. One window, switch anytime.
- On any page: toggle EN / ็น / ็ฎ at the top-right (the whole site translates, forms and drop-downs included), and tap the green assistant bubble bottom-right โ it answers questions and gives your role its own steps.
๐ง Player
Role picker โ Player ยท or just use Register (no login)
- Register: top menu โ Register โ Player tab. Enter name, email, gender, DUPR ID (optional) and optionally pick a team to join โ email me a sign-in link. If you chose a team, that captain gets your request.
- Your home: a greeting + shortcuts. Open My profile & DUPR โ your real rating shows (or โsetting upโฆโ, which fills itself in).
- Applications & invites show their status at the top of your home โ no page-hunting.
๐พ Captain the big one
Role picker โ Captain
- You land on your hub: โWelcome backโ + how many teams you captain and clubs you manage.
- Drag-and-drop lineup: scroll to an upcoming match โ tap the green ๐พ Plan Lineup button โ drag a player chip from your roster onto a game slot (Ladies / Menโs / Mixed); eligible slots glow โ drop โ Save Lineup.
- Scoresheet: on a match, tap ๐ Scoresheet for the digital sheet.
- Many teams / a club? Use the โSwitch Nโ bar at the top to jump between teams (grouped by club), and the โClub you manageโ card โ Manage.
๐ League Admin
Role picker โ League Admin ยท left sidebar
- Set who can do what: System โ Roles & Permissions โ search a person โ assign their role.
- Make someone a club manager: Teams & People โ Club Managers โ assign a user as a clubโs manager (co-managers allowed).
- Assign / change a teamโs captain: Teams โ click a team โ set captain, co-captain, manager + roster + home court.
- Terryโs standings: League โธ Standings โ a division โ the Game% / Match% columns are in the table.
- DUPR: Teams & People โ DUPR Operations (now in the menu).
โ
Registrar
Role picker โ Registrar
- You land on โPending approvalsโ with a live count.
- Bulk approve: tick Select all โ โ Approve selected; or approve one at a time with each rowโs โ Approve.
- Other queues along the top: Player sign-ups, Eligibility to verify, Unpaid teams, Match requests.
๐ Referee
Role picker โ Referee
- Pick a date + venue โ the matches scheduled there appear.
- On a match, Confirm Lineup โ, then open live scoring.
๐ Anyone โ quick checks
No sign-in needed
- Full Chinese: toggle ็น / ็ฎ top-right on any page โ menus, forms and drop-downs all switch.
- Assistant: green bubble โ ask โhow do I join?โ or โhow do I submit a score?โ.
- All committee reports: role picker โ ๐ All reports (or /committee-archive.html).
โจ New this round โ with screenshots + how-to
Every screenshot below is a live capture from UAT taken during an automated click-through โ not a mock-up. Click any image to open it full-size. Verified end-to-end (real content, real data), not just "the page loaded".
NewRegister โ Player
Register as a player โ one short form, almost no typingJoining is now a single form: name, email, gender (drop-down), DUPR ID, and (optional) the team you'd like to join โ a drop-down of all 150 teams. We email a secure sign-in link (no password). Your profile is then nearly complete, and if you picked a team, a join request goes to that captain automatically.
How to use
- Top menu โ Register (the Player tab is already selected).
- Enter your name + email, pick your gender, add your DUPR ID (optional), and optionally pick a team to join.
- Tap Continue โ email me a sign-in link. Open the link โ your profile is pre-filled; if you chose a team, the captain gets your request.
โ Try it live
NewEvery page ยท top-right EN / ็น / ็ฎ
Full Chinese, everywhereThe whole site โ every page, form label, drop-down, option and button โ now switches cleanly between English, ็น้ซไธญๆ and ็ฎไฝไธญๆ. Below is the same registration screen in Traditional Chinese.
How to use- Use the language toggle at the top-right of any page (EN / ็น / ็ฎ).
- The whole site re-renders โ including drop-down options โ while still saving the correct values underneath.
New โ wowCaptain โ any upcoming match โ ๐พ Plan Lineup
Real drag-and-drop lineup planning โ watch it belowThe clip below is our site, live (nothing faked): you pick up a player from your roster and drop them onto a game slot. Eligible slots light up as you drag; a wrong-gender slot politely refuses; the roster tags who's already IN. It's touch on a phone, mouse on desktop. And it isn't just a nice animation โ dropping a player writes the exact same value the dropdowns do, so Save and every gender/pair rule behave identically (in this very clip the slot really got set). Prefer the dropdowns? They still work โ drag is just faster.
Where to find it โ it now has its own button
- Sign in as a Captain โ open your team โ scroll to an upcoming match.
- On that match, tap the green ๐พ Plan Lineup button. (This round we made it a clear button โ before, it was a tiny unlabeled icon that was easy to miss.)
- Drag a player chip from your roster onto a game slot (Ladies / Men's / Mixed). Eligible slots glow; drop to set it โ tap Save Lineup.
โ Role picker ยท sign in as Captain
NewStandings + scoresheet โ Terry's requests
Richer standings + a club-wide substitute poolTwo things Terry asked for are now live. Standings show Game% and Match% (games-won and matches-won percentages) next to W / L / points, so a team's real form reads at a glance โ screenshot below. And on the scoresheet, when a team is a player short, the captain or referee can pull a substitute from the whole club's pool โ not just that one team โ matching how HKPL actually runs substitutions.
How to use
- Standings: top menu โ League โธ Standings โ pick a division โ the Game% / Match% columns are right in the table.
- Club substitute: on a match scoresheet (or Plan Lineup), use borrow / add a player โ the list now includes eligible players from other teams in the same club.
โ See the standings
NewAny page ยท green bubble, bottom-right
One assistant โ friendly, role-aware, with real linksThere's now one helper that answers league questions and "how do Iโฆ" steps, in your language. It knows who you are: it only gives a role its own how-to, and gives every answer a clickable link. The capture below shows a logged-out visitor asking a captain question โ it correctly says it's a captain task and offers a sign-in link, rather than leaking captain steps.
How to use- Tap the green bubble (bottom-right) on any page.
- Ask anything โ "can I join?", "is there an age limit?", "how do I submit a score?". Signed-in captains/referees get their own step-by-step; visitors get guided to the right page.
โ Ask the assistant
NewThroughout the app
A modern "delight" layerButtons give a gentle press + a light buzz on phone; approvals show an instant "Approved โ ยท Undo"; the scoresheet lets you tap a slot to swap a player; and a burst of confetti celebrates a completed score (captured below).
NewProfile ยท sign-in ยท join a team
Your profile sets itself up โ and never dead-endsThe player journey is now smooth end-to-end: a fresh profile shows "Setting up your DUPR profileโฆ" and fills itself in (rather than a blank/error), or offers a one-tap "Link my DUPR". Your team applications show a clear status ("Waiting for the captain's approval" โ "Approved ๐"), and a captain can see + refresh an applicant whose rating is still syncing. (Real ratings are already loaded โ 1,700+ players carried over from the existing HKPL data; they refresh from DUPR, with photos + history filling in.)
How to use- Sign in โ open your profile from the "My Profile" button in the top menu.
- If it says it's setting up, wait a moment โ it refreshes on its own; or tap Link my DUPR if you haven't connected DUPR yet.
PolishWhole site โ latest theme + wow on by default
Cleaner, more consistent, more finishedThe latest theme (and the delight layer) is now the default. Pages fade instead of flashing; any team/club/player without a photo gets a clean colour-initials badge (no more broken images or stray numbers); the top menu is grouped into 6 clear headings; the footer is compact; a signed-in user gets a portal shortcut in the menu ("My Team" / "My Profile" / "Admin"). Below: the home page, the projected Playoff seeds, the tidied Clubs directory, and Sponsors back on the site.
๐ Added 12 July โ a second wave, all live now
Since this report first went out we kept building. Everything below is
new as of 12 July and already live on UAT โ including the
committee's own oversight view we'd flagged at the bottom as "coming". Sign in from the
role picker to try any of it.
New โ for the committeeRole picker โ Oversight
Committee / board oversight โ see everything, change nothingThe read-only oversight view we flagged at the bottom of this report is now built and live. Signing in as Oversight lets you see everything across every division, club and match โ standings, rosters, scoresheets, admin data โ but you cannot change anything: every edit, score submission or deletion is politely refused with a "read-only oversight account" message. It's the committee / board seat โ full visibility, zero risk of touching live data.
VerifiedChecked end-to-end: an Oversight sign-in opens admin data and standings normally, while every attempt to change something is blocked on the server (not just hidden in the screen). Nothing to configure โ it's ready to use.
โ Role picker ยท sign in as Oversight
NewReminders ยท activity feed ยท phone notifications
The app now reaches out to players โ they don't have to keep checkingThree things that used to need a player to open the site now come to them: match reminders (a nudge 24 hours and 30 minutes before a match), a live activity feed that automatically posts match results, rating changes and milestones, and phone push notifications on both iPhone and Android. It's all wired and tested; the only remaining step is a player installing the app to receive the pushes.
VerifiedA reminder correctly creates a notification for both teams' players and never double-sends; the activity feed posts a proper result / rating entry; and the push pipeline is authenticated to both Apple and Google and ready to deliver the moment a device is registered.
New โ wowProfiles ยท standings ยท matches ยท top players
A wave of player "wow" touchesLots of small, delightful things players will notice: recent-form dots on standings and schedules (the last few results at a glance); a rivalry card on profiles (your toughest opponent and your favourite match-up); a rating-change reveal after a match (watch your DUPR move โ e.g. 3.66 โ 3.50); a Share button on live matches and results; "Add to calendar" on your own matches; a "Climbers of the week" list of the most-improved players on the top-players page; availability flags right inside lineup planning (injured / away players marked); and a live "๐ N watching" count on a match in progress. None of it changes how the league runs โ it just makes the everyday experience feel modern and alive.
NewProfile ยท sign-in โ optional
Sign in with a password โ if you want oneAlongside the emailed sign-in link, players can now set a password if they prefer the familiar way to log in. It's entirely optional โ anyone who never sets one is completely unaffected and keeps using the email link. Set or remove it anytime from your profile.
PolishScoresheet ยท profiles ยท referee & live-score pages
Tap to score, plus a readability & polish passOn the digital scoresheet, scores can now be entered with big + / โ tap buttons (typing still works) โ much easier on a phone at courtside. Plus a round of polish: clearer player profiles (the big DUPR rating number is now easier to read), availability flags in lineup planning, and tidier back-navigation on the referee and live-score pages.
๐ช Now live for everyone โ the real sign-in experience
A few things you tried through the role-picker weren't just a test trick, and a few tools you might have assumed weren't built yet were actually there โ just not shown in the menu. This round we surfaced them properly, so they're the real, everyday experience for anyone who signs in normally. Screens below are live UAT captures.
NewSign in โ your home
Signing in lands you in your own hubWhen you sign in with your email, you now arrive on a home that greets you and shows everything you run at a glance โ how many teams you captain and clubs you manage โ with your team switcher and managed-club shortcuts right there. Before, you were dropped straight inside one team with no sense of "this is my place." This is exactly what a normal email sign-in shows โ nothing test-only about it.
How to use
- Top menu โ Sign In โ enter your email โ open the secure link we send (no password).
- You land on your hub: switch teams from the top bar, open a club you manage, or jump to any tool.
NewOne login โ many teams / a whole club
Run several teams and a club from a single login โ for realIf you captain several teams or manage a club, one normal sign-in now shows all of it: a switcher across your teams (grouped by club) and a "Club you manage" card that opens the club's page. This isn't a role-picker demo โ it's the live experience for anyone the league sets up this way. And here's how it gets set: an admin assigns captain / co-captain / club-manager under Teams and Club Managers, and can promote or adjust anyone under the new Roles & Permissions menu (shown below).
How to use
- As a club manager / multi-team captain: sign in โ your hub shows the team switcher + "Club you manage" โ tap Manage.
- As an admin (to set it up): Admin โ Teams (assign captain/manager on a team) or Club Managers (assign a club's manager) or Roles & Permissions (change what a person can do).
โ Try it: sign in as a Captain
NewAdmin sidebar + committee reports
Nothing hidden โ tools that existed are now findableA few powerful tools were built but only reachable by typing a hidden web address โ so it looked like they weren't there. They're now proper menu items: Roles & Permissions (set who can do what), User Overrides, DUPR Operations, and LLM Rule Review. And every committee report โ this one and each past round โ now lives in one "All reports" page, linked from the role-picker, so you never need a URL from us to find them.
How to use
- Admin tools: Admin โ System โ Roles & Permissions / User Overrides, or Teams & People โ DUPR Operations.
- All reports: open the role-picker โ ๐ All reports (or go straight to /committee-archive.html).
โ Open the reports archive
๐ง Fixed & polished this round
Look & feel
- Team / club / player badges โ any without a photo now get a clean colour-initials badge; no more broken images, green-filled boxes behind non-square logos, or stray numbers.
- Header consistency โ the top bar was rendering un-styled on several info pages; it's now identical and correctly branded on every page.
- Smoother navigation โ pages fade instead of the white flash/flicker between screens.
- Standings โ team badges cleaned up and the section pill is visible again (was rendering dark).
- Sponsors โ back on the home page (they'd silently dropped due to a season filter) and the sponsor page is tidier & more professional.
- Home page โ Top-Players list fixed and the layout tightened (less wasted space).
- Clubs โ proper hero banner; district now filters after region.
Flow & usability
- Registration โ Day-of-play, home court, region, district and phone country-code are all drop-downs now (least typing, fewest errors); region โ district cascades.
- Register while signed-in โ no longer offers "register as a player / subscriber" to someone already in the league; it shows only Team / Club.
- Sign-in โ passwordless with a clear Back button; the old UAT login panel removed (impersonation + real accounts replace it).
- Assistant โ now hands you a clickable link (not "go to the top nav"), renders properly, and is role-aware (a visitor asking an admin question is guided to sign in, never handed internal steps).
- Feedback button no longer covers the chat button.
- Profiles โ clicking a player never dead-ends on an error; a not-yet-synced profile guides + self-heals.
๐๏ธ Richard's requests โ league & division management (old-system parity + beyond)
โ
BuiltRichard ยท Admin โ Divisions ยท "do we have all these?"
[Two screenshots of the old system's division-management screen] โ do we have all of these controls? I need to be able to close a season/division so the standings can't change after it's decided.
What we didWent through the old system's division screen control-by-control โ we have full parity (division criteria, related divisions, rating band, registration deadlines, group/round settings) and then some. The one thing missing was a hard "End the division" โ so we built it: an admin can lock a division's results, after which no score submission, edit, verify, or re-open can change the standings (enforced on all five write paths, server-side โ not just hidden in the UI). It's fully reversible with a Reopen button if a correction is needed. Admin โ Divisions โ the division โ Status.
Test proofLocked a division โ a captain's score submit was rejected with a clear "results are final" message; Reopen restored write access. Verified on all five paths.
โ Admin ยท Divisions ยท Status
โ
BuiltRichard ยท division rules
Some divisions are women-only / men-only โ the system should stop a captain adding an ineligible player to that division.
What we didAdded an eligible-gender setting to a division (Men-only ยท Women-only ยท Open). When set, the rules engine blocks adding a player of the wrong gender to a match in that division, with a plain-language reason โ so it's caught at line-up time, not discovered later. Leave it "Open" and nothing changes. Admin โ Divisions โ the division โ Eligible gender.
Test proofRan it through the live rules engine: a male player into a Women-only division comes back BLOCKED โ "Women A is a women-only division โ only female players can be added." A female player, or an Open division, passes. Verified & live on the league now.
โ Admin ยท Divisions
โ
BuiltRichard ยท player movement between divisions
Like tennis โ if you played B you're B forever and can only move UP a division, never drop below your level, UNLESS there's a medical certificate. I also want to move individual players up a division, and force people to play up/down.
What we didBuilt the tennis-style division floor. Every division carries a ladder rank; a player's proven level becomes their floor, and the rules engine blocks adding them to any division below that floor โ they move up freely but can't be dropped below their level. The one exception is exactly the one you named: an admin can grant a medical exemption (with a reason on file) that lets a specific player drop down. Moving a player up is a direct admin action. So both things you asked for โ "up-only, floor-locked" and "override by medical cert" โ are in.
Status โ honestThe rule is built and switched on in the test league, and verified there (it's wired into the same live rules engine as the gender gate). By design it fails open: until you assign ladder ranks to the divisions, it blocks nobody โ so it can't accidentally freeze anyone out before the ladder exists. To turn it on for the real league is two small steps: (1) set each division's ladder rank, (2) we enable the rule on the live league. Because it's a blocking rule we did not auto-enable it on production without your say-so โ your call to flip it on. Medical exemption path is ready: Admin โ the player โ Division-floor exemption.
โ
BuiltRichard ยท promotion / relegation
At the end of a season the top teams go up and the bottom teams go down โ the standings should show the promotion / relegation zones, and I want to see who's eligible to move up.
What we didA division now carries a promote count and relegate count. The standings table shades the promotion zone (top N) and relegation zone (bottom N) so everyone can see who's going up or down at a glance. We also added a "Promotion candidates" tool that lists the teams eligible to move up (made the play-off cut and played enough games) โ derived from real match data, so it's accurate even before rosters are finalised.
How it worksConfirmed wired end-to-end: the standings API returns the division's promote/relegate counts and the standings table shades the top-N green (โ) and bottom-N red (โ) in the combined view; the Promotion-candidates tool lists teams that made the play-off cut and played enough games. Dormant until you set the counts on a division โ then it shades automatically.
โ Admin ยท Divisions
โ
BuiltRichard ยท player profile
A player's profile should show only their HKPL games โ not everything from their whole DUPR history.
What we didThe player profile now has an HKPL-only match history โ it shows the games played inside this league, kept separate from any imported DUPR record. So a player's HKPL page reflects their HKPL play, exactly as you asked.
โ Player profile
๐งโ๐ป New tester reports โ read against the screenshot + page
โก Quick win10 Jul ยท #kw7kns ยท Ursula ยท admin โ Players
I need to display all players information including the phone.
What we didThe admin Players table showed Division ยท Name ยท DUPR ID ยท Gender ยท Rating ยท Email โ but no phone. Added a Phone column (the number was already on file). Done & live.
โ Admin ยท Players
โ
Done10 Jul ยท #voc9fl ยท Ursula ยท admin โ Clubs
I want to sort the clubs here, so that I want the premium clubs to be displayed first in the website โ maybe put a tick here to display first to distinguish which one coming first.
What we didAdded a โ
Featured tick to the admin Clubs list โ tap the star to mark a club premium. Featured clubs are then pinned to the top of the public club listing (above the alphabetical rest). Exactly the "tick to display first" she asked for.
Test proofFeatured a club that was last alphabetically โ it jumped to 1st on the public clubs page; un-ticking put it back. Verified.
โ Admin ยท Clubs ยท โ
โ
Done10 Jul ยท #d6af88 ยท Ursula ยท Tenant Settings
In future, only tenant admin can send feedback to Vincent. Please leave a back-door setting for this option. Other roles cannot send feedback when the system is launched.
What we didAdded a Feedback widget control in Tenant Settings with three choices โ Everyone ยท Admins only ยท Off. At launch you set it to "Admins only" and the "Send feedback" button disappears for every other role (the widget already honoured this; it just had no switch). Fully reversible โ that's your back door.
Test proofSet to "Admins only" โ the visibility endpoint returned admin (widget hidden for non-admins); set back to "Everyone" โ public. Verified.
โ Admin ยท Tenant Settings ยท Feedback widget
โ
Done10 Jul ยท #wfnrpj ยท Capt. Alice ยท scoresheet
Away Team Captain interface BEFORE MATCH should have MINIMAL controls, because the Home Captain is responsible for everything โ e.g. setting match-date and location BEFORE the match, and inputting the scores AFTER. (This will help simplify.)
What we didThe scoresheet is now role-aware: the home captain enters the score; the away captain gets a clean read-only sheet and just reviews & signs (a blue note explains it). So the away captain isn't stuck with only "sign or refuse", we added a ๐ฌ Discuss button that opens a per-match chat room โ the two captains can go back and forth by text or voice (voice is auto-transcribed). If it's a real disagreement they hit โ ๏ธ Dispute, which routes it to the Division Rep / Registrar in the Dispute Panel with the whole conversation attached; a Tenant Admin can open any match's room anytime (a ๐ฌ link in Admin โ Matches) for oversight.
Test proofAll wired on pieces already built โ the match:<id> chat channel, its permissions (captains + rep + admin), the voice + Gemini-transcript pipeline, and the Dispute Panel. Pages live; the permission model was already enforced server-side.
โ
Done10 Jul ยท #ge2gwi + #t4tg9h ยท captain / club-manager portal
1) Club Manager login should land on this page. 1.1) This page should only be for managing the CLUB. 2) Remove all teams from this page. [โฆ] (also the earlier "one captain, multiple teams โ the view is so messy")
What we didConfirmed the data: one person really can captain many teams (up to 7) across multiple clubs. The portal used to stack every team on one page ("so messy"). Now it shows a club โ team switcher at the top โ your teams grouped by club, pick one, and only that team's dashboard shows. Each club has a "Manage club โ" link to the club page (banners, colours, details), keeping club-management separate from teams โ exactly the split she asked for. Purely a display change โ no data touched.
Live & verifiedScreenshot-verified as a 3-team / 2-club captain: teams grouped by club, one selected, others one tap away. Upgraded to a
sticky "Switch โพ" bar that stays pinned as you scroll โ so you can jump between teams/clubs from
anywhere on the page, not just the top.
โ Captain portal
A note on why this changedWe deliberately didn't allow this before. One person being the manager/captain of multiple clubs or teams was never anticipated, so it was kept restricted as a safety measure. Now that we can see it's a genuine, common need (a real club owner runs several teams), we've opened it up to 5 each โ primary captain of up to 5 teams, primary manager of up to 5 clubs (co-captain / co-manager roles are unlimited; an admin can still assign beyond it). If you'd rather allow fewer, you can change the number yourself in Admin โ Tenant Settings (Max teams / captain and Max clubs / manager). Verified: setting it lower takes effect immediately; a 7-team captain is blocked at the cap; anyone under it is unaffected.
๐ค Automated QA sweep โ real glitches it caught
โ
Fixed10 Jul ยท #uj8mkk ยท app.html (captain dashboard)
A match listed under "Upcoming Matches" is labelled with a "COMPLETED" status โ a direct logic contradiction.
What we did โ FIXEDThe section actually lists a team's whole fixture list (upcoming + recent results, newest first), so a COMPLETED match legitimately appears โ but the heading said "Upcoming," which read as a contradiction. Renamed it "Matches & results" so the label matches what it shows. Live.
โ
Fixed10 Jul ยท #tfoebs ยท app.html (dashboard stats)
The "SEASON" metric displays "$3" โ looks truncated, a placeholder, or an incorrect unit.
What we did โ FIXEDThe Season tile hard-coded an "S" in front of the season name, so "Season 4" became "SSeason 4" and "3" showed as "S3" (which the vision bot read as "$3"). Fixed the prefix logic โ it now shows a clean "S3" or "Season 4", never doubled. Live.
โ
Fixed10 Jul ยท shared header (all pages)
Nav overlap / clipped "Rules & Regulation" โ fixed
What we didRoot cause: on medium-desktop widths (1024โ1180px) the top-nav items were crammed into one no-wrap row and collided ("REGULATION" cut off, Help overlapping the text-size button). Raised the point where the nav collapses into the clean hamburger menu from 1023 โ 1180px, so it never overflows. Fixes it on every public page at once (it's the shared header). Screenshot-verified at 1100px. The remaining bot flags were long addresses being ellipsis-trimmed (by design) โ nothing broken.
โ Any public page
โณ A couple of notes โ nothing is blocking your testing
Where things stand
- Player ratings are live now. Over 1,700 players already have their real doubles rating + DUPR ID loaded (carried over from the existing HKPL data), so ratings show on profiles and in the directory today. From here they refresh from DUPR โ the connection is working now and photos + full match history keep filling in; DUPR's production key later just makes that refresh completely hands-off. You can test with real ratings today.
- Club Managers already work. A club's manager edits the club page and oversees its teams from their dashboard ("Manage club โ"). And the higher committee / board oversight view is now built and live โ a simple read-only Oversight role (see everything across all divisions, change nothing). Sign in as Oversight from the role picker (see "Added 12 July" above); tell us what to tweak once you've used it.