chore: 同步至源码 2.5.1 — SKILL.md 改为构建产物 + 工具代码刷新

SKILL.md(唯一来源 = sap-cli/skill-src/SKILL.md.tmpl):
- 本仓 SKILL.md 自此为构建产物,勿手工编辑;手改后再构建会被漂移护栏拦下
- 并入模板独有内容:调用方式节 + 补齐 parser 真实命令(clone/enhancement/
  history/unit-test/unlock/transport create,原表只 9 个,实际 31 个)
- 版本号改为 {{VERSION}} 注入(原字面量停在 v2.2.1/v2.3.0,与工具实际版本脱节)
- 修 1 处违反铁律 5 的示例(--path ./src → ./src/TMP/class/)

assets/(工具代码,此前严重过时):
- 9 个文件与源码不一致,scanner.py 尤甚:3818B → 6664B
- 修复前从本仓装出的工具**不支持三层 src 结构**,铁律 5 实际跑不通
- transport.py 反向漂移(分发版多 transport create,源码无)已随源码回迁对齐

VERSION 2.5.1;references/ 三份规则与源码一致(无差异)
This commit is contained in:
吴让宇
2026-09-11 00:22:05 +08:00
parent df1533e843
commit e786742bcb
10 changed files with 231 additions and 55 deletions
+6
View File
@@ -71,6 +71,12 @@ class DdicMixin:
logger.info("DELETE RESPONSE: HTTP %s", resp.status_code)
if resp.status_code in (200, 204):
logger.info("删除成功")
# 修复:delete 成功后必须释放 enqueue 锁,否则残留锁导致后续 create 403
try:
self.unlock(obj_uri, lock_handle)
logger.info("删除后锁已释放")
except Exception as e:
logger.warning("删除后解锁失败(可能锁已自动释放): %s", e)
return True, ""
error_text = resp.text[:500] if resp.text else f"HTTP {resp.status_code}"
logger.error("删除失败: %s", error_text)