@optima-chat/dev-skills 0.16.8 → 0.16.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -90,7 +90,13 @@ def main():
90
90
  # ② 拿到确定的 sessionId,后面按它**确定性**定位 wire 对话,不靠 (时间,首句) 猜。
91
91
  # 该环境 multi-tab 没开(flag 默认关,cn-stage 未验)时 auto 档自己会降级复用已有 tab
92
92
  # 并打 warn —— 单 driver 复用是安全的,功能不减,只是 wire 定位退回启发式。
93
- d = chat_driver.ChatDriver().attach()
93
+ # ziniao attach() 的必填关键字参数(上游 store-skills #611,漏传即 TypeError):
94
+ # 本 skill 测的是鸭嘴兽对话链路,这个 tab 不绑定任何紫鸟 profile,所以显式声明 None + 理由。
95
+ # 若 --message 正文里写了 `--ziniao-profile <id>`,send() 会抛 ZiniaoDeclarationConflict
96
+ # 拒发 —— 那是上游有意的闸,不是本脚本的 bug。装到 ~/.claude 后已知 profile 表为空
97
+ # (它读 store-skills 仓库里的 e2e/registry*.yaml),所以只认 `--ziniao-profile` 这种显式写法。
98
+ d = chat_driver.ChatDriver().attach(
99
+ ziniao=None, reason="yzsgo-e2e 驱动鸭嘴兽网页对话做端到端测试,本脚本不绑定任何紫鸟 profile")
94
100
  session_id = d.session_id # attach 后立刻取:放在 try 里的话,中途抛异常会留下未绑定名
95
101
  if not d.tab_isolated:
96
102
  print("[warn] 未能独占 tab(该环境 multi-tab 未开)—— wire 定位退回 (时间,首句) 启发式")
@@ -142,7 +142,8 @@ async function main() {
142
142
 
143
143
  // 2. 触发(凭证由云效变量组供给,无需注入)。stage/prod 流水线 id 均按名 `${svc}-cn-${env}`
144
144
  // 从云效实时解析、不硬编码,根除与 optima-terraform cn-run.py 手工 PIPELINES 表漂移(#84)。
145
- const lp = devops('ListPipelines', { maxResults: '100' });
145
+ // nextToken 2026-09 起被 aliyun CLI 标成必填,不传则 API 直接返参数错误 → devops() 吞成 {} 误报「云效无流水线」。
146
+ const lp = devops('ListPipelines', { maxResults: '100', nextToken: '0' });
146
147
  const hit = (lp.pipelines || []).find((p: any) => p.pipelineName === `${svcName}-cn-${envName}`);
147
148
  if (!hit) { console.error(`✗ 云效无 ${svcName}-cn-${envName} 流水线`); process.exit(1); }
148
149
  const pipelineId = hit.pipelineId;
@@ -163,7 +163,8 @@ async function main() {
163
163
  console.log(`✓ mirror 已追平 ${svc.repo}@${ref} = ${ghSha.slice(0, 10)}`);
164
164
  // 2. 触发(凭证由云效变量组供给,无需注入)。stage/prod 流水线 id 均按名 `${svc}-cn-${env}`
165
165
  // 从云效实时解析、不硬编码,根除与 optima-terraform cn-run.py 手工 PIPELINES 表漂移(#84)。
166
- const lp = devops('ListPipelines', { maxResults: '100' });
166
+ // nextToken 2026-09 起被 aliyun CLI 标成必填,不传则 API 直接返参数错误 → devops() 吞成 {} 误报「云效无流水线」。
167
+ const lp = devops('ListPipelines', { maxResults: '100', nextToken: '0' });
167
168
  const hit = (lp.pipelines || []).find((p) => p.pipelineName === `${svcName}-cn-${envName}`);
168
169
  if (!hit) {
169
170
  console.error(`✗ 云效无 ${svcName}-cn-${envName} 流水线`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/dev-skills",
3
- "version": "0.16.8",
3
+ "version": "0.16.9",
4
4
  "description": "Claude Code Skills for Optima development team - cross-environment collaboration tools",
5
5
  "main": "index.js",
6
6
  "bin": {