You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+
**Goal:** Ensure preset backends still trigger model selection, and that model selection timeout falls back to a compatible model before resuming the run on Discord and Feishu.
6
+
7
+
**Architecture:** Extend the setup/runtime gates so "backend already known" no longer implies "setup complete". Discord keeps using the existing setup UI but can jump straight into model selection when the backend is preset, while Feishu reuses its runtime model gate and restores the timeout fallback logic for blocked runs. Both paths preserve the existing backend timeout behavior and only auto-pick models when the backend actually requires one.
-[ ]**Step 1: Write the failing regression test for preset backend -> model setup**
22
+
23
+
Add a Discord message-create test that persists `<set-backend>` to the new thread, skips backend selection UI, and still calls setup in a way that can render model selection for the preset backend.
24
+
25
+
-[ ]**Step 2: Run the targeted tests to verify they fail**
26
+
27
+
Run: `pnpm vitest run packages/discord/src/__tests__/index.test.ts packages/discord/src/__tests__/thread-setup.test.ts`
28
+
Expected: FAIL showing the preset-backend path never opens model selection / times out incorrectly.
29
+
30
+
-[ ]**Step 3: Write the minimal Discord implementation**
31
+
32
+
Modify `packages/discord/src/commands/thread-setup.ts` and `packages/discord/src/index.ts` so:
33
+
-`promptThreadSetup()` accepts an optional preset backend
34
+
- preset backends skip the backend card and open the model card directly when needed
35
+
- model timeout falls back to a compatible existing model or the backend's first model
36
+
- the caller decides setup is needed when backend is missing or backend is present but model is still required
37
+
38
+
-[ ]**Step 4: Run the targeted Discord tests to verify they pass**
39
+
40
+
Run: `pnpm vitest run packages/discord/src/__tests__/index.test.ts packages/discord/src/__tests__/thread-setup.test.ts`
-[ ]**Step 1: Write the failing Feishu regression tests**
59
+
60
+
Add tests for:
61
+
- a preset backend with models still blocking on model selection
62
+
- model selection timeout auto-picking a compatible model and resuming
63
+
- manual model selection canceling the timeout path
64
+
65
+
-[ ]**Step 2: Run the targeted Feishu tests to verify they fail**
66
+
67
+
Run: `pnpm vitest run packages/feishu/src/__tests__/runtime.test.ts`
68
+
Expected: FAIL because timeout fallback is currently absent and preset-backend blocked runs do not auto-resume.
69
+
70
+
-[ ]**Step 3: Write the minimal Feishu implementation**
71
+
72
+
Restore the model timeout helper in `packages/feishu/src/runtime.ts` and hook it into the blocked model-selection path so pending runs resume after timeout using the last compatible model or first backend model.
73
+
74
+
-[ ]**Step 4: Run the targeted Feishu tests to verify they pass**
75
+
76
+
Run: `pnpm vitest run packages/feishu/src/__tests__/runtime.test.ts`
0 commit comments