Skip to content

improve: lead the homepage with Plugins and Featured - #3794

Merged
roboclaw-bot merged 1 commit into
mainfrom
openclaw/plugins-first-landing
Sep 22, 2026
Merged

roboclaw-bot merged 1 commit into
mainfrom
openclaw/plugins-first-landing

Conversation

@roboclaw-bot

@roboclaw-bot roboclaw-bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

What Problem This Solves

The homepage opens on Skills and places Trending before the selected Featured view, rather than leading with Plugins and the default view.

User Impact

Plugins is now first and selected on arrival. Switching to Skills still selects Featured, which now appears before Trending. Dedicated browse routes and header navigation are unchanged.

Why This Change Was Made

Align the server-loaded catalog, client fallback, and visible tab order with the requested landing-page defaults.

Requested by Patrick; implemented by RoboClaw.

Work sessions

Evidence

  • 56 focused home listing/data/route tests passed, including no-loader fallback, initial plugin data, tab ordering, and switching to Skills from Official.
  • bun run ci:static and bun run ci:types-build passed (including schema and CLI TypeScript checks).
  • Real local-browser before/after proof: baseline f0cbe329 on port 4338 and candidate on port 4337; live public catalog, light theme, desktop and mobile. Before/after proof gallery.
  • Scoped manual review: no blocking findings. Updating only client state would leave server hydration on Skills; CSS-only ordering would leave accessibility order wrong.
Local full-suite environment limitations

Ran bun run ci:unit and repeated with --maxWorkers=8: bounded run had 7,152 passing, 18 failing, and 3 skipped tests. Seventeen failures reproduce on unchanged baseline: loopback HTTP requests refused by the host egress proxy, deep workspace socket paths, and native CLI environment. The remaining large-file test timeout passed in its isolated 381-test suite. CI unit coverage subsequently passed.

Chromium lacks the host egress proxy authentication, so the proof runner forwards public Convex HTTP queries through its normal managed fetch without changing response data. Unrelated external artwork/WebSocket subscriptions may be unavailable. No backend writes or production deployment.

Landing page

Before

Before: Skills selected first

After

After: Plugins selected first

Skills view

Before

Before: Featured follows Trending

After

After: Featured selected before Trending

Co-authored-by: Patrick-Erichsen <20157849+Patrick-Erichsen@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@vercel

vercel Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
clawhub Ready Ready Preview Sep 21, 2026 11:49pm UTC

Request Review

@blacksmith-sh

blacksmith-sh Bot commented Sep 21, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
e2e/public-routes-smoke.pw.test.ts/
skill hero metadata keeps semantic wrap groups on mobile
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@roboclaw-bot

Copy link
Copy Markdown
Contributor Author

ClawHub UI Proof

Status: pass
Mode: before-after
Scenario: /home/openclaw/.openclaw/worktrees/e68a56dd99b24988/plugins-first-landing/.artifacts/proof-scenarios/plugins-first.pw.ts
Provider: local
Baseline: f0cbe329da4595c75d85da27cc281582957c8a15
Candidate: d378fdb3

Landing default Landing default
Landing default Landing default
Skills Featured first Skills Featured first
Skills Featured first Skills Featured first
Mobile Skills ordering Mobile Skills ordering
Mobile Skills ordering Mobile Skills ordering

Raw proof files: https://github.com/openclaw/clawhub/tree/qa-artifacts/clawhub-ui-proof/pr-3794/plugins-first-proof

@roboclaw-bot

Copy link
Copy Markdown
Contributor Author

Implemented the requested homepage defaults and ordering. LOC: +57/-21 (6 files). No blocking implementation findings after scoped manual review and real desktop/mobile before-after proof.

Best-fix verdict: best. Both server initial data and client fallback select Featured plugins; DOM order matches visual order, and switching to Skills still selects Featured. Alternatives rejected: client-only default leaves SSR/hydration on Skills; CSS-only ordering leaves keyboard/accessibility order unchanged; editing dedicated browse routes would broaden scope.

Code read: root route loader, HomeListingSection state/cache/kind/tab handlers, homeListingData skill/plugin fetch paths, package API, adjacent component/data tests, and dedicated Skills route options.

Verification: 56 focused tests; static; full TypeScript/build including schema and CLI; CI unit/packages/types/static/e2e/local-auth; real-browser proof.

Landing held: playwright-smoke fails skill hero metadata keeps semantic wrap groups on mobile at e2e/public-routes-smoke.pw.test.ts:251 (missing Skill metadata on the hardcoded skills.sh detail fixture). This exact failure already occurs on unchanged main f0cbe329 in run 35665896756, before this PR; the homepage and other 18 smoke cases pass. No unrelated fixture/test changes or check bypass made. Needs resolution or explicit maintainer acceptance of that pre-existing failure before landing.

Remaining uncertainty: production not deployed/verified. Host-local full-unit limitations are documented in the PR; CI unit is green. GitHub rendered proof HTML contains all six images; interactive GitHub browser inspection timed out on this host.

Maintainer edits note: this is a same-repository branch, so maintainers already have normal branch access; GitHub rejects the fork-only maintainer_can_modify toggle with “Fork collab can only be enabled on cross-repo pull requests.”

@clawsweeper clawsweeper Bot added P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 21, 2026
@clawsweeper

clawsweeper Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed September 21, 2026, 7:56 PM ET / 23:56 UTC.

ClawSweeper review

What this changes

The homepage initially loads Featured plugins, places Plugins before Skills, and orders Featured before Trending in the Skills tabs.

Merge readiness

✅ Ready for maintainer review

No blocking findings. Current main still opens on Skills, so this PR remains useful; the inspected browser screenshots support the intended visible changes.

Priority: P3
Reviewed head: d378fdb3333d6c478eefcc4c2357551115a0f058

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused implementation with directly relevant browser proof and regression coverage; no blocking patch defect was found.
Proof confidence 🦞 diamond lobster (5/6) ✨ media proof bonus Sufficient (screenshot): The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (screenshot): The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.
Evidence reviewed 9 items Introduced change and merge scope: Read the complete six-file introduced diff. The verified test merge has the pinned main and PR head as its parents and preserves the dedicated browse routes and package API.
Current main still differs: Current main fetches Featured skills for the homepage. The branch instead reuses the existing Featured plugin fetch path and returns its items in the initial listing.
Runtime path and compatibility: Read the homepage route, component state/cache/switch handlers, listing helpers, package transport, dedicated browse routes, and adjacent tests. The change reuses existing catalog requests and component-local state; it introduces no persisted preference, schema, plugin API, or migration.
Findings None None.
Security None None.

How this fits together

ClawHub’s homepage catalog receives initial listings from its route loader, then supports client-side catalog switching and filtering. The selected catalog determines which plugin or skill cards visitors see.

flowchart TD
  A[Homepage visit] --> B[Route loader]
  B --> C[Featured plugin catalog]
  C --> D[Initial listing]
  B --> E[Client fallback if loading fails]
  E --> C
  D --> F[Catalog controls]
  F --> G[Plugin or skill cards]
Loading

Before merge

None.

Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Patch size +57/-21 across 6 files The scope is limited to homepage defaults, ordering, regression coverage, and a durable intent note.
Production and test delta Production +13/-13; tests +37/-8; spec +7/-0 Production line count is unchanged and the additional coverage targets the changed selection behavior.

Technical review

Best possible solution:

Keep the server-loaded catalog, client fallback, and DOM order aligned while preserving existing catalog switching and dedicated browse routes.

Do we have a high-confidence way to reproduce the issue?

Not applicable as a bug reproduction: this changes presentation defaults; current source and inspected before/after images establish the existing and proposed behavior.

Is this the best way to solve the issue?

Yes—best for the stated scope. Reusing the existing plugin loader avoids duplication; changing only client state would leave server rendering on Skills, and CSS-only reordering would leave DOM order inconsistent.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against f0cbe329da45.

Labels

Label changes:

  • add P3: This is a bounded homepage presentation improvement without a demonstrated blocked user workflow.
  • add proof: sufficient: Contributor real behavior proof is sufficient. The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.
  • add proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.

Label justifications:

  • P3: This is a bounded homepage presentation improvement without a demonstrated blocked user workflow.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.
  • proof: sufficient: Contributor real behavior proof is sufficient. The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected local-browser before/after pairs exercise the homepage listing and visibly demonstrate initial Featured plugins and Featured-first Skills tabs at the candidate revision; focused tests supplement loader-fallback coverage.

Evidence

What I checked:

  • Introduced change and merge scope: Read the complete six-file introduced diff. The verified test merge has the pinned main and PR head as its parents and preserves the dedicated browse routes and package API. (src/components/HomeListingSection.tsx:302, d378fdb3333d)
  • Current main still differs: Current main fetches Featured skills for the homepage. The branch instead reuses the existing Featured plugin fetch path and returns its items in the initial listing. (src/lib/homeListingData.ts:450, f0cbe329da45)
  • Runtime path and compatibility: Read the homepage route, component state/cache/switch handlers, listing helpers, package transport, dedicated browse routes, and adjacent tests. The change reuses existing catalog requests and component-local state; it introduces no persisted preference, schema, plugin API, or migration. (src/components/HomeListingSection.tsx:589, d378fdb3333d)
  • Directly inspected browser proof: Inspected all four downloaded desktop images from improve: lead the homepage with Plugins and Featured #3794 (comment). Before/after pairs visibly show Skills changing to Plugins on arrival and Featured moving before Trending after selecting Skills. The captured body identifies baseline port 4338, candidate port 4337, and live public catalog responses forwarded without alteration. Mobile images were linked but not included in the prepared manifest; the proof assessment relies on the inspected desktop pairs. (d378fdb3333d)
  • Focused regression coverage: The added component test covers no-loader plugin selection and switching from Official plugins to Featured skills. Data tests verify the initial plugin result; existing tests cover published ordering and route-loader failure fallback. Tests were inspected, not executed during this read-only review. (src/__tests__/home-listing-section.test.tsx:209, d378fdb3333d)
  • Related merged work: GitHub verifies feat: make Featured the ClawHub homepage default #3720 as merged. Its body records acceptance of the Featured selection and its patch changes the default tab and return-to-Skills behavior. It does not implement Plugins-first landing or the new tab order, so it does not supersede this PR. (src/components/HomeListingSection.tsx:306, a5b31b2f3353)

Likely related people:

  • Patrick-Erichsen: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • Vyctor H. Brzezowski: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@roboclaw-bot

Copy link
Copy Markdown
Contributor Author

Patrick renewed the landing instruction in the original discussion after the pre-existing smoke failure was disclosed. Proceeding with normal, exact-head squash merge of d378fdb3333d6c478eefcc4c2357551115a0f058; no admin override or protection bypass.

The only failing CI job remains the previously documented baseline playwright-smoke failure. ClawSweeper reports no blocking findings for this head. Schema and CLI TypeScript checks were rerun successfully, and composition with current main is conflict-free. Contributor credit, Work sessions, and before/after proof remain intact.

@roboclaw-bot
roboclaw-bot merged commit 826992b into main Sep 22, 2026
55 of 58 checks passed
@roboclaw-bot
roboclaw-bot deleted the openclaw/plugins-first-landing branch September 22, 2026 04:05

This branch was successfully deployed

1 active deployment
Preview – clawhub — d378fdb3 Deployed Sep 21, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant