Skip to content

Connect an Agent is buried in Setup and in a collapsed Account group; put it where each person looks, and call it Connect an AI Assistant #30895

Open

Description

@objectstack-fleet

epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

Filing gate: ③ the maintainer's direct order. Asked 「用浏览器试一下,目前连接智能体系平台最核心的功能是否建议优化相关的界面以及把这个菜单放到更明显的位置」, then on the walkthrough's suggestions: 「都同意,立卡」 (2026-11-06). Found in a real-user browser walkthrough of Connect an Agent on main 04f36b63f8 (the widget and its page metadata are unchanged on 8b9cc712ab), as an administrator and as a member, on a local test deployment.

Business reason. Connecting an AI client is something every person does for themselves: the page says each call runs as the caller, with the caller's permissions. It is the platform's main way for people to work through Claude, Doubao, Cursor and the rest. Today nobody meets it on the way: a member does not know it exists, and an administrator finds it among datasource and connector screens.

Reader. The UI lane dev. The entries come from packages/mcp/src/connect-ui.ts:100-139 (navigationContributions), the avatar menu is in ui/packages/app-shell/src/layout/AppHeader.tsx (the 个人资料 item at line 1268), Home's checklist is ui/apps/console/src/pages/settings/FirstRunChecklist.tsx, and the labels are nav_connect_agent and pages.connect_agent in packages/platform-objects/src/apps/translations/zh-CN.ts:30,73,195 and the en.ts twin.

Duplicates. Searched connect agent in:title (23 hits, all closed: the client cards, the Account door #16746, key naming, copy fixes), Connect an Agent home (373, none about placement) and first-run checklist (the checklist itself, #30206 / #30868, closed). None moves the entry.

Measured

Who Path today What they see
Administrator Setup → 集成 (the second-last of 8 groups) → item 36 of the 40 shown (35 of 39 on 8b9cc712ab, which drops 功能开关) Between 数据源 and 连接器凭据
Member (chen@example.test) Account → 开发者 → 连接智能体 开发者 is collapsed by default (expanded: false); Setup answers 403
Everyone Home, the avatar menu, the app switcher No entry

The avatar menu holds 个人资料, 我的组织, theme, language and notifications, and sign out: the person's own things, which is where this belongs.

Expected

  1. The avatar menu has an item that opens the page, for every signed-in person.
  2. Home shows a dismissible card that says, in plain words, that you can work in this system from Claude, Doubao and similar AI assistants, with one button to the page. It is hidden once dismissed or once the person has connected one.
  3. The administrator's first-run checklist on Home gains a row for it. Its done state is read from a real record (an authorization or an API key the person holds), like the other rows, never from a click.
  4. In Account the entry leaves 开发者 for a group of its own, expanded by default. In Setup it moves out of the bottom of 集成 to the top part of the nav.
  5. The page and its entries are called 连接 AI 助手 / Connect an AI Assistant. Studio already has 智能体 for the agents you build, and Setup has AI 与 Embedder, so the current name reads as one of those.

Nothing in the top bar: it is already full. Items 2 and 3 can follow #30894, since both need to know whether the person has connected anything.

Activity

  1. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p2 · domain:ui · 2026-11-06T09:55Z

    ⛔ Not a claim.

    • From the maintainer's Connect an Agent walkthrough (「都同意,立卡」, 2026-11-06). The maintainer called it the platform's most central feature. p2: it is how a person reaches and uses that feature.

    Generated by Claude Code

  2. added
    domain:uiDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  3. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf

    Claim: PM loop round 5 · 2026-11-06T11:03Z
    Session: session_01L9qibz5UZefuR7CExjD9VX (card thread, dev) · seat session_01L9qibw7DekEe3wx5f3zphf
    Account: os-tesla
    Branch: claude/project-thread-j4vink (a cloud card thread can push only its designated branch)
    Worktree: objectstack-issue-30895
    Domain: domain:ui
    Seat: domain:ui#2
    File surface: packages/mcp/src/connect-ui.ts (navigationContributions), ui/packages/app-shell/src/layout/AppHeader.tsx (avatar menu), packages/platform-objects/src/apps/translations/*.ts (nav_connect_agent, pages.connect_agent) and the Account / Setup nav definitions they target, the console i18n packs for the avatar item, their tests, root .changeset/; ConnectAgentWidget.tsx ⛔
    Container & model: M, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (placement and naming of the Connect an Agent entry)
    Thread-read: 6682141676
    Premise: holds (packages/mcp/src/connect-ui.ts L100–139 on origin/main still contributes nav_connect_agent to setup/group_integrations and account/grp_account_developer; no avatar-menu item) · measured live first by the dev
    Serial constraints cleared: #30894 (ui seat 3, split 6683276259) edits ui/packages/app-shell/src/console/connect/**; this claim does not touch that directory. Expected 2–3 (Home card, checklist row) wait for #30894's "has connected" read and are a second PR Part of #30895.
    Scope this claim: Expected 1, 4, 5; the PR says Part of #30895.

  4. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#2 · os-tesla · session_01L9qibz5UZefuR7CExjD9VX
    os-dev-report

    {
      "issue": 30895,
      "status": "done",
      "branch": "claude/project-thread-j4vink",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30935",
      "session": "session_01L9qibz5UZefuR7CExjD9VX",
      "premise_still_valid": true,
      "summary": "Part of #30895 (Expected 1, 4, 5). The page and both nav entries are renamed Connect an AI Assistant in en/zh-CN/ja-JP/es-ES (source digests re-recorded). Account: new expanded grp_account_ai_assistant slot after Inbox, filled by the MCP contribution. Setup: the entry moves to group_overview behind System Overview (same manage_platform_settings gate). Console avatar menu: a Connect an AI Assistant item under Profile, drawn only while the served Account app carries the connect_agent page; label in all ten console locales. Path text made false by the move fixed in plugin.ts, keys.ts, server.json, mcp README and five docs pages (surface extended by the seat). Measured live before/after as admin and member, en and zh.",
      "tests": "mcp 56 files/681 tests pass; platform-objects 117/1591 pass; ui packages/i18n + app-shell/src/layout 237 files, 2431 pass, 13 skipped; cli 4 pin files pass; runtime keys 21 pass; ablation of the avatar page gate (ablation-replace, anchor 1->0) reds the MCP-off case (1 failed | 7 passed), restored blob == HEAD. Head 0264ecd7.",
      "gates": "dispatch-gates --commands: 100 derived, 100 run, all exit 0 (check-plugin-teardown-shape --self-test exit 3 until the pinned commit was fetched, then 0); --ran reconciliation: 100 derived, 100 run, 0 NOT-MEASURED, 0 UNRUN. Extra: check:app-nav-i18n exit 0 (account 13 ids), check:changeset-fixed exit 0, ui check:new-line-citations 0 new; typecheck mcp/platform-objects/runtime/cloud-connection/service-automation/cli and type-check @object-ui/i18n/@object-ui/app-shell exit 0. CI: in_progress at report time.",
      "line_budget": "38 files at 0264ecd7, +299 / -104 = 403 changed lines (under 3000)",
      "files_changed": 38,
      "deviations": "File surface extended by the seat (wording only): packages/mcp/src/plugin.ts, packages/runtime/src/domains/keys.ts, packages/mcp/server.json, four named docs pages, plus content/docs/deployment/environment-variables.mdx and packages/mcp/README.md (announced to the seat). Comment-only edits in packages/cloud-connection/src/cloud-connection-ui.ts and packages/services/service-automation/src/connector-credentials-ui.ts (their priority headers named the moved entry), and packages/cli/scripts/check-app-nav-i18n.mjs comments; listed in the PR body. Local test:repo not run (CI's).",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "4 reads (issue_read x3, pull_request_read x1); 0 write tools",
      "api_writes": "2 relay writes: pr_create (fleet-write run 42217903031, PR #30935) and this os-dev-report comment (post-stamped)",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: #30894 / seat · ConnectAgentWidget.tsx registry label 'Connect an Agent' (palette label) left while #30894 holds that directory · noted, not filed"
      ]
    }
  5. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf

    ACCEPT → PR #30935 comment 6686013236 · 2026-11-06T13:31Z · head 34e84800 (Connect an AI Assistant: rename, Setup Overview, Account group, avatar item; 403 lines, Tier S path, Part of #30895). Landing through the merge queue. Expected 2 and 3 follow in a second PR after #30894.

  6. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf

    Landed (part 1: rename, Setup Overview, Account group, avatar item) at 2026-11-06T14:01Z: PR #30935 merged as 78eb35253a (seat ACCEPT 6686013236 on head 34e84800). The PR said Part of #30895, so the card stays open.

    probe reading
    git grep -c grp_account_ai_assistant origin/main -- packages/platform-objects/src/apps/account.app.ts 1
    git grep -n "group: 'group_overview'" origin/main -- packages/mcp/src/connect-ui.ts line 121
    git grep -c header-connect-ai-assistant origin/main -- ui/packages/app-shell/src/layout/AppHeader.tsx 1

    Release: session_01L9qibw7DekEe3wx5f3zphf (domain:ui#2, claim 6683345034) · because part 1 has landed and part 2 cannot start · back to pm:queue, assignee cleared in this stroke.
    Resume-from: main@78eb35253ae672b41ab78c6ee2cc6c0e7784f72a
    Remainder: Expected 2 (the Home card) and Expected 3 (the first-run checklist row) both need "has this person connected anything", which #30894 provides. #30894 is pm:blocked (ui seat 3; server #30345 and #30918). The card's last PR (Fixes #30895) is dispatched once #30894 lands.

  7. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpm:queueReady for the PM dispatch looppriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions