Files
ycode/docs/对话资料沉淀与任务引用确认-2026-10-17.md

16 KiB
Raw Permalink Blame History

对话资料沉淀与任务引用:源码核对(2026-10-17)

用户确认问题:对话如何沉淀到资料库,普通资料库与项目资料库如何区分,以及对话/任务是否自动以资料库为依据。

本轮使用reverse-engineer-anything技能复核既有REA捕获正文。没有上传、修改或创建原版资料;发现主窗口有运行中会话后仅做被动观察,没有导航或发送测试消息。以下业务结论均为固定源码观察,不是完整运行态或后端行为验收。

1. 证据

原版均为WorkBuddy 5.8.3。主要归档:

  • 资料库及共用已加载脚本:ev_82a9ad8ec38c807e465646d749e2cedbb150fec62e30234c97acd0bb309c349e,.tmp/rea-four-modules-library-stable-20261017.json。
  • 主窗口脚本:ev_2b8db4eb73c59a8d3d80c3e37db5ea9b5bf1d13390d5238d81ff2cc53d11dc09,.tmp/rea-todo18-main-scripts.json。
  • 项目详情及发送逻辑:ev_ca0195278ba08b57f2d847e4d96e3a35490f26367b71b810563b01b03470d000,.tmp/rea-todo20-project-detail.json;任务页补充 ev_8782905c492acd1618e137480a3da8a8d7eba56e8f328e4856b008e1dd7f34ea。
  • 本轮只读主窗口:ev_87e1797f654b717af1b300cbf1c971ade495e48b5a43e1f254903defd6e0b23c,.tmp/rea-library-task-link-baseline-20261017.json / .png。只证明当前画面,不用于证明自动检索或上传行为。

页面捕获有policy_filtered范围,未归属脚本/资源被排除。下面以实际包含的模块正文为边界;缺失工具/后端行为不能按负面搜索当成全产品不存在。

2. 三类资料不能混为同一保存动作

类型 当前证据确认 不能据此推出
本地产物 成功write/edit/present_files/imagegen等工具事件被投影为任务产物;有内部artifact-index路径 云端入库、整段对话被保存、所有项目源文件都成为资料
普通资料库 个人/团队文档空间;由fetchSpaces取得,选择器按个人/团队展示 对任意账号都可见、默认全库全文进入每轮模型请求
项目资料范围 lockProjectId时取得该项目的space.id并锁定树;另有项目NetDrive资产选择/上传路径 两个入口必然共用或必然分离后台存储、可跨项目访问

项目资料库首先体现项目归属和选择范围。space文档系统和项目NetDrive在客户端有不同路径;不能只靠名称合并成同一后端,也不能反推成两套数据库。

3. 对话产物如何保存

自动归集为本地产物

源contexts中的artifact规则与分支解析,以及artifact-DiRw8UKk.js:isHiddenArtifactPath,表明本地产物索引和云文档写入是两条链路。索引不是把聊天原文上传到资料库。

产物工具栏的显式保存

selection-quote-conversation-input-eBPyMR25.js:resolvePersonalUploadTargets(字符偏移3799附近,SHA-256 80904295f5a938dbfacf8e2e5bceab978eaf9d1d3a467c4e8d4076f639bee271)按能力开关、canSave、是否项目会话和服务可用性决定入口:

  • libraryUpload路径要求非项目会话;旧NetDrive个人库路径也检查非项目会话。
  • projectAsset路径要求项目会话、可保存及项目NetDrive能力可用。
  • 这是该工具栏的入口策略,不代表用户通过其他产品入口永远不能跨空间保存。

detail-panel-wrapper-BZPa078h.js:uploadArtifactToPersonalLibrary(偏移33344,SHA-256 004a480f8014fd9eb68fe3df85f0557480b60765514ff0f6ee9fd55821b4049c)读取产物、准备上传、调用backend.uploadToKnowledge。已有节点/内容hash可复用,变更时可能按nodeBlockId更新,并处理容量/格式等失败。

同模块project-asset分支(偏移61647附近)校验项目角色、解析url/sandbox/conversation中的projectId,初始化该项目NetDrive,然后打开上传选择流程;不是自动把产物上传任意项目。

模型工具写库

src-DbE1_mgM.js:convertLibraryUpload(偏移1049061,SHA-256 6c6ce63c93854783270e855572797d75e536e3b8d4548410e31fe9d147e1feb4)及LibraryUploadView证明存在LibraryUpload工具和结果/错误展示。

因此写库不只可能由人工按钮完成,也可能通过模型工具;但何时由模型调用、工具完整参数与个人/团队/项目目标选择仍缺后端/受控运行证据。不能说“每次对话自动写库”,也不能说“只能手动按钮写库”。

local-docs-facade的autoSaveContext/saveContext是本地Office编辑上下文保存,不等于聊天入库或资料库上传。

4. 普通资料与项目资料如何被引用

space-library-picker-iy0rD3_T.js(SHA-256 648cf973cd4f7b2b7ae8cd7a0db26755d8671583ead81a62bcfa185491901ea3):

  • 普通模式fetchSpaces请求/space/api/view/query/spaces,分个人和团队;查询搜索由选择器关键词触发。
  • lockProjectId模式调用fetchProjectSpace(projectId)→POST /space/api/view/query/projectspace,从space.value取space.id,再按该ID读取records。隐藏普通tab/搜索,只构造当前项目树。

space-library-DZ_aI7LI.js:buildSpacePickerBlocks(偏移4608;SHA-256 91bbbd1b9b1602088e8e19d495f29b44da25d8df20028c663163baa8db3d5cbd)在用户选中资料后生成隐藏的skill://library引用及space-doc块,保留docId、URL、kind、source等元数据。发送转换会把所选URL带入本轮输入。

这证明显式选择资料→引用与所需技能→本轮发送的客户端通路;尚未证明library技能实际读取过程、全部检索工具、内容解析时机及是否全量读取目录。

5. 对话如何使用项目任务/待办

use-project-local-chat-config-DqSrAK4B.js(SHA-256 e6e153194a543b5cdc52c5cac1f96727571aa2ca9b2ab78bf6c79bc35d05f636)的useLocalTaskAggregatedProvider同时提供待办计划、项目NetDrive资料和本地文件候选;todo候选默认过滤已完成项。

选中待办后,create-local-todo-chip-CS01etNd.js:createLocalTodoChip(SHA-256 0496cea90c780a2480ef063f79dd8555929295aada161d0c38ba63a920d48d5a)产生todo://id引用,包含projectId、状态、标题/描述/摘要、snapshotSessionId和tags。这是对待办的引用,不是把其他所有会话都并入上下文。

项目详情已捕获的teams/cloud发送链路中:

  • extractTodoContext识别所选todo,构造todo-reference。
  • collectTodoNetdriveAttachments按projectId+todoId读取待办,把其明确关联的netdisk附件加入tdrive-attachments。
  • 因而有“选中待办后自动补关联附件”的逻辑,不等于检索整个项目资料库。

本批证据未观察到独立task://chip,不能据此断言全产品不存在。用户说的“任务”须区分项目待办引用、实际对话任务和定时任务执行。

6. 自动上下文的准确边界

在project-detail-page-DdYKdEkr.js:resolveAndSendPrompt(SHA-256 a5630ae6ad4e053e8d085a569a67c102c4226a14c7f27a3e62e69601d0f8d2c1)的teams/cloud发送链路,原版在可解析根信息时加入:

<tdrive-root id="…" dir_name="…" scope="project" />

还包含项目指令、连接器状态、所选todo/附件、工作总结和当前时间等,固定块有首轮/变更去重。根指针不包含目录全文或所有文件正文。

同链路默认可走backend.resolveMessage,解析显式blocks和项目上下文,失败/超时可回退本地拼装;后端算法与实际检索范围未知。

不能把上述结论外推到所有本地项目会话。 local的createConversation→adapter.prompt已确认携带projectId、promptContentBlocks、projectResources;后者只有connectorSkills/mcpServers/projectSkills,没有资料列表。本地adapter/内核是否另注入根或自主检索仍待证。

因此当前可确认的层级是:

  1. 按项目或个人/团队范围选择资料:已证。
  2. 显式引用资料/待办,并在部分发送链路补关联上下文:已证。
  3. teams/cloud路径默认携带可解析的项目根指针:已证。
  4. 模型每次任务都自动list/search/read全库,或全库正文自动注入:未证。
  5. 原版定时任务默认自动检索资料库:未证,需另核对持久化引用与触发执行链路。

自动化列表中的dataSource会参与local/cloud来源与开关能力判断,不能据该字段名断言“阅读资料源”。中文资源另有外部数据源同步到协作项目的文案,也不能仅凭词条证明当前定时执行会读取资料库。

7. YCode当前与开发计划修订

  • 当前YCode自动组装能力快照、非空项目指令、个性化/记忆;显式quotes/attachments和工作目录路径随消息进入请求。没有资料库读写/检索服务,也没有项目资产模型。
  • 普通文件工具可以读取工作目录,这不代表资料库自动接入;项目指令注入也不代表资产全文进入上下文。定时任务尚未实现。
  • 三模块开发必须包括对话入口:本地产物归集;个人/项目目标明确的入库动作;保留类型与来源的资料/todo引用;按作用域解析和实际读取记录。
  • 不把资料库引用全部降成普通路径或一段拼接文本,也不能仅显示引用chip而模型请求没有对应资源。
  • 先前计划中的内容快照是YCode本地适配建议,不是已证原版全文冻结行为。现在应先保留原版引用身份、URL/ID、类型和元数据;云资料何时解析/读哪一版仍待证。本地可增加快照保障历史重建,但必须单列为适配决定。
  • 项目资料范围应显式绑定projectId;不因有projectId就静默注入个人/其他项目全部资料。

本轮只新增确认记录、更新开发计划链接与引用语义说明;没有修改业务功能。尚未完成上传/引用/模型检索的受控运行验收。

8. 追加确认:何时拆解任务、何时沉淀资料

8.1 对话内计划与项目事项分别看待

已捕获的adapters-DF2aWDY_.js(SHA-256 c4529f43704680c595661fc20578ee813cac20912a9f2324e9b03c33e04ea0c4,位于项目详情REA归档)中:

  • PlanToolAdapter识别plan_create/plan_update等实际工具数据。
  • syncTodoStatusFromMessage在消息中出现todo_write/TodoWrite工具调用后,提取结果并更新对话的todo状态;merge为false时重置当前列表。
  • handlePlanSessionUpdate在收到ACP plan事件时同步计划条目。

另一路不能遗漏:contexts-DgzzFjnf.js(SHA-256 8d0c375f141cf724c7f77233ee1d54dd21c9cc86286b79d119711f34a6236746)的createTaskPlanCard / projectTaskTimelineMessages可根据已存在的权威taskList合成todo_write显示卡。它是展示投影,不证明本轮模型真实调用过TodoWrite,更不证明列表由前端自动拆出。

这些是事件到达之后的展示/状态同步,不证明renderer会识别用户任务复杂度并主动要求拆解。现有证据没有统一的“超过几步/多少字/多少文件就拆”阈值,也没有证明每次发消息、回复结束或任务完成时都会创建计划。

对话出现计划卡片或TodoWrite结果,不能直接当作项目数据库里的待办已创建;项目事项的持久化必须另有项目创建命令或已证交接链路。

8.2 项目计划页还有尚未采到的远程业务

plan-host-CQg0zimX.js:ProjectPlanFederationHost(SHA-256 501ea6feabfa9458df2585f636b3b765e70701546e3ebd71a60f032778b37a16)挂载远程project-plan模块,并向它提供chat.addTodosToChat、quoteCommentToChat等接口。这里可确认选择事项后引用到对话,不能从host反推远程计划模块的“AI拆解/批量创建”逻辑。

计划页新建待办的完整点击处理、AI拆解的入口/条件、后台批量创建和模型系统提示词均未完整取得。因此“复杂任务自动生成项目待办”的规则仍待证,不用通用AI习惯补成原版结论。

8.3 已证实的交接触发:创建事项并上传关联资料

task-transfer-popover-CuSX2nzk.js(SHA-256 9b701f16edd2645655b85ca9d278f50958e7051e54351faed7ae84e61b4bec71,同项目详情REA归档):

  1. 交接表单提交路径调用createLocalTaskTodo→planCommands.createTodo(projectId, {...source:'handoff'}),包含标题、摘要、负责人、时间、标签和状态等。
  2. 存在表单携带的附件、本地文件或产物时,后台调用finalizeLocalTaskAttachments。
  3. 该函数读取实际产物、uploadTodoAttachmentsToProjectNetdisk上传,再通过addTodoAttachment关联到刚创建的事项。
  4. 事项创建成功提示先于后台附件上传完成。 上传可能部分失败,源码有单独错误反馈。因此交接成功不等于资料已全部上传成功。

触发条件是明确的交接动作及其携带的数据,不是普通任务终态自动发生。代码中待办创建与上传关联可串联,尚未完整验收其服务端/权限和远程UI流程。

8.4 模板给出了业务阶段提示,不是自动落库定时器

模板依据为REA ev_89843a8b67f411d3297b5f3e428830393cd0fe8712603816cf8b7bbe442064d9,由recover-project-templates.cjs校验正文hash后静态恢复为project-templates.json。

已确认的示例:

  • 产品需求模板:帮助拆解研发任务、子任务与依赖;PRD完成后提醒上传项目资料库并创建评审事项;评审结论可沉淀,待办问题拆成事项。
  • 调研模板:阶段完成后主动提醒上传资料、分析表和报告;重要洞察创建评审事项。
  • 交付模板:拆里程碑、负责人、期限与依赖;验收后上传结论和交付文档,将遗留问题创建后续事项。
  • 知识库模板:引导将经验/会议结论/SOP/FAQ整理成结构化文档,提醒沉淀与维护。

关键词是“帮助”“提醒用户”“可以创建/上传”。当前代码将这些文字作为项目instructions提供给模型,没有证据证明客户端解析这些中文句子后自动创建事项或上传文件。它们说明模型应在哪些业务阶段建议拆解/沉淀,不能替代真实工具调用或用户提交的执行证据。

8.5 触发矩阵

时机/动作 拆解/事项 资料沉淀 证据层级
用户仅发送一条需求 可能引导模型规划,是否调用计划工具未证 无已证整段聊天自动入库 agent决策规则待证
agent发出todo/plan调用、plan事件或取得已有权威taskList 同步/投影对话计划与状态,卡片可能为合成展示 不因该事件自动入库 adapter及task timeline静态已证
成功写/编辑/展示产物 不自动等同创建项目待办 自动归集本地产物,不等同云库上传 artifact规则静态已证
产物工具栏保存/上传 不必创建待办 按个人/项目目标执行上传 保存分支静态已证
agent调用LibraryUpload 不必拆任务 执行一次工具入库,目标和实际成功另验 工具展示/转换已证,后端决策待证
用户确认任务交接且携带产物/附件 创建项目handoff待办 后台上传并关联附件,可能部分失败 交接客户端静态已证
达到模板描述的阶段 提示模型帮助拆解/提醒创建 提示模型提醒上传/沉淀 提示词已证,实际决策待证
会话/所有待办完成 未证自动新建事项或再拆解 未证统一自动上传hook 不标已实现或原版规则

8.6 YCode开发约束

YCode当前executeConversationTool(todo_write/create_plan)根据工具参数构造PlanContent作为工具结果;生产链路主要保存tool_call/tool_result,由renderer从工具参数/结果生成计划卡,没有独立项目待办服务。ChatEvent虽支持plan part,当前未确认生产plan事件发射器;TaskContent也不能视为已有项目任务创建能力。资料库入库与项目交接仍未实现。开发时区分会话计划、项目事项和产物/资料三种对象,并保存可追溯关联。

不能自行加入“复杂就拆”“回复结束就上传”“全部完成就入库”等固定策略再称1:1。已证自动部分可先实现事件投影与状态同步;模型何时调用工具依赖完整工具/系统指令,远程计划业务需REA另取。交接动作应分别跟踪事项创建、上传中、关联完成、部分失败和恢复。