mirror of
https://github.com/TencentCloud/Octop.git
synced 2026-10-29 07:42:51 +08:00
develop
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0394e28fdc |
fix(bridge): keep team member streams alive through refresh (#2159)
* fix(bridge): keep team member streams alive through refresh Cloud rooms dropped member tokens after the host turn ended, and a refresh mid-answer had nothing in history to restore. Hold the room subscriber and replay the in-progress member text when a client subscribes again. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: note cloud team stream refresh in the changelog Co-authored-by: Cursor <cursoragent@cursor.com> * fix(bridge): keep local login when peer credentials are rejected Peer auth failure used HTTP 401, so probing cloud collab cleared the local session and showed Unauthorized. Fixes #2166 Co-authored-by: Cursor <cursoragent@cursor.com> * feat(dashboard): split chat nav into experts, teams, and cloud Empty team and cloud lists can jump to create the first one, the host wrap-up lines up with the host avatar, and the cloud collab page explains how to connect. Co-authored-by: Cursor <cursoragent@cursor.com> * feat(dashboard): add knowledge-base folder tree and unify list-panel rail toggles - Knowledge bases: add a resizable folder navigation tree beside the document list; move the breadcrumb into the docs toolbar and surface base id plus creator on list rows. - Knowledge bases / skill packages: move the collapse control onto the split divider as a hover pill and drop the separate detail header. - RailEdgeControl: pill button with center/before/after placement so two rails can share one divider. --------- Co-authored-by: jubaoliang <jubaoliang@tencent.com> Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|
|
f5e46c974b |
feat: add Octop↔Octop cloud collab for remote experts (#1281)
* feat: add Octop↔Octop Bridge for remote agent access Enable admin-managed peer connections with WS tunnel, path allowlist, hello_ack handshake, SSRF guards, and Chat shadow-agent hydrate so operators can probe and use remote agents from the local dashboard. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: serialize bridge turn chunks and flag remote experts LangChain HumanMessage objects in peer turn.chunk frames crashed json.dumps; add a bridge JSON default. Show a 远端/Remote badge on shadow experts in the picker and sidebar lists. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: bridge avatars, named remote badges, and auto-reconnect Keep bundled / CDN icon URLs for shadow experts and only proxy uploaded avatars. Show the bridge display name on remote badges. Add a default-on auto-reconnect switch that backs off on disconnect and disables itself after repeated failures, recording the reason in last_error. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: add card/table views for bridge connections Match the storage page card layout and add a Segmented toggle so admins can switch between a card grid and a table of remote links. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: render bridge expert icons correctly on the chat page Encode bridge agent ids in avatar URLs the same way as chat WS paths, fall back to Lucide when the image fails, size portraits to fill the sidebar avatar, and refresh AgentContext when icon_url changes. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: tunnel peer models and knowledge bases for bridge chat Allow read-only GET of peer providers/resolved, active-model, and knowledge-bases (plus capability) through the Bridge tunnel, expose local bridge connection routes, and point the chat composer at those sources when talking to a shadow expert. Hide local connectors for remote sessions. Also allow agent subagents paths on the tunnel. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: scope bridge chat expert picker to peer agents When the active expert is a Bridge shadow, the composer expert picker and @-mentions only list peers on that connection (not local experts). Encode bridge agent ids for skills and subagents list/install paths. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: hint remote chat pickers to manage settings on the peer In Bridge sessions, replace local “manage …” footers for models, skills, knowledge bases, experts, and subagents with a muted “edit on remote” tip and a toast instead of navigating to local admin. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: polish bridge remote UX and tunnel agent status Allowlist GET …/status so hubs can read real peer harness state (peers need this build). Keep history-migration hub-local, skip noisy bridge polls in the UI, move Bridge under Settings, and mark remote experts with cable + name. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: tunnel remote expert catalogs and polish bridge connection UX Hub can edit peer subagents, memory, channels, tools, plugins, and MBTI through the tunnel; surfaces that cannot hop show an in-drawer hint. Peer must run this build so the new allowlist takes effect. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: group cloud-collab experts and unify header-tunneled composer APIs Keep the selected remote expert on disconnect, gate peer-only surfaces in the UI, and stop forking composer/task requests through dedicated bridge endpoints. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: add search to the Experts toolbar Filter my experts, teams, and the library from the existing button row so long catalogs stay scannable. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: keep inbound cloud-collab cards peer-owned Inbound links can only edit name/icon/notes; disconnect, delete, and auto-reconnect stay disabled. Peer offline shows as 离线, peer delete removes the card, and the default inbound name is the short connection id. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: polish inbound cloud-collab UX and unify 对端 copy Peer-initiated links can only edit display info and cannot redial; offline cards may be deleted. Local-only pages hint when a peer expert is selected. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: map peer team speakers onto Bridge shadows Peer team chats stamped local member ids, so the hub fell back to the host avatar. Rewrite roster and stream speakers onto bridge:{cid}:{id} shadows, and keep the local team picker from mixing in peer experts. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: stop rewriting team thread ids in the Bridge tunnel Member job threads are {room}~{agent}. A blanket JSON replace of the peer agent id turned those into hub shadows, so history 404ed on the peer. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: rewrite peer media URLs and keep bridge turn composer fields Live send_file_to_user frames still pointed at peer-local /api/agents/{id}. Map every teammate id in tunneled JSON, and copy the full dashboard turn body so knowledge bases and HITL policy are not dropped on the peer. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: rename bridge probe tests to avoid pytest module clash tests/unit/bridge/test_probe.py collided with tests/unit/mobile/test_probe.py during collection (same basename). Co-authored-by: Cursor <cursoragent@cursor.com> * feat: collapse extra experts on Bridge cards and fill avatars Show at most four experts on a connection card, with the rest behind expand. Portraits fill the 40px ring without a tinted background. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: jubaoliang <jubaoliang@tencent.com> Co-authored-by: lulinzhi37-alt <lulinzhi37@gmail.com> |