[PR #312] [MERGED] Devin/1771112524 skill metadata update #323

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

📋 Pull Request Information

Original PR: https://github.com/openclaw/clawhub/pull/312
Author: @ianalloway
Created: 2/14/2026
Status: Merged
Merged: 2/14/2026
Merged by: @steipete

Base: mainHead: devin/1771112524-skill-metadata-update


📝 Commits (9)

  • 3f4bb8f fix: sync GitHub profile on login to handle username renames (#303)
  • 19ec3e7 Merge pull request #1 from ianalloway/devin/1771109978-fix-github-username-sync
  • 7ab1862 fix: allow updating skill summary/description on subsequent publishes (#301)
  • d47880c fix: throttle GitHub profile sync
  • b4cc45e feat: show skill owner avatars
  • 711afd9 fix: avoid nested owner links
  • 2c93473 refactor: centralize profile sync + owner lookup
  • c38f99c chore: merge main into PR branch
  • 565f9aa docs: changelog for #312 (thanks @ianalloway)

📊 Changes

14 files changed (+440 additions, -46 deletions)

View changed files

📝 CHANGELOG.md (+3 -0)
📝 convex/auth.ts (+19 -3)
📝 convex/lib/githubAccount.test.ts (+102 -1)
📝 convex/lib/githubAccount.ts (+47 -0)
convex/lib/githubProfileSync.ts (+19 -0)
📝 convex/lib/skillPublish.ts (+7 -1)
📝 convex/schema.ts (+1 -0)
📝 convex/search.test.ts (+5 -0)
📝 convex/search.ts (+38 -28)
📝 convex/users.ts (+65 -2)
📝 src/components/SkillDetailPage.tsx (+4 -5)
src/components/UserBadge.tsx (+43 -0)
📝 src/routes/skills/index.tsx (+18 -6)
📝 src/styles.css (+69 -0)

📄 Description

Greptile Overview

Greptile Summary

This PR combines two fixes: GitHub username sync (#303) and skill description updates (#301).

The GitHub profile sync schedules a background action after user login to detect username changes by querying the GitHub API using the immutable numeric ID. When a username change is detected, it updates the name, handle, displayName, and image fields in the user record, intelligently preserving custom values while syncing GitHub-derived fields.

The skill publish change allows frontmatter descriptions to update the skill summary on subsequent publishes. It checks both metadata.description (nested) and description (direct field), prioritizing the frontmatter value over the existing skill summary to ensure updates are reflected.

  • Added syncGitHubProfile function in convex/lib/githubAccount.ts to fetch current GitHub profile using numeric ID
  • Added syncGitHubProfileInternal mutation to update user fields when username changes
  • Added syncGitHubProfileAction to wrap the sync logic as a scheduled action
  • Modified afterUserCreatedOrUpdated callback to schedule the sync on every login
  • Modified skill publish logic to check both nested and direct frontmatter description fields

Confidence Score: 4/5

  • This PR is safe to merge with minimal risk
  • The changes are well-structured and follow the existing patterns in the codebase. The GitHub sync is best-effort with proper error handling, and the skill description logic has clear fallback behavior. The code correctly handles edge cases like deleted users and missing data.
  • No files require special attention

Last reviewed commit: 7ab1862

(4/5) You can add custom instructions or style guidelines for the agent here!


🔄 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/312 **Author:** [@ianalloway](https://github.com/ianalloway) **Created:** 2/14/2026 **Status:** ✅ Merged **Merged:** 2/14/2026 **Merged by:** [@steipete](https://github.com/steipete) **Base:** `main` ← **Head:** `devin/1771112524-skill-metadata-update` --- ### 📝 Commits (9) - [`3f4bb8f`](https://github.com/openclaw/clawhub/commit/3f4bb8f6a23aaef34b72ddb7480aaa7e63b0d7f5) fix: sync GitHub profile on login to handle username renames (#303) - [`19ec3e7`](https://github.com/openclaw/clawhub/commit/19ec3e79217067bbf577367dc543345e6b7d9181) Merge pull request #1 from ianalloway/devin/1771109978-fix-github-username-sync - [`7ab1862`](https://github.com/openclaw/clawhub/commit/7ab186234948b071ccb91e7c2c84ce44e17edc98) fix: allow updating skill summary/description on subsequent publishes (#301) - [`d47880c`](https://github.com/openclaw/clawhub/commit/d47880cd37ba715edde086e91296389c1711e25c) fix: throttle GitHub profile sync - [`b4cc45e`](https://github.com/openclaw/clawhub/commit/b4cc45e35c7f8e62efd5ad78679bd5a2f45ff7a6) feat: show skill owner avatars - [`711afd9`](https://github.com/openclaw/clawhub/commit/711afd90b5077ec11a4271bcf58a4a7b78488139) fix: avoid nested owner links - [`2c93473`](https://github.com/openclaw/clawhub/commit/2c934731d85442cd3232632819bf8bb90658bb31) refactor: centralize profile sync + owner lookup - [`c38f99c`](https://github.com/openclaw/clawhub/commit/c38f99c29c6c2b314dd27a986126f63e3d9e2f99) chore: merge main into PR branch - [`565f9aa`](https://github.com/openclaw/clawhub/commit/565f9aa02ac2e4a436b57444789bcce409ec5f49) docs: changelog for #312 (thanks @ianalloway) ### 📊 Changes **14 files changed** (+440 additions, -46 deletions) <details> <summary>View changed files</summary> 📝 `CHANGELOG.md` (+3 -0) 📝 `convex/auth.ts` (+19 -3) 📝 `convex/lib/githubAccount.test.ts` (+102 -1) 📝 `convex/lib/githubAccount.ts` (+47 -0) ➕ `convex/lib/githubProfileSync.ts` (+19 -0) 📝 `convex/lib/skillPublish.ts` (+7 -1) 📝 `convex/schema.ts` (+1 -0) 📝 `convex/search.test.ts` (+5 -0) 📝 `convex/search.ts` (+38 -28) 📝 `convex/users.ts` (+65 -2) 📝 `src/components/SkillDetailPage.tsx` (+4 -5) ➕ `src/components/UserBadge.tsx` (+43 -0) 📝 `src/routes/skills/index.tsx` (+18 -6) 📝 `src/styles.css` (+69 -0) </details> ### 📄 Description <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> This PR combines two fixes: GitHub username sync (#303) and skill description updates (#301). The GitHub profile sync schedules a background action after user login to detect username changes by querying the GitHub API using the immutable numeric ID. When a username change is detected, it updates the `name`, `handle`, `displayName`, and `image` fields in the user record, intelligently preserving custom values while syncing GitHub-derived fields. The skill publish change allows frontmatter descriptions to update the skill summary on subsequent publishes. It checks both `metadata.description` (nested) and `description` (direct field), prioritizing the frontmatter value over the existing skill summary to ensure updates are reflected. - Added `syncGitHubProfile` function in `convex/lib/githubAccount.ts` to fetch current GitHub profile using numeric ID - Added `syncGitHubProfileInternal` mutation to update user fields when username changes - Added `syncGitHubProfileAction` to wrap the sync logic as a scheduled action - Modified `afterUserCreatedOrUpdated` callback to schedule the sync on every login - Modified skill publish logic to check both nested and direct frontmatter description fields <h3>Confidence Score: 4/5</h3> - This PR is safe to merge with minimal risk - The changes are well-structured and follow the existing patterns in the codebase. The GitHub sync is best-effort with proper error handling, and the skill description logic has clear fallback behavior. The code correctly handles edge cases like deleted users and missing data. - No files require special attention <sub>Last reviewed commit: 7ab1862</sub> <!-- greptile_other_comments_section --> <sub>(4/5) You can add custom instructions or style guidelines for the agent [here](https://app.greptile.com/review/github)!</sub> <!-- /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:54 -05:00
yindo closed this issue 2026-02-15 17:16:54 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: openclaw/clawhub#323