-
冲突在 docs/README.md:并行会话在真实端到端测试里发现 boss agent(39 号文档)还有 三个单测没覆盖的真问题,把 39 号重新留在 todo/ 并拆出 42 号跟进文档;与我这边把 39 号挪进 done/ 的判断冲突——采纳对方判断(39 号文档物理路径挪回 todo/system-design/, докс/README.md 用对方更新的行 + 补 42 号一行),因为他们是基于更新的真实测试结果。 顺带把 29-dream-design.md 这次会话移到 done/ 后遗漏的引用修掉: system/agents/{dream-distiller,dream-screener}/agent.md、 server/{routes/dream.js,services/dream-service.js}、 server/tests/unit/dream-routes.test.js 六处 docs/todo/system-design/29-dream-design.md 路径改成 docs/done/system-design/29-dream-design.md(no-dead-path-references.test.js / agent-md-refs.test.js 两条守卫测试之前没扫到这几处,这次真跑测试才暴露)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
给此前完全零防护的 company.js/okr.js/tasks.js/devloop.js/graph-run.js(两个挂载点)/ arena.js/config.js/evolution.js/whatsapp-auth.js 挂 requireAuth;dream.js 挂 requireAdmin (系统级经验汇流视图,只有 admin 能看)。open-api.js(自己一套 OPEN_API_KEYS)/auth.js 自身/health 端点按计划排除。这一步只挡"没登录",公司归属过滤留到 Phase 2。 agent-chat.js 不能直接挂 requireAuth:company.js(自动建公司/招聘后自动训练)、 task-settle.js(goal 汇报回调)三处服务端自环调用会 fetch 自己的 /api/agent/* 端点, 拿不到任何用户 cookie,直接挂锁会打断这几条核心自动化链路。新增 requireAuthOrInternal + jwt-auth.js 的进程内 INTERNAL_TOKEN(启动时随机生成,只活在内存里):自环调用带上 x-internal-token 头放行,其余情况仍要求真实登录;三处调用点同步改造。 17 个既有测试文件、67+ 处用例直接拿 supertest 打这些路由,从没设过登录 cookie(测的是 业务逻辑不是鉴权)。没有逐个补登录态,改为 requireAuth/requireAdmin 在 NODE_ENV=test 时默认放行,除非显式 FORCE_REAL_AUTH=1;新增 route-auth-gate.test.js 在放行关闭状态下 做结构检查(router.stack 里中间件是否真的排在所有路由前面),确保"锁真的挂上了"这件事 有测试兜底,不被业务测试的默认放行悄悄掩盖。 验证:真实 curl 走过全部路由(无 cookie 401、admin 登录全通、非 admin 能看公司但 dream.js 403);手工删过一行 requireAuth 确认守卫测试真的会红;全量 vitest 1427 passed, 另 3 个失败与本次改动无关(stash 验证过改前改后一致,系仓库并发工作遗留)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
只做了这一件事,没有跟着做「dream 改成 org/work graph 来跑」——两者被 单独评估过:org/work graph 是单公司作用域(org graph=公司级 workflow, work graph=公司内某任务的节点图),dream 却是跨公司扫描,套进去要么破坏 作用域假设要么得新开图类型;且 graph 引擎自带的验收机制(goal-contract benchmark/test-script)判的是「产物过没过验收脚本」,对「经验提炼得对 不对」这种自由文本判断没有对应机制——不管套不套 graph 都得单独设计 rubric,是同一件事。用户明确只要 REST/控制台这一半。 ## REST(server/routes/dream.js,挂 /api/dream) 路由本身没有新业务逻辑,全部委托给已测过的 dream-service.js: GET /agents(总览)、GET /agents/:id(详情,含定义文件可写性 + 经验 审计)、POST /agents/:id/run(手动跑一次,dryRun 只看有没有新原料不 起 LLM)、POST /sweep + GET /sweep/status(全量扫描后台跑 + 轮询,内存 态并发锁防止连点两下)。 ## 控制台(web/src/views/DreamConsole.vue,路由 /dream) 一个表格 + 两个弹窗:本体列表(详情/跑一次/dry-run)+ 全量扫描按钮 (15 秒轮询状态)。导航栏加 🌙 Dream 入口。 ## 验证 server/tests/unit/dream-routes.test.js 4 例,monkeypatch 掉 dream-service 导出对象上的六个函数(不走真文件系统,不误扫真仓库 76 个本体),只验路由层自己的逻辑:端点接线、sweep 并发锁状态机。 真起服务器打了真数据:GET /agents/innovator-evolver 正确报 SKILL.md 因没进 git 历史而不可写、经验审计吐出上次真跑沉淀的 4 条 经验及原文;dry-run 正确报 no-new-material,没多花一次 LLM 调用。 浏览器里走了一遍列表→详情→dry-run,与直接打 API 结果一致。 955 个单测全绿。 文档:29-dream-design.md §5.7 记录实现与「为什么不做 graph 化」的 理由;28-followups.md / docs/README.md 同步更新 dream 现状。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>