Skip to content

fix(skill): resilient loading for migrated or malformed skill & skill pool entries#4016

Merged
xieyxclack merged 2 commits intoagentscope-ai:mainfrom
Leirunlin:fix/skill-pool-conflict-error-3702
May 6, 2026
Merged

fix(skill): resilient loading for migrated or malformed skill & skill pool entries#4016
xieyxclack merged 2 commits intoagentscope-ai:mainfrom
Leirunlin:fix/skill-pool-conflict-error-3702

Conversation

@Leirunlin
Copy link
Copy Markdown
Collaborator

Description

  • Normalize manifest entries to dict before use (_normalize_skill_manifest_entry), so legacy junk is safely handled without
    broad exception swallowing
  • Per-entry try/except in reconcile_pool_manifest, reconcile_workspace_manifest, _build_pool_skill_specs, and
    _build_workspace_skill_specs . One bad skill no longer blocks the rest
  • Malformed entries are rebuilt from disk on next reconcile rather than permanently skipped
  • Frontend error parsing enhanced to handle structured conflict responses from zip upload

Related Issue: Fixes #(issue_number) or Relates to #(issue_number)

Security Considerations: [If applicable, e.g. channel auth, env/config handling]

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactoring

Component(s) Affected

  • Core / Backend (app, agents, config, providers, utils, local_models)
  • Console (frontend web UI)
  • Channels (DingTalk, Feishu, QQ, Discord, iMessage, etc.)
  • Skills
  • CLI
  • Documentation (website)
  • Tests
  • CI/CD
  • Scripts / Deploy

Checklist

  • I ran pre-commit run --all-files locally and it passes
  • If pre-commit auto-fixed files, I committed those changes and reran checks
  • I ran tests locally (pytest or as relevant) and they pass
  • Documentation updated (if needed)
  • Ready for review

For Channel Changes (DingTalk, Feishu, QQ, Console, etc.)

  • I ran ./scripts/check-channels.sh (or ./scripts/check-channels.sh --changed) and it passes
  • Contract test exists in tests/contract/channels/test_<channel>_contract.py (REQUIRED)
  • Contract test implements create_instance() with proper channel initialization
  • All 19 contract verification points pass (see tests/contract/channels/__init__.py)
  • Optional: Unit tests in tests/unit/channels/test_<channel>.py for complex internal logic

Testing

[How to test these changes]

Local Verification Evidence

pre-commit run --all-files
# paste summary result

pytest
# paste summary result

Additional Notes

[Optional: any other context]

雷兹 and others added 2 commits May 3, 2026 15:55
…ng to per-skill resilience for migrated or malformed pool entries. It avoids blocking the whole pool on one bad skill while also avoiding manifest-wide fallback that could hide file-level corruption or lose state.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 3, 2026

Welcome to QwenPaw! 🐾

Hi @Leirunlin, this is your 56th Pull Request.

🙌 Join Developer Community

Thanks so much for your contribution! We'd love to invite you to join the official QwenPaw developer group! You can find the Discord and DingTalk group links under the "Developer Community" section on our docs page:
https://qwenpaw.agentscope.io/docs/community

We truly appreciate your enthusiasm—and look forward to your future contributions! 😊

We'll review your PR soon.

@xieyxclack xieyxclack self-requested a review May 3, 2026 10:21
Copy link
Copy Markdown
Member

@xieyxclack xieyxclack left a comment

Choose a reason for hiding this comment

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

LGTM

@xieyxclack xieyxclack merged commit 5c49769 into agentscope-ai:main May 6, 2026
19 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in QwenPaw May 6, 2026
@Leirunlin Leirunlin mentioned this pull request May 7, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants