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
+24
View File
@@ -589,6 +589,30 @@ def cmd_delete(args: argparse.Namespace, client: ADTClient) -> None:
raise DeleteError(f"删除失败: {error}")
def cmd_unlock(args: argparse.Namespace, client: ADTClient) -> None:
"""释放指定对象的 enqueue 锁(清理 delete 后残留锁 / SM12 场景)。"""
obj_type: str = args.type
name: str = args.name
lock_handle: str = args.lock_handle
parsed = parse_object_name(name, obj_type)
type_label = get_type_config(obj_type).label
print("=" * 60)
print(" SAP ADT 释放对象锁")
print("=" * 60)
print(f" 对象类型: {type_label}")
print(f" 对象名称: {parsed.display_name}")
print(f"\n → 正在释放锁 (lockHandle={lock_handle[:12]}...)...")
ok = client.unlock(parsed.obj_uri, lock_handle)
if ok:
print(" ✓ 锁释放成功")
else:
print(" ✗ 锁释放失败(HTTP 非 200,可能锁已不存在或 handle 无效)")
raise SapCliError(f"解锁失败: {parsed.display_name}")
def _update_manifest_after_delete(
args: argparse.Namespace,
name: str,