Fix KHIX Guild profile images - #513
Conversation
Resolve public Guild profile picture references into signed URLs before exposing the club roster, and remove Lena Tran from the KHIX featured designers. Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
"legacy MinIO URLs" what does this mean and why do we do it if its "legacy" |
Co-authored-by: Codex <codex@openai.com>
Restore the Guild router to main and harden roster picture parsing against malformed legacy references. Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
|
Important Approval pendingCodeRabbit has no unresolved comments, but it has not reviewed the latest commit. Use the checkbox below to review the latest commit. CodeRabbit will approve the changes if it finds no blocking issues.
📝 WalkthroughWalkthroughPublic guild rosters now resolve stored profile-picture references into validated public URLs before roster construction. The resolver supports object keys and legacy MinIO URLs, encodes path segments, validates ownership, and returns 🚥 Pre-merge checks | ✅ 6 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (6 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Note
Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.
🟡 Other comments (1)
packages/consts/src/minio.ts-1-2 (1)
1-2: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winDocument the exported endpoint.
Add a concise comment that identifies this hostname as the production public MinIO endpoint and records its infrastructure owner or source. As per path instructions, “Values are intentional and well-documented” and “URLs and external API endpoints are correct and won't break integrations.”
Source: Path instructions
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: QUIET
Plan: Pro Plus
Run ID: 4dbd6ae4-995f-48ec-8122-03fb14442ae5
📒 Files selected for processing (7)
apps/khix/src/app/_components/team-cascade/team-roster.test.tsapps/khix/src/app/_components/team-cascade/team-roster.tspackages/api/src/tests/guild/club-roster.test.tspackages/api/src/tests/guild/profile-picture.test.tspackages/api/src/utils/guild/club-roster.tspackages/api/src/utils/guild/profile-picture.tspackages/consts/src/minio.ts
💤 Files with no reviewable changes (1)
- apps/khix/src/app/_components/team-cascade/team-roster.ts
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>

Why
The Blade roster response currently contains two profile-picture representations: older absolute bucket URLs and newer Guild object keys. KHIX passed both directly to Next Image, so newer keys such as Estefanie Parra's were not browser-loadable.
What
Scope audit
The final PR diff contains exactly two files, both under apps/khix.
Earlier changes to the shared Club roster API, API package exports, profile-picture security utility, global MinIO constant, Cron, and T.K. were audited and completely reverted. The Guild router, Guild public profiles, Blade, Club, Cron, T.K., shared packages, and production database are unchanged from main.
There are no Markdown artifacts, dependencies, lockfile changes, migrations, environment-variable changes, Guild data changes, or deployment-configuration changes. The older absolute database values remain untouched because a database-wide migration is outside this KHIX-only scope.
Validation
Review checkpoint
This PR is ready for review and merge based on local validation. Full remote CI was not awaited, as requested. Only the KHIX deployment needs to finish before the production hard-refresh check.
Checklist