Repository navigation
Description
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
- The avatar menu has an item that opens the page, for every signed-in person.
- 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.
- 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.
- 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.
- 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
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 ·
domain:ui· 2026-11-06T09:55Z⛔ Not a claim.
Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf
Claim: PM loop round 5 · 2026-11-06T11:03Z
Session:
session_01L9qibz5UZefuR7CExjD9VX(card thread, dev) · seatsession_01L9qibw7DekEe3wx5f3zphfAccount:
os-teslaBranch:
claude/project-thread-j4vink(a cloud card thread can push only its designated branch)Worktree:
objectstack-issue-30895Domain:
domain:uiSeat:
domain:ui#2File 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: highClause-②: 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.tsL100–139 onorigin/mainstill contributesnav_connect_agenttosetup/group_integrationsandaccount/grp_account_developer; no avatar-menu item) · measured live first by the devSerial 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 PRPart of #30895.Scope this claim: Expected 1, 4, 5; the PR says
Part of #30895.objectstack-fleet commentedon Nov 6, 2026
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" ] }objectstack-fleet commentedon Nov 6, 2026
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.objectstack-fleet commentedon Nov 6, 2026
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 head34e84800). The PR saidPart of #30895, so the card stays open.git grep -c grp_account_ai_assistant origin/main -- packages/platform-objects/src/apps/account.app.tsgit grep -n "group: 'group_overview'" origin/main -- packages/mcp/src/connect-ui.tsgit grep -c header-connect-ai-assistant origin/main -- ui/packages/app-shell/src/layout/AppHeader.tsxRelease:
session_01L9qibw7DekEe3wx5f3zphf(domain:ui#2, claim 6683345034) · because part 1 has landed and part 2 cannot start · back topm:queue, assignee cleared in this stroke.Resume-from:
main@78eb35253ae672b41ab78c6ee2cc6c0e7784f72aRemainder: 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.