Skip to content

feat(tools): tools and connectors in the thread panel and Settings - #371

Merged
kinqsradio merged 5 commits into
mainfrom
feat/tools-and-connectors
Nov 8, 2026
Merged

kinqsradio merged 5 commits into
mainfrom
feat/tools-and-connectors

Conversation

@kinqsradio

@kinqsradio kinqsradio commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Thread details card: a Tools row (ready count, what is not ready) opens a Tools tab in the side panel, grouped Built-in, Orbyn, Your MCP servers, Connectors, Plugins, Skills; statuses Ready / Starting… / Needs sign-in + Sign in / Failed + reason + Details. Read-only: no per-tool switches.
  • Settings › Agents › Tools and connectors: one tab per engine, Check again, last checked, the last list kept (dimmed) when an engine does not answer.
  • Service: GET /api/threads/:id/tools and GET /api/engines/:id/tools (contract EngineTools, regenerated web/src/generated). Claude Code from claude mcp list plus the run's engine.tools frame; Codex from mcpServerStatus/list, app/list, plugin/list, reduced to names and states in the driver.

Parity rows

none

Frames built

Frames built: thread-tools, thread-tools-problem, thread-tools-codex, thread-tools-empty, thread-tools-loading, s-tools-claude, s-tools-codex, s-tools-error @ v61

Testing

  • CI covers the rest.
  • Rust: mapping tests for both engines, redaction, the shared engine-wide read (one read for many callers, refresh skips it, a failed read is not repeated at once), last-good-list on error, service tests with the stand-in engines. vitest for the model, the tab (400 ms rule, error, empty, Codex note), the card row and the Settings page. Playwright (e2e/real/tools.spec.ts) against the stand-ins; details.spec.ts count updated for the new row.
  • Light and Dim checked in the browser and by contrast (all text pairs 4.6:1 or better; danger on its tint is the lowest, in Light).
  • Not tested: packaged app; a real Claude or Codex list on this branch (the data paths were exercised live in feat(engines): see the CLIs' tools and connectors, with approvals #363).
  • Checks run in a neutral folder, never a project's (an engine's check starts its servers). Deviations from the frames: Settings has no project scope bar, so the Claude page is not per project (a project's own .mcp.json servers appear from a run's frame, never from the page check, because claude mcp list starts the servers it checks); Fix and Details both show the failure's message instead of opening the defining file; Codex apps the person cannot reach are not listed (thousands are on offer), so a Codex connector needing sign-in does not appear.

Co-authors

none

AI usage

  • Written by hand, with no AI
  • Harness and version: Claude Code
  • Models: claude-sonnet-5-5 (all)
  • Effort: low
  • Human role: set the task and acceptance
  • Sources: none

Checklist

  • Works on Windows and macOS
  • web/src/generated with any contract change; docs/architecture.md with any rule change
  • No copied source, secrets, credentials or personal data; no AI attribution in commits, title or branch

@github-actions github-actions Bot added area: core crates/orbyn-core: runs, drivers, workspace, approvals, storage area: contracts crates/orbyn-contracts and web/src/generated area: service crates/orbynd: local service and CLI area: web web: React UI area: docs docs and Markdown files labels Nov 8, 2026
@github-actions

github-actions Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

UI preview

Frames built @ v61: 1 drawn from the dev-only mock app (fake data, no account), commit 13e05b1. Light first; Dark and Dim are folded. This shows our screens only, not the designs.

thread-tools

thread-tools, Light

Dark and Dim

Dark

thread-tools, Dark

Dim

thread-tools, Dim

Not screens the preview knows: thread-tools-problem, thread-tools-codex, thread-tools-empty, thread-tools-loading, s-tools-claude, s-tools-codex, s-tools-error (see web/tools/pr-preview/catalog.mjs).


Every image, as one download: this workflow run.

… a neutral folder with one shared read, redacted details, Check again asks the engine
…'s checked time and source, fuller redaction, bounded event scan, cut-short Codex lists shown
@kinqsradio
kinqsradio merged commit e4ba19a into main Nov 8, 2026
29 checks passed
@kinqsradio
kinqsradio deleted the feat/tools-and-connectors branch November 8, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: contracts crates/orbyn-contracts and web/src/generated area: core crates/orbyn-core: runs, drivers, workspace, approvals, storage area: docs docs and Markdown files area: service crates/orbynd: local service and CLI area: web web: React UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant