Repository navigation
Conversation
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
…dback Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
…alification Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Adopt the existing origin-aware fixture helper and its foreign-origin refusal. Keep room-work IO on the shared Lark CLI transport owner after the upstream extraction. Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; reasoning_effort=xhigh; declaration_source=runtime_reported
动机
评审 head 1adf3b87ae8909be638e19c34520ae1669c714f8(base f43732cd7deaefe574d39b8449e9d5fc2ee41543)。已有 Goal Channel、Todo 领取和 Turn Recall 分别可用,本 PR 将它们组合为本地房间领取与私有重连入口,减少人工核对“消息已送达还是任务已领取”的负担。依据 #5198 和其已接受的三方协作 RFC,当前交付为明确限定的 legacy-profile 本地源码阶段;真实房间、多主机和完整产品旅程继续留在原任务。
已有本地 Agent 和 Goal Channel 的操作者,需要从房间领取任务并在重连时检查当前权威。
本地已注册 Agent 先预览可领取任务,向指定房间发布单次授权卡片;点击后读回 canonical 接受事实,丢回复使用原 key 恢复,重连只恢复私有上下文并重新核对 quota。
真实隔离 File/SQLite、独立 CLI/TS 进程及生产 collector 的合成传输测试验证竞争只接受一次,拒绝越界、重放不续租,恢复不写记忆 provider。
不关闭真实房间、独立认证多主机、daemon 重连、live OpenViking、任意外部 artifact、source-session 效果或完整前端旅程;不授权部署或合并。
真实房间、多主机、daemon reconnect、live OV、source-session 与完整房间前端旅程仍待资格。
改动思路
goal-channel work project|claim|offer|revoke|resume 复用原配置与权威。Python 处理当前连接、注册身份和 Lark IO;TypeScript Todo owner 继续负责 revision/CAS、领取和原操作回执。新增 room read/admission 模块只组织一次交互。offer 私有文件保存授权意图与投递元数据,没有第二份可推进的 Todo 状态。
对照 已接受 RFC 的 Controlled Command Contract、Reconnect And Replay 与 Smallest Useful Slice 5/6 live qualification:前两项在本地限定阶段已验证,最后一项真实联调明确 deferred。
现有 Todo 保有唯一领取权威;offer 仅存授权意图和投递元数据,私有 recall 不变更工作。 本地源码阶段交付真实 store 与合成 transport 组合,原 #5198 及 shared-authority/provisioning owner 继续负责真实旅程。
具体改动
projectRoomWork(room_work_projection.ts:6)调用既有领取规则,仅投影标识、计数与 revision,不公开任务正文或记忆;run_goal_channel_work(goal_channel_work.py:67)在确切连接和当前 actor 下领取,再分别读回历史接受事实、当前 owner 与消息。handle_room_claim_callback(room_claim.py:220)检查指定 principal、成员/租户、Bot/profile、原卡片/消息、当前源路由、注册身份、绑定和到期,再使用原 revision/key 请求 canonical claim。撤销与 callback 持同一 offer 锁;恢复只补结果卡片,不重复领取或续租。run_room_resume(room_resume.py:27)强制重新只读 recall,明确禁止该次 ingest reconciliation;检索前后核对 scope、canonical revision 与 quota。变化丢弃上下文/引用,provider 不可用则保留当前控制观察;引用须同时属于当前配置范围和已验证 recall receipt,不代表目标访问权。- 共享 claim 的两项行为变化已披露:外 Agent 的
bound_agent拒绝;legacy wire 上显式goal_ref(含 null)在 provider/旧 receipt 访问前拒绝。未提供该字段的合法 direct claim 保留。CLI loader 复用、原自动 recall 默认、collector 默认关闭与 TS 目录发现保持;浏览器 fixture 的 Origin 对齐既有代理,没有放宽服务端策略。文档给出启用、撤销、禁用、恢复与剩余资格。
对主干的风险
完整审阅 28 路径、+2223/-23 和 29 个 DCO commits,覆盖运行时/CLI 14、验证 10、文档 3、TS 配置 1。主要风险是多层 scope 与回执/投递的组合,而非代码行数。当前独立运行:七组 Python 200 passed/0 skipped;room TS 9 passed/0 skipped;共享 local-authority/receipt 与真实隔离 PostgreSQL 16.2 385 passed/0 skipped。真实 File/SQLite base/head 对照中,原合法 unbound direct claim 的完整 canonical record/status 相同;另四个 foreign-bound/显式 GoalRef 基线误接受,在当前 head 均拒绝且 revision 不变。竞争、旧 key 重试、消息丢回复、撤销/过期/换源/换身份与 recall 故障均由实际本地权威核验,Lark/OV 传输保持合成标签。
类型检查、先 advisory 后全量 semantic 与 exact-base premerge 5 direct +19 selected 通过,零失败/hold。生产 Chat 打包/源码校验单独读回,不据此声称房间前端已完成。本轮未获取或等待 hosted CI,也不把作者的旧测试/CI 结果当当前独立证据。真实房间渲染/listener、独立认证多主机、daemon 重连、live OV、任意 artifact target、source-session 生命周期和长期净收益仍需原有 owner 继续资格。
我的整体评价
APPROVE,针对当前完整本地源码阶段。 未发现该限定阶段的新增阻塞。已做有界前向重构检查:复用现有 claim、delivery、recall loader 与生产 TS source discovery,未新增配置或平行 Python 决策 owner。后续继续 #5198/#3245/#4339/#3964 的真实旅程和权限边界;本评审不关闭整个 RFC,也不授予合并或部署权限。
English verdict: APPROVE — 1adf3b87ae8909be638e19c34520ae1669c714f8 delivers the bounded legacy-profile local claim/reconnect composition with canonical authority, scoped replay and private recall. Independent real File/SQLite and PostgreSQL checks passed; live room/host/provider and full frontend qualification remain explicit follow-up boundaries. CI was not consulted.
Signed-off-by: Lihua <1017343802@qq.com>
Refresh the PR base while retaining the direction authority consumer pin and all mainline consumers. This preserves branch ancestry so the repaired head can be pushed without rewriting history. Signed-off-by: song <liusongstep@gmail.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Review exact head: 5248@bef0df301e88745451ce5d108745e94bfee27bdd
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=xhigh
动机
已有本地 Agent 和 Goal Channel 的操作者,需要从房间领取任务,并在重连后重新检查当前权威。现有消息投递、Todo 领取和 scoped recall 各自可用,人工拼接容易把消息送达、历史接受或记忆内容误当当前执行许可。本 PR 交付明确限定的 legacy-profile 本地源码组合阶段;真实房间、多主机及完整产品旅程仍属 #5198 的开放验收。
本地注册 Agent 可预览、发出有具体 principal/revision/expiry 的单次授权卡片,收到 canonical 领取回执并分别读取当前 owner;丢回复可用原 key 恢复。重连只获取私有上下文及受限引用,再核对当前 scope/quota,不领取、续租或发送私有记忆到房间。
当前实际 File/SQLite、独立 CLI/TS 及真实 PostgreSQL 验证本地竞争只接受一次、原 key 重试和 scope/privacy 拒绝;新 wheel 的配置旅程也已核对安装来源。不验证真实房间、多主机、live OpenViking、任意外部 artifact 或完整房间前端。真实房间、多主机、live OpenViking 与完整房间前端继续开放。
改动思路
对照当前主干已接受 RFC 的 Controlled Command Contract、Reconnect And Replay 和 Smallest Useful Slice 5/6 live qualification:本地受限 facade 与回执/重试语义已验证;真实非生产房间、独立认证的 hosts、daemon reconnect 与 live scoped OpenViking 检索明确 deferred。
Todo 的 TS owner 继续负责准入、CAS、唯一 transition 和原操作回执,Goal Channel 继续负责连接与投递;Python 只适配 CLI/Lark IO。offer 保存不可从 membership 推导的授权意图及结果卡片投递事实,不保存第二套可推进的 Todo。卡片或 recall 单独扩展不能解决 canonical 竞争与恢复,现有 owner 的窄组合是合理切片;该源码提案不关闭整个协作 RFC。
具体改动
projectRoomWork:6复用原领取规则,仅投影标识、计数与 revision;run_goal_channel_work:67在确切连接/actor 下领取,分别返回历史接受事实、当前 owner 和消息。handle_room_claim_callback:220核对指定 principal、成员/租户、Bot/profile、原卡片/消息、源路由、注册身份、绑定、撤销和到期,再调用原 revision/key 的 canonical claim。恢复只补原结果卡片,不重领或续租。run_room_resume:27强制新的只读 recall,关闭这次 ingest reconciliation,并在前后核对 scope、canonical revision 和 quota。变化丢弃上下文/引用;引用还须属于当前配置范围及已验证 recall receipt,始终不授 target access。- 两项共享行为变化已明确披露:foreign
bound_agent拒绝;legacy claim 显式携带未资格goal_ref(含 null)在 provider/旧 receipt 访问前拒绝。合法不带该字段的 direct claim 保持。
全 PR 28 路径、+2225/-27,33 个提交均有 DCO;runtime/CLI、测试/fixture、文档和 TS test 配置均纳入。相对旧评审 1adf3b87,24 个 head blob 相同;变化为三个 Lark adapter 改用主干已有 cli_transport,及 automation-cadence fixture 使用共享 Host/Origin forwarder、testPythonCommand。同时核对新 base 3593cf17 的调用者:领取、recall、CLI/collector 语义 owner 未漂移;delivery/card callback 也已采用同一 transport。该有界重构移除了传输与来源判断的重复知识,没有新增能力、配置或 Python 决策 owner。
对主干的风险
独立当前结果:十组 Python 249 passed/0 skipped,房间 TS 四组 9 passed/0 skipped,共享 local-authority/receipt 与隔离真实 PostgreSQL 16.2 三组 385 passed/0 skipped。实际 File/SQLite base/head 配对中,两项合法 unbound direct claim 的完整 canonical record/status 一致;另四项 foreign-bound/显式 GoalRef 输入在 base 被接受,当前 head 拒绝且 revision 不变。竞争、同 key 新进程重试、撤销、错误 principal/card/route、丢回复和 recall 故障由真实本地权威检查;Lark/OV 传输保持合成标签。
新 wheel 构建后安装到隔离环境,实际启动的 cadence companion 及独立准入命令均导入安装包;源码 launcher 则导入指定 checkout。实际 wheel 前端从 Goal 设置进入,键盘保存 60 分钟,经真实 HTTP preview/apply/readback 只有一次 apply;-1 拒绝且保存禁用。当前安装包与源码进程读取同一未启动 reservation,均为 resumed_unstarted_reservation,保留同一个 next-eligible 时刻;没有把 reservation 当已开始执行。外来 Origin 403 保持,服务端认证策略未放宽。
typecheck、当前打包/校验、Ruff、advisory 后 full semantic、exact-base canary 5 direct +19 selected 均通过,零失败/hold。原作者记录的一次导航点击超时原因仍未知,未用当前通过替它编造根因或长期稳定性。未获取或等待 hosted CI。
当前验证的是配置 fixture 的安装来源和本地房间源码组合,不是 packaged room-work frontend journey。真实房间渲染/listener、独立认证多主机、daemon 重连、live OpenViking、任意外部 artifact 目标访问、source-session 生命周期和长期净收益继续由原有 #5198/#3245/#4339/#3964 接续;不因本地绿灯关闭这些验收。
我的整体评价
APPROVE,针对当前完整、可独立回滚的本地源码阶段。 当前整合没有引入新的阻塞。前向重构检查已落在既有 transport、typed claim 和测试来源 launcher 边界,未保留第二份生命周期权威。真实产品/房间/host/provider 资格仍开放,独立 exact-head 批准不等于父任务完成,也不授合并、部署或升级权限。
English verdict: APPROVE - bef0df3. The bounded legacy-profile local claim/reconnect composition preserves canonical authority and private scoped recall after main integration. Independent249 Python,9 room TS and385 real-store/PostgreSQL checks pass; paired defaults and the installed cadence path are verified. Live room/hosts/provider and the complete room frontend remain explicit gaps. CI was not consulted.
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Review exact head: 5248@e5a7361938ca4562535156e3427f326ee8e6b20f
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=xhigh
动机
已有本地 Agent 和飞书 Goal 连接的操作者,需要方便领取任务并在丢回复、刷新后恢复原请求。 现有消息投递、Todo 领取和私有 recall 各自存在;人工组合容易把消息送达、历史接受或记忆误当当前执行许可。本次交付限定为 legacy-profile 本地组合及打包房间界面阶段。
从现有 Lark 连接进入房间工作,读取当前可领取任务;提交前保存原 tuple,丢回复后刷新、关闭重开仍用原 key 恢复,并分别显示历史接受、当前归属和消息凭据。
隔离安装 wheel 的真实 HTTP/File 权威与浏览器证明:连续点击只提交一次,刷新后使用同一原请求恢复,最终只有一次领取和一张结果卡片;独立安装包 CLI 读回相同当前 owner。
不资格化真实飞书房间、已安装 App、独立认证多主机、daemon 重连、live OpenViking 或任意外部 artifact 访问。 #5198 的真实房间、多主机、live provider 与长期净收益验收继续开放;当前完成的是可独立回滚的本地组合及打包房间界面阶段。
改动思路
对照主干已接受 RFC:Controlled Command Contract 的 actor/revision/key/receipt,以及 Reconnect And Replay 的原请求恢复、当前 scope/quota 复核已在本地边界验证;Smallest Useful Slice 5/6 live qualification 的真实非生产房间、独立认证 hosts、daemon 和 live scoped OpenViking 仍 deferred。当前 PR 自加 checkpoint 不替代原验收。
Todo 的 TS owner 继续负责准入、CAS 和原回执;Goal Channel 负责连接及投递,Python 只做当前来源校验和 provider IO,前端仅保存原请求意图。 现有连接入口、严格 HTTP 适配和原请求恢复组成可用的本地阶段;真实房间、独立 hosts、provider 与安装 App 继续由原验收接续。 单改卡片不能证明 canonical 接受和安全重试;仅保留 CLI 会留下可用前端入口缺口。现有 owner 的这次组合有实际调用者,不需要新能力、第二份配置或 Python 决策源。
| 用户遇到的情况 | 当前界面与权威结果 |
|---|---|
| 首次领取 | 先保存原请求,再由当前连接的 Agent 进入 canonical claim |
| 已接受但消息回复丢失 | 保留原 key,恢复历史回执;当前归属和消息凭据分别回读 |
| 存储不可用或连接 scope 改变 | 首次效果前拒绝,或要求重新读取当前连接;不推导执行权限 |
具体改动
RoomWorkPanel从现有连接进入,以同步 in-flight guard 防止连击;原 tuple 在发送前保存。未知结果可跨刷新恢复,终态清理意图;关闭忙碌窗口不伪造取消,焦点圈定并返回原按钮。_room_work严格限定输入,由当前连接推导注册 Agent,以当前 binding/source digest 和已有 Host/Origin 保护约束操作;manager、越域、重定向和读取/执行间变化均拒绝。run_goal_channel_work继续调用原 TS Todo owner;历史接受、当前 owner、传输 readback 分离。handle_room_claim_callback保持 principal、成员、原卡片/消息、路由、撤销和到期检查;run_room_resume只读私有 recall,跳过 ingest,并在取回后复核 scope、canonical revision 和 quota。
整份 PR 为 42 路径、+2975/-28,37 个提交均有 DCO。相对旧评审 bef0df301e88745451ce5d108745e94bfee27bdd 的 23 个 blob 相同,19 个变化/新增路径为 +754/-5;本次重置整份 PR 判断,核对源码、规则、调用者、依赖、环境和声明后才复用旧证据,没有继承旧结论。新增 UI/HTTP、默认 optional projection、文档和两张合成截图均重新检查。绑定其他 Agent 的 direct claim 和显式未资格 GoalRef 拒绝是已披露的共享行为修正。
对主干的风险
当前独立验证:Python 210 passed,四组房间 TS 10 passed,共享权威/回执及隔离真实 PostgreSQL 16.2 385 passed,均零 skip。实际 File/SQLite base/head 配对中,两项合法 unbound direct claim 的完整 canonical record/status 一致;四项 foreign-bound/显式 GoalRef 在基线接受、当前拒绝,且拒绝时 revision 不变。
正常 wheel 构建并安装到隔离环境后,HTTP 后端和静态资源均读取安装包。通过实际浏览器走“设置 → Lark → 连接 → 房间工作”:存储异常时零 POST;同步连击只有一次提交;丢发送回复后刷新,再在恢复忙碌时关闭、重开,三次请求使用完全相同 tuple,最终只有一次 canonical 领取和一张结果卡片。独立安装包 CLI 读回同一 owner/revision。1200px 桌面、390px 中英文、Tab/Shift+Tab 圈定、Escape 关闭和焦点返回均检查;当前归属不冒充历史接受,消息凭据也不冒充执行许可。
这里真实的是安装 wheel、HTTP、本地权威及独立 CLI,workspace discovery 与 Lark/OV 传输保持合成标签。预览初次失败来自 API-only fixture 没有静态资源配置,之后代理直接读取安装 wheel 资源;配对探针首次退出遇到测试清理与 Node 缓存竞争,延后清理后的两端完整重跑均退出 0。两类私有测试环境问题及原记录均保留,没有修改产品断言。背景 private-conversation fixture 使用旧响应形状,未将它算作整个 Lark 设置旅程通过;原作者旧导航点击超时原因仍未知,也未宣称长期稳定。
Typecheck、前端生产构建、wheel、Ruff、advisory 后 full semantic、exact-base canary 5 direct +19 selected 均通过,零失败/hold;未查询或等待 hosted CI。当前安装包房间操作已有真实后端和故障恢复证据,仍不证明真实房间、native callback、已安装 App、多主机、daemon、live OpenViking、source-session 生命周期或长期净收益;原 #5198/#3245/#4339/#3964 接续这些边界。
我的整体评价
APPROVE,针对当前完整且可独立回滚的本地组合及打包房间界面阶段。 未发现当前新增阻塞。前向重构已复用既有连接、transport、typed claim 和独立 HTTP mixin,避免在大 Lark API 中再造状态权威;更大的跨主机/生命周期工作仍归原 owner。本次批准不关闭父任务,也不授合并、部署或升级权限。
English verdict: APPROVE - e5a7361. The local canonical claim/private reconnect composition now has a real packaged room-work entry with original-request recovery. Independent 210 Python,10 room TS and385 real-store/PostgreSQL checks pass. An isolated installed-wheel browser/HTTP flow preserves one claim and one card across lost replies and reloads; live Lark/OV,independent hosts and installed App qualification remain open. CI was not consulted.
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=xhigh
Review exact head: 5248@e5a7361938ca4562535156e3427f326ee8e6b20f
[P1] 回调应在领取效果点保留原 offer 的绑定约束 — room_claim.py:264–268。原 _scope 校验之后还有成员和原卡片的远端 IO;若此时连接被改绑,run_goal_channel_work 未收到原 expected_binding_digest,会把新绑定当作起点,并在其锁内正常提交领取。随后 _scope 才返回 binding_changed,已经无法撤销 canonical 接受。真实 File 和 SQLite 均复现 revision 增加一次、owner 变为 agent-a 后才报错。请把原 offer 的 connection/digest 见证传入已有 facade 并在原锁内、claim 前拒绝;增加在原卡片读回期间改绑的两种存储回归,断言没有 owner、revision 或接受回执变化。仅在测试 wrapper 中传入原摘要,同一反例的两端均不再写入;这不是已提交的产品修复。
动机
已有本地 Agent 和 Lark Goal 连接的操作者,需要在房间领取任务,并在丢回复或刷新后核对原请求。
原先需手工拼接投递、领取和上下文;当前界面可沿原 key 恢复,并分开显示历史接受、当前归属和消息凭据,但回调处理中途改绑仍可能在报错前领取。
打包页面的存储拒绝、同步连击和刷新后同 key 恢复通过;新增改绑反例在真实 File 与 SQLite 均证明报错后 owner 已改变。
本轮不资格化真实飞书房间、已安装 App、独立认证多主机、daemon、live OpenViking、source-session 或长期净收益,也不授权合并。 当前本地阶段仍缺 callback 原绑定在效果点的约束;父任务的真实房间、跨主机和 live provider 验收继续开放。
改动思路
依据 #5198 及变更前已接受的三方协作 RFC,复用一个 canonical Todo(唯一工作状态)比把卡片、记忆或浏览器当第二任务板更合理。TS 继续负责领取准入、revision/CAS 和原操作回执,Python 负责来源/连接与飞书 IO,前端只保存不可从 Todo 推导的原请求意图。现有连接入口减少重复输入;领取归属、消息送达、执行准入三个结果仍应分开。
现有 Todo、Goal Channel、Turn Recall 和连接入口足以承载本地组合;应把原 offer 绑定见证传入既有锁内校验,避免再建权限或状态 owner。 当前 PR 是可独立回滚的本地组合及打包房间界面;callback 改绑缺陷属于本阶段必须修复,真实房间和跨主机资格继续归原任务。
以下是当前 head 的实测对照,不是仅凭源码推断:
| 场景 | 当前观察 |
|---|---|
| 存储不可用 | 首次领取零 POST |
| 连击、丢回复后刷新恢复 | 原 tuple/key 相同,一次领取、一张卡片,独立 CLI 读回 owner |
| 回调原卡片读取期间改绑 | File/SQLite 都先接受领取、后报绑定改变;违反当前 scope |
具体改动
spec_ref=docs/architecture/rfcs/agent-im-openviking-collaboration-v0.md,spec_revision=3593cf17dada74b807719ba4fdbbb1738fa0a56c。先读原规范和 issue,没有用本 PR 自加 checkpoint 定义成功:
- Controlled Command Contract:本地 CLI/HTTP 复用 actor、Goal/Todo、revision、key 和 canonical 回执;实际正常/重试路径通过。
- Identity And Authority:回调原绑定必须约束到效果点;当前 P1 not_met,需要上述见证传播及反例回归。
- Reconnect And Replay:原请求恢复与私有只读 recall 的前后 scope/quota 检查已有本地验证;不把历史接受当当前执行许可。
- Smallest Useful Slice:真实房间、独立 hosts、daemon 和 live provider 资格 deferred,仍归原 #5198/#3245/#4339/#3964;不以本地阶段关闭它们。
RoomWorkPanel:8 经现有 Lark 连接进入,保存 tuple 后才 POST,以同步 guard 防连击,并处理关闭、刷新恢复与焦点返回。_room_work:20 严格限定参数,从当前 enabled connection 推导 actor,以 binding/source 摘要及既有 Host/Origin 约束请求。run_goal_channel_work:67 有原连接/摘要锁内校验,但 handle_room_claim_callback:220 调用它时丢了该见证,正是本次缺陷。
projectRoomWork:7 复用 typed claim admission,仅给标识/计数/可选当前 owner;run_room_resume:27 强制新只读 recall、跳过 ingest,并在取回后复核当前源、绑定、canonical revision、quota 和 scope。共享 direct claim 的 foreign-bound 拒绝、显式未资格 GoalRef(含 null)提前拒绝均已披露。普通自动 recall 的 ingest 默认与旧调用者的可选 projection 形状保持;这些契约用现有 typed owner 扩展,私有 offer 状态保持局部,没有新增共享生命周期或 Python 决策源。
对主干的风险
完整审阅固定 base 至当前 head 42 路径、+2975/-28;37 个提交均有 DCO。运行时、CLI/collector、HTTP、前端、中英文、合成截图、文档及测试均在范围内;不是只审最后新增 UI。两份已 dismissed 旧评审和同 head 的批准 5527750038 均已全文读取,未继承其结论或测试成绩。本次已复现新 scope concern,使用原生 fresh-audit 入口重新判断同一 head。
本轮独立执行六组 Python 193 passed/0 skipped,169.55s,四组 room TS 10 passed/0 skipped,315.55ms。TypeScript 检查、前端生产构建与 chat_bundle verify --source 通过;advisory 后的全量语义/公开边界及 exact-base canary 5 direct +19 executed 通过,零失败/hold。绿灯未覆盖本次时间窗口:新增真实两存储反例 2 failed;测试中只把原摘要传给现有 facade 后同一 oracle 2 passed,定位明确,产品 head 仍未修复。
真实 File/SQLite base/head 配对还证明两项普通 direct claim 的完整规范化记录/status 一致;两个 foreign-bound 输入从基线误接受改成当前 bound_agent_mismatch,拒绝时 revision 不变。规范化仅除生成时间、store 身份与本地路径,没有移除 owner、接受状态或错误细节。配对探针最初遇到 Node compile-cache 退出清理竞争,完整重跑后两端退出 0,原错误保留;没有改产品断言。
当前源码构建的打包静态页面经真实 HTTP/File 权威,Ego 浏览器验证了设置入口、存储拒绝、连击、未知送达后刷新同 key 恢复,独立 CLI 读回 owner;390px 中英文无横向溢出,Escape 返回原按钮,Tab/Shift+Tab 圈定有效。workspace discovery 和 Lark/OV 传输为合成;背景 private-conversation fixture 响应旧形状,未将它计为整个 Lark 设置验收通过。Ego 选择器/窄屏导航错误经状态观察纠正,没有当作产品缺陷。未声称本轮运行 PostgreSQL、安装 wheel 或真实 App;另一评审的这些结果仍属于它的证据。未查询、轮询或等待 hosted CI,没有活跃 Goal 故障、真实房间写入或 provider 学习写入。
我的整体评价
REQUEST_CHANGES。 本地组合和可用前端的增量有合理边界,既有 owner 的复用和代码量基本相称;前向重构应落在原绑定见证的共享锁内约束,不能再加第二套权限状态。正常用户恢复旅程已有实证,但长期接续与用户体验都受“报错时其实已领取”的 P1 影响,当前不能批准。修复后需保留全部正常/重复/撤销与 HTTP race 用例,并让原卡片 IO 中改绑的 File/SQLite 反例通过,再对当前完整 head 复评。真实房间、多主机、安装 App、daemon、live OV、source-session 与长期效果继续由原验收接续;本评审不授合并或部署权限。
English verdict: REQUEST_CHANGES — e5a7361938ca4562535156e3427f326ee8e6b20f. An authenticated callback can commit a canonical claim after its original connection is retargeted during provider IO, then report binding_changed. Both real File and SQLite reproduce the forbidden acceptance; test-only original-digest pinning prevents it. Current193 Python/10TS and the packaged recovery journey pass, but do not cover that missing effect-point witness. Preserve the local-stage boundary and repair the callback before re-review; CI was not consulted.
| runtime_root=Path(p["authority_root"]), binding_path=Path(p["binding_path"]), target_path=Path(p["target_path"]), | ||
| goal_id=request["goal_id"], actor_id=request["actor_id"], command="claim", execute=True, | ||
| todo_id=request["todo_id"], expected_revision=request["expected_revision"], | ||
| idempotency_key=request["idempotency_key"], runner=runner, publish_receipt=False) |
There was a problem hiding this comment.
[P1] 原 offer 的绑定见证需要传到这里。成员/原卡片远端读取期间若连接被改绑,当前调用会从新 binding 起步并成功 canonical claim,直到后续 _scope 才报 binding_changed。真实 File/SQLite 均复现报错时 owner 已是 agent-a、revision 已增加。请传原 expected_connection_id / expected_binding_digest 并沿既有锁内校验在 claim 前拒绝;增加在原卡片读回时改绑、断言零 canonical 效果的两存储回归。
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
…ification branch Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=xhigh
Review exact head: 5248@8b6592a86f14ec91f56c2f74d2ede91b4198c640
[P1] 来源路由也必须约束到 canonical 领取效果点。 room_claim.py:264–271 现在保留原连接摘要,已修复旧评审的连接改绑。但成员/原卡片远端读取期间若 broker 的 Goal source_registry 被替换,这里仍使用原 offer 中的旧 source/root 领取;直到第 278 行 _scope 才报 source_route_changed。四个真实 File/SQLite × 成员/卡片 IO 反例均证明 revision 1→2、owner null→agent-a,精确操作回执 missing→found。请把原 broker/source-route 见证沿既有 facade 保留,并在 canonical 效果边界校验、与相应路由变更正确序列化;拒绝时完整 canonical 快照和精确回执必须不变。末尾再报错不能撤销已接受的领取。
动机
已有本地 Agent 与 Lark Goal 连接的操作者,需要在房间领取任务,并在丢回复后核对原请求。
本轮修复让连接改绑在领取前拒绝;但远端读取期间替换 Goal 来源路由,仍会先领取旧来源中的任务,再报来源改变。
真实 File 和 SQLite 的成员读取、卡片读取四种反例均出现 owner、revision 和接受回执变化;当前不能把报错当作拒绝成功。
本轮只判断本地组合及打包入口;真实房间、多主机、daemon、live OpenViking、安装中 App 和长期净收益继续由原任务验收。 当前本地切片仍缺来源路由在领取效果点的约束;独立现场资格没有被本地测试或源码集成替代。
改动思路
复用现有 TypeScript Todo/CAS、Goal Channel 和 Turn Recall owner;Python 负责 provider IO 与来源见证,前端只保存原操作意图。 当前 PR 是本地 claim/reconnect 组合及既有连接入口的打包界面;来源路由窗口属于该切片内的正确性问题,无需新建权限平台。
现有设置中的连接直接提供 Goal 和 actor,降低手工拼接成本;canonical 领取、历史接受、当前 owner、消息送达和执行许可保持分离。One-operation offer 保存显式 principal/revision/key/expiry,不能由房间成员资格或记忆推导。私有 resume 重新取只读上下文,取回前后检查当前来源、scope、quota 和 Todo;不把私有内容发到房间。
前向整理已在新连接摘要传播中使用原有锁内校验;应沿同一边界补完整来源约束,而不是再造 Python 决策源、路由缓存或第二份 Todo。测试中的额外 pre-facade scope 复查可阻断本次反例,但它只是定位对照,不是已提交产品修复,也不证明检查与路由替换已经原子化。
具体改动
先读 #5198 和固定基线的 docs/architecture/rfcs/agent-im-openviking-collaboration-v0.md,spec_revision=a59aed703374040240f23b2e51ddaf209fcbacc4;未用作者新增 checkpoint 定义成功:
- Controlled Command Contract:本地 canonical revision/key/receipt 和重复领取路径有独立当前验证;不因卡片 ACK 推断工作接受。
- Identity And Authority:连接改绑已修复;来源路由在 IO 中替换的四个真实反例仍失败,当前 not_met。原注册 actor、source、binding 和作用域均需在适用效果点成立。
- Reconnect And Replay:私有上下文的重新获取、scope 改变后清空及原请求重试有当前原生测试;不授执行权。
- Smallest Useful Slice:本地阶段合理;真实房间、独立 hosts、daemon 和 live provider deferred,继续归 #5198/#3245/#4339/#3964,不能关闭整个 RFC。
关键代码讲解
RoomWorkPanel:8经既有连接进入;先持久保存原 tuple 再提交,防同步连击,未知响应保留同 key。当前 owner、历史接受与送达分别显示;焦点关闭/返回和双语布局属于同一入口。_room_work:20限定 HTTP 字段,actor 从 enabled connection 导出,保留 Host/Origin 和 source/binding freshness;run_goal_channel_work:67在既有锁内检查连接后调用 typed canonical claim。handle_room_claim_callback:220在 provider IO 前检查完整_scope,新第 271 行把原 binding digest 传入效果 facade;但 source registry/root 仅复查到第 278 行,顺序晚于接受,是本次 P1。projectRoomWork:7复用 claim admission,最小投影不含任务私有正文;run_room_resume:27强制 fresh read-only recall、跳过 ingest,并在取回后复查来源/配额/版本,失败清除先前快照与上下文。
完整 42 路径、+3017/-28 包括 17 runtime/CLI/provider 路径、五前端路径、五文档/合成图片路径、14 验证路径及 TypeScript 配置。CLI、collector、typed projection/request/resume、可选 direct-claim ownership/GoalRef 拒绝,以及普通 recall 保持默认 reconcile 的契约均在范围内。与旧 e5a 比较,38 个净变更 blob 相同;四个变化为 callback、其回归、RFC 补充及 integrated-main 的 i18n。52 条 roomWork 文案和 bundle builder/launcher/Vite 配置/lock 均未变;新 package script 与 room work 无关。43 个贡献提交都有 DCO。
对主干的风险
当前独立原生八文件 302 passed、0 skipped,185.39s,覆盖真实 File/SQLite、HTTP/CLI、offer/竞争/重试/回收、私有 reconnect、默认关闭及 extension runtime。四组 room TS 10 passed、0 skipped;control-plane/frontend 全量 typecheck 和真实 build:chat/bundle verify 通过。旧 binding IO 回归的四 case 包含在当前通过集合;仅把原 e5a callback 函数装回同一当前进程,保持当前 facade、fixtures 与断言不变,四个 case 全失败,证实原见证传播修复有效。
新来源路由探针改变的是隔离合成 broker registry,使用真实 canonical File/SQLite,未改产品源码。两个 IO 阶段 × 两种存储 4 failed,均是后报 source_route_changed、前已接受;额外 scope 复查的测试对照 4 passed、完整快照/精确 missing 回执不变。未删除语义字段、弱化断言或把最终报错当无副作用。修复后请把这组来源替换回归并入现有 callback suite,同时保留已过的连接改绑和正常/重复路径。
advisory 在完整语义检查之前运行;它只覆盖 17 个支持的 changed source,动态构造与散落字面量不在其证明范围。默认 canary 在现有 Lark delivery catalog 项之后遇到 Node compile-cache 临时目录 ENOTEMPTY,没有总 JSON;原错误保留。runner/premerge/cache/runtime-server/该旧 smoke 五个 owner 与本 PR 固定 base 相同,未宣称已在匹配基线复现失败。显式关闭 Node cache 后相同风险集合结果为 5 direct +19 selected/executed,0 failures、0 manual holds;这不认证默认缓存稳定,更不消除上述产品 P1。
证据复用边界明确:旧 e5a 的独立正常 wheel/真实 HTTP/File/Ego 旅程验证过存储拒绝零 POST、连击一次、丢回复/刷新原 tuple、独立 CLI owner 和 390px/键盘。当前只在 source/rule/caller/依赖匹配后保留该未变前端证据,本轮没有重跑浏览器、安装 wheel 或 PostgreSQL 套件;当前源码 bundle、HTTP/CLI 和两类 race 单独实测。旧 385 项真实 PG 资格与作者 hosted/Windows 结果不冒充当前执行。没有查询/轮询/等待/启动 CI、真实房间写入或 provider 学习写入。
我的整体评价
REQUEST_CHANGES。 旧 P1 5527855725 的连接维度已由当前 red/green 证实修复;本轮新来源维度仍违反原 scope,不能因旧缺陷消失、测试全绿或集成 main 而批准。长期方向上复用 canonical owner 和只读 recall 合理;用户体验仍有“报错时任务其实已领取”的实际风险,因此 bounded outcome 仍有阻塞。
前向重构限定于原来源见证的效果点约束,代码量/所有权没有要求另起框架。既有 typed vocabulary 扩展本地 request/projection,offer active/revoked 是其局部授权记录,不是新增跨 Agent 生命周期。保持默认关闭、旧调用 projection 形状和普通 recall 行为;真实房间、多主机、安装 App、source-session、live OV 与长期收益继续开放,不授 merge/dismiss/部署权。
English verdict: REQUEST_CHANGES — 8b6592a86f14ec91f56c2f74d2ede91b4198c640. Original binding pinning is fixed, but replacing the broker's Goal source route during member/card IO still commits an old-source claim before reporting source_route_changed. All four real File/SQLite cases change owner, revision and the exact operation receipt. Current302 Python/10TS, typechecks and bundle pass; the scope-check control prevents this probe but is not a product repair. Preserve original scope through the canonical effect; live qualification remains separate. CI was not consulted.
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
Signed-off-by: Lihua <1017343802@qq.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=xhigh.
动机
在飞书房间协作的用户,需要从现有连接查看可领取工作,确认一次任务归属,并在断线后恢复原请求。
原先 callback 在成员或卡片查询期间若来源路由被更改,可能先把任务领走,末尾才返回作用域错误。现在把查询前的来源凭据带到原生提交边界,由同一提交 owner 锁住并核对后才领取;网络结果不明时只恢复原请求。
当前路由变更回归在 File 和 SQLite 都拒绝且不改任务;实际安装页面重复点击、响应丢失和刷新后,只产生一次领取和一条房间消息,页面与独立 CLI 读到同一归属。
不证明真实飞书账号、远端 Host、daemon、OpenViking 服务、精确 GoalRef 生命周期或长期自然协作;本地合成传输与真实安装后端的边界明确。
本评审绑定完整 5248@57d21398fd629e6e44e172c59b64867c9ca3038f,对照 369eda5f71a41062636c825b4d9b60f1ecbaf28c,共44路径 +3328/-33。此前两个阻塞都涉及“错误已经返回,但领取可能已经提交”的窗口,不能仅凭错误文本、末尾 scope 检查或当前页面看起来正常认定修好。当前没有发现阻塞项;结论仅覆盖下述实际执行过的本地组合与打包交互。
改动思路
Todo 的 TypeScript owner 持有来源锁、CAS 与回执;Goal Channel 负责绑定和投递;Python 保留 provider IO,现有 App 连接页提供操作和恢复。没有第二套任务数据库或执行调度器。 交付现有房间领取和私有恢复的本地组合,以及安装包中的领取交互;整个协作 RFC 的真实房间、远端与长期验收仍由原协作接入工作承担。
用户的最短有效操作是从既有 Lark 连接进入“房间工作”,查看目标和 Agent,再点击一次领取。连接已经知道 Goal、actor 与来源,页面无需让用户重填;保存的只是一次请求的身份,不是授权。发生未知投递结果时,恢复原请求即可;历史接受和最近回读的当前归属必须分别展示。
下面是按当前源码整理的说明表,说明顺序,不作为执行证据:
| 触发 | 旧窗口 | 当前边界 |
|---|---|---|
| 成员或卡片查询期间来源被切换 | 可能提交旧来源领取,再在末尾报错 | 查询前取来源凭据,提交时原生锁内验证;漂移则不提交 |
| 原来源正在被正常 writer 修改 | 外层检查不能证明提交期间稳定 | 原生锁不等待,返回可重试的忙状态,已获锁会释放 |
| 领取成功但房间消息响应丢失 | 若生成新键,可能重复业务操作 | 页面保留原元组,恢复原回执和投递,当前归属另读 |
最强的反对理由是继续用更多前后检查修补原子性。当前补丁把来源保护放进实际异步提交 owner,所持 registry 锁跨越原生 claim 完成;Python 仍只管理绑定和 provider IO。它没有创建第二套任务板或后台执行策略。原生进程退出、精确 GoalRef 与远端生命周期不是这组测试证明的范围。
具体改动
独立依据是 docs/architecture/rfcs/agent-im-openviking-collaboration-v0.md 在 369eda5f71a41062636c825b4d9b60f1ecbaf28c 的既有契约;没有用本 PR 改写后的 RFC 反向定义验收:
- Projection Contract — implemented:room_work_projection.ts / room-work API;当前执行证据及其边界见下方风险段。
- Controlled Command Contract — implemented:room_claim_request.ts / handle_room_claim_callback / withRegistryAuthoritySources;当前执行证据及其边界见下方风险段。
- Context And Memory Contract — implemented:room_resume.py / agent_turn_recall.runtime;当前执行证据及其边界见下方风险段。
- Identity And Authority — implemented:goal_channel_work.py / Todo claim / original witnesses;当前执行证据及其边界见下方风险段。
- Reconnect And Replay — implemented:RoomWorkPanel / native claim receipt / callback recovery;当前执行证据及其边界见下方风险段。
- Failure Semantics — implemented:room_work_api.py / room_resume.py / provider delivery;当前执行证据及其边界见下方风险段。
- Smallest Useful Slice — deferred:Current independently useful local composition and packaged room interaction are verified; synthetic transport cannot prove live deployment. Existing collaboration integration under #5198 / #3245 / #4339 / #3964 retains live room/remoteHost/daemon/OpenViking and sustained acceptance.
关键代码讲解
handle_room_claim_callback:先核对 callback 形状、原 offer、principal、消息及 app/profile,再在成员和原卡片查询前捕获来源 registry 的字节凭据。传给 facade 的是原 offer 的 binding digest 和查询前的 sources;不能在查询之后重新采样,把已经改动的路由当成原授权。provider 认证、成员关系和原消息卡片相等分别证明不同事实,不能互相替代。withRegistryAuthoritySources:同一 request family 的 v2 显式携带一至两个不同 sources,必须保留 primary,按路径排序取得既有文件锁。拿锁后核对原始 digest,再等待既有 v1 claim 完成,锁覆盖真实 commit。争用时不等待,返回source_registry_busy_retry,不产生新回执。v0/v1 的 closed decode 不接受这些新字段。- 现有 App 中的 RoomWorkPanel:先把原 Goal/连接/scope/Todo/revision/key 元组写入 sessionStorage,再发 POST;同步 in-flight ref 阻挡同一帧重复点击。刷新只恢复该元组,明确的 conflict/rejected 才清掉它;未知结果保留,不偷偷换 key。HTTP adapter 放进现有 presentation 包,actor 从当前连接派生,客户端不能填一个外部 actor。
- 私有 resume 复用 Turn Recall,强制 fresh recall,并明确禁止 pending ingest reconciliation。前后分别核对来源、绑定、canonical projection 与 quota;漂移时清掉此前私有 context、references 和 current 字段。群卡只暴露安全计数和身份,领取只确认归属,
execution_authority_granted=false;不会因此启动执行、消费新配额或将私有回忆发送到房间。
另外检查了共用 Todo claim 对 foreign bound-agent 的拒绝,以及 v0/v1 显式携带未资格化 GoalRef(包括 null)的拒绝。它们是刻意收紧的通用输入边界,不能被“collector 默认关闭”掩盖;正常 direct unbound claim 与既有普通 recall 仍由原 owner 处理。offer、原生 receipt、投递元数据和页面暂存元组各有不同来源与清理责任,未复制一套 Todo 生命周期。
对主干的风险
当前执行 215 Python、20 TypeScript 全部通过,无跳过,涵盖 callback/room API/resume/recall、来源 writer 争用、原生持锁、旧请求 closed schema、CAS 与失败回读。独立 PostgreSQL 16.14 使用每个测试文件单独的数据库,store、service、teamplan、lease inspection 合计 379 pass、0 skip。类型检查、正常前端构建、wheel、Ruff、DCO、diff/public-private 扫描、先 advisory 后 full semantic 均通过;canary 5 direct +19 selected 全通过,0 hold。空 advisory 不代表没有新增语义;新 source guards 属于现有 typed request family,局部 room wire 留在最近 owner。
反例不是单纯重跑绿测试:在当前测试与真实模块 monkeypatch hooks 上,替换成不可变旧 8b6592a86f14ec91f56c2f74d2ede91b4198c640 的 callback,File/SQLite ×成员查询、卡片查询、提交前 handoff 的 6 个用例都在 canonical snapshot 已变化处失败;恢复当前实现,同组均通过。另由原生测试验证实际 registry writer 被序列化和部分锁失败释放。这分别覆盖“原 witness 被错误重采样”和“检查必须跨 commit 持锁”,没有用末尾 scopeerror 代替无副作用证据。
真实安装验证使用新建 wheel、隔离 runtime 和实际 HTTP/File/native backend;飞书发送及读回是合成 transport,workspace discovery 是 fixture。Ego 浏览器中:禁用该项 sessionStorage 写入时 0 POST;同一帧双击只有 1 POST;模拟消息已发送但响应丢失后,页面显示“已领取,消息待恢复”;刷新重新进入,用完全相同的两份请求元组核对,最终只有 一次 revision 变化、一条房间消息。独立已安装 CLI 读到 agent-a;所有 room 结果均不授予执行权。已看过桌面及390px完整视口,后者文档宽度390、无横向溢出;Shift+Tab 环绕、Esc 关闭后焦点返回连接入口。fixture 背景的私聊配置响应有 schema alert,因此不把本验证称为整个 Lark 设置页已资格化,更不宣称真实外部飞书已采用。
仍有一个既有失败:同一个 python -m pytest -q tests/architecture/test_top_level_module_budget.py,不可变 main 369eda5f71a41062636c825b4d9b60f1ecbaf28c 与当前 head 均 1 fail/5 pass,同一 line63、同一 workflow_skill_install.py offender,实际147个顶层模块而 pin146。完整根模块集合、该测试和 pin 的因果路径未被本 PR 改动;room HTTP adapter 位于 presentation 子包。该失败保持失败,未抬预算、删断言或改扫描范围;本次改动的不变量有上述独立证据。最早私有反例复制 globals 导致 IO hook 未命中,以及 PostgreSQL 多文件混用 incarnation 的准备错误也保留了记录;修正 harness 后才使用上述有效证据。
我的整体评价
APPROVE 这个完整 exact head,是 justified_increment。long_horizon 改善在于未知结果可以回到原操作继续,不以重领或反复人工解释换取进展;user_experience 改善在于目标、Agent、历史接受、当前归属和下一步能在原连接入口读到。真实长期、多 Host、模型执行与父级 RFC 验收仍未关闭,测试数量不能替代它们。
Future-facing pass 已应用:来源序列化归原生 owner,HTTP adapter 归现有 presentation,claim/receipt/recall 各复用既有 owner。旧请求版本的兼容与持久回执有实际调用方,保留闭合解码;没有追加通用框架或另一份可编辑权威状态的必要。当前评审不授权合并、升级、启用真实账号或修改其他 Agent;approval closeout、既有红灯和 exact-head merge readiness 独立保留。
English verdict: APPROVE — original source witnesses now reach the native locked commit boundary; six old-callback counterexamples fail while current cases pass. Installed room recovery reuses the exact request and produces one claim and one synthetic message. All215 Python,20 focused TypeScript and379 isolated PostgreSQL cases pass. The identical base/head root-module budget failure remains disclosed; live Lark, remote hosts and sustained operation are not qualified.
Result and user journey
Related to #5198. Proposed head:
57d21398fd629e6e44e172c59b64867c9ca3038f; integrated main:369eda5f71a41062636c825b4d9b60f1ecbaf28c. This proposes the local legacy-profile claim/reconnect composition and its packaged room-work frontend.Settings → Lark → Connections → Room work shows canonical availability and the acting Agent, explicitly claims the next eligible task, and separately reads historical acceptance, current ownership and verified room delivery. Uncertain delivery and reload retain the original request/key; duplicate clicks submit once, storage refusal prevents submission, and inactive extensions stay read-only. Keyboard/focus, Chinese/English and narrow layout are covered.
Desktop preview · Narrow recovered result. Screenshots use synthetic data/transport.
Claim boundary and compatibility
Existing TypeScript Todo owners retain admission, CAS and receipts; Python adapts HTTP/CLI/Lark IO. The callback retains its original binding digest and broker/source registry witnesses before member/card reads. Guarded claim request v2 holds the existing native cross-runtime source guards through the canonical commit. Route replacement during provider reads or the later claim handoff rejects before old-source state or receipts change; normal registry administration serializes with commit. The native effect owns these guards independently of its Python transport caller. This addresses the source-route P1; fresh exact-head review remains required.
V2 extends the existing claim wire family and reuses the source-guard owner. Ordinary direct v0/v1 requests retain their path and reject v2 guard fields. All three versions reject unqualified GoalRef intent before provider/receipt access. The internal HTTP adapter now lives under
loopx/presentation, with callers updated and the old root module removed; no budget increase or compatibility wrapper.The default-off authenticated collector composes existing verified Bot delivery.
work resumeretrieves private scoped Turn Recall anew, skips ingestion, rechecks authority/quota and discards changed context. The frontend exposes no private recall. Claims grant no execution authority, lease renewal or quota spend.Validation and outstanding checks
room-work,goal-work-mapandgoal-workspace-m2browser scenarios passed. Room work uses the installed HTTP/File backend and independent installed CLI; connection discovery/Lark remain synthetic. Existing 200-item render/lens budgets were retained.state_recovery.py; this PR's root adapter has been removed and contributes no additional root module. That baseline failure remains a merge hold.Remaining delivery gates
This normal proposal is ready for exact-head review. Maintainer merge authorization, installed App adoption, sustained shared-service operation, authorized non-production native room/listener, independently authenticated hosts, daemon reconnect and scoped live OpenViking retrieval remain unqualified. External artifact access and source-session lifetime effects retain their existing owners. Reuse #3245, #4339 and #3964; this proposal does not close #5198 or the RFC.
The bounded refactor pass reused existing native source locking and claim semantics, avoided a second Python decision owner, and placed the HTTP adapter with existing presentation APIs.