Repository navigation
Conversation
- 桌面:工作区卡显示工作区状态;侧栏本地图标带「需要你」数字;未关联时不显示会话 chip; Cmd+J 失联库的任务标「无法确认」;会话名按标签页名、终端标题、智能体名兜底; 本地来源下悬停任务按钮不预取 GitHub - 手机:从首页「需要你」进入是全部项目;状态点、「有会话在等你」筛选、PR 与 Checks、 工作区已删除可重新开始做;断开时写明原因;长按取消关联会话;回复失败写原因; 动态写出规则和主机;记住项目、分段、布局;建项目多选仓库;选择弹层可搜索 - 手机新建工作区「创建自」新增 Local,本机、直连 SSH、配对服务器都写到拥有任务库的那台 Orca - 手机发起开始做时直接发送任务内容:主机不投递草稿(D-010),去掉「立即发送」开关, 没有送达时停在任务页说明 - 举一反三:编号当主文字的地方改为标题;按钮置灰一律说明原因;中英文按词表统一 - 创建弹窗与工作区详情打开期间读取在联系的配对主机任务库,没读过的 SSH 库也有 Local 页签 - 需求:新增 §4 用词;6 条需求状态改为如实描述;新增「从提出到验收」草稿 REQ-020~025(D-009,待确认) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 产品方案:以任务为主的工作流与通用对话。 - 方案评审:用户故事、动线、交互,以及复用与兼容。 - 需求:新增 REQ-026~REQ-030;原则改为 8 条;取消 REQ-021「完成标准」;修订 14 条 REQ。 - 技术方案:切片 3a~3d,按复用优先、少碰上游来写。 - 3a、3b 不升库版本,不加 RPC 方法。 - 上游接缝新开 5 处。 - §2.3 列了 5 个待定问题。 - 交互原型:桌面和手机两个页面,样式和脚本内联在页面里,附 70 张截图和 README。 - journal:D-012~D-014,以及开发记录。 只有文档和原型,不含代码。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
用户要求在本 PR 上先做一个用于分配、管理任务与会话、能感知的总管(super agent),任务和会话复用已有的。把调度会话升格为常驻、唯一的总管:任务是它的账本,提案是审批,回写进展与轮次结束是回执,只补感知。 - 产品方案新增 §16,§6.4 指向它 - 需求增补 REQ-030,新增 REQ-031(盯着的任务、收件箱、空闲时唤醒) - 技术方案 M13:Claude 以终端启动(结构化聊天经 Agent SDK,不能用订阅)、对话按面板映射、提案项类型 start/subtask/append/stop/link/record、收件箱与唤醒、工作说明、能力位;M3 加 task needs-you/inbox/watch、list --all-hosts、show --events;§6.3 加验证 7~11 - journal D-015 与开发记录 只有文档,没有代码;交互原型未改。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
总管感知的前提(REQ-022,技术方案 M2、M3 子集): - events.addComment 接受可选的 progress(会话关联、需要你什么),记成带标记的评论;回写不能编辑、不能删除 - tasks.list / get 带 latestProgress:最近一条回写;旧主机不带、旧客户端忽略 - orca task progress <ref> --body/--body-file [--needs-you]:按 ORCA_PANE_KEY 关联到所在会话 - orca task guide [--dispatcher]:智能体与总管的工作说明 - CLI 写入不能进入已完成类别:CLI 先拒绝并告诉智能体怎么做,主机对 cli 来源兜底 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
调度会话即总管(REQ-030、REQ-031,技术方案 M13): - 任务库 v6:local_task_conversations、local_task_proposals、local_task_conversation_watches - localTasks.dispatcher.register(只限桌面窗口)/ inbox / ack / watch / unwatch;localTasks.proposals.create / list / decide(只限人)/ recordResults(只限桌面窗口,执行后自动盯任务) - 提案项 start / subtask / append / stop / link / record;收件箱只报盯着的任务上确定的事:回写、状态(含待验收)、用户留言、会话增减、需要你、提案结果;游标用 (时间, rowid),确认后前移,完成或取消的任务移出 - CLI:orca task propose(提案里可写任务编号)/ inbox [--ack] / watch / unwatch / needs-you,按 ORCA_PANE_KEY 认总管 - 新方法文件登记进功能清单与策略;重新生成 RPC 参数目录 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
- 打开总管:在浮动工作区用官方 CLI 终端启动(Claude 强制终端,不走 Agent SDK), 登记窗格;标签关掉后重开沿用原对话(previousPaneKey),盯着的任务和已读位置不丢 - 执行提案:确认后按条目建任务、挂工作区、开会话、追加指令、停会话(只停独占标签的终端), 新工作区交给 Orca 的新建面板;每条结果回报给主机,收件箱逐条告诉总管做成了什么 - 提案卡放在“需要你”视图顶部:逐条勾选保留、确认/不要;别处(手机)确认过的提案在桌面执行 - 空闲唤醒:总管等输入时、所盯任务有新消息才发一句指引;同一段空闲只发一次, 没看过的旧收件箱不重复唤醒;只跟随主机变更通知和代理状态,不轮询 - 从任务启动的会话第一条指令附上回写说明(REQ-022) - 手机可列出和决定提案;登记与回报结果只限桌面,总管自己的 CLI 调用不对手机开放 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
- 由提案开出的会话在后台打开,确认后你仍停在「需要你」视图,不再被带到新任务的工作区 - 光标在总管终端里时不写唤醒指针,焦点离开后补发(事件触发,不轮询) - 「需要你」视图里加「有新动态时唤醒」开关,默认开;重新打开时补发关闭期间积压的提醒 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
- 详情顶部和预览里是「最新进展」卡:先写「需要你什么」,再写结果和时间 - 看板卡片多一行:有「需要你什么」时先显示它,否则显示结果开头 - 列表行在智能体需要你时标「需要你」,悬停看内容 - 只显示智能体写回的内容,不从会话推断;没有回写的任务不显示 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
- 新开的总管默认显示为聊天视图,底层仍是官方 CLI 的终端会话;窗格头部可切回终端,切换后保持 - 任务页导航最上方加「总管」,显示等你确认的提案数;台账页包含: - 状态条:总管是否在运行、唤醒开关、打开或显示对话 - 等你确认的提案(逐项保留、确认或不要;别处确认过的可执行) - 它盯着的任务:状态、最新进展、来源,可以让它不再盯 - 它派出的任务:每份执行过的提案与它建出的任务 - 它还没处理的动态:下次空闲时会被提醒处理的内容 - 「需要你」视图改为一行提示,链到台账页 - 主机新增只读接口 localTasks.dispatcher.watches,手机也可调用 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
主机与 CLI: - 提案执行前先由桌面认领(confirmed → executing),只有一次认领成功,第二个窗口、过时的卡片或刷新都不会再执行一遍 - 确认收件箱已读时,只移出动态都已被看过的已结束任务,不再丢掉完成之后的新动态 - 建出任务但没开成会话的条目也会被盯上;保留项去重,重复的序号不会让同一项执行两次 - CLI 建任务、删状态时转移任务、PR 合入规则,都不能再把任务改成完成 - 列表读取的最新进展每个任务只取一条,正文截到 2000 字 - 新增 orca task create --parent、orca task update --title(任务说明里写的命令现在都存在) - orca task show 输出最新进展和会话(带 sessionLinkId);提案里的 append/stop 在任务只有一个会话时可省略会话 - 文本模式的收件箱在本页只有隐藏条目时也给出游标 渲染层: - 后台开会话时请求挂载该工作区的终端,没打开过的工作区里会话也会启动 - 唤醒:这一轮开始后你在总管里按过键就先不写,等你发出、下一轮结束再写;只写进一半的指针视为已写,不重复;会话开头的 done 不当作做完一轮 - 总管对所有智能体都以终端启动;启动或登记失败时关掉这个没登记的会话 - 停会话前核对标签里的窗格仍是那个会话 - 同一份提案不会因两次读取之间的决定显示两次;执行中断的提案可以标记为已结束 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
SSH 主机(托管 orcad)和配对服务器上的工作区,任务存在那台主机自己的任务库里(D-008)。 总管第一版只认桌面的库,派到 SSH 工作区会失败。本次补齐: - 执行提案:在工作区所在主机的库里找项目、建任务、挂工作区、开会话; 提案里的任务按 id 或编号在所有能读到的库里查找,CLI 不认识的编号原样交给执行时解析 - 追加和停会话的提案可以不写会话,执行时取该任务唯一的会话;停会话按窗格的稳定 id 核对 - 桌面任务库 v7:记录总管盯着的其他主机任务,以及界面层从那些库读到、转给总管的动态 (按库和事件去重);收件箱合并这些动态,确认已读后已结束的任务不再盯 - 界面层转发:只通过各库的同步读取(跟随主机联系状态,不自己重试),主机断开、恢复联系时 各给总管一条说明(断开期间的任务标为无法确认) - 新接口 localTasks.dispatcher.recordFacts,只限桌面调用 - 说明文字写清:其他主机的任务不在 orca task list 里,但编号可以用在提案中,动态会进收件箱 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
读回提案行时,结果列按与接口相同的 schema 解析,解析不了按没有结果处理; CLI 解析提案项编号时直接复制对象字段。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
- 测试记录:SSH 场景第二次重跑通过(派活、SSH 窗格里的 orca task、动态转发、台账、失联提示) - 技术方案 M13:其他库的任务记在桌面库,由界面层按主机联系状态转发 - 需求 REQ-030、REQ-031 状态更新;journal 开发记录 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
CI 的 anti-slop 检查(no-object-parameters)不允许参数用宽泛的 object 类型。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
WSL 迁移要求应用建的每张 SQLite 表都有处置。总管的对话、提案、盯着的任务、 远端盯着的任务和转发的动态都按总管自己的窗格和任务 id 记录,迁移工作区时不用改写。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJSwNM7ypd9czqv73sn
feat(local-tasks): 总管第一版与任务为主的工作流方案
实现任务首页、侧栏任务树、精简概览、父子进展、桌面会话浮层和手机聊天抽屉。 补齐明确目标派活与撤销、待验收通过打回、PR规则三态及CLI进展与会话匹配。 保留旧完成标准内容,修复SSH仅标签记录的挂载和Web抽屉发送后裁切。 包含已解决的#76增量与方案/原型;本提交保留普通任务能力,随后与#81总管合并。 验证:1402项注册/相邻测试通过,本机、SSH和配对手机主要路径通过。
合并 feat/local-tasks-walkthrough-followups 最新代码,保留 #81 的 v7 总管、 跨库感知与提案确认,以及任务首页、直接派活、会话浮层和手机抽屉。 兼容旧完成标准写入时折入描述;修复重复任务说明及 CLI 参数合并。 用户已确认总管纳入本轮,决策与分支统一范围记录于 D-017。
合入 fork/integration 5772fcf,保留各已登记功能与任务/总管接缝。 统一架构预算登记并重新生成需求索引,后续在 followups 分支审查与回归。
保留全部任务界面与总管实现,修复长工作区ID、旧标准替换、停止确认、输入保护和手机进展与时间线。补无焦点主机投影与有界选中列表,更新登记和回归证据。SSH终端挂载调查及提案人工收尾规则仍在后续记录中跟进。
目录或镜像标签尚未到达时保留挂载前置,就绪后重新发出既有后台挂载请求。补组件时序回归及两轮真实SSH验证记录。
保留任务功能的主机与发送接缝,同时接入已合并的 Markdown 评论锚点恢复。唯一冲突为允许路径数组的机械并集。
- 评论记下所在块、可见文字中的起点与长度和精确源行(换行、表格行、代码行) - 重复文字、跨段落、公式、父列表项、块外起止都按清单处理;只选图片不出按钮 - 一处统一解析位置,虚线、整块竖线、侧栏、窄屏卡片和旧版本列表共用 - 文件改动后按原位置、最近行、同块最近起点找回;文字没了列为旧版本 - 折叠区挂到 summary;重叠评论点击轮换;点卡片或文字时对方闪一下 - 侧栏卡片引用回调按 id 缓存,不再每次渲染重新测量 Fixes #93 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE
Orca 按所在行的第一处匹配查找笔记文字。所选文字在块内重复时,评论锚点多记 前面足以让它唯一的几个字,导入时拼进笔记的选中文字。隔离实例实测:修复前 同一段第三个「评论」在 Orca 里标在第一个,修复后本机与 SSH 主机都标在第三个。 Fixes #93 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE
…dispatcher eval found Desktop - Needs-you band at the top of All, with a row for dispatcher proposals; one shared band builder sets the count for the band, the sidebar badge and the nav. - Task rows, hover progress card, board column order, @ candidates, dispatch box and the create dialog follow the round-6 prototype; this machine reads as 本机. - Sidebar task mode keeps only the mode button; the dispatcher chat docks its proposal panel (NativeChatComposerPane seam). - A session shown full size gets 收回侧边 back to the task with the wide panel; the panel itself does not show it. - An Ask whose arrival is unconfirmed says so instead of asking for a resend. Dispatcher - The guide lists each proposal item format; orca task propose rejects unknown fields and repeats the format; orca task list shows workspace and latest progress. - When a repository belongs to several projects the proposal card locks the item until a project is picked; a direct run reports the candidate prefixes. Mobile - The library header opens with no local projects, so another host is reachable; task refs stay on one line. Docs: TC-312.1 to TC-323.3 and TC-304.2, journal record for 2026-11-10, new tests registered in fork-features. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… new lines Move styling off shadcn primitives onto variants, sizes or plain wrappers, replace type assertions with guards and annotations, and spell out the ledger's stage switch. The project prefix input now uses Input's code variant (12px monospace). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xhaustive LocalTaskRowFacts and LocalTaskProposalItemMeta each kept a dotFor whose default branch failed the type-aware baseline; both now call LocalTaskProgress's exhaustive mapping. The journal records the push and the CI findings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The terminal header chip and the native chat dock pulled the task summary, agent catalog and agent launch modules into upstream panes at import time, so upstream unit tests with partial mocks failed. The chip card and the dock's proposal cards now load lazily, and the dispatcher pane state lives in its own light module. e2e builds no longer open the task page at launch: upstream specs start from the view the session restores, and task specs open the page themselves. Packaged builds are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…k has synced The fork-only step fetched every upstream release tag, so the daemon crossing check and the wire journeys picked releases cut after the fork's last upstream sync. Upstream moved daemon-protocol-version.ts in v1.4.252 and the terminal stream protocol in v1.4.256, so every fork PR that reached this job failed reading them. Drop tags newer than the sync snapshot: fork users upgrade from fork builds, which carry upstream as of that sync. Fixes #97 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ease-baselines fix(integration-builds): 跨版本兼容只拿同步快照之前的上游发布作基准
…owups feat(local-tasks): 统一任务工作流、总管与会话速览
- 评论记下所在块、可见文字中的起点与长度和精确源行(换行、表格行、代码行) - 重复文字、跨段落、公式、父列表项、块外起止都按清单处理;只选图片不出按钮 - 一处统一解析位置,虚线、整块竖线、侧栏、窄屏卡片和旧版本列表共用 - 文件改动后按原位置、最近行、同块最近起点找回;文字没了列为旧版本 - 折叠区挂到 summary;重叠评论点击轮换;点卡片或文字时对方闪一下 - 侧栏卡片引用回调按 id 缓存,不再每次渲染重新测量 Fixes #93 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE
Orca 按所在行的第一处匹配查找笔记文字。所选文字在块内重复时,评论锚点多记 前面足以让它唯一的几个字,导入时拼进笔记的选中文字。隔离实例实测:修复前 同一段第三个「评论」在 Orca 里标在第一个,修复后本机与 SSH 主机都标在第三个。 Fixes #93 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE
- 记「所涉块的行范围 + 显示文字」,整块评论以块文字为所选文字(同 Orca 预览) - 先在末行所在块里找第一处,再全文找;找不到时卡片标 Orca 的「原文已变更」 - 点卡片、点文字都滚到中间并闪一下(同 Orca 评论栏) - 删除自定义的偏移量锚点、唯一前文、页尾旧版本列表与整块竖线 Fixes #93 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE
…hanged) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ELI5
分享页的评论现在完全按 Orca 自己审阅笔记的规则来记录和定位,不再用我另外设计的一套。所以同一条评论在分享页上画线的位置,和它变成 Orca 笔记后标出的位置,一定是同一处。
What Changed
照搬 Orca 富文本编辑器和预览的评论实现,包括
rich-markdown-review-annotations、rich-markdown-range-bounds、markdown-review-anchor-recovery,以及预览的wrapAnnotatedBlock。getMarkdownReviewAnchorLabel)。anchor)、为重复文字补的唯一前文、页尾的“旧版本”列表、整块评论的竖线。Why
用户多次要求“照着做”。之前的定位方案是我自己设计的,规则跟 Orca 不一样,所以分享页和 Orca 两边对不上,我又在上面反复打补丁。这次全部改成 Orca 的规则。
Linked Issue
Fixes #93
Visual Proof
截图在忽略目录
.docs/artifact-share-anchor-ui-validation/2026-11-09/evidence/orca-local-orca-rules/:share-page.png是分享页,orca-rich-editor.png是同一批评论在 Orca 里的样子。Testing
I manually tested these changes locally
Automated tests added/updated, or explained why not below
隔离 Orca 实例:在浏览器里选中文字评论 6 条,覆盖重复文字、多行段落、表格单元格、代码行、父列表项和整块评论。分享页画线的 6 处,与 Orca 富文本编辑器标出的 6 处逐条一致(同一段文字、同样的前文)。
单元测试:本功能共 22 个文件、87 项,其中
share-comment-anchors.test.ts按 Orca 的规则断言。页面走查:桌面版和 Orca Server 版各 59/59。
类型检查与 lint:
pnpm tc:web、tc:node、tc:cli通过;lint 与代码质量门禁通过。check:changed:24 项中 23 项通过。失败的单元测试与本 PR 无关:agent-launch-cwd-{refusal,resources},本容器里一直失败;cross-version-web-device-key,本容器是浅克隆,没有发布标签。SSH 主机:上一版的 SSH 实测(主机 Orca Server 写笔记并推送)在本 PR 前一个提交上做过,这一版只改了分享页的规则,SSH 链路没有重跑。
Risk
Level: Medium
anchor。这个字段只在未合并的本 PR 里出现过,没有线上数据。AI Disclosure
由 Claude Code 编写。
Review
Agent skill upstream boundary
Notes
Ensure no issues in: Security, Cross-platform support (Linux, Windows, Mac), Remote SSH, Mobile, general backwards compatibility, performance
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)🤖 Generated with Claude Code
https://claude.ai/code/session_01GvYgJTauKiWYFs7yP44RSE