一键导入
provider-display-timing-bug
**Description:** Use when debugging agents showing wrong or missing provider in the UI, or when modifying agent spawn/roster logic.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
**Description:** Use when debugging agents showing wrong or missing provider in the UI, or when modifying agent spawn/roster logic.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
How the multi-backend adapter system works — AgentAdapter interface, ACP protocol, session resume, and how to add new provider adapters
When debugging why an agent has the wrong provider/model, or when modifying agent creation or delegation flows.
How to get agents to use group chats for peer coordination in flightdeck-based crews. Covers hub-and-spoke anti-pattern, auto-grouping triggers, and file-lock-linked groups. Use when setting up multi-agent crews with 3+ agents or diagnosing why agents aren't collaborating directly.
When fetching from the `/coordination/activity` API and you only need specific action types (e.g., `progress_update`, `task_completed`, `delegated`).
When fetching activity data for UI display, or debugging why activity-based features show empty/stale data.
Architecture decisions and patterns from Flightdeck development (Phases 2–4). Covers feature architecture, state management, component patterns, and API design.
| name | provider-display-timing-bug |
| description | **Description:** Use when debugging agents showing wrong or missing provider in the UI, or when modifying agent spawn/roster logic. |
Description: Use when debugging agents showing wrong or missing provider in the UI, or when modifying agent spawn/roster logic.
When an agent spawns, the sequence is:
AgentManager.spawn() creates the Agent objectprovider field)startAcp() runs — this is where the ACP bridge resolves the actual provideronSessionReady fires after ACP connectsThe problem: step 2 writes the roster before step 3 sets agent.provider. So the DB row has provider: null and the UI shows no provider badge.
In AgentManager, before the first roster upsert:
if (!agent.provider && this.config.provider) {
agent.provider = this.config.provider;
}
In the onSessionReady handler (fires after startAcp completes):
this.roster.upsert(agent); // Now agent.provider is set correctly
Any time you see a timing issue where data is written to DB/UI before an async operation sets the correct value, the pattern is:
packages/server/src/agents/AgentManager.ts — spawn logic, onSessionReady handlerpackages/server/src/adapters/AgentAcpBridge.ts — line ~152 where agent.provider is set in startAcp()