Skip to content

feat(settings): Agents settings hub + dedicated agent editor - #3005

Merged
senamakel merged 5 commits into
tinyhumansai:mainfrom
senamakel:feat/agents-settings-and-editor
May 30, 2026
Merged

senamakel merged 5 commits into
tinyhumansai:mainfrom
senamakel:feat/agents-settings-and-editor

Conversation

@senamakel

@senamakel senamakel commented May 30, 2026 •

Copy link
Copy Markdown
Member

Summary

  • New Settings → Agents hub that groups Manage agents, Persona, Agent autonomy, and Agent OS access under one section page (previously scattered across the top-level menu / AI section).
  • Replaced the in-panel agent editor modal with a dedicated full-page editor (/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.
  • Built-in agents are now non-editable — only custom agents expose Edit; built-ins keep enable/disable + reset. Deep-linking to edit a built-in shows a read-only notice.
  • New openhuman.agent_registry_available_tools RPC backs the tools picker, returning the full built-in tool catalog (name + description).
  • Fixed AgentAccessPanel dark mode (it used undefined ink/line Tailwind tokens that never adapted).
  • Housekeeping: removed whatsapp_data_* tools from the orchestrator's direct tool list (still registered + assignable to custom agents via the catalog).

Problem

  • Agent-related settings were spread across the top-level Settings menu and the AI section, with no single home. The agent editor was a cramped modal of plain text inputs — model was free-text (with a misleading hint:fast placeholder that isn't a valid hint) and tools were a newline-joined textarea with no discoverability.
  • AgentAccessPanel rendered with non-existent Tailwind color tokens, so its text/borders didn't adapt to dark mode.
  • The orchestrator carried WhatsApp local-data tools directly in its curated tool list.

Solution

  • Added an agents-settings section route + breadcrumbs in useSettingsNavigation, and a single Agents entry on the Settings home.
  • Built AgentEditorPage + ToolsPickerModal; model options mirror the Rust tier/hint constants, empty = inherit.
  • Added agent_registry_available_tools (ops/rpc/schema + AgentToolInfo type) built from the wildcard tools_agent so the picker lists the complete assignable catalog rather than the orchestrator's curated named subset.
  • Removed the WhatsApp tools from orchestrator/agent.toml; they remain registered and selectable for custom agents.
  • Replaced AgentAccessPanel's undefined tokens with the stone/neutral palette + dark: variants, matching the canonical AutonomyPanel.

Submission Checklist

  • Tests added or updated (happy path + at least one failure / edge case) per Testing Strategy
  • Diff coverage ≥ 80% — added Vitest (AgentsPanel, AgentEditorPage) + Rust json_rpc_e2e and schema unit tests covering the new/changed lines; happy + failure/edge paths.
  • N/A: settings-panel reorganization + editor UI; no capability-catalog feature ID was added/removed/renamed in the coverage matrix.
  • N/A: no coverage-matrix feature IDs affected by this change.
  • No new external network dependencies introduced (mock backend used per Testing Strategy)
  • N/A: does not touch release-cut smoke surfaces.
  • N/A: no linked issue.

Impact

  • Desktop UI (React/Tauri): Settings navigation reorg + new editor page. Frontend changes hot-reload; the new RPC requires a core rebuild.
  • Core (Rust): one additive RPC (agent_registry_available_tools); orchestrator tool list shrinks by 3 WhatsApp tools (still registered globally — no capability removed).
  • No migrations, no security/perf implications. i18n keys added across all locale chunks (English placeholders for non-English).

Related

  • Closes:
  • Follow-up PR(s)/TODOs:

AI Authored PR Metadata (required for Codex/Linear PRs)

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: feat/agents-settings-and-editor
  • Commit SHA: 7d87c37

Validation Run

  • pnpm --filter openhuman-app format:check (ran prettier --write on changed files)
  • pnpm typecheck
  • Focused tests: AgentsPanel (5), AgentEditorPage (4) Vitest; json_rpc_agent_registry_manages_defaults_and_custom_agents + agent_registry lib (80) + agent_retrieval_e2e (4)
  • Rust fmt/check (if changed): cargo fmt --check + cargo check --lib
  • N/A: Tauri shell (app/src-tauri) unchanged.

Validation Blocked

  • command: N/A
  • error: N/A
  • impact: N/A

Behavior Changes

  • Intended behavior change: Agents settings consolidated; built-ins read-only; dedicated agent editor with tools picker.
  • User-visible effect: New Settings → Agents hub + full-page agent editor; built-in agents can be toggled/reset but not edited.

Parity Contract

  • Legacy behavior preserved: enable/disable + reset of built-ins, custom create/update/delete unchanged; existing agent_registry RPCs untouched.
  • Guard/fallback/dispatch parity checks: orchestrator-disable guard intact; available_tools is additive.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): N/A
  • Canonical PR: N/A
  • Resolution (closed/superseded/updated): N/A

senamakel added 4 commits May 29, 2026 19:37
- 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.
@senamakel
senamakel requested a review from a team May 30, 2026 04:51
@coderabbitai

coderabbitai Bot commented May 30, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@senamakel, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5df3be4e-a763-40d6-8b93-c26bb0cd6316

📥 Commits

Reviewing files that changed from the base of the PR and between 029f007 and 238b483.

📒 Files selected for processing (31)
  • app/src/components/settings/SettingsHome.tsx
  • app/src/components/settings/__tests__/SettingsHome.test.tsx
  • app/src/components/settings/hooks/useSettingsNavigation.ts
  • app/src/components/settings/panels/AgentAccessPanel.tsx
  • app/src/components/settings/panels/AgentEditorPage.test.tsx
  • app/src/components/settings/panels/AgentEditorPage.tsx
  • app/src/components/settings/panels/AgentsPanel.test.tsx
  • app/src/components/settings/panels/AgentsPanel.tsx
  • app/src/lib/i18n/chunks/ar-2.ts
  • app/src/lib/i18n/chunks/bn-2.ts
  • app/src/lib/i18n/chunks/de-2.ts
  • app/src/lib/i18n/chunks/en-2.ts
  • app/src/lib/i18n/chunks/es-2.ts
  • app/src/lib/i18n/chunks/fr-2.ts
  • app/src/lib/i18n/chunks/hi-2.ts
  • app/src/lib/i18n/chunks/id-2.ts
  • app/src/lib/i18n/chunks/it-2.ts
  • app/src/lib/i18n/chunks/ko-2.ts
  • app/src/lib/i18n/chunks/pl-2.ts
  • app/src/lib/i18n/chunks/pt-2.ts
  • app/src/lib/i18n/chunks/ru-2.ts
  • app/src/lib/i18n/chunks/zh-CN-2.ts
  • app/src/lib/i18n/en.ts
  • app/src/pages/Settings.tsx
  • app/src/services/api/agentRegistryApi.ts
  • src/openhuman/agent_registry/agents/orchestrator/agent.toml
  • src/openhuman/agent_registry/ops.rs
  • src/openhuman/agent_registry/rpc.rs
  • src/openhuman/agent_registry/schemas.rs
  • src/openhuman/agent_registry/types.rs
  • tests/json_rpc_e2e.rs

Comment @coderabbitai help to get the list of available commands and usage tips.

- 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).
@senamakel
senamakel merged commit c3ee5d4 into tinyhumansai:main May 30, 2026
30 checks passed
senamakel added a commit to senamakel/openhuman that referenced this pull request Jun 6, 2026
senamakel added a commit to nocstah/openhuman that referenced this pull request Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant