docs: record execution foundation rollout

This commit is contained in:
kris
2026-04-03 00:26:44 +08:00
parent 70e8a13368
commit 519ecb56eb
4 changed files with 33 additions and 1 deletions

View File

@@ -18,6 +18,7 @@
- `src/app`:当前 Web 页面和 API 路由
- `src/components`:共享 UI 和交互组件
- `src/lib`:文件型状态模型和聚合投影视图
- `src/lib/execution`:当前已落地的执行底座抽象层,包含 `ExecutionBackend / PromptAssembler / PermissionPolicy / RemoteRuntimeAdapter / OrchestrationBackend` 默认实现
- `local-agent`:本地设备端心跳 + thread-context 上报服务
- `deployment``Caddy``systemd``launchd` 配置
- `scripts`:本地启动、安装、远端部署脚本
@@ -55,6 +56,8 @@
- `POST http://127.0.0.1:3000/api/auth/logout` 正常,退出后访问受保护 `/api/v1/*` 会返回 `401`
- `GET http://127.0.0.1:3000/api/v1/user/ota/package` 正常,当前会返回最新 APK 包
- 当前这台开发机的 `launchd` 常驻 `local-agent` 已恢复:`GET http://127.0.0.1:4317/health` 现在可在数十毫秒内返回,且在手动 heartbeat 执行期间仍能正常回包
- 当前 Boss 已新增 `src/lib/execution/` 执行底座抽象层;当前生产主链仍然沿用 `local-agent -> codex exec resume`,只是执行责任已开始通过 `ExecutionBackend / PromptAssembler / PermissionPolicy / RemoteRuntimeAdapter / OrchestrationBackend` 默认实现收束
- 当前 `claw-code``oh-my-codex` 仍未正式接入生产执行链;当前状态是 contract-ready可在后续通过 adapter 方式接入
- `GET http://127.0.0.1:4317/api/v1/skills` 正常,已返回本机扫描到的 Codex Skill
- `POST http://127.0.0.1:4317/api/v1/heartbeat` 正常,且会顺带触发 `thread-context` 上报
- `launchd` 已加载:`~/Library/LaunchAgents/com.hyzq.boss.local-agent.plist`
@@ -208,6 +211,7 @@ device-agent 当前职责:
- 对普通单线程会话,认领到的 `conversation_reply` 任务会直接恢复到目标 Codex 线程,并把线程原始回复回写到对应聊天窗口
- 对群聊线程分发任务,认领到的 `dispatch_execution` 任务会把原始线程结果和主 Agent 汇总一起回写到群聊消息账本
- `local-agent``conversation_reply / dispatch_execution` 当前会优先使用 `codex exec resume <targetCodexThreadRef>`,只有缺失真实线程引用时才退回 `--ephemeral`
- `local-agent` 当前的任务完成回写已通过 `RemoteRuntimeAdapter` 标准化,`conversation_reply / dispatch_execution` 的完成结果都会先归一到统一远程执行结果结构,再进入主 Agent 完成路由
- `local-agent` 当前会先启动本地 `4317` 健康监听,再异步执行首次 heartbeat 和 task poll避免控制面短暂阻塞时本地健康检查一起挂死
- Codex 项目/线程扫描当前已搬到 worker 线程执行,避免 `.codex/logs_1.sqlite``state_5.sqlite` 的同步扫描阻塞主线程 HTTP 响应
- 如果某个历史群聊里已经没有真实线程成员,当前不会再表现成“发了没反应”,而是会在群里追加一条 `system_notice`,提示用户先重新整理群成员

View File

@@ -14,6 +14,7 @@
- 状态文件:通过 `BOSS_STATE_FILE` 显式指向 `data/boss-state.json`
- 当前登录态:`boss_session` HttpOnly Cookie
- 当前原生恢复态:`restore token + SharedPreferences`
- 当前执行底座:`src/lib/execution/`,已包含 `ExecutionBackend / PromptAssembler / PermissionPolicy / RemoteRuntimeAdapter / OrchestrationBackend` 默认实现
### 1.2 boss-android-native
@@ -89,6 +90,7 @@
- 当前常驻方式:`launchd`
- 当前额外职责:向云端上报 `thread-context`
- 当前新增职责:递归扫描本机 `~/.codex/skills` 并同步到设备 Skill 接口
- 当前完成回写:`conversation_reply / dispatch_execution` 会先标准化成统一远程执行结果,再调用 `/api/v1/master-agent/tasks/[taskId]/complete`
### 1.4 Caddy
@@ -158,6 +160,25 @@
- 用途:读取当前完整状态
- 注意:这是内部 MVP 调试接口,会直接返回整个 `BossState`
### 3.1.1 执行底座抽象层
- 目录:`src/lib/execution/`
- 当前默认实现:
- `types.ts`
- `execution-backend.ts`
- `orchestration-backend.ts`
- `prompt-assembler.ts`
- `memory-resolver.ts`
- `permission-policy.ts`
- `tool-registry.ts`
- `backend-selector.ts`
- `remote-runtime-adapter.ts`
- `backends/*`
- 当前状态:
- 已在生产代码中被 `boss-master-agent.ts``local-agent/server.mjs``master-agent task complete route` 使用
- 当前仍服务 Boss 自身执行链
- 当前未直接接入 `claw-code``oh-my-codex`
### 3.2 认证相关
#### `POST /api/auth/send-code`

View File

@@ -26,6 +26,9 @@
- 本地 Skill 扫描接口:`http://127.0.0.1:4317/api/v1/skills`
- 本地 agent 手动 heartbeat`POST http://127.0.0.1:4317/api/v1/heartbeat`
- `launchd` 已安装:`~/Library/LaunchAgents/com.hyzq.boss.local-agent.plist`
- 当前执行底座抽象层已落地在 `src/lib/execution/`,并已补齐 `ExecutionBackend / PromptAssembler / PermissionPolicy / RemoteRuntimeAdapter / OrchestrationBackend` 默认实现
- 当前生产主链仍然沿用 `local-agent -> codex exec resume -> /api/v1/master-agent/tasks/[taskId]/complete`,执行底座重构以“先抽象、不改行为”为准
- 当前 `claw-code``oh-my-codex` 还未正式接入生产链,只是已经具备 adapter-ready 的 contract 基础
本地已知运行方式:
@@ -185,6 +188,7 @@ cd /Users/kris/code/boss
- 当前设备导入决议已经升级成真正通过 `local-agent -> codex exec -> /complete` 回写的主 Agent 决议链Web 和 Android 前台都会在 `pending_resolution` 阶段显示审核任务状态,并在任务完成后自动刷新出正式导入建议
- 当前 `local-agent` 已改成先启动本地 `4317` 健康监听,再异步跑首次 heartbeat 和 task poll避免控制面短时阻塞时本地健康探针不可用
- Codex 项目/线程扫描当前已搬到 worker 线程执行,避免 `.codex/logs_1.sqlite``state_5.sqlite` 的同步扫描阻塞主线程健康接口
- 当前 `local-agent` 的任务完成回写已通过 `RemoteRuntimeAdapter` 标准化,`conversation_reply / dispatch_execution` 的完成载荷会先做统一归一化,再进入主 Agent 完成路由
- 原生 Android 当前对 `master-agent` 聊天不再依赖长时间同步等待;发送后会先显示“主 Agent 思考中”,右上角改成微信式 `...` 菜单,菜单项包含 `模型 / 推理强度 / 会话信息 / 刷新`
## 2. 服务器状态

View File

@@ -31,7 +31,10 @@ export async function POST(
const { taskId } = await context.params;
try {
const normalized = normalizeRemoteExecutionResult(body);
const normalized = normalizeRemoteExecutionResult({
...body,
status: body.status === "failed" ? "failed" : "completed",
});
const task = await completeMasterAgentTask({
taskId,
deviceId: body.deviceId.trim(),