优化页面交互并增强 Provider 配置能力
Build / build (push) Canceled after 0s
Playwright / e2e (push) Canceled after 0s

- 表单下拉框不再用 label 包裹,改为 div + aria-label,避免点击后
  下拉面板瞬间关闭
- Provider 卡片新增「从上游获取模型」和「修改」入口,支持编辑
  base URL、API Key 与 api_mode,凭据写入对应的环境变量
- 服务端抽出 provider-model-discovery 统一不同 api_mode 的模型发现,
  旧的 custom_providers 与新的 providers 字典结构都能正确更新
- Agent Bridge 改为后台启动,HTTP 接口在 Python 运行时就绪前即可用;
  worker 连接被拒时按类型重试,不重放可能已产生副作用的请求
- 断线重连后恢复 profiles、models 与会话列表,健康检查改为自调度
  的 setTimeout,离线时 2 秒后重试
- 批量删除确认文案改用 Popconfirm content,避免变成侧栏触发器文本
This commit is contained in:
2026-10-22 14:29:48 +08:00
committed by trae-solo-agent
parent 90c759c760
commit 3ca960f388
35 changed files with 876 additions and 78 deletions
@@ -0,0 +1,26 @@
---
date: 2026-10-22
feature: HTTP startup and session reload after backend restart
impact: Keep session APIs available during bridge startup and recover failed initial loads
---
PR/commit: pending.
The HTTP listener, Web UI stores, routes and Socket.IO handlers are initialized
before starting the managed Agent Bridge in the background. Bridge readiness
continues to be checked by the existing chat handlers; the chat-run protocol is
unchanged. The bridge manager is registered with shutdown before starting it.
A failed session-list request no longer marks the list loaded or discards a
route-selected session. Offline health polling retries after two seconds;
reconnection reloads profiles, models and sessions. An already loaded session
list retains its state on request failure. Chat, global-agent and history views
handle reconnection. Batch-delete confirmation text uses Popconfirm content
rather than becoming part of the sidebar trigger.
Validation: app-store and session-order Vitest coverage; Playwright startup
recovery (base route and direct session route), deletion confirmation and history
deep links; build and harness checks. A real isolated built-server smoke check
used a fake Python executable sleeping for 60 seconds and confirmed /health
responded with status=ok before the bridge became ready. State, uploads and
bridge endpoint were isolated under a temporary directory.
@@ -0,0 +1,21 @@
---
date: 2026-10-22
feature: Agent Bridge worker connection readiness
impact: Recover refused worker connections before returning a chat error
---
# Worker connection readiness recovery
- Date: 2026-10-22
- PR/commit: pending
- Feature: Agent Bridge client, cold and idle worker connection recovery.
- Behavior: Retry broker responses explicitly typed as worker connection refusal
or missing socket, within the existing connect retry budget. Keep the original
payload (including session and conversation history). The broker's own ping
does not establish worker readiness. Previously only Node-to-broker connection
failures were retried; Python-to-worker connect failures escaped to chat.
- Safety: Do not replay untyped agent errors, timeouts, closed responses, or
resets, because the worker might already have accepted the request. Vendored
Python and the chat-run event contract remain unchanged.
- Validation: focused worker readiness and existing chat/bridge tests; build and
harness checks.