[ISSUE #15315] Optimize Skill upload precheck and conflict handling#15316
Merged
KomachiSion merged 7 commits intoJun 17, 2026
Conversation
|
Thanks for your this PR. 🙏 感谢您提交的PR。 🙏 |
KomachiSion
requested changes
Jun 5, 2026
| * @return result of the upload precheck | ||
| * @throws NacosException if the precheck fails | ||
| */ | ||
| @Since("3.2.2") |
| * @return upload precheck result | ||
| * @throws NacosException if fail to precheck upload | ||
| */ | ||
| @Since("3.2.2") |
| * @return skill name | ||
| * @throws NacosException if fail to upload skill | ||
| */ | ||
| @Since("3.2.2") |
| * @return result of the upload precheck | ||
| * @throws NacosException if the precheck fails | ||
| */ | ||
| @Since("3.2.2") |
ba74668 to
d1bfa8e
Compare
d1bfa8e to
59eaf49
Compare
…tMsg support - Add precheck endpoint for upload validation before actual upload - Support uploadAction parameter (create_draft/overwrite_draft/create_version) - Support commitMsg parameter for version commit messages - Add SkillUploadPrecheckRequest/Result models in API module - Refactor SkillOperationServiceImpl upload flow with UploadVersionCandidate - Update SkillZipParser to extract version from skillMd front-matter - Add upload precheck support to Console/Admin/Maintainer layers - Update skill-spec documentation for new upload workflow - Add integration tests for upload precheck scenarios
- Refactor UploadSkillDialog to use precheck-then-upload two-step flow - Add client-side ZIP parsing with skillUploadParser utility - Show parsed skill info (name, version, description) before upload - Handle conflict scenarios: version exists, no permission, etc. - Add uploadAction selection UI for overwrite/create options - Support commitMsg input for version publishing - Update locales (en-US, zh-CN) with new upload dialog strings - Add unit tests for skillUploadParser
Regenerated from source changes in the previous commit. # Conflicts: # console/src/main/resources/static/next/js/main.js
59eaf49 to
d86a6cb
Compare
KomachiSion
approved these changes
Jun 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please do not create a Pull Request without creating an issue first.
What is the purpose of the change
Optimize Skill ZIP upload by adding a lightweight precheck flow for Skill name/version conflicts before the full package upload, making draft/reviewing conflict handling explicit, and keeping multi-skill ZIP parsing consistent when nested skill-like folders or invalid/non-skill folders are present.
Brief changelog
overwrite=truehandles single and batch draft overwrite consistently, blocks reviewing versions, and uses a valid uploaded version when it should create a newer draft.Verifying this change
mvn -pl api,ai,console,maintainer-client,test/openapi-test spotless:applymvn -pl api,ai,console,maintainer-client,test/openapi-test spotless:checkmvn -pl ai,console,maintainer-client -am -Dtest=SkillOperationServiceImplTest,SkillResourceOperatorTest,SkillZipParserTest,ConsoleSkillControllerTest,SkillProxyTest,SkillInnerHandlerTest,SkillRemoteHandlerTest,SkillNoopHandlerTest,SkillMaintainerServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false testmvn -pl ai -Dtest=SkillOperationServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false testmvn -pl ai -Dtest=SkillZipParserTest -Dsurefire.failIfNoSpecifiedTests=false testmvn -pl ai spotless:checkmvn -pl test/openapi-test -DskipTests validatemvn -pl test -DskipTests apache-rat:check./node_modules/.bin/vitest --run src/utils/__tests__/skillUploadParser.test.ts./node_modules/.bin/eslint src/utils/skillUploadParser.ts src/utils/__tests__/skillUploadParser.test.ts src/pages/skillManagement/components/UploadSkillDialog.tsx./node_modules/.bin/tsc -bnpm run buildFollow this checklist to help us incorporate your contribution quickly and easily:
[ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.mvn -B clean package apache-rat:check spotbugs:check -DskipTeststo make sure basic checks pass. Runmvn clean installto make sure unit-test pass. Runmvn clean test-compile failsafe:integration-testto make sure integration-test pass.