Repository navigation
feat(settings): Agents settings hub + dedicated agent editor - #3005
Conversation
- Group Manage agents, Persona, Autonomy, and Agent OS access under a new Settings > Agents section page (agents-settings route) with breadcrumbs. - Fix AgentAccessPanel dark mode: replace undefined ink/line tokens with stone/neutral palette + dark: variants. - Standardize AgentsPanel: use the standard settings card chrome + header with back/breadcrumbs, render agents as a divided list (no card-in-card), align the enable toggle to the title line. - Add settings.agentsSection.* i18n keys across en + all locale chunks.
… picker Replace the in-panel AgentEditor modal with a full page at /settings/agents/new and /settings/agents/edit/:id: - Name is the page title (editable on create, read-only identity on edit). - Description is a textarea; model is a dropdown of route hints / tiers with a custom-id escape hatch (empty = inherit). - Allowed tools open a searchable modal with chip-style selection; each tool shows its description. ['*'] = all tools. Backend: new openhuman.agent_registry_available_tools RPC returns the orchestrator's tool_specs() (name + description) so the picker lists exactly the identifiers tool_allowlist matches. Adds AgentToolInfo type, ops/rpc/schema wiring, a schema unit test, and a json_rpc_e2e assertion. Frontend: AgentEditorPage + ToolsPickerModal, agentRegistryApi.availableTools, routes, and settings.agents.editor.* i18n keys across all locale chunks. AgentsPanel now navigates to the page instead of opening the modal; tests updated for the new flow plus AgentEditorPage coverage.
# Conflicts: # app/src/pages/Settings.tsx
…rop whatsapp from orchestrator - AgentsPanel: only custom agents expose Edit; built-ins keep toggle + reset. - AgentEditorPage: deep-linking to edit a built-in shows a read-only notice instead of the form (settings.agents.editor.builtInReadonly). - available_tools now builds the wildcard tools_agent (the full built-in tool catalog) instead of the orchestrator's curated 'named' subset, so the editor's tool picker lists every assignable tool. Adds a json_rpc_e2e assertion that file_read (orchestrator doesn't list it) is present. - Housekeeping: remove whatsapp_data_* tools from the orchestrator's direct tool list (still registered + assignable to custom agents via the catalog). - Tests updated: AgentsPanel edit-only-for-custom, AgentEditorPage built-in read-only guard.
|
Warning Review limit reached
More reviews will be available in 20 minutes and 58 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (31)
Comment |
- ko-2.ts was missing the 23 new settings.agentsSection.* / settings.agents.editor.* keys: the i18n coverage Vitest (LOCALES includes ko) failed "locale ko defines every English key". The CLI i18n:check uses a different list (pl, not ko), so it passed — added the keys to ko to satisfy both gates. - SettingsHome.test.tsx: Persona moved into the Agents section, so the home menu no longer has a Persona item — replaced the persona-click test with the Agents entry (navigates to agents-settings).
Summary
/settings/agents/new,/settings/agents/edit/:id): name-as-title, description textarea, model dropdown (route hints / tiers + custom-id escape hatch), and a searchable tools picker modal with chip-style selection and per-tool descriptions.openhuman.agent_registry_available_toolsRPC backs the tools picker, returning the full built-in tool catalog (name + description).AgentAccessPaneldark mode (it used undefinedink/lineTailwind tokens that never adapted).whatsapp_data_*tools from the orchestrator's direct tool list (still registered + assignable to custom agents via the catalog).Problem
hint:fastplaceholder that isn't a valid hint) and tools were a newline-joined textarea with no discoverability.AgentAccessPanelrendered with non-existent Tailwind color tokens, so its text/borders didn't adapt to dark mode.Solution
agents-settingssection route + breadcrumbs inuseSettingsNavigation, and a single Agents entry on the Settings home.AgentEditorPage+ToolsPickerModal; model options mirror the Rust tier/hint constants, empty = inherit.agent_registry_available_tools(ops/rpc/schema +AgentToolInfotype) built from the wildcardtools_agentso the picker lists the complete assignable catalog rather than the orchestrator's curatednamedsubset.orchestrator/agent.toml; they remain registered and selectable for custom agents.AgentAccessPanel's undefined tokens with thestone/neutralpalette +dark:variants, matching the canonicalAutonomyPanel.Submission Checklist
Impact
agent_registry_available_tools); orchestrator tool list shrinks by 3 WhatsApp tools (still registered globally — no capability removed).Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
Validation Run
pnpm --filter openhuman-app format:check(ranprettier --writeon changed files)pnpm typecheckAgentsPanel(5),AgentEditorPage(4) Vitest;json_rpc_agent_registry_manages_defaults_and_custom_agents+ agent_registry lib (80) +agent_retrieval_e2e(4)cargo fmt --check+cargo check --libValidation Blocked
command:N/Aerror:N/Aimpact:N/ABehavior Changes
Parity Contract
Duplicate / Superseded PR Handling