You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Connect an Agent shows all seven clients at once; ask which one the person uses and show only those steps #30896
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 main04f36b63f8 (the widget and its page metadata are unchanged on 8b9cc712ab), as an administrator and as a member, on a local test deployment.
Business reason. A person uses one AI client. To find their steps they scroll past six others written in another client's vocabulary, and the API key form for scripts sits among them as if it were a client.
Reader. The UI lane dev, in ui/packages/app-shell/src/console/connect/ConnectAgentWidget.tsx:261-438 (the card grid and the API key card at line 367). Generic blocks only: a choice of client (tabs or a select) and a collapsible section, both from @object-ui/components.
Duplicates. Searched connect agent in:title (23 hits). #30029 / #30056 added three Chinese clients and merged the two Claude cards; none changes how the cards are chosen.
Measured
At an 800 px wide pane the page is 1729 px tall: the endpoint card, one Claude card (claude.ai / Desktop and Claude Code), then Codex, Cursor, WorkBuddy, 豆包工作, 千问办公 and the API key card, all open. The API key card is a peer in the same grid.
Expected
After the endpoint, the page asks which client you use (Claude, Codex, Cursor, WorkBuddy, 豆包工作, 千问办公) and shows that one's steps. The choice is remembered for this person on this device, and switching is one click.
The API key form moves to a collapsed 高级: scripts and CI section at the bottom.
The endpoint and the SKILL.md download stay at the top for everyone.
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.
Claim: PM loop round 6 · 2026-11-06T12:03Z
Session: session_01L9qibzWZSWpaweunqGyeA9 (card thread, dev) · seat session_01L9qibw7DekEe3wx5f3zphf
Account: os-tesla
Branch: claude/project-thread-rrq77k (a cloud card thread can push only its designated branch)
Worktree: objectstack-issue-30896
Domain: domain:ui
Seat: domain:ui#2
File surface: ui/packages/app-shell/src/console/connect/** and its tests, console i18n keys in ui/packages/i18n (all ten languages), root .changeset/
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 (the Connect page shows every client's steps at once)
Thread-read: 6682153990
Premise: holds (ConnectAgentWidget.tsx on origin/main renders the full card grid with the API key card among the clients) · measured live first by the dev
Serial constraints cleared: #30894 (ui seat 3) is pm:blocked with no branch on this file (seat 3 note 6684314795); #30895 (this seat, branch j4vink) does not edit ConnectAgentWidget.tsx; PR #30902 (this seat) renames the locale pack files — keys follow whichever file names are on main when added. #30897 and #30898 follow in this thread, each claimed when started.
{
"issue": 30896,
"status": "done",
"branch": "claude/project-thread-rrq77k",
"pr": "https://github.com/objectstack-ai/objectstack/pull/30943",
"head": "6111073f",
"session": "session_01L9qibzWZSWpaweunqGyeA9",
"premise_still_valid": true,
"summary": "Connect an Agent: under the endpoint + SKILL.md card, a Tabs picker (Claude, Codex, Cursor, WorkBuddy, Doubao Work, QwenWork) shows one client's steps; the choice is the reader's, kept per browser through the console's workspacePreference store (os:pref:connect.client, user scope, try/catch inside the store). The API key form moves into a collapsed 'Advanced: scripts and CI' Collapsible at the bottom; mint logic unchanged. 3 new keys in all ten packs (PR #30902 not on main: zh.ts / pt.ts). Live: widget body 1604 px -> 664 px at a 1004 px pane, admin and member.",
"tests": "vitest packages/app-shell/src/console/connect/ 9/9 (181fd4df and 6111073f); vitest packages/i18n/ 97 files 1521 passed 13 skipped; product-neutral-renderer.ratchet 32/32; i18n + app-shell type-check exit 0; ablation n/a (new behaviour pinned by new cases, no tested behaviour inverted beyond the layout the card changes)",
"gates": "dispatch-gates --commands on 181fd4df: 36 derived, 36 run, all exit 0 (check-sdui-manifest, ui scripts/ vitest 170 files passed included); --ran: 36 run, 0 NOT-MEASURED, 0 UNRUN; eslint changed files 0 errors; check:new-line-citations 0 new; PR check-runs: in_progress at report time",
"line_budget": "655 changed lines on 181fd4df (+448 / -207, 14 files) vs 3000",
"files_changed": [
".changeset/30896-connect-agent-client-picker.md",
"ui/packages/app-shell/src/console/connect/ConnectAgentWidget.tsx",
"ui/packages/app-shell/src/console/connect/ConnectAgentWidget.keyName-13355.test.tsx",
"ui/packages/app-shell/src/console/connect/connectClientPreference.ts",
"ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts"
],
"deviations": [
"Code was written before the live measure; the before reading was then taken on main's widget source (git restore from 0e882086 under the Vite dev server) and the branch restored (git diff HEAD empty).",
"A redundant second build pass (pnpm -r after the root turbo build had finished, 118/118) was stopped by its recorded PIDs; dists replayed by a turbo build (exit 0) before any test."
],
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "3 — issue_read x3 (reads only); 0 writes",
"api_writes": "2 — relay pr_create (#30943), this os-dev-report comment",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": []
}
ACCEPT → PR #30943 comment 6686106581 · 2026-11-06T13:36Z · head 953cfc49 (Connect an Agent asks which client you use and shows only its steps; API keys under a collapsed Advanced; 655 lines, Tier S path, Fixes #30896). Landing through the merge queue.
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 6 · 2026-11-06T12:03Z
Session:
session_01L9qibzWZSWpaweunqGyeA9(card thread, dev) · seatsession_01L9qibw7DekEe3wx5f3zphfAccount:
os-teslaBranch:
claude/project-thread-rrq77k(a cloud card thread can push only its designated branch)Worktree:
objectstack-issue-30896Domain:
domain:uiSeat:
domain:ui#2File surface:
ui/packages/app-shell/src/console/connect/**and its tests, console i18n keys inui/packages/i18n(all ten languages), root.changeset/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 (the Connect page shows every client's steps at once)
Thread-read: 6682153990
Premise: holds (
ConnectAgentWidget.tsxonorigin/mainrenders the full card grid with the API key card among the clients) · measured live first by the devSerial constraints cleared: #30894 (ui seat 3) is
pm:blockedwith no branch on this file (seat 3 note 6684314795); #30895 (this seat, branchj4vink) does not editConnectAgentWidget.tsx; PR #30902 (this seat) renames the locale pack files — keys follow whichever file names are onmainwhen added. #30897 and #30898 follow in this thread, each claimed when started.objectstack-fleet commentedon Nov 6, 2026
domain:ui#2 · os-tesla · session_01L9qibzWZSWpaweunqGyeA9
os-dev-report
{ "issue": 30896, "status": "done", "branch": "claude/project-thread-rrq77k", "pr": "https://github.com/objectstack-ai/objectstack/pull/30943", "head": "6111073f", "session": "session_01L9qibzWZSWpaweunqGyeA9", "premise_still_valid": true, "summary": "Connect an Agent: under the endpoint + SKILL.md card, a Tabs picker (Claude, Codex, Cursor, WorkBuddy, Doubao Work, QwenWork) shows one client's steps; the choice is the reader's, kept per browser through the console's workspacePreference store (os:pref:connect.client, user scope, try/catch inside the store). The API key form moves into a collapsed 'Advanced: scripts and CI' Collapsible at the bottom; mint logic unchanged. 3 new keys in all ten packs (PR #30902 not on main: zh.ts / pt.ts). Live: widget body 1604 px -> 664 px at a 1004 px pane, admin and member.", "tests": "vitest packages/app-shell/src/console/connect/ 9/9 (181fd4df and 6111073f); vitest packages/i18n/ 97 files 1521 passed 13 skipped; product-neutral-renderer.ratchet 32/32; i18n + app-shell type-check exit 0; ablation n/a (new behaviour pinned by new cases, no tested behaviour inverted beyond the layout the card changes)", "gates": "dispatch-gates --commands on 181fd4df: 36 derived, 36 run, all exit 0 (check-sdui-manifest, ui scripts/ vitest 170 files passed included); --ran: 36 run, 0 NOT-MEASURED, 0 UNRUN; eslint changed files 0 errors; check:new-line-citations 0 new; PR check-runs: in_progress at report time", "line_budget": "655 changed lines on 181fd4df (+448 / -207, 14 files) vs 3000", "files_changed": [ ".changeset/30896-connect-agent-client-picker.md", "ui/packages/app-shell/src/console/connect/ConnectAgentWidget.tsx", "ui/packages/app-shell/src/console/connect/ConnectAgentWidget.keyName-13355.test.tsx", "ui/packages/app-shell/src/console/connect/connectClientPreference.ts", "ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts" ], "deviations": [ "Code was written before the live measure; the before reading was then taken on main's widget source (git restore from 0e882086 under the Vite dev server) and the branch restored (git diff HEAD empty).", "A redundant second build pass (pnpm -r after the root turbo build had finished, 118/118) was stopped by its recorded PIDs; dists replayed by a turbo build (exit 0) before any test." ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "3 — issue_read x3 (reads only); 0 writes", "api_writes": "2 — relay pr_create (#30943), this os-dev-report comment", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }objectstack-fleet commentedon Nov 6, 2026
domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf
ACCEPT → PR #30943 comment 6686106581 · 2026-11-06T13:36Z · head
953cfc49(Connect an Agent asks which client you use and shows only its steps; API keys under a collapsed Advanced; 655 lines, Tier S path,Fixes #30896). Landing through the merge queue.objectstack-fleet commentedon Nov 6, 2026
domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf
Landed at 2026-11-06T14:06Z: PR #30943 merged as
6ddf827236(seat ACCEPT 6686106581 on head953cfc49).Fixes #30896closed the card.git grep -c "<Tabs" origin/main -- ui/packages/app-shell/src/console/connect/ConnectAgentWidget.tsxgit grep -c connectAgent.advanced.title origin/main -- ui/packages/app-shell/src/console/connect/ConnectAgentWidget.tsxgit ls-tree origin/main ui/packages/app-shell/src/console/connect/connectClientPreference.tspm:dispatchedremoved. #30897 follows in the same thread (claim 6686150464), branched frommain@6ddf8272.