Skip to content

fix(collaboration): preserve guarded reads across delegation refresh windows - #7663

Open
loopx-agent wants to merge 12 commits into
mainfrom
codex/delegation-refresh-window-20261029
Open

loopx-agent wants to merge 12 commits into
mainfrom
codex/delegation-refresh-window-20261029

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

委派加载到多页后,刷新会逐页重新扫描全部历史;默认本机会话失效时,已读过委派的入口还会退回“尚无可读取的管家会话”,缺少重试。

本提案修复这两条阅读路径:

  • 用最多 48 条的响应窗口恢复已加载范围,61 条刷新由六次完整读取减为两次。首次打开、搜索、切换范围和 More 仍默认 12 条;不同快照不混合发布。
  • 已观察到的来源消失时,显示既有读取失败与 Retry。修改搜索条件、再次重试均保留失败状态;来源恢复后重新核验并读回记录。真正的新工作区仍保留原空态。
  • 响应窗口与锁批次分开:每批最多 12 条请求,保留逐请求锁、来源/Turn、授权、typed receipt 与 Goal lifetime 检查;关联 Core 工作在这些锁释放后读取。

当前是完整实现的审阅提案,仍有验证阻塞。 已记录的 61 条列表的继续分页超过原有 20 秒测试等待,原因尚未证明;后续同一源码已恢复全部 61 条,不能据此把早先失败改记为通过。当前 CQR 与 premerge 均保持失败,禁止据此合并或宣称已安装提速。

Implementation And Boundary

Intended base: main,merge base 2f544f969236f5dbbe858720108c41d07be60a6c。当前 head 2fa0671a8df319754e512074ee4ecd3676b9e1ee,八个相关文件。

Python 承担 Host IO、来源和版本一致的读取;现有 TypeScript receipt、agenda、Goal lifecycle owner 继续决定待跟进语义。复用现有事务与 UI refs,没有新增义务账本、配置、超时或权限。

相同 HTTP 读取内,仅在完整宿主 Session 字段一致时复用纯身份分类;字段变化重新分类。来源的开始/结束检查、实时授权与回执读取保留。来源 lineage 只在实际 Session/fallback audience 改变时清空,不跨范围保留旧列表或缓存授权。

这仍是原委派阅读工作的集成提案。完整协作执行、原始历史凭据恢复、已安装真实来源和持续延迟各自需要验收;较广的 #7586、#7579 契约不因此完成。未执行 merge、安装、发布或模型调用。

Validation

本轮测试使用提交前的最终源码,提交没有再改动这些构建/测试输入。数据为公开合成场景;真实隔离 File、SQLite、HTTP 与 typed owners,不代表已安装产品或真实外部提供方。

Check Result Evidence / limit
Native request / recovery / Goal instance / source runtime / manager context passed 七个测试文件,214 passed / 0 errors / 0 failures / 0 skipped,992.96s;包含 File/SQLite、完整 61 条、边界失效、失败隔离、回执冲突与恢复
Chat build / types passed npm --prefix apps/presentation/dashboard run build:chat,含前端 tsc,86.78s
Static / public boundary passed Ruff、JavaScript syntax、diff-scoped semantic advisory、八文件公开边界扫描及 diff check;未新增共享词表
默认本机来源真实失效/恢复 passed for functional readback 仅使隔离 fixture 的本机 Session 元数据不可读;原生 inventory 返回 400 / request_inventory_unavailable。界面显示错误、未知计数、0 行及无分页;切换筛选和失败重试不转为空态;恢复原始字节后 Retry 成功
恢复后的完整范围 passed for functional readback 初页与失效前相同,builder 筛选为 12 / 41;完整范围为 61 个不同原请求,最终 61 / 61、More 消失且键盘焦点落在计数;后续多窗口刷新保留全部 61 条,快照一致
61 条继续分页的 20 秒等待 failed, retained 两次等待(Ego rounds 07、08)在约 36 条处超时;round 09 只做点击诊断,未执行 20 秒等待;以后观测到 48 条并继续到 61。没有修改源码、等待或快照 fence,也没有充分因果证据消除这些失败;不宣称延迟或 p95 资格
既有 canonical browser smoke not executed this round 已扩充实际本机 Session 失效/筛选/重试/恢复反例并做语法检查。本轮真实 packaged journey 通过 Ego 操作;不把它写成 canonical runner 已执行
Final CQR / quick premerge blocked scope 26f48ef9a7768a7396d86f7c722476814b21e93d320dcbeb705eb8dae4db8d5c,receipt cqr_26f48ef9a7768a7396d8 为 fail。quick 的六项 direct、三项 catalog 与八文件边界检查通过;总 gate 仍为 quality_invalid_receipt
Hosted CI / independent review / installed adoption pending for this head 旧 7578d56 的 real PostgreSQL 成功;Release Artifacts 的 research-display-language 等待失败保留,未证明原因。旧成绩不作为新 head 的资格

较早的组合反例在 File/SQLite 暴露了 48 条响应同时扩大锁批次的问题,已由每批最多 12 条修复并保留负例。较早的可选 binding 文件损坏探针没有触发默认本机来源失效,不计为通过;本轮改为实际本机 Session 读失败。

后台 Chat 历史在来源损坏/请求中止后出现读取错误,本轮不宣称整个 Chat 历史已恢复。只读 fixture 拒绝了三次初始化 POST(405);没有委派读操作触发的模型或外部消息。来源字节已还原,隔离 runtime 由启动它的父进程核验身份、关闭并回收。旧性能负例与撤回的提速结论继续保留。

Frontend / Visual Evidence

实际构建/数据边界:当前 head 的最终源码、真实隔离 SQLite / HTTP、61 条长问题、两个接收方及混合状态。桌面实际 1716 × 995;窄屏 390 × 844,dialog clientWidth / scrollWidth 均为 372。临时 fixture 已关闭。

Before:7578d56 中已读来源失效后被展示为空态,缺少原有 Retry。

Before: loss of an observed local source incorrectly appears as an empty workspace

After:同一实际来源失效进入读取失败,直接保留重试入口;没有旧记录或伪零计数。

After: actual local source failure exposes retry and withholds unverifiable rows

恢复后:完整 61 条保留原分组、状态、时间及稳定底栏。

Recovered desktop inventory retains all sixty-one requests

窄屏恢复后:无横向溢出;全部读完时显示 61 / 61。

Recovered narrow inventory with sixty-one of sixty-one requests and no overflow

Attention / craft review:用户主要要知道哪些委派还没收尾、谁负责、能否读原文。沿用列表、分组、展开与底栏,可选帮助留在图标里;失败与恢复保留直接操作。实际检查了长问题、重复记录、两个接收方、混合状态以及整页错误/恢复,未添加解释段落、卡片或新颜色体系。

Author Declaration

  • Written by: model_agent — OpenAI GPT-6 / Codex.
  • Specification: loopx/capabilities/manager_context/README.md original-conversation inventory contract;现有设计与 task-first delivery 合同。
  • Scope: control-plane Host IO、App presentation、现有 fixture/smoke 和文档;无共享 authority-store、runtime routing 或兼容投影 promotion。
  • DCO signed off;没有双语 RFC 文件变更;公开内容和图片均为合成场景,无私有运行上下文、日志或本机路径。
  • Merge decision: hold — 修复所记录的验证失败、完成当前 head 的独立审阅与所需资格后,再由 maintainer 决定。

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…legation-refresh-window-20261029

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…ource identity

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent

Copy link
Copy Markdown
Collaborator Author

Validation follow-up for 1e454b3bd43f07a8a980d193ff301c7c48e8d841:

The Release Artifacts browser job failed in the unchanged conversation-activity.mjs scenario while waiting for the “调整尚未发送” feedback after a storage-failure recovery and view switch. The trigger is still unconfirmed.

The original development and source-bundle cases pass locally on macOS, as does a source-bundle run integrated with the then-current main. Local and CI use Chromium 151.0.7922.34, but these local runs do not reproduce or qualify the installed Linux wheel path. No timeout, negative assertion or fault injection was changed.

Per CONTRIBUTING's rule for advisory failures on untouched paths, this remains a disclosed validation gap. It does not establish merge or installed readiness. The failure is retained in Release Artifacts.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix: reduce repeated full scans when refreshing delegation pages fix(collaboration): preserve guarded reads across delegation refresh windows Oct 30, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant