feat(publish): pass extraction warnings through confirm flow

When files are ignored during SKILL.md subdirectory promotion,
warnings are surfaced to the user via the existing precheck confirm dialog.
This commit is contained in:
xiose 2026-04-30 10:18:58 +08:00
parent 66fb89dc48
commit a34ad49771

View file

@ -59,12 +59,22 @@ public class SkillPublishController extends BaseApiController {
SkillVisibility skillVisibility = SkillVisibility.valueOf(visibility.toUpperCase());
List<PackageEntry> entries;
List<String> extractionWarnings;
try {
entries = skillPackageArchiveExtractor.extract(file);
SkillPackageArchiveExtractor.ExtractionResult extractionResult =
skillPackageArchiveExtractor.extractWithWarnings(file);
entries = extractionResult.entries();
extractionWarnings = extractionResult.warnings();
} catch (IllegalArgumentException e) {
throw new DomainBadRequestException("error.skill.publish.package.invalid", e.getMessage());
}
if (!confirmWarnings && !extractionWarnings.isEmpty()) {
throw new DomainBadRequestException(
"error.skill.publish.precheck.confirmRequired",
String.join("\n", extractionWarnings));
}
SkillPublishService.PublishResult publishResult = skillPublishService.publishFromEntries(
namespace,
entries,