fix(agent-names): use HTTP-header-safe display names and config keys for API calls (#3138)

Display names with parentheses like 'Atlas (Plan Executor)' cause HTTP
header validation errors in x-opencode-agent-name. This was blocking
Atlas/Prometheus from working via /start-work and auto-retry.

Changes:
- Display names: parens -> dashes ('Atlas - Plan Executor')
- Hooks (start-work, no-hephaestus-non-gpt, no-sisyphus-gpt): use
  config keys ('atlas', 'sisyphus', 'hephaestus') for agent API fields
- auto-retry: use config key instead of display name for promptAsync
- agent-override-protection: handle dash-suffix normalization
- Updated all test expectations to match new format

Closes #3138
This commit is contained in:
YeonGyu-Kim
2026-04-07 10:08:04 +09:00
parent ebfd4a41ee
commit f8c626086e
26 changed files with 146 additions and 144 deletions
+7 -7
View File
@@ -92,8 +92,8 @@ describe("createEventHandler - model fallback", () => {
parentID: "msg_user_1",
modelID: "claude-opus-4-6-thinking",
providerID: "anthropic",
mode: "Sisyphus (Ultraworker)",
agent: "Sisyphus (Ultraworker)",
mode: "Sisyphus - Ultraworker",
agent: "Sisyphus - Ultraworker",
path: { cwd: "/tmp", root: "/tmp" },
cost: 0,
tokens: { input: 0, output: 0, reasoning: 0, cache: { read: 0, write: 0 } },
@@ -184,7 +184,7 @@ describe("createEventHandler - model fallback", () => {
content: [],
modelID: "claude-opus-4-6-thinking",
providerID: "anthropic",
agent: "Sisyphus (Ultraworker)",
agent: "Sisyphus - Ultraworker",
path: { cwd: "/tmp", root: "/tmp" },
},
},
@@ -246,7 +246,7 @@ describe("createEventHandler - model fallback", () => {
role: "user",
modelID: "claude-opus-4-6-thinking",
providerID: "anthropic",
agent: "Sisyphus (Ultraworker)",
agent: "Sisyphus - Ultraworker",
},
},
},
@@ -314,7 +314,7 @@ describe("createEventHandler - model fallback", () => {
role: "user",
modelID: "claude-opus-4-6",
providerID: "quotio",
agent: "Sisyphus (Ultraworker)",
agent: "Sisyphus - Ultraworker",
},
},
},
@@ -395,7 +395,7 @@ describe("createEventHandler - model fallback", () => {
content: [],
modelID: "claude-opus-4-6",
providerID: "quotio",
agent: "Sisyphus (Ultraworker)",
agent: "Sisyphus - Ultraworker",
path: { cwd: "/tmp", root: "/tmp" },
},
},
@@ -597,7 +597,7 @@ describe("createEventHandler - model fallback", () => {
parentID: "msg_user_disabled_1",
modelID: "claude-opus-4-6-thinking",
providerID: "anthropic",
agent: "Sisyphus (Ultraworker)",
agent: "Sisyphus - Ultraworker",
path: { cwd: "/tmp", root: "/tmp" },
cost: 0,
tokens: { input: 0, output: 0, reasoning: 0, cache: { read: 0, write: 0 } },