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 offers the claude.ai and cloud-task steps on a deployment those clients cannot reach, with only a line of small print #30897
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 company trying the platform on an internal server follows the claude.ai card, pastes the address, and the connection fails with no reason they can act on. The page knows the address it is showing and could say so first.
Reader. The UI lane dev, in ui/packages/app-shell/src/console/connect/ConnectAgentWidget.tsx: the claude.ai half of the Claude card (static note at line 274) and the 豆包工作 card (static note at line 347). The address is already in hand (mcpUrl, from /discovery).
Duplicates. Searched Connect an Agent reachability (93 hits). #16815 and #16882 (closed) corrected the copy that promised Claude Desktop reaches an intranet deployment; this card is about the page reacting to the address it shows. #26472 (open) is the server's http issuer mismatch, a different defect.
Measured
On a deployment answering at http://localhost, the claude.ai / Claude Desktop column shows the address with a copy button and, below it in small print, that claude.ai connects from Anthropic's servers and needs public HTTPS. 豆包工作 has the same kind of note for cloud tasks. Nothing on the cards changes with the address.
Expected
When the address is not public HTTPS (an http:// address, localhost, or a private network address), the claude.ai path and Doubao's cloud tasks are marked as not available for this deployment, with the reason in one sentence and what makes them available (a public HTTPS address). The local clients (Claude Desktop, Claude Code, Codex, Cursor) stay as they are. On a public HTTPS address nothing changes.
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 7 · 2026-11-06T13:38Z
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; restarted on main after PR #30943 merges)
Worktree: objectstack-issue-30897
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 page offers the claude.ai and cloud-task steps on a deployment those clients cannot reach)
Thread-read: 6682167753
Premise: holds (on main the claude.ai and Doubao cloud-task steps render with no reachability condition) · measured live by the dev on localhost
Serial constraints: second of #30896 → #30897 → #30898 in this thread. #30896 ACCEPTed (6686106581); this card's branch is pushed only after PR #30943 merges, restarted on main. #30894 (ui seat 3) stays pm:blocked, with no branch on this file. #30898 is claimed when started.
{
"issue": 30897,
"status": "done",
"branch": "claude/project-thread-rrq77k",
"pr": "https://github.com/objectstack-ai/objectstack/pull/30973",
"head": "1851c124",
"session": "session_01L9qibzWZSWpaweunqGyeA9",
"premise_still_valid": true,
"summary": "New deploymentReach.ts isPublicHttpsAddress (http, localhost, single-label/.local/.internal hosts, private/loopback/link-local/CGNAT IPv4, ::1, fc00::/7, fe80::/10, IPv4-mapped private => not public). On a non-public MCP address the claude.ai column shows an Unavailable note (title, reason naming the origin, remedy) in place of the static small print, and Doubao Work gains a cloud-task note; local clients unchanged; public HTTPS renders as main. 5 keys x 10 packs (today's zh.ts/pt.ts). Branch restarted on main 6ddf8272 after #30943 merged; commit re-applied cleanly.",
"tests": "vitest connect/ + packages/i18n/ + product-neutral ratchet: 99 files, 1565 passed, 13 skipped (widget 12/12); i18n + app-shell type-check exit 0; live on localhost: both notes render with http://localhost:5197, Codex none",
"gates": "dispatch-gates --commands on 1851c124: 36 derived, 36 exit 0 (check-sdui-manifest, ui scripts/ vitest 170 files); --ran: 36 run, 0 NOT-MEASURED, 0 UNRUN; eslint connect/ 0 errors; check:new-line-citations 0 new; PR check-runs: in_progress at report time",
"line_budget": "295 changed lines (+286 / -9, 14 files) vs 3000",
"files_changed": [
".changeset/30897-connect-agent-unreachable-address.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/deploymentReach.ts",
"ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts"
],
"deviations": [
"Two CI check-run reads went through `gh api` (GET) while the GitHub MCP server was disconnected; reads only.",
"An unquoted heredoc briefly re-ran `node scripts/check-sdui-manifest.mjs` and started an unlocked `vitest run scripts/` by command substitution; the latter was stopped by its task id within 2 minutes, no stray process left, tree clean. The recorded gate results come from the sweep, not from that accident."
],
"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 (#30973), this os-dev-report comment",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": []
}
Activity
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 ·
domain:ui· 2026-11-06T09:56Z⛔ Not a claim.
Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
domain:ui#2 · os-tesla · session_01L9qibw7DekEe3wx5f3zphf
Claim: PM loop round 7 · 2026-11-06T13:38Z
Session:
session_01L9qibzWZSWpaweunqGyeA9(card thread, dev) · seatsession_01L9qibw7DekEe3wx5f3zphfAccount:
os-teslaBranch:
claude/project-thread-rrq77k(a cloud card thread can push only its designated branch; restarted onmainafter PR #30943 merges)Worktree:
objectstack-issue-30897Domain:
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 page offers the claude.ai and cloud-task steps on a deployment those clients cannot reach)
Thread-read: 6682167753
Premise: holds (on
mainthe claude.ai and Doubao cloud-task steps render with no reachability condition) · measured live by the dev on localhostSerial constraints: second of #30896 → #30897 → #30898 in this thread. #30896 ACCEPTed (6686106581); this card's branch is pushed only after PR #30943 merges, restarted on
main. #30894 (ui seat 3) stayspm:blocked, with no branch on this file. #30898 is claimed when started.objectstack-fleet commentedon Nov 6, 2026
domain:ui#2 · os-tesla · session_01L9qibzWZSWpaweunqGyeA9
os-dev-report
{ "issue": 30897, "status": "done", "branch": "claude/project-thread-rrq77k", "pr": "https://github.com/objectstack-ai/objectstack/pull/30973", "head": "1851c124", "session": "session_01L9qibzWZSWpaweunqGyeA9", "premise_still_valid": true, "summary": "New deploymentReach.ts isPublicHttpsAddress (http, localhost, single-label/.local/.internal hosts, private/loopback/link-local/CGNAT IPv4, ::1, fc00::/7, fe80::/10, IPv4-mapped private => not public). On a non-public MCP address the claude.ai column shows an Unavailable note (title, reason naming the origin, remedy) in place of the static small print, and Doubao Work gains a cloud-task note; local clients unchanged; public HTTPS renders as main. 5 keys x 10 packs (today's zh.ts/pt.ts). Branch restarted on main 6ddf8272 after #30943 merged; commit re-applied cleanly.", "tests": "vitest connect/ + packages/i18n/ + product-neutral ratchet: 99 files, 1565 passed, 13 skipped (widget 12/12); i18n + app-shell type-check exit 0; live on localhost: both notes render with http://localhost:5197, Codex none", "gates": "dispatch-gates --commands on 1851c124: 36 derived, 36 exit 0 (check-sdui-manifest, ui scripts/ vitest 170 files); --ran: 36 run, 0 NOT-MEASURED, 0 UNRUN; eslint connect/ 0 errors; check:new-line-citations 0 new; PR check-runs: in_progress at report time", "line_budget": "295 changed lines (+286 / -9, 14 files) vs 3000", "files_changed": [ ".changeset/30897-connect-agent-unreachable-address.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/deploymentReach.ts", "ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts" ], "deviations": [ "Two CI check-run reads went through `gh api` (GET) while the GitHub MCP server was disconnected; reads only.", "An unquoted heredoc briefly re-ran `node scripts/check-sdui-manifest.mjs` and started an unlocked `vitest run scripts/` by command substitution; the latter was stopped by its task id within 2 minutes, no stray process left, tree clean. The recorded gate results come from the sweep, not from that accident." ], "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 (#30973), this os-dev-report comment", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }