Skip to content

fix(skillhub): disable installed remote skill installs#279

Closed
GatewayJ wants to merge 3 commits into
OpenCSGs:mainfrom
GatewayJ:fix/skillhub-disable-installed-remote
Closed

fix(skillhub): disable installed remote skill installs#279
GatewayJ wants to merge 3 commits into
OpenCSGs:mainfrom
GatewayJ:fix/skillhub-disable-installed-remote

Conversation

@GatewayJ

@GatewayJ GatewayJ commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • disable remote skill install actions when the skill already exists locally
  • share remote-path skill name normalization between the API adapter and skill hub model helpers
  • keep local skills fresh when the remote install list is opened or refreshed
  • stabilize the remote install button width across install, installing, and installed states

Validation

  • pnpm --dir web/app exec vitest run tests/models/skillhub.test.ts tests/api/skills.test.ts tests/hooks/useWorkspaceHubSelection.test.tsx tests/components/WorkspaceTabPanels.test.tsx -t "skill|AgenticHub|remote|official|extracts|matches|disables remote skill install actions|shows remote skills|refreshes local skills"
  • pnpm --dir web/app typecheck
  • pnpm --dir web/app lint (0 errors; existing warnings remain)
  • touched-file Prettier check
  • git diff --check

Impact

Remote skill rows now show installed local skills as disabled Installed buttons in both light and dark themes, preventing duplicate install attempts and avoiding layout shift while an install is in progress.

@GatewayJ

GatewayJ commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator Author
image

@GatewayJ GatewayJ requested a review from RussellLuo July 2, 2026 12:14
@GatewayJ GatewayJ marked this pull request as ready for review July 2, 2026 12:15
remoteSkill: SkillSummary | null | undefined,
): boolean {
const installedName = remoteSkillInstalledName(remoteSkill);
return hasSkillName(installedSkills, installedName);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matching only by the local skill name seems too strong here: a same-named local skill does not necessarily mean this exact remote skill was installed before. Unless we persist a stronger remote identity such as source/remotePath on install, it may be safer to treat this as a name collision warning and let the user decide.

GatewayJ added 2 commits July 2, 2026 22:48
Revert the remote identity metadata follow-up and keep the original name-based disabled behavior. Disabled remote install buttons now continue to show the install label instead of switching to an installed label.
@GatewayJ

GatewayJ commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator Author
image

@GatewayJ GatewayJ closed this Jul 4, 2026
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.

2 participants