Skip to content

Utkrista and moonsmp#53

Merged
creatorcluster merged 3 commits into
creatorcluster:mainfrom
Coder-soft:main
Jun 2, 2026
Merged

Utkrista and moonsmp#53
creatorcluster merged 3 commits into
creatorcluster:mainfrom
Coder-soft:main

Conversation

@Coder-soft

@Coder-soft Coder-soft commented Jun 2, 2026

Copy link
Copy Markdown

Summary by CodeRabbit

  • Updates
    • Refreshed partnerships section with updated partner entries and improved responsive layout
    • Expanded team roster with new team member profile including contact details and social links

@vercel

vercel Bot commented Jun 2, 2026

Copy link
Copy Markdown

@Coder-soft is attempting to deploy a commit to the yamura3's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates the OpenCode CI/CD workflow configuration to switch API providers and expand trigger conditions, replaces one partner entry in the partnership grid, adjusts the grid layout, and adds a new team member to the roster.

Changes

Site Content and CI Updates

Layer / File(s) Summary
CI/CD workflow model and trigger configuration
.github/workflows/opencode.yml
Workflow renamed to opencode-review, event triggers expanded to include pull_request event lifecycle (opened, synchronize, reopened, ready_for_review) in addition to comment events, job renamed to review, and the opencode action step updated to use OPENCODE_API_KEY with model set to opencode/minimax-m2.5-free.
Partner card and grid layout updates
src/components/Partnership.tsx
Partner array entry replaced (Decour SMP → Moon SMP with updated name, description, logo, and URL) and grid responsive column setup changed from sm:grid-cols-2/lg:grid-cols-3 to sm:grid-cols-3 with max-w-5xl width constraint.
Team member roster addition
src/pages/Contact.tsx
New team member entry added to teamMembers array with name "Utkrista", including role text, avatar image URL, and social links (website and Discord profiles).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 A rabbit hops through config and content with glee,
Fresh partners appear and the workflows run free,
New team members join (hello, Utkrista!),
Grid columns dance wide—what a maintenance fiesta!

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Utkrista and moonsmp' directly reflects the main changes: adding a new team member (Utkrista) and updating a partner from Decour SMP to Moon SMP.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

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

Warning

⚠️ This pull request might be slop. It has been flagged by CodeRabbit slop detection and should be reviewed carefully.

@greptile-apps

greptile-apps Bot commented Jun 2, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds a new team member (Utkrista) to the Contact page, replaces the "Decour SMP" partnership with "Moon SMP", and upgrades the opencode CI workflow to trigger automatically on pull requests with a new API key and model.

  • Contact.tsx: Adds "Utkrista" as a Resource Manager team member; the avatar is sourced from a Discord external proxy URL (images-ext-1.discordapp.net) which can expire and produce a broken image on the page.
  • Partnership.tsx: Swaps in Moon SMP as a partner with a tightened 3-column grid layout; same ephemeral Discord proxy URL concern applies to the new partner logo.
  • opencode.yml: Extends the workflow trigger to include pull_request events, renames the secret from KILO_API_KEY to OPENCODE_API_KEY, and switches the model to opencode/minimax-m2.5-free.

Confidence Score: 3/5

Two image URLs sourced from Discord's external proxy may break over time, causing missing partner logo and team member avatar on the live site.

Both the Moon SMP partner logo and the Utkrista team avatar point to images-ext-1.discordapp.net proxy URLs. Discord's external image proxy is not a stable CDN — these links can expire or become unavailable without warning, which would silently break the Partnership and Contact pages in production. The CI workflow changes look correct and the content additions are otherwise straightforward.

src/components/Partnership.tsx and src/pages/Contact.tsx both use ephemeral Discord proxy image URLs that should be replaced with direct CDN links or self-hosted assets.

Important Files Changed

Filename Overview
.github/workflows/opencode.yml Adds a pull_request trigger so the opencode action runs automatically on new/updated PRs; renames secrets key from KILO_API_KEY to OPENCODE_API_KEY and switches the model. Logic is correct — the expression-based if condition handles both event types safely.
src/components/Partnership.tsx Replaces Decour SMP with Moon SMP partner entry and tightens the grid layout; the new logo uses an ephemeral Discord external proxy URL that may break over time.
src/pages/Contact.tsx Adds Utkrista as a new team member with role and socials; the avatar URL uses an ephemeral Discord image proxy that can expire and produce a broken image.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[PR Event or Comment] --> B{Workflow trigger}
    B -->|pull_request| C[Run opencode action]
    B -->|comment with /oc or /opencode| C
    C --> D[opencode/minimax-m2.5-free via OPENCODE_API_KEY]

    E[Partnership.tsx] --> F[Moon SMP logo - Discord proxy URL - may expire]
    G[Contact.tsx] --> H[Utkrista avatar - Discord proxy URL - may expire]
Loading

Reviews (1): Last reviewed commit: "Add Utkrista to staff and Moon SMP to pa..." | Re-trigger Greptile

url: "https://dsc.gg/decoursmp",
name: 'Moon SMP',
description: 'Moon SMP is a Grind Based PvP and economy server making it fun and challenging.',
logo: 'https://images-ext-1.discordapp.net/external/p9bRAl2A-0LjGwG3zVUKV2dCq55_QIvrUE_lmBaAr5A/%3Fsize%3D4096/https/cdn.discordapp.com/icons/1063123986537525298/61c13fc9f21bf93eb15a93774a15d4a2.png?format=webp&quality=lossless&width=192&height=192',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Ephemeral Discord proxy URL for partner logo

The Moon SMP logo uses an images-ext-1.discordapp.net external proxy URL. Discord's external image proxy links are not guaranteed to be stable — they can expire or become inaccessible over time, leaving a broken image on the partnerships page. The direct CDN URL embedded inside the proxy path (cdn.discordapp.com/icons/1063123986537525298/61c13fc9f21bf93eb15a93774a15d4a2.png) is more reliable, or the image should be downloaded and served from the project's own assets.

Comment thread src/pages/Contact.tsx
Comment on lines +89 to +91
{
name: "Utkrista",
role: "Team Member - Resource Manager",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Ephemeral Discord proxy URL for team member avatar

Utkrista's avatar uses an images-ext-1.discordapp.net external proxy URL, the same pattern as the Moon SMP logo. These Discord proxy links can expire or become inaccessible, causing the avatar to break on the Contact/Team page. Prefer the direct cdn.discordapp.com/avatars/893688296130105375/b2419c4ac0b5591c7ec8324467c404e6.png URL or host the image in the project's own assets alongside the other team member assets.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/opencode.yml:
- Line 32: Replace the floating action ref "anomalyco/opencode/github@latest"
with a pinned release tag or commit SHA (e.g., a specific vX.Y.Z tag or full
commit hash) to ensure reproducible CI runs, and update the OpenCode model value
from "opencode/minimax-m2.5-free" to a valid model returned by the API such as
"opencode/minimax-m2.5" (or "opencode/minimax-m2.7") so the workflow's model key
matches the available MiniMax model IDs.

In `@src/pages/Contact.tsx`:
- Around line 89-98: The Discord user ID in the team member object for name
"Utkrista" is inconsistent between the avatar URL (contains user ID
893688296130105375) and the socials.discord link (contains user ID
1298482806430629959); verify the correct Discord user ID for this user and
update either the avatar string or the socials.discord URL so both use the same
{USER_ID} and follow the expected formats (avatar:
.../avatars/{USER_ID}/{AVATAR_HASH}..., profile:
https://discordapp.com/users/{USER_ID}), ensuring the properties name, avatar
and socials.discord within that "Utkrista" object remain consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d9184b5f-90dc-40d1-b8e8-60119add15b3

📥 Commits

Reviewing files that changed from the base of the PR and between d7f380e and e9a9ee2.

📒 Files selected for processing (3)
  • .github/workflows/opencode.yml
  • src/components/Partnership.tsx
  • src/pages/Contact.tsx

@@ -28,6 +31,6 @@ jobs:
- name: Run opencode
uses: anomalyco/opencode/github@latest

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

opencode github action available models minimax provider list

💡 Result:

OpenCode GitHub Action (anomalyco/opencode) does not appear to expose a single, static “available models for the MiniMax provider” list in its docs. Instead, OpenCode’s model support is driven by its internal/Models.dev registry; the model IDs you can use depend on what OpenCode has registered for the MiniMax provider at runtime. What we can confirm from current, cited sources: 1) Model ID format OpenCode expects the model string in the form provider_id/model_id [1]. 2) MiniMax model IDs that are used successfully with the OpenCode GitHub Action A public example workflow using the GitHub Action with MiniMax specifies the model as minimax/MiniMax-M2.7 [2]. 3) MiniMax models referenced in OpenCode docs (examples, not exhaustive) OpenCode’s “Models” documentation lists Minimax M2.1 as an example model (not stated as exhaustive) [1]. 4) Evidence that MiniMax provider model availability can lag or be incomplete An OpenCode GitHub Action issue shows that using minimax/MiniMax-M2.1 caused ProviderModelNotFoundError (suggestions empty), indicating that, at least at that time, OpenCode’s registry did not recognize that modelID for the MiniMax provider in the GitHub Action context [3]. Another issue notes that when a MiniMax model wasn’t on a model list, it was later merged/available [4]. 5) How to get the complete, authoritative list (recommended) OpenCode provides an endpoint to fetch the full list of available models and metadata: https://opencode.ai/zen/v1/models [5]. This is the closest thing to an up-to-date “provider -> models” list you can rely on, since the docs explicitly say the list is not necessarily exhaustive [1]. Practical answer to your “provider list” request - MiniMax provider ID (as used in OpenCode model IDs): minimax [2]. - MiniMax model IDs you can try today (from sources above): minimax/MiniMax-M2.7 [2], and minimax/MiniMax-M2.1 [1] (but note the provider-model registry can be temporarily out of sync, as shown in [3]). If you want, paste the output of https://opencode.ai/zen/v1/models filtered for providerId=miniMax (or share the raw JSON), and I can extract the exact MiniMax model IDs for 2026-06-02 from it.

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show relevant workflow lines (around 32 and 36)
echo "=== .github/workflows/opencode.yml (around 25-45) ==="
nl -ba .github/workflows/opencode.yml | sed -n '20,50p'

echo
echo "=== Fetch OpenCode models endpoint and search for minimax-m2.5-free ==="
# Fetch and search; be resilient to minor JSON shape differences
curl -fsSL 'https://opencode.ai/zen/v1/models' | python3 - <<'PY'
import json,sys
data=json.load(sys.stdin)

def walk(obj):
    if isinstance(obj, dict):
        for k,v in obj.items():
            yield (k,v)
            yield from walk(v)
    elif isinstance(obj, list):
        for i,v in enumerate(obj):
            yield (i,v)
            yield from walk(v)

text_matches=[]
needle_substrings=[
  "minimax-m2.5-free",
  "Minimax-M2.5-Free",
  "minimax/m2.5",
  "M2.5-free",
  "m2.5-free",
  "opencode/minimax-m2.5-free",
]
# Convert whole JSON to string for robust substring checks
s=json.dumps(data)
for n in needle_substrings:
    if n in s:
        text_matches.append(n)

print("Substrings found in models JSON:", text_matches)

# If the JSON includes modelId fields, attempt to enumerate them
model_ids=set()
def collect(obj):
    if isinstance(obj, dict):
        for k,v in obj.items():
            if k.lower() in ("modelid","model_id","id","model","modelId".lower()):
                if isinstance(v,str):
                    model_ids.add(v)
            collect(v)
    elif isinstance(obj, list):
        for v in obj:
            collect(v)

collect(data)
# Print only those model ids containing minimax-m2.5-free / minimax
hits=sorted([mid for mid in model_ids if ("minimax" in mid.lower())])
print("Minimax-like model IDs discovered (showing up to 50):")
for mid in hits[:50]:
    print(" -", mid)

print()
target_exact="minimax-m2.5-free"
exact_hits=[mid for mid in model_ids if mid==target_exact or mid.lower()==target_exact]
print("Exact modelId matches for 'minimax-m2.5-free':", exact_hits)

# Also check provider/model composite formats if present
composites=[mid for mid in model_ids if "minimax" in mid.lower() and "/" in mid]
print("Composite IDs containing '/' and 'minimax' (up to 50):")
for mid in composites[:50]:
    print(" -", mid)
PY

Repository: creatorcluster/renderdragon.org

Length of output: 190


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== .github/workflows/opencode.yml (around 25-50) ==="
awk 'NR>=25 && NR<=50 {printf "%d\t%s\n", NR, $0}' .github/workflows/opencode.yml

echo
echo "=== Fetch OpenCode models endpoint and search for minimax-m2.5-free + minimax/m2.5 ==="
curl -fsSL 'https://opencode.ai/zen/v1/models' | python3 - <<'PY'
import json,sys
data=json.load(sys.stdin)

s=json.dumps(data)

needles=[
  "opencode/minimax-m2.5-free",
  "minimax-m2.5-free",
  "Minimax-M2.5-Free",
  "m2.5-free",
  "M2.5-free",
  "minimax-m2.5",
  "minimax/m2.5",
  "minimax/MiniMax-M2.5",
  "minimax/MiniMax-M2.5-Free",
]
found=[n for n in needles if n in s]
print("Needle substrings found in models JSON:", found)

model_ids=set()
def collect(obj):
    if isinstance(obj, dict):
        for k,v in obj.items():
            lk=k.lower()
            if lk in ("modelid","model_id","modelid".lower(),"modelid".lower()):
                if isinstance(v,str):
                    model_ids.add(v)
            # sometimes model id is under "id" or "modelId"
            if lk in ("modelid","model_id","modelid".lower(),"modelid".lower(),"modelid".lower(),"id","modelid"):
                pass
            if lk in ("modelid","model_id","modelid".lower()):
                pass
            # generic capture of likely id fields
            if lk in ("modelid","model_id","model","id","modelId"):
                if isinstance(v,str) and ("minimax" in v.lower() or "opencode" in v.lower()):
                    model_ids.add(v)
            collect(v)
    elif isinstance(obj, list):
        for v in obj:
            collect(v)

collect(data)

hits=[mid for mid in model_ids if "minimax" in mid.lower() and "m2.5" in mid.lower()]
print("\nMinimax-like model IDs discovered with 'm2.5' in them:")
for mid in sorted(hits)[:200]:
    print(" -", mid)
print("Total minimax 'm2.5' hits:", len(hits))

# If providerId/modelId pairs exist, try to filter by providerId
def extract_pairs(obj):
    pairs=[]
    if isinstance(obj, dict):
        provider=None
        model=None
        for k,v in obj.items():
            lk=k.lower()
            if lk in ("providerid","provider_id","provider"):
                if isinstance(v,str): provider=v
            if lk in ("modelid","model_id","modelid","model","id","modelId"):
                if isinstance(v,str): model=v
        if provider and model and "minimax" in provider.lower() and "minimax" in model.lower():
            pairs.append((provider, model))
        for v in obj.values():
            pairs.extend(extract_pairs(v))
    elif isinstance(obj, list):
        for v in obj:
            pairs.extend(extract_pairs(v))
    return pairs

pairs=extract_pairs(data)
# Deduplicate
pairs=sorted(set(pairs))
print("\nProvider/model pairs found (showing minimax provider only, up to 100):")
for p in pairs[:100]:
    print(" -", p[0], "/", p[1])
print("Total pairs:", len(pairs))
PY

Repository: creatorcluster/renderdragon.org

Length of output: 1359


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Request headers + first bytes from https://opencode.ai/zen/v1/models ==="
curl -sS -i --max-time 20 'https://opencode.ai/zen/v1/models' | head -n 40

echo
echo "=== Attempt to extract any model IDs containing 'minimax' from the raw response (no JSON parsing) ==="
curl -sS --max-time 20 'https://opencode.ai/zen/v1/models' | python3 - <<'PY'
import sys, re
s=sys.stdin.read()
# Print substrings around minimax
for m in re.finditer(r'(?i)[a-z0-9_-]{0,40}minimax[a-z0-9/_-]{0,80}', s):
    print(m.group(0))
PY

Repository: creatorcluster/renderdragon.org

Length of output: 4248


Pin the OpenCode action ref and fix the MiniMax model ID

  • anomalyco/opencode/github@latest is a floating tag—pin to a release tag or commit SHA for reproducibility.
  • model: opencode/minimax-m2.5-free doesn’t match the models currently returned by https://opencode.ai/zen/v1/models (MiniMax models include minimax-m2.5 and minimax-m2.7, but not minimax-m2.5-free). Update model: accordingly.
🧰 Tools
🪛 zizmor (1.25.2)

[error] 32-32: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/opencode.yml at line 32, Replace the floating action ref
"anomalyco/opencode/github@latest" with a pinned release tag or commit SHA
(e.g., a specific vX.Y.Z tag or full commit hash) to ensure reproducible CI
runs, and update the OpenCode model value from "opencode/minimax-m2.5-free" to a
valid model returned by the API such as "opencode/minimax-m2.5" (or
"opencode/minimax-m2.7") so the workflow's model key matches the available
MiniMax model IDs.

Comment thread src/pages/Contact.tsx
Comment on lines +89 to +98
{
name: "Utkrista",
role: "Team Member - Resource Manager",
avatar:
"https://images-ext-1.discordapp.net/external/9x3KDeC4d_wC4I9pT-XOYA6bY7VpDR8KK0w2sNEujZg/%3Fsize%3D1024/https/cdn.discordapp.com/avatars/893688296130105375/b2419c4ac0b5591c7ec8324467c404e6.png?format=webp&quality=lossless&width=537&height=537",
socials: {
website: "https://utkrista.tech/launcher/",
discord: "https://discordapp.com/users/1298482806430629959",
},
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Discord user ID mismatch detected.

The avatar URL contains Discord user ID 893688296130105375 (Line 92-93), but the Discord profile link references a different user ID 1298482806430629959 (Line 96). This mismatch indicates either the avatar or the Discord link is incorrect, which could lead to privacy concerns or broken functionality.

Please verify which Discord user ID is correct and update the corresponding URL.

🔍 Expected format for verification

The avatar URL format:

https://.../avatars/{USER_ID}/{AVATAR_HASH}...

The Discord profile URL format:

https://discordapp.com/users/{USER_ID}

Both {USER_ID} values should match for the same user.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/Contact.tsx` around lines 89 - 98, The Discord user ID in the team
member object for name "Utkrista" is inconsistent between the avatar URL
(contains user ID 893688296130105375) and the socials.discord link (contains
user ID 1298482806430629959); verify the correct Discord user ID for this user
and update either the avatar string or the socials.discord URL so both use the
same {USER_ID} and follow the expected formats (avatar:
.../avatars/{USER_ID}/{AVATAR_HASH}..., profile:
https://discordapp.com/users/{USER_ID}), ensuring the properties name, avatar
and socials.discord within that "Utkrista" object remain consistent.

@creatorcluster creatorcluster merged commit 55d9d53 into creatorcluster:main Jun 2, 2026
6 of 8 checks passed
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.

2 participants