Skip to content

Rename EvolveX website presentation to RSIHub - #9

Merged
Andyyesiyu merged 9 commits into
mainfrom
codex/rsihub-rename
Aug 12, 2026
Merged

Rename EvolveX website presentation to RSIHub#9
Andyyesiyu merged 9 commits into
mainfrom
codex/rsihub-rename

Conversation

@zimuwang-real

@zimuwang-real zimuwang-real commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • rename the public EvolveX presentation to RSIHub
  • move the canonical project overview from /evolvex/ to /rsihub/
  • update code links to simple-agent-lab/RSIHub and docs links to the case-sensitive /RSIHub/
  • preserve /evolvex/ as a compatibility redirect with a visible fallback
  • migrate homepage metadata, JSON-LD, sitemap entries, and accessible SVG titles
  • add dependency-free regression tests for names, URLs, assets, metadata, and redirect behavior

Why

The project has been renamed to RSIHub. The website needs a consistent identity and links while preserving existing inbound links and search results for the previous overview URL.

This migration intentionally leaves the project's positioning, capabilities, architecture descriptions, and substantive copy unchanged.

Validation

  • env -u PYTHONPYCACHEPREFIX python3 -m unittest discover -s tests -v — 7 tests passed
  • git diff --check origin/main...HEAD — clean
  • exact public-target assertions for the repository, docs, canonical overview, and compatibility redirect — passed
  • focused task reviews and final whole-branch review — clean

Summary by CodeRabbit

  • New Features

    • Added a bilingual RSIHub project page with framework details, architecture, capabilities, benchmarks, roadmap, documentation, and licensing information.
    • Added SEO, social sharing, and structured metadata for RSIHub.
  • Updates

    • Rebranded featured project content from EvolveX to RSIHub.
    • Added a redirect from the legacy project URL to the new RSIHub page.
    • Updated the sitemap to reference the new canonical route.
  • Tests

    • Added coverage for branding, redirects, links, metadata, assets, and sitemap migration.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@zimuwang-real, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 37 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

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: CHILL

Plan: Pro Plus

Run ID: 4b81bbc3-f385-4479-b281-77d75a996841

📥 Commits

Reviewing files that changed from the base of the PR and between 30c81cb and 7f40f70.

📒 Files selected for processing (1)
  • tests/test_rsihub_migration.py
📝 Walkthrough

Walkthrough

The site rebrands EvolveX as RSIHub, adds a bilingual project page, redirects the legacy route, updates homepage metadata and sitemap entries, and adds migration tests for links, assets, redirects, and legacy identifiers.

Changes

RSIHub migration

Layer / File(s) Summary
Canonical RSIHub project page
rsihub/index.html
Adds the bilingual page, SEO metadata, structured data, framework descriptions, recipes, benchmarks, roadmap, documentation, licensing, and footer.
Site identity and route migration
index.html, evolvex/index.html, sitemap.xml, .gitignore
Updates homepage branding and links, redirects the legacy route to /rsihub/, updates the sitemap, and ignores Python caches and worktrees.
Migration validation
tests/test_rsihub_migration.py
Adds checks for canonical URLs, branding, assets, redirects, sitemap routing, and removal of legacy identifiers.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested reviewers: andyyesiyu

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: renaming the EvolveX website presentation to RSIHub.
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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.

@zimuwang-real
zimuwang-real marked this pull request as ready for review August 12, 2026 06:14

@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: 1

🧹 Nitpick comments (5)
tests/test_rsihub_migration.py (2)

105-107: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Triage of the static analysis findings on this call.

The two command-injection findings are false positives. The argument list is a hardcoded literal, shell=False is the default, and no external input reaches the call.

Ruff S607 is valid but low risk here. The test invokes git from PATH by design. Add a targeted suppression so the rule stays enabled elsewhere.

♻️ Suppress the partial-path rule
         tracked = subprocess.check_output(
-            ["git", "ls-files", "-z"], cwd=ROOT
+            ["git", "ls-files", "-z"], cwd=ROOT  # noqa: S607
         ).decode("utf-8").split("\0")
🤖 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 `@tests/test_rsihub_migration.py` around lines 105 - 107, Add a targeted Ruff
S607 suppression to the subprocess.check_output call that invokes the hardcoded
git command, preserving the existing argument list and default shell=False
behavior while leaving the rule enabled elsewhere.

Source: Linters/SAST tools


50-59: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

The asset assertion is brittle. Compare files only.

assets.iterdir() returns every entry, including subdirectories and dotfiles. If anyone adds a nested directory or a new asset, this exact-set equality fails even when the migration is correct. If rsihub/assets does not exist, iterdir() raises FileNotFoundError instead of producing a clear assertion message.

Assert that the expected files are present and restrict the listing to files.

♻️ Proposed change
-        self.assertEqual({path.name for path in assets.iterdir()}, expected)
+        self.assertTrue(assets.is_dir(), f"missing asset directory: {assets}")
+        present = {path.name for path in assets.iterdir() if path.is_file()}
+        self.assertTrue(expected <= present, f"missing assets: {expected - present}")
🤖 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 `@tests/test_rsihub_migration.py` around lines 50 - 59, Update
test_project_assets_moved_and_svg_titles_renamed to filter assets.iterdir() to
regular files before comparing names, and assert the expected files are a subset
of the discovered file names rather than requiring exact equality. Preserve a
clear assertion when the assets directory is missing instead of allowing
FileNotFoundError to escape.
evolvex/index.html (1)

6-13: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

The redirect is client-side only. Consider a server-level 301 and bilingual fallback text.

Two points on this compatibility page:

  1. A meta refresh plus location.replace is a client-side redirect. Search engines treat it as weaker than a 301. If the host supports redirect rules, prefer a 301 from /evolvex/ to /rsihub/. If the host is GitHub Pages, the current approach is the available option.
  2. The fallback sentence is English only. Every other page on the site provides lang-en and lang-zh variants. Users who reach the fallback with JavaScript disabled see English only.
♻️ Bilingual fallback
-    <p>RSIHub has moved to <a href="/rsihub/">its new project page</a>.</p>
+    <p lang="en">RSIHub has moved to <a href="/rsihub/">its new project page</a>.</p>
+    <p lang="zh-CN">RSIHub 已迁移至<a href="/rsihub/">新的项目页面</a>。</p>
🤖 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 `@evolvex/index.html` around lines 6 - 13, Configure a server-level permanent
redirect from /evolvex/ to /rsihub/ when the hosting platform supports redirect
rules, while retaining the existing client-side fallback for platforms such as
GitHub Pages; update the fallback body in the page to provide both lang-en and
lang-zh text, preserving the destination link in each language.
rsihub/index.html (2)

471-489: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Add scope attributes to the benchmark table headers.

These tables are two-dimensional with a row-group axis. The column headers have no scope, and the rowspan="4" agent cells are data cells rather than headers. Screen readers cannot associate each score cell with both its method and its target agent.

♻️ Proposed header semantics
-                <th>
+                <th scope="col">
                   <span class="lang-en" lang="en">Target agent</span>
                   <span class="lang-zh" lang="zh-CN">目标智能体</span>
                 </th>
-                <td rowspan="4">MiniSWE Agent</td>
+                <th scope="rowgroup" rowspan="4">MiniSWE Agent</th>

Also applies to: 557-575

🤖 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 `@rsihub/index.html` around lines 471 - 489, Add accessible header semantics to
the benchmark tables around the visible thead and the corresponding section
around the repeated table: add scope="col" to each column header, and convert
the rowspan="4" target-agent cells into row headers with scope="rowgroup".
Preserve the existing labels, spans, and table structure while ensuring score
cells associate with both their column and agent row group.

185-194: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Add intrinsic dimensions to the SVG images.

The PNG images set width and height, but the three SVG images do not. Browsers cannot reserve space before load, so the page can shift during layout. Add width and height that match each SVG viewBox ratio.

♻️ Example for the lineage figure
           <img
             src="./assets/evolve-lineage.svg"
+            width="1200"
+            height="600"
             alt="A baseline branches into evaluated candidates. The selected lineage rises through successive generations to a verified improvement, while unselected candidates remain visible as evidence."
           />

Also applies to: 250-255, 456-462

🤖 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 `@rsihub/index.html` around lines 185 - 194, Add explicit width and height
attributes to the SVG img elements, including the lineage image in the figure
above and the SVG images at the other referenced locations, using dimensions
that preserve each asset’s viewBox ratio. Leave the existing sources, alt text,
and captions unchanged.
🤖 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 `@tests/test_rsihub_migration.py`:
- Around line 96-119: Harden test_old_identity_is_absent_from_published_files so
the repository scan skips directories and missing working-tree paths, and
ignores any tracked file that cannot be decoded as UTF-8 instead of failing the
test. Consolidate forbidden to the minimal distinct identity values, retaining
the existing allowed test-file exception and image exclusions while preserving
assertions for readable text files.

---

Nitpick comments:
In `@evolvex/index.html`:
- Around line 6-13: Configure a server-level permanent redirect from /evolvex/
to /rsihub/ when the hosting platform supports redirect rules, while retaining
the existing client-side fallback for platforms such as GitHub Pages; update the
fallback body in the page to provide both lang-en and lang-zh text, preserving
the destination link in each language.

In `@rsihub/index.html`:
- Around line 471-489: Add accessible header semantics to the benchmark tables
around the visible thead and the corresponding section around the repeated
table: add scope="col" to each column header, and convert the rowspan="4"
target-agent cells into row headers with scope="rowgroup". Preserve the existing
labels, spans, and table structure while ensuring score cells associate with
both their column and agent row group.
- Around line 185-194: Add explicit width and height attributes to the SVG img
elements, including the lineage image in the figure above and the SVG images at
the other referenced locations, using dimensions that preserve each asset’s
viewBox ratio. Leave the existing sources, alt text, and captions unchanged.

In `@tests/test_rsihub_migration.py`:
- Around line 105-107: Add a targeted Ruff S607 suppression to the
subprocess.check_output call that invokes the hardcoded git command, preserving
the existing argument list and default shell=False behavior while leaving the
rule enabled elsewhere.
- Around line 50-59: Update test_project_assets_moved_and_svg_titles_renamed to
filter assets.iterdir() to regular files before comparing names, and assert the
expected files are a subset of the discovered file names rather than requiring
exact equality. Preserve a clear assertion when the assets directory is missing
instead of allowing FileNotFoundError to escape.
🪄 Autofix

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 Plus

Run ID: 09a2e7fe-d239-407c-af2f-50da7c18ee66

📥 Commits

Reviewing files that changed from the base of the PR and between 517901e and 30c81cb.

⛔ Files ignored due to path filters (5)
  • rsihub/assets/architecture.svg is excluded by !**/*.svg
  • rsihub/assets/benchmark-results.svg is excluded by !**/*.svg
  • rsihub/assets/evolve-lineage.svg is excluded by !**/*.svg
  • rsihub/assets/paper-poster-lora-gen0.png is excluded by !**/*.png
  • rsihub/assets/paper-poster-lora-gen2.png is excluded by !**/*.png
📒 Files selected for processing (6)
  • .gitignore
  • evolvex/index.html
  • index.html
  • rsihub/index.html
  • sitemap.xml
  • tests/test_rsihub_migration.py

Comment thread tests/test_rsihub_migration.py

Copilot AI 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.

Pull request overview

Migrates the site’s featured project branding and canonical overview route from EvolveX to RSIHub, updating public-facing URLs/metadata while keeping the legacy /evolvex/ entry point as a compatibility redirect with a visible fallback.

Changes:

  • Added a new canonical project overview page at /rsihub/ with updated SEO/social/JSON-LD metadata and refreshed asset titles.
  • Updated the homepage and sitemap to reference RSIHub as the canonical project and route.
  • Replaced /evolvex/ content with a redirect + fallback and added regression tests to ensure the old identity/URLs are removed.

Reviewed changes

Copilot reviewed 5 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/test_rsihub_migration.py Adds unittest regression coverage for branding, URLs, assets, canonical metadata, sitemap, and redirect behavior.
sitemap.xml Updates canonical project sitemap entry from /evolvex/ to /rsihub/ and bumps lastmod.
rsihub/index.html Introduces the new RSIHub project overview page with updated links and structured metadata.
rsihub/assets/evolve-lineage.svg Adds updated SVG with accessible title/desc aligned to RSIHub branding.
rsihub/assets/benchmark-results.svg Renames SVG title to RSIHub for accessibility/SEO consistency.
rsihub/assets/architecture.svg Renames SVG title to RSIHub for accessibility/SEO consistency.
index.html Rebrands homepage metadata and featured-project links from EvolveX to RSIHub.
evolvex/index.html Replaces legacy page with canonical/noindex redirect to /rsihub/ plus a visible fallback link.
.gitignore Ignores Python __pycache__/ and .worktrees/ artifacts introduced by the new tests/workflow.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@zimuwang-real
zimuwang-real requested a lite review from Copilot August 12, 2026 06:52
@Andyyesiyu
Andyyesiyu merged commit 541fe8e into main Aug 12, 2026
1 check passed

Copilot AI 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.

Pull request overview

Copilot reviewed 5 out of 11 changed files in this pull request and generated no new comments.

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.

3 participants