- 引入 DirectAnnouncementCallback 类型用于处理直连模式下的公告 - 在 DelegationManager 中添加 _direct_announcement_callback 属性和设置方法 - 实现 _notify_direct_announcement 方法用于在非总线模式下将公告回写到本地会话 - 在委托取消、完成和分组完成时添加对直连公告的通知逻辑 feat(web): 增加 WebSocket 广播器支持实时会话更新通知 - 创建 WebSocketBroadcaster 类用于跟踪认证的 WebSocket 连接并广播 JSON 事件 - 在应用启动时初始化 websocket_broadcaster 实例 - 实现连接注册、注销和消息广播功能 - 添加过期连接清理机制 feat(agent): 新增系统公告处理方法支持本地处理 - 在 AgentLoop 中添加 process_system_announcement 方法用于在无常驻 run() 场景下处理系统公告 - 创建 InboundMessage 并通过 _process_message 进行处理 feat(cron): 改进定时任务的会话路由解析和实时更新 - 添加 _resolve_cron_session_key 和 _infer_cron_route_from_session_key 辅助函数 - 在 cron 任务执行完成后通过 WebSocket 广播会话更新事件 - 在添加定时任务时自动推断目标会话的渠道和聊天 ID refactor: 项目名称从 Boardware Genius 统一改为 Boardware Agent Sandbox - 更新前端页面标题和描述文本中的产品名称 - 添加新的品牌 Logo 图片资源 - 在前端布局中使用新的 Logo 显示 - 更新授权门户中的品牌信息和 Logo 显示 feat(frontend): 添加会话更新事件监听实现消息自动刷新 - 定义 SessionUpdatedEvent 类型接口 - 在 ChatPage 中添加会话更新事件的处理逻辑 - 当收到会话更新事件时自动重新加载会话列表和当前会话消息 feat(api): 扩展定时任务 API 支持会话键参数 - 在 addCronJob API 参数中添加 session_key 字段 - 更新前端 Cron 页面的表单处理以传递当前会话键
app-instance
单实例应用单元:
- 一个 Docker 容器里同时运行前端、后端和 Nginx 反代
- 前端走
/ - 后端 API 走
/api - WebSocket 走
/ws
关键文件
Dockerfile- 统一镜像构建入口
entrypoint.sh- 容器内启动前端、后端、Nginx
create-instance.sh- 创建实例目录、生成配置、启动容器、写注册表
remove-instance.sh- 删除容器、移除注册表、可选清理实例目录
list-instances.sh- 查看当前注册实例
instance-registry.py- 维护
runtime/registry/instances.json
- 维护
注册表
默认注册表路径:
runtime/registry/instances.json
每条记录至少包含:
instance_idinstance_slugcontainer_namehost_portpublic_urlinstance_rootimage_name
常用命令
1. 构建镜像
docker build -t nano/app-instance:latest .
2. 创建实例
./create-instance.sh \
--image nano/app-instance:latest \
--instance-id demo-001 \
--auth-username admin \
--auth-password 123456 \
--api-key 'your-api-key'
可选参数:
--host-port--public-url--username--email--instance-host--authz-base-url--backend-id--client-id--client-secret--network--host-bind-ip--build--replace
3. 查看实例
./list-instances.sh
./list-instances.sh --json
4. 删除实例
./remove-instance.sh --instance-id demo-001
如果要把实例目录也一并清掉:
./remove-instance.sh --instance-id demo-001 --purge-data
目录约定
默认实例数据目录:
runtime/instances/<instance-slug>/
其中会生成:
runtime/instances/<instance-slug>/
└── nanobot-home
├── config.json
├── web_auth_users.json
└── workspace/
当前状态
这层已经支持:
- 统一镜像构建
- 实例创建
- 实例删除
- 实例列表
- 基于注册表的端口分配
- 为 deploy-control / router-proxy 记录用户名和实例 host
生产注意
- 实例容器的宿主机端口默认只绑定
127.0.0.1 - 外部访问应统一走
router-proxy - 如果你确实要把单个实例端口直接暴露到公网,再显式传
--host-bind-ip 0.0.0.0
下一步可以继续接:
- portal 调用创建实例
- URL 分配和反向代理
- 实例续期 / 停用 / 启用