v0.10.5 — anet create --batch wizard 双修 (workdir mode + codex/claude skip API key)
v0.10.5 — anet create --batch wizard 双修 (Vincent 5477+5481+5485)
Patch ship:
anet create --batch交互式 wizard 加 workdir mode 选择 + 修 codex-sdk/claude-code-cli 误问 API key bug。同 cli.ts 文件 single commit 二合一 ship。
Released versions (npm latest tag):
@sleep2agi/agent-network@2.2.4← bumped (CLI wizard fixes)@sleep2agi/agent-node@2.4.2(unchanged, v0.10.3)@sleep2agi/commhub-server@0.8.2(unchanged)@sleep2agi/agent-network-dashboard@0.5.2(unchanged, v0.10.4)
Install (first-time users)
npm install -g @sleep2agi/agent-network
anet hub start
anet hub dashboard
anet create --batch # 现在 wizard 会问 workdir 模式 + 选 codex 不会再误问 API keyUpgrade (existing users)
npm install -g @sleep2agi/agent-network@2.2.4
anet --version # 期望 v2.2.4Fixed in this patch
#152 — anet create --batch wizard 加 workdir mode 选择
Vincent 5477 实测 push: --workdir-mode <shared|separate> CLI flag 早就 ship (#55), 但 interactive --batch wizard 从来没 prompt 用户选 — 用户必须知道 flag 名字才能改 default separate。纯 UX gap。
Implementation:
createBatchWizardCommand ~line 6453:
--workdir-modeflag set → 用 flag (backward compatible, scriptable)- absent + TTY → inquirer select:
Default =
separate — 每节点独立子目录 ({workdir}/node1, /node2, ...) shared — 全部共享同一目录 ({workdir} 一个 .anet/nodes/, 共 cwd)separate(matches current default, Enter-through 保持现行行为) - non-TTY → fallback to
separate+ INFO hint about--workdir-modeflag
agent-node/server/dashboard 完全不动 — createBatch 已通过 batchNodeDirFor(opts, i) 路由到 per-node cwd, downstream 透明 consume。Pure CLI wizard UX。
#153 — codex-sdk/claude-code-cli 选完还问 ANTHROPIC_AUTH_TOKEN
Vincent 5481 实测 catch:
$ anet create --batch
✔️ 选择供应商: Codex / GPT
✔️ 选择模型: gpt-5.5
API key (ANTHROPIC_AUTH_TOKEN): ← ❌ codex 用 login 不该问
Vendor preset bin/cli.ts:1364 标了 requiresAuth: "codex" (正确), 但 wizard 流漏 branch — 不论 vendor 类型都 fall through 到 envKey prompt。
Fix (wizard ~10-15 LOC):
if (vendor.requiresAuth === "codex") {
console.log("Will use `codex auth login` state. Run `codex auth login` separately if not logged in.");
// skip envKey prompt entirely
} else if (vendor.requiresAuth === "claude") {
console.log("Will use Claude Code subscription. Use `claude` to login if needed.");
// skip envKey prompt
} else if (vendor.envKey) {
// existing API key prompt — unchanged backward compat
}Quality gates (trust path per Vincent 紧急 5485)
| Gate | Owner | Result |
|---|---|---|
| SDK马 #152 ship (Option A wizard prompt) | SDK马 | ✅ 12min (2.5-3.7x beat 30-45min ETA) |
| SDK马 #153 fold-in (wizard skip API key for codex/claude) | SDK马 | ✅ 3min after dispatch (preview.1) |
| Method B 2-phase promote (60s CDN wait per v0.10.4 lesson) | 工程马 | ✅ 3.5min (50%+ beat 7-10min ETA) |
| Docker smoke | 测试马 | ⏭ skipped per Vincent 紧急 5485 + 内部 verify done, 0 runtime risk |
Cross-version compat
| Path | Result |
|---|---|
| 新 CLI (2.2.4) — interactive batch | ✅ wizard 多 1 步 workdir prompt, codex/claude 跳 API key |
| 新 CLI — non-interactive `--batch --workdir-mode <shared | separate>` |
新 CLI — --vendor codex 直接 batch |
✅ skip API key, hint about codex auth login |
| 旧 CLI (2.2.3) | ✅ 沿用旧行为 |
| agent-node / commhub-server / dashboard | ✅ 不变, 0 schema change |
Cycle 10 stats
- 15 cumulative
@latestpublishes (v0.9.0 → v0.10.5): 0 split-brain / 0 rollback / 0 retry - End-to-end (Vincent 5477 → LIVE): ~13min (12:55 → 13:08)
- End-to-end (Vincent 5485 /goal 紧急 → LIVE): ~4min (13:04 → 13:08)
- v0.10.x today: v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 = 5 ships in ~7 hours (audit-first cadence)
Lessons saved this cycle
feedback_anet_upgrade_self_skip_misleads(v0.10.4 #151) — process can't replace running binary, explicit warningfeedback_release_notes_install_upgrade_split(R697)- 60s CDN wait per v0.10.4 (工程马 process lesson 落地 1 cycle)
feedback_pane_vs_commhub_truthcontinued (N站马 #150 ship pane truth catch)
Author: 通信龙 (lead) · SDK马 (#152 + #153 fold-in) · 工程马 (promote, 9-cycle) · Vincent (catch 5477+5481+5485)