[PR #136] [MERGED] fix: show pending skill page to owners instead of "Skill not found" #268

Closed
opened 2026-02-15 17:16:35 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/openclaw/clawhub/pull/136
Author: @orlyjamie
Created: 2/4/2026
Status: Merged
Merged: 2/5/2026
Merged by: @steipete

Base: mainHead: fix/owner-sees-pending-skill


📝 Commits (8)

  • 9ebe1b6 fix: show pending skill page to owners instead of "Skill not found"
  • 0710b99 fix: show pending skills on owner's dashboard
  • 46faafc fix: show all moderation states to owners with appropriate UI
  • 5ef8526 feat: make malware-blocked skills publicly visible
  • 5cff711 fix: allow owners to view pending scan skills (#136)
  • 9e75090 fix: make deterministic zip date timezone-safe
  • 8d0f324 chore: update convex api types
  • 4ac63c2 fix: update changelog for pending scan visibility (#136) (thanks @orlyjamie)

📊 Changes

7 files changed (+214 additions, -15 deletions)

View changed files

📝 CHANGELOG.md (+1 -0)
📝 convex/_generated/api.d.ts (+2 -0)
📝 convex/lib/skillZip.ts (+1 -1)
📝 convex/skills.ts (+75 -2)
📝 src/components/SkillDetailPage.tsx (+52 -1)
📝 src/routes/dashboard.tsx (+21 -11)
📝 src/styles.css (+62 -0)

📄 Description

When a skill owner uploads a skill that's pending VirusTotal scan, they now see their skill page with a pending banner instead of "Skill not found". The banner explains the scan is in progress.

Changes:

  • Modified getBySlug query to return skill data for owners even when moderationStatus is 'hidden' with reason 'pending.scan'
  • Added pendingReview flag to query response
  • Added pending banner component to SkillDetailPage
  • Added CSS for pending banner using existing ClawHub gold theme

Test plan

  • Upload a new skill
  • Verify owner sees pending banner on skill page
  • Verify non-owners still see "Skill not found" for pending skills
  • Verify banner disappears after scan completes"

Greptile Overview

Greptile Summary

This PR updates the getBySlug Convex query to allow skill owners to view their own skills while they’re hidden for pending.scan, returning an extra pendingReview flag. The frontend SkillDetailPage consumes that flag to display a “Security scan in progress” banner, and new CSS styles the banner using the existing gold theme tokens.

Key interaction change: getBySlug now conditionally returns skill data even when toPublicSkill would normally hide it, but only for the owner, so non-owners still get the existing “not found” behavior.

Confidence Score: 4/5

  • Mostly safe to merge, but fix the owner/pending skill badge source to avoid inconsistent UI state.
  • Changes are small and localized (one query, one UI banner, and CSS). The main issue found is a concrete data inconsistency: pending-owner responses use skill.badges instead of the computed badge map already fetched in the query, which can lead to incorrect badges being shown for pending skills.
  • convex/skills.ts

Context used:

  • Context from dashboard - AGENTS.md (source)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/openclaw/clawhub/pull/136 **Author:** [@orlyjamie](https://github.com/orlyjamie) **Created:** 2/4/2026 **Status:** ✅ Merged **Merged:** 2/5/2026 **Merged by:** [@steipete](https://github.com/steipete) **Base:** `main` ← **Head:** `fix/owner-sees-pending-skill` --- ### 📝 Commits (8) - [`9ebe1b6`](https://github.com/openclaw/clawhub/commit/9ebe1b6da83da784942d370fd92ae3454d86a6b9) fix: show pending skill page to owners instead of "Skill not found" - [`0710b99`](https://github.com/openclaw/clawhub/commit/0710b99ac4391b7e0ac7df33cf5ad1c605b87fbe) fix: show pending skills on owner's dashboard - [`46faafc`](https://github.com/openclaw/clawhub/commit/46faafc413bfcee133ca1c87082662bdac11d8f7) fix: show all moderation states to owners with appropriate UI - [`5ef8526`](https://github.com/openclaw/clawhub/commit/5ef8526874799d92c6fc2764831a712f7073dfec) feat: make malware-blocked skills publicly visible - [`5cff711`](https://github.com/openclaw/clawhub/commit/5cff71104c513a79a9ddded45db5e741d641b910) fix: allow owners to view pending scan skills (#136) - [`9e75090`](https://github.com/openclaw/clawhub/commit/9e75090a3931de99552959780dbc026c5b97176e) fix: make deterministic zip date timezone-safe - [`8d0f324`](https://github.com/openclaw/clawhub/commit/8d0f32443a7fad18a0846ddafddd88fcbd9ed035) chore: update convex api types - [`4ac63c2`](https://github.com/openclaw/clawhub/commit/4ac63c23733334cdef2cdd9985ca706134069d0c) fix: update changelog for pending scan visibility (#136) (thanks @orlyjamie) ### 📊 Changes **7 files changed** (+214 additions, -15 deletions) <details> <summary>View changed files</summary> 📝 `CHANGELOG.md` (+1 -0) 📝 `convex/_generated/api.d.ts` (+2 -0) 📝 `convex/lib/skillZip.ts` (+1 -1) 📝 `convex/skills.ts` (+75 -2) 📝 `src/components/SkillDetailPage.tsx` (+52 -1) 📝 `src/routes/dashboard.tsx` (+21 -11) 📝 `src/styles.css` (+62 -0) </details> ### 📄 Description When a skill owner uploads a skill that's pending VirusTotal scan, they now see their skill page with a pending banner instead of "Skill not found". The banner explains the scan is in progress. Changes: - Modified getBySlug query to return skill data for owners even when moderationStatus is 'hidden' with reason 'pending.scan' - Added pendingReview flag to query response - Added pending banner component to SkillDetailPage - Added CSS for pending banner using existing ClawHub gold theme ## Test plan - [ ] Upload a new skill - [ ] Verify owner sees pending banner on skill page - [ ] Verify non-owners still see "Skill not found" for pending skills - [ ] Verify banner disappears after scan completes" <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> This PR updates the `getBySlug` Convex query to allow skill owners to view their own skills while they’re hidden for `pending.scan`, returning an extra `pendingReview` flag. The frontend `SkillDetailPage` consumes that flag to display a “Security scan in progress” banner, and new CSS styles the banner using the existing gold theme tokens. Key interaction change: `getBySlug` now conditionally returns skill data even when `toPublicSkill` would normally hide it, but only for the owner, so non-owners still get the existing “not found” behavior. <h3>Confidence Score: 4/5</h3> - Mostly safe to merge, but fix the owner/pending skill badge source to avoid inconsistent UI state. - Changes are small and localized (one query, one UI banner, and CSS). The main issue found is a concrete data inconsistency: pending-owner responses use `skill.badges` instead of the computed badge map already fetched in the query, which can lead to incorrect badges being shown for pending skills. - convex/skills.ts <!-- greptile_other_comments_section --> **Context used:** - Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=a1d58d20-b4dd-4cbb-973a-9fd7824e1921)) <!-- /greptile_comment --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-15 17:16:35 -05:00
yindo closed this issue 2026-02-15 17:16:35 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: openclaw/clawhub#268