Phase 003: remove the coding-agent and ekko-agent runtimes

Every chat session now runs through the Hermes bridge, so the three chat
chains become feature-equivalent instead of three partially-maintained
dispatch paths. Keeping the coding-agent and in-house agent runtimes alive
meant every bridge change had to be mirrored into two more runtimes that
had already drifted.

Historical rows are read, not migrated: sessions stored with the retired
source normalize to cli on load, workflow graphs naming the retired agents
keep loading and run on the bridge, and the visible-source check plus
SOURCE_LABELS still recognize the old value so those sessions stay listed.

The public surface follows the code: the OpenAPI generator and the MCP
chat-run tool schema drop the six retired entry fields so external callers
are not told about runtimes that no longer exist.

harness-check gains a RETIRED_RUNTIME scan so the residual check is a
mechanical gate instead of a manual grep, with the two surviving read-side
compat sites recorded with reasons.

Refs: docs/phases/phase_003.md
This commit is contained in:
2026-10-16 13:27:50 +08:00
parent c93e1fe1bd
commit 8c1ddf415f
123 changed files with 567 additions and 23599 deletions
+1 -82
View File
@@ -220,7 +220,6 @@ export default {
groupMonitoringShort: 'Mon',
groupTools: 'Tools',
groupToolsShort: "Tools",
codingAgents: "Coding Agents",
versionPreview: "Version Preview",
settings: 'Settings',
connected: 'Connected',
@@ -2069,86 +2068,6 @@ export default {
stopSuccess: "Preview stopped",
},
codingAgents: {
title: "Coding Agents",
notice: "Not all providers and models are compatible.",
claudeDescription: "Anthropic CLI for one-shot print mode and interactive coding sessions.",
codexDescription: "OpenAI CLI and Hermes openai-codex provider flow for repository tasks.",
copyCommand: "Copy",
commandCopied: "Command copied",
commandCopyFailed: "Copy failed",
refresh: "Refresh",
checking: "Checking",
installStatus: "Install status",
installed: "Installed",
notInstalled: "Not installed",
installRequired: "{agent} is not installed. Install it before creating a session.",
installNow: "Install",
installing: "Installing",
installSuccess: "Installed",
installFailed: "Install failed",
installFailedHermesHint: "Installation failed. Ask Hermes to install it for you.",
installFailureReason: "Reason",
nodeEnvironmentMissing: "Node/npm was not detected. Please install Node.js and try again.",
deleteNow: "Delete",
deleting: "Deleting",
deleteSuccess: "Deleted",
deleteFailed: "Delete failed",
configFiles: "Config files",
profileScope: "Profile",
providerScope: "Provider",
providerPlaceholder: "e.g. custom:glm",
modelScope: "Model",
modelPlaceholder: "Select model",
launchModeScope: "Launch mode",
launchModeGlobal: "Global config",
launchModeScoped: "Provider and model",
protocolScope: "Protocol",
protocolOpenAiChat: "OpenAI Chat Completions (/v1/chat/completions)",
protocolOpenAiResponses: "OpenAI Responses (/v1/responses)",
protocolAnthropicMessages: "Anthropic Messages (/v1/messages)",
reloadConfig: "Reload config",
configFileNotCreated: "Not created",
configLoadFailed: "Failed to read config file",
loadFailed: "Failed to inspect coding agents",
launch: "Launch",
launchTitle: "Launch Coding Agent",
nativeTerminal: "Native Terminal",
builtInTerminal: "Built-in Terminal",
launchPrepared: "Launch config prepared",
launchPrepareFailed: "Failed to prepare launch config",
nativeLaunchStarted: "Native terminal opened",
nativeLaunchFailed: "Failed to open native terminal",
terminalTitle: "Coding Agent Terminal",
loadProvidersFailed: "Failed to load providers for the current profile",
selectProviderModel: "Select a provider and model",
launchConfigDir: "Launch config directory",
launchCommand: "Launch command",
table: {
tool: "Tool",
kind: "Step",
command: "Command",
note: "Note",
action: "Action",
},
kinds: {
install: "Install",
auth: "Auth",
health: "Health",
run: "Run",
},
notes: {
claudeInstall: "Installs the Claude Code CLI globally.",
codexInstall: "Installs the Codex CLI globally.",
claudeAuth: "Checks Claude Code login state; run claude once if login is missing.",
codexAuth: "Adds Hermes-managed OpenAI Codex OAuth credentials.",
claudeHealth: "Checks updater and local CLI health.",
codexHealth: "Confirms the Codex CLI is available on PATH.",
claudeRun: "Print mode is the cleanest path for API-driven one-shot tasks.",
codexRun: "Codex one-shot tasks must run inside a git repository.",
},
},
// Platform channel settings
platform: {
requireMention: "Require {'@'}Mention",
@@ -2326,7 +2245,7 @@ export default {
cacheHitRate: 'Cache Hit Rate',
modelBreakdown: 'Model Breakdown',
agentBreakdown: 'Agent Breakdown',
agents: { hermes: 'Hermes Agent', claudeCode: 'Claude Code', codex: 'Codex', ekkoAgent: 'Ekko Agent', unknown: 'Unknown' },
agents: { hermes: 'Hermes Agent', unknown: 'Unknown' },
dailyTrend: 'Daily Usage',
date: 'Date',
tokens: 'Tokens',