Skip to content

v2.8.1

Latest

Choose a tag to compare

@Besty0728 Besty0728 released this 06 Sep 08:05

v2.8.1 — 元数据真实性核对、Token Level 截断修正、客户端与面板小修

⭐ Highlights

  • 技能元数据与实现一致:194 个会改场景或写资产的技能补齐了 MutatesScene / MutatesAssets 声明,?wire=v2flags 不再漏报,noSceneAuthoring 档不再放过仍会改场景的技能;新增守卫测试防止再次漂移。
  • 参数必填声明可信:98 个技能此前空 body 也能通过 dryRun,现在在执行前就返回 MISSING_PARAM / SEMANTIC_INVALID;32 个批量技能的必填令牌改为真实参数 items
  • Token Level 截断按档位生效:Minimal 档(页大小 5)下 6–10 项数组此前原样全返、Full 档(页大小 20)下 11–20 项被误包截断元数据,现阈值与页大小同源;/health 新增 summaryAutoTruncate / summaryPageSize / tokenLevel,调用方无需再事后反推。
  • Python 客户端修三处并补封装set_unity_version("6.2") 不再误匹配任意 6000.x 实例;get_job_logs 改走轻量 GET /jobs/{id}/logsfind_skills 新增 include_schema / wire;新增 get_meta()execute_batch() 与 CLI --meta / --batch
  • 面板与 CI 细节:切换 Surface Profile 后已隐藏技能不再残留在详情栏;内联样式收敛为 USS class;删除 27 个无引用本地化键;check_locales.py 补上三元表达式与格式化重载的检测盲区。

Added

  • /health 暴露 Token Level 设置 — 新增 summaryAutoTruncatesummaryPageSizetokenLevelminimal / standard / full / maximum / custom)三个字段;references/protocol-operating-mode.md 新增 Token Level 一节,给出四档预设与 (SurfaceProfile, SummaryAutoTruncate, SummaryPageSize) 的精确映射及分页方式。
  • Python 客户端新封装get_meta(force_refresh=False)GET /skills/meta,会话内缓存)与 execute_batch(steps, dry_run, continue_on_error, diff, mode)POST /skills/batch,只发送服务端接受的键);find_skills 新增 include_schema / wire;CLI 新增 --meta--batch FILE--batch-mode--diff
  • 守卫测试SkillsRecordingUndoOrSnapshots_DeclareMutatesSceneOrAssetsRequiresInput_SingleTokensNameARealParameterOrGroupKey、截断阈值两条端到端用例;三个测试类补钉 Full 档,避免在 guide / noSceneAuthoring 档的机器上误红。

Changed

  • 194 个技能补齐 MutatesScene / MutatesAssets(行为变更) — 场景对象操作(GameObject / Camera / Cinemachine / Component / Light / NavMesh / ProBuilder / Sample / Smart / UI / XR 等)标 MutatesScene;写 .asset / ProjectSettings 的操作(Terrain / Timeline / Animator / Audio / Physics / Prefab / ScriptableObject / Shader / Graphics / Project / Debug 等)标 MutatesAssets。noSceneAuthoring 档新增隐藏 validate_fix_missing_scripts;7 个只写 EditorPrefs 或只记录快照的技能有据豁免。URP 家族无 URP stub 的声明与真实现逐字对齐。
  • 98 个技能改为前置拒绝空 body(行为变更) — 24 个 RequiresInput 语义定位令牌(vcam / terrain / director / animatorController / audioAsset 等)登记为组键或改为真实参数名;66 个技能补上缺失的 RequiresInputselection / selectedGameObjects 改为专用语义检查。Timeline 文档 trackName / bindingObjectName 的 Required 列改为 Yes。
  • 32 个批量技能的 RequiresInput 改为 items — schema required 与 dryRun 对齐,只传 items 的合法调用不受影响。
  • 面板 — 切换 Surface Profile / Token Level 后清除失效选中;新增 .is-hidden 工具类与 UiVisibility.SetVisible,约 34 处内联 style.display / 固定布局常量改为 class;删除昨日 topbar 提交的死代码(ApplySettingsIcon、💡 剥离),窄屏权限徽章让位改为 USS 变量。
  • 删除 27 个无引用本地化键(三语同步,1086 → 1059)
  • PlayCaptureService 参数校验先于编辑器忙检查
  • 版本号更新SkillsLogger.Version / package.json / Python helper __version__ / agent.md 同步提升到 2.8.1

Fixed

  • Token Level 自动截断阈值未随档位变化 — 触发条件硬编码"超过 10 项",现与 SummaryPageSize 同源。
  • Python _version_matches 丢弃 Unity 6 小版本 — 仅裸 "6" 通配,"6.N" 精确到 6000.N. 前缀。
  • Python get_job_logs 走主线程重路径 — 改用服务端既有的轻量 GET /jobs/{id}/logs?limit=Nskills/batch/SKILL.md 补交叉引用。
  • 7 个导入设置技能的 RequiresInput 幽灵令牌textureAsset / modelAsset / audioAsset 改为真实参数 assetPath
  • check_locales.py 假绿盲区 — 三元表达式、Get(key, args) 重载、TryGet / Has 此前全部漏检,现识别 352 处引用。
  • Localization.cs 直调 Debug.LogError — 改走 SkillsLogger.LogError
  • docs/SETUP_GUIDE(_CN).md 过期 — 指定版本安装示例与模块计数(54 REST + 28 advisory = 82、805 技能)更新。

Compatibility

  • 技能总数不变(805),端点集合不变;/health 仅新增字段,v1 已有字段逐字节不变。
  • 行为变更集中在"此前错误放行"的路径:空 body 由 valid:true 改为前置拒绝、?wire=v2flags 更真实、noSceneAuthoring 档多隐藏 1 个技能。合法调用不受影响。
  • Unity 6000.3 与 2022.3 EditMode 全量回归均 0 失败。

完整更改日志见 https://github.com/Besty0728/Unity-Skills/blob/main/CHANGELOG.md