mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-13 11:13:43 +08:00
SkillPackageResolver.persistScanOutcome built a fresh SkillEntity with only id + scan fields, then called updateById. SkillEntity declares six columns with @TableField(updateStrategy = FieldStrategy.ALWAYS) — name_zh, name_en, config_json, source_code, skill_content, security_scan_result — so the ALWAYS strategy emits UPDATE statements that write NULL to every one of those columns not set on the partial entity. Effect: every security re-scan that produced a status/findings change silently wiped skill_content, config_json, source_code, name_zh, name_en on the row. After importing a custom skill, the first scan tick destroyed the imported content. Fix: switch to LambdaUpdateWrapper so the UPDATE only touches the three scan columns we actually want to change. Other skillMapper.updateById call sites (SkillService, BuiltinSkillSeedService) pass DB-hydrated existing entities and are unaffected. Reported and diagnosed by @pipima9950-glitch in issue #45. |
||
|---|---|---|
| .. | ||
| vip/mate | ||