SOFAStack 8th anniversary challenge activity page.html#1335
SOFAStack 8th anniversary challenge activity page.html#1335tangtang-0521 wants to merge 2 commits intosofastack:masterfrom
Conversation
feat: add 8th anniversary challenge folder
📝 WalkthroughWalkthroughAdds a new static HTML page for SOFAStack 8th Anniversary AI Agent PR challenge that renders a 32-item task pool with project tabs and client-side filtering/rendering via an embedded Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@content/zh/activities/anniversary-2026/index.html`:
- Around line 27-35: The UI hardcodes issue counts ("32" in the header and
numbers in the tab buttons) that no longer match the actual issueData; update
the header and each button label (elements using the tab-btn class and
onclick="filterProject(...)") to derive counts from the issueData structure
instead of literal numbers — e.g., compute total via issueData.length and
per-project counts by filtering issueData for project names like "SOFA
Registry", "SOFA JRaft", "SOFARPC", "SOFABoot" and inject those computed values
into the header text and the button innerText so the displayed counts always
reflect the actual data.
- Line 115: The anchor element that renders external links (the <a> tag with
href="${item.url}" and target="_blank") is missing a rel attribute; update that
anchor to include rel="noopener noreferrer" so external links opened in a new
tab are protected from reverse-tabnabbing and prevent the opened page from
accessing window.opener.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 446f997a-6a5d-4f2b-9c35-6b59ead2b1e2
📒 Files selected for processing (1)
content/zh/activities/anniversary-2026/index.html
| <p class="text-[10px] text-gray-500 uppercase tracking-widest italic">32 Real Issues Waiting for Your AI Agent</p> | ||
| </header> | ||
|
|
||
| <nav class="flex overflow-x-auto gap-2 mb-6 border-b border-gray-800 no-scrollbar sticky top-0 bg-[#0d1117] z-10 py-2 justify-start md:justify-center px-2"> | ||
| <button onclick="filterProject('all', this)" class="tab-btn active">全部项目 (32)</button> | ||
| <button onclick="filterProject('SOFA Registry', this)" class="tab-btn">SOFA Registry (7)</button> | ||
| <button onclick="filterProject('SOFA JRaft', this)" class="tab-btn">SOFA JRaft (6)</button> | ||
| <button onclick="filterProject('SOFARPC', this)" class="tab-btn">SOFARPC (10)</button> | ||
| <button onclick="filterProject('SOFABoot', this)" class="tab-btn">SOFABoot (9)</button> |
There was a problem hiding this comment.
Fix displayed issue counts: UI currently shows 32/10, but data is 33/11.
Line 27 and Lines 31–35 hardcode counts that don’t match issueData (Lines 66–76 shows 11 SOFARPC items; total is 33). This is a user-facing correctness issue.
🔧 Minimal fix
- <p class="text-[10px] text-gray-500 uppercase tracking-widest italic">32 Real Issues Waiting for Your AI Agent</p>
+ <p class="text-[10px] text-gray-500 uppercase tracking-widest italic">33 Real Issues Waiting for Your AI Agent</p>
- <button onclick="filterProject('all', this)" class="tab-btn active">全部项目 (32)</button>
+ <button onclick="filterProject('all', this)" class="tab-btn active">全部项目 (33)</button>
@@
- <button onclick="filterProject('SOFARPC', this)" class="tab-btn">SOFARPC (10)</button>
+ <button onclick="filterProject('SOFARPC', this)" class="tab-btn">SOFARPC (11)</button>Also applies to: 66-76
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/zh/activities/anniversary-2026/index.html` around lines 27 - 35, The
UI hardcodes issue counts ("32" in the header and numbers in the tab buttons)
that no longer match the actual issueData; update the header and each button
label (elements using the tab-btn class and onclick="filterProject(...)") to
derive counts from the issueData structure instead of literal numbers — e.g.,
compute total via issueData.length and per-project counts by filtering issueData
for project names like "SOFA Registry", "SOFA JRaft", "SOFARPC", "SOFABoot" and
inject those computed values into the header text and the button innerText so
the displayed counts always reflect the actual data.
| <h3 class="text-sm font-bold mb-2 leading-tight min-h-[2.5rem]">${item.title}</h3> | ||
| <p class="text-gray-500 text-[11px] leading-relaxed line-clamp-2">${item.desc}</p> | ||
| </div> | ||
| <a href="${item.url}" target="_blank" class="block text-center w-full py-2.5 rounded bg-blue-600 hover:bg-blue-500 text-[11px] font-bold transition-all active:scale-95"> |
There was a problem hiding this comment.
Add rel="noopener noreferrer" to external links opened in new tabs.
Line 115 uses target="_blank" without rel, which leaves a reverse-tabnabbing/security gap.
🔒 Suggested fix
- <a href="${item.url}" target="_blank" class="block text-center w-full py-2.5 rounded bg-blue-600 hover:bg-blue-500 text-[11px] font-bold transition-all active:scale-95">
+ <a href="${item.url}" target="_blank" rel="noopener noreferrer" class="block text-center w-full py-2.5 rounded bg-blue-600 hover:bg-blue-500 text-[11px] font-bold transition-all active:scale-95">📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <a href="${item.url}" target="_blank" class="block text-center w-full py-2.5 rounded bg-blue-600 hover:bg-blue-500 text-[11px] font-bold transition-all active:scale-95"> | |
| <a href="${item.url}" target="_blank" rel="noopener noreferrer" class="block text-center w-full py-2.5 rounded bg-blue-600 hover:bg-blue-500 text-[11px] font-bold transition-all active:scale-95"> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/zh/activities/anniversary-2026/index.html` at line 115, The anchor
element that renders external links (the <a> tag with href="${item.url}" and
target="_blank") is missing a rel attribute; update that anchor to include
rel="noopener noreferrer" so external links opened in a new tab are protected
from reverse-tabnabbing and prevent the opened page from accessing
window.opener.
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
content/zh/activities/anniversary-2026/index.html (1)
65-76: Comment says "10 items" but there are 11 SOFARPC entries.The inline comment is misleading; the array actually contains 11 SOFARPC items (lines 66–76).
📝 Suggested fix
- // SOFARPC (10 items) + // SOFARPC (11 items)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/zh/activities/anniversary-2026/index.html` around lines 65 - 76, The inline comment "// SOFARPC (10 items)" is incorrect because there are 11 SOFARPC entries; update that comment to reflect the correct count (e.g., "// SOFARPC (11 items)") or remove the hard-coded count entirely so it can't go out of sync with the array of objects (the array of objects with project: 'SOFARPC' entries, titles like "Serialization Type in Tracelog" and "ServerConfig Random Port Fix" identify the affected block).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@content/zh/activities/anniversary-2026/index.html`:
- Line 69: The listed activity object has an incorrect level value: change the
level property from 'Difficulty' to 'Hard' in the activity entry with title
'Support TripleX - Multi-Transports' (the object containing project: 'SOFARPC',
title: 'Support TripleX - Multi-Transports', url:
'https://github.com/sofastack/sofa-rpc/issues/1545') so it matches the
established 'Easy'/'Medium'/'Hard' pattern and maintains semantic consistency.
- Line 25: The inline style on the H1 element with class "text-3xl font-bold
mb-2 tracking-tight" has a malformed text-shadow value ("0 0-10px ..."); update
the text-shadow to use a valid blur radius by replacing "0 0-10px" with "0 0
10px" so the style becomes "text-shadow: 0 0 10px rgba(88,166,255,0.5)".
- Around line 32-33: The tab buttons pass project names with spaces that don't
match issueData keys, so filterProject (the onclick target) never finds matches;
either change the button arguments to the exact project identifiers used in
issueData (e.g., use "SOFARegistry" and "SOFAJRaft" in the two <button>
elements) or update filterProject to normalize both sides (e.g., strip
spaces/compare case-insensitively) before comparing i.project === projectName;
reference filterProject and issueData when making the change so the string
comparison is consistent.
---
Nitpick comments:
In `@content/zh/activities/anniversary-2026/index.html`:
- Around line 65-76: The inline comment "// SOFARPC (10 items)" is incorrect
because there are 11 SOFARPC entries; update that comment to reflect the correct
count (e.g., "// SOFARPC (11 items)") or remove the hard-coded count entirely so
it can't go out of sync with the array of objects (the array of objects with
project: 'SOFARPC' entries, titles like "Serialization Type in Tracelog" and
"ServerConfig Random Port Fix" identify the affected block).
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: ed8b08f6-0f6e-4d1e-afd9-00362251b637
📒 Files selected for processing (1)
content/zh/activities/anniversary-2026/index.html
| <body class="p-4 md:p-8"> | ||
|
|
||
| <header class="text-center mb-8"> | ||
| <h1 class="text-3xl font-bold mb-2 tracking-tight" style="text-shadow: 0 0-10px rgba(88,166,255,0.5)">🦐 养虾修代码</h1> |
There was a problem hiding this comment.
Fix CSS syntax error in text-shadow.
The value 0 0-10px is malformed — it's missing a space between 0 and -10px. Since blur-radius cannot be negative, this should likely be 0 0 10px.
🔧 Suggested fix
- <h1 class="text-3xl font-bold mb-2 tracking-tight" style="text-shadow: 0 0-10px rgba(88,166,255,0.5)">🦐 养虾修代码</h1>
+ <h1 class="text-3xl font-bold mb-2 tracking-tight" style="text-shadow: 0 0 10px rgba(88,166,255,0.5)">🦐 养虾修代码</h1>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <h1 class="text-3xl font-bold mb-2 tracking-tight" style="text-shadow: 0 0-10px rgba(88,166,255,0.5)">🦐 养虾修代码</h1> | |
| <h1 class="text-3xl font-bold mb-2 tracking-tight" style="text-shadow: 0 0 10px rgba(88,166,255,0.5)">🦐 养虾修代码</h1> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/zh/activities/anniversary-2026/index.html` at line 25, The inline
style on the H1 element with class "text-3xl font-bold mb-2 tracking-tight" has
a malformed text-shadow value ("0 0-10px ..."); update the text-shadow to use a
valid blur radius by replacing "0 0-10px" with "0 0 10px" so the style becomes
"text-shadow: 0 0 10px rgba(88,166,255,0.5)".
| <button onclick="filterProject('SOFA Registry', this)" class="tab-btn">SOFA Registry (7)</button> | ||
| <button onclick="filterProject('SOFA JRaft', this)" class="tab-btn">SOFA JRaft (6)</button> |
There was a problem hiding this comment.
Critical: Project names in buttons don't match issueData — filtering is broken.
The filter function uses strict equality (i.project === projectName), but:
- Button passes
'SOFA Registry'(with space), data uses'SOFARegistry'(no space) - Button passes
'SOFA JRaft'(with space), data uses'SOFAJRaft'(no space)
Clicking these tabs will show zero results.
🐛 Suggested fix — align button values with data
- <button onclick="filterProject('SOFA Registry', this)" class="tab-btn">SOFA Registry (7)</button>
- <button onclick="filterProject('SOFA JRaft', this)" class="tab-btn">SOFA JRaft (6)</button>
+ <button onclick="filterProject('SOFARegistry', this)" class="tab-btn">SOFA Registry (7)</button>
+ <button onclick="filterProject('SOFAJRaft', this)" class="tab-btn">SOFA JRaft (6)</button>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/zh/activities/anniversary-2026/index.html` around lines 32 - 33, The
tab buttons pass project names with spaces that don't match issueData keys, so
filterProject (the onclick target) never finds matches; either change the button
arguments to the exact project identifiers used in issueData (e.g., use
"SOFARegistry" and "SOFAJRaft" in the two <button> elements) or update
filterProject to normalize both sides (e.g., strip spaces/compare
case-insensitively) before comparing i.project === projectName; reference
filterProject and issueData when making the change so the string comparison is
consistent.
| { project: 'SOFARPC', level: 'Easy', title: 'Serialization Type in Tracelog', desc: '在 tracelog 中记录序列化类型', url: 'https://github.com/sofastack/sofa-rpc/issues/1552' }, | ||
| { project: 'SOFARPC', level: 'Medium', title: 'Support Server Async Capability', desc: '支持服务端返回 CompletableFuture 模型', url: 'https://github.com/sofastack/sofa-rpc/issues/1550' }, | ||
| { project: 'SOFARPC', level: 'Easy', title: 'AI Assisted Documentation Optimization', desc: '使用 AI 优化和翻译文档,支持中英双语', url: 'https://github.com/sofastack/sofa-rpc/issues/1547' }, | ||
| { project: 'SOFARPC', level: 'Difficulty', title: 'Support TripleX - Multi-Transports', desc: 'Triple 协议支持 H1/H2/H3 传输层', url: 'https://github.com/sofastack/sofa-rpc/issues/1545' }, |
There was a problem hiding this comment.
Inconsistent difficulty level: 'Difficulty' instead of 'Hard'.
All other items use Easy, Medium, or Hard, but this entry uses 'Difficulty'. While the CSS handles it (.tag-difficulty), this inconsistency may confuse maintainers and breaks the semantic pattern.
🔧 Suggested fix
- { project: 'SOFARPC', level: 'Difficulty', title: 'Support TripleX - Multi-Transports', desc: 'Triple 协议支持 H1/H2/H3 传输层', url: 'https://github.com/sofastack/sofa-rpc/issues/1545' },
+ { project: 'SOFARPC', level: 'Hard', title: 'Support TripleX - Multi-Transports', desc: 'Triple 协议支持 H1/H2/H3 传输层', url: 'https://github.com/sofastack/sofa-rpc/issues/1545' },📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| { project: 'SOFARPC', level: 'Difficulty', title: 'Support TripleX - Multi-Transports', desc: 'Triple 协议支持 H1/H2/H3 传输层', url: 'https://github.com/sofastack/sofa-rpc/issues/1545' }, | |
| { project: 'SOFARPC', level: 'Hard', title: 'Support TripleX - Multi-Transports', desc: 'Triple 协议支持 H1/H2/H3 传输层', url: 'https://github.com/sofastack/sofa-rpc/issues/1545' }, |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/zh/activities/anniversary-2026/index.html` at line 69, The listed
activity object has an incorrect level value: change the level property from
'Difficulty' to 'Hard' in the activity entry with title 'Support TripleX -
Multi-Transports' (the object containing project: 'SOFARPC', title: 'Support
TripleX - Multi-Transports', url:
'https://github.com/sofastack/sofa-rpc/issues/1545') so it matches the
established 'Easy'/'Medium'/'Hard' pattern and maintains semantic consistency.
feat: add 8th anniversary challenge folder
Summary by CodeRabbit