Repository navigation
test(collaboration): follow shared stopped-goal admission contract - #5861
huangruiteng merged 2 commits into
Conversation
Signed-off-by: hyk <4408344+hhyykk@users.noreply.github.com>
hhyykk
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Exact head: 1781204
动机
当前交接回归测试有五个断言与已采用的 Goal 范围准入顺序不符。这影响运行这两组交接回归测试的维护者。此前共享 Goal 范围先拒绝消费或投递,五个测试却等待后续分支的异常类别或文案;现在测试核对先发生的拒绝,并新增归档态拒绝案例。持续的错误红灯使真实的交接回归难以辨认,维护者每次都要重新判别故障来源。可观察的改进是这两组现有测试在当前实现下稳定通过,同时继续检查拒绝后动作存储不变、历史证据可读和已消费授权不能重用。本 PR 只修正测试断言,不修改运行时规则,也不证明新宿主传输、真实外部操作或完整产品交付。
规范依据:docs/architecture/rfcs/human-confirmed-domain-operations-v0.md,修订 746b868,条款 Confirmation, one-shot consumption and recovery 要求活动 Goal 才能消费、首次消费才授予执行、历史结果仅供证据恢复。docs/architecture/rfcs/capable-manager-semantic-handoff-v0.md 同样要求停止态不再接收新上下文。此次选择修复现有测试,比改动已正确拒绝的运行时规则更小,也不增加第二套权威。
改动思路
共享 Goal 范围是准入的第一道检查:停止或归档时,它在操作动作存储和经理上下文投递之前抛出 ValueError。测试据此核对实际先发生的拒绝;操作测试仍对过期、绑定变化和载荷漂移要求 ActionConflictError。历史 inspect 与 report 沿原有证据路径工作,consume 不可重试执行。这里没有改动 TypeScript 决策所有者、Python 锁序、存储格式、调用者入口或用户界面。已检查宿主管理工具将这两类异常都归并为安全拒绝,经理交接响应也将其归并为未投递;因此这项工作是 CI 断言维护,不是对用户可见故障的修复。
具体改动
tests/test_chat_operation_actions.py 在原有拒绝矩阵里增加归档 Goal,保留过期、重绑定、停止态、载荷漂移各支路,并在拒绝前后比对动作存储字节。停止和归档分支现在要求共享范围的 ValueError 及原因,其余分支仍要求 ActionConflictError。替换会话恢复测试在已消费且结果未知时,分别检查活动态的原会话绑定冲突和停止态的范围拒绝;后续仍验证替换所有者只获历史证据权限、最终结果引用原未知结果、重复报告不改写存储、不同报告不能覆盖旧结果。
tests/test_manager_context_handoff.py 把三处停止态投递预期改为范围拒绝的文案。原有正向送达、恢复为活动后的同请求重放、停止态收件箱不新增记录、Goal Chat 与 Lark 两种入口的受众排除,以及无效激活状态不能获准,均保留原断言。测试没有缩小覆盖面;本 PR 没有改动运行时文件。
对主干的风险
主要风险是让测试认可错误的准入顺序,或只改异常文字而失去无写入和历史恢复约束。当前差异保留存储字节不变、受众排除、一次消费、历史只读权限和不可变结果断言;归档态还补上容易遗漏的负例。独立合成样本确认停止与归档在存储前拒绝,活动原绑定才可首次消费,重绑定被拒;本次精确 head 的两组完整测试为 82 passed,git diff --check 通过。预合并风险集另有 4 项直接检查与 7 项选定检查通过。差异只改测试,没有新状态词、领域控制面文案、指令义务、默认开关或权限规则;PR 也明确披露运行时行为不变。远端 DCO、依赖检查及 Python workflow 在读取时仍排队,合并准备状态需单独确认。合成存储测试不能证明真实授权宿主、Lark 回调或外部系统效果。
我的整体评价
APPROVE。对这个明确限定为 CI 断言维护的改动,两个文件都保持现有的正向、拒绝和恢复约束,没有发现阻断项。交付价值是消除五个失真的回归失败并增加归档负例;这不代表更广的操作交付已经完成。远端检查与合并权限仍由后续门禁决定。
English verdict: APPROVE at 1781204. The two test modules align with the shared stopped or archived Goal admission path and retain no-write and historical-recovery assertions; 82 focused tests passed. Pending remote checks remain a separate merge-readiness gate.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; ultra.
Signed-off-by: hyk <4408344+hhyykk@users.noreply.github.com>
hhyykk
left a comment
There was a problem hiding this comment.
Reviewer: model_agent, OpenAI gpt-6.1-sol; runtime_reported, reasoning ultra.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Exact head: b4e256e56a024bbca8fe1d79fe23d3cb2ac78ebe
动机
维护者运行操作交接和管理上下文回归测试时,当前共享 Goal 范围会先拒绝已停止或归档的 Goal;五个旧断言却等待后续分支的异常类型或旧文案,造成误报失败。更新既有断言可以恢复这两组测试对真实准入边界的检查,也补上归档态拒绝。保持旧断言会让持续的假红灯掩盖后续真正的操作授权或上下文投递回归。本 PR 只维护测试,不修改运行时、协议、CLI 或 UI;不代表真实外部宿主调用或总体 Goal 验收已经完成。
改动思路
决策仍由共享 Goal 范围和既有类型化操作 owner 负责。_registered_goal 检查活动状态;agent_operation_action 在消费操作前进入该范围,并对历史结果读取与报告使用单独的生命周期分支。管理上下文的 deliver 也要求活动 Goal,然后才检查接收者授权并写入收件箱。这个改动只让已有测试对齐实际先后顺序,不增加运行时状态、权限或第二个规则 owner。活动绑定下的首次消费与未知结果恢复继续走现有路径;停止或归档会在操作存储变更之前失败。
具体改动
tests/test_chat_operation_actions.py 将归档态加入既有漂移参数化用例。停止和归档现在断言共享准入边界抛出的 ValueError 及其原因,过期、重新绑定和载荷变化仍断言 ActionConflictError;所有情况都检查操作存储字节保持不变。替换会话恢复用例也按生命周期区分异常,但保留历史证据只读权限、未知结果检查及重复尝试不会重新消费的断言。
tests/test_manager_context_handoff.py 将三处停止态投递失败的预期原因改为共享范围返回的“stopped or archived”。原有接收者过滤、待处理收件箱不变和不可用 Goal 排除断言仍在。依据已接受的操作 RFC,停止后的历史 Goal 只能保留证据读取与调和,不会得到新的执行许可;本 PR 仅维护这些现有契约的回归覆盖,不代表完整外部宿主、Lark 投递或总体 Goal 接受已获资格。
验收依据为 human-confirmed-domain-operations-v0.md,固定修订 746b868e9eb2cee5aefc255022be20e88f14c73b。Confirmation, one-shot consumption and recovery → implemented:本 PR 的测试维护已完成;活动绑定首次消费、历史证据恢复与不重放的原有行为被保留,完整 RFC 验收仍有独立边界。
对主干的风险
两个文件都属于现有 owner 测试,没有运行时代码、协议、CLI 或 UI 变化。参数化测试把错误类别与原因绑定到触发状态;存储字节断言防止测试只接受错误却漏掉先前消费。正向路径和替换会话的历史恢复断言仍覆盖一次性消费、未知结果检查及不可重放。变更相对有限且与五处误报和一个归档边界直接对应,没有发现值得拆分或合并的重复 smoke。独立聚焦用例为 10 项通过,两个完整测试模块为 82 项通过;差异检查和标准 canary 通过。远端 DCO 与依赖审查仍在排队。合成测试不证明已认证的真实宿主调用或外部领域副作用。
我的整体评价
本次精确头部评审未发现阻塞问题。两项改动复用现有测试位置,修复当前主干上的错误预期,并增强归档态负向覆盖;正向操作与历史恢复保证仍有断言。批准结论仅适用于测试变更本身。合并准备仍需等待尚未完成的托管检查;当前证据不表示所有主干 CI 通过,也不表示更广泛的产品或 Goal 验收已经完成。
English verdict: APPROVE for 5861@b4e256e56a024bbca8fe1d79fe23d3cb2ac78ebe. The tests-only refresh aligns existing operation and manager-context assertions with the shared stopped/archived Goal admission check and adds archived coverage; it preserves the no-consumption and historical evidence-only recovery contracts. The focused independent cases passed (10 passed), and the complete touched suites passed (82 passed), with diff hygiene and the pinned canary clean. Two hosted checks remain queued, so merge readiness is still pending. This does not qualify live external-host execution or complete the broader Goal acceptance.
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; runtime_reported; reasoning_effort=xhigh.
APPROVE — exact head b4e256e56a024bbca8fe1d79fe23d3cb2ac78ebe;不可变基线 3b26940eec5c7a3691fff424797fd58662d0e2a8。当前完整差异仅两个测试文件、+15/-8,没有生产行为变更。
动机
维护操作授权与上下文交付测试的贡献者,在停止或归档 Goal 的负向回归中遇到误报。
之前运行同一安全用例,Goal 已被拒绝且未写入,测试仍因旧异常类型或文案失败;现在断言共享准入层的实际拒绝,并增加归档场景。
基线五个误报已逐一复现,当前两模块82项通过;停止/归档不新增许可,存储不变,重新激活只重放原记录。
本 PR 只修复测试,不新增执行权限、产品交互、真实外部操作或自动唤醒资格。
实际价值是让“安全拒绝已发生”与“测试通过”一致,减少维护者反复排查误报;不以绿色测试代替真实性,也不把它算作用户运行提速。若仅扩大异常匹配、删除无写入断言,会隐藏真正缺陷;当前修改没有这样做。
改动思路
spec_ref: docs/architecture/rfcs/human-confirmed-domain-operations-v0.md;spec_revision: 746b868e9eb2cee5aefc255022be20e88f14c73b;criterion_id: Confirmation, one-shot consumption and recovery。先读修改前已接受的要求:首次消费检查 active Goal 和当前绑定,重试不能再获执行许可;停止/历史 Goal 的恢复仅能记录证据。当前修改只校准这一既有约束的测试;不声称交付完整 operation rollout、真实点击唤醒或端到端外部执行。
既有 collaboration_goal_scope(require_active=True) 是共享准入 owner。agent_operation_action 和 manager_context.deliver 在进入 action/context 写入前都会先过它,因此停止/归档的 ValueError 出现于后面的 ActionConflictError 或未授权文案之前。正确的最小修复是更新测试预期,继续验证没有消费、存储不变和只读历史恢复;把旧异常硬塞回运行时会破坏已经统一的 owner。
具体改动
tests/test_chat_operation_actions.py在既有漂移矩阵加入 archived,停止/归档期望 ValueError 并匹配 stopped or archived;过期、换绑定、payload 漂移仍要求 ActionConflictError,调用后继续逐字节检查 store 不变。历史替代会话在停止 Goal 上再次 consume 也改为共享层的拒绝;后续 inspect/report 仍要求 historical_evidence_only、保存原始不可变 outcome,重试不重写。tests/test_manager_context_handoff.py三处把停止 Goal 的旧 not authorized 预期改为共享准入文案;注册 Agent、source范围、pending数量、重新激活后的原请求重放,以及 selected/all_registered 的投影检查保留。没有新增 context 请求或额外执行权限。
真实路径仍是有效的确认请求→共享 active/lifetime scope→精确当前绑定→原子消费→重试无许可;停止或归档在写入前拒绝。context 路径先交付,再停止时不新增记录,其他 Goal 的 peer 仍可交付,恢复 active 后重放同一记录。普通用户无需新导航、参数或确认步骤。
对主干的风险
独立把同一命令跑在不可变 base 和 head 的完整两模块:base76通过/5失败,失败逐一是上述旧类型/文案;head82通过、无跳过。完整 git diff 只有这两模块;共享 scope、operation_handoff、manager_context 和 action store 的 base/head blobs 逐一相同,因此没有把生产许可变化藏在测试修复中。
另用同一指纹探针驱动实际隔离 registry/action/context store,base和head各7场景结果完全相同:active首次许可/重试无许可,停止、归档、换绑定、过期、payload漂移拒绝且存储不变,停止 context 不新增记录、独立 peer 不受阻、重新激活仅重放原记录。只有合成确认 fixture,零模型、零真实 Goal 改写、零外部效果。
故意在隔离测试进程移除共享 active scope gate,当前测试出现6个预期失败,其中 archived 会因没有拒绝失败;其余4项通过。这个反例说明更新预期仍能抓到真正的准入缺失,而非只接受当前输出。Ruff通过;advisory没有新支持词表载体;精确基线 premerge 的4direct+7selected全部通过,零hold。未查询或等待CI。
现有覆盖搜索和作者最近60项有界批次中,只有本 PR 修改这两个测试文件,未发现同形重复。归档是原矩阵的真实缺口,没有另建烟测或复制决策规则。作者提到的打包 Team Plan 验证没有冒充本次独立重测;它不在这个无UI改动的测试维护切片中。
我的整体评价
当前可以批准。对长程运行效果和用户体验是保持,对维护效率是正向:消除5个确定误报,并增强归档拒绝的回归防线;没有新的运行成本或用户干预。未测长期真实费用,因此不声称模型净效率提升。
未来整理检查落在 shared scope 与 action/context owner:这次没有需要伴随的运行时重构,保留一个准入 owner 和原有测试矩阵更容易维护。APPROVE只完成本次测试维护评审,合并资格、真实人类确认/外部执行/原会话结果送达各自保留,未合并或升级安装。
English verdict: APPROVE — b4e256e. The two-file maintenance change corrects five stale rejection expectations without changing runtime admission.82tests pass; identical base/head seven-case actual-store parity and six deliberate gate-mutation failures preserve one-shot, stopped/archived denial and evidence-only recovery. Ruff and4direct+7selected premerge pass; no CI polling or live operation qualification.
Operation consumption and manager-context delivery now reject stopped or archived Goals through the shared scope contract before the later activation guard. These existing tests expected the later
ActionConflictErroror former copy and produced five false failures. This follows the earlyValueErrorrejection, adds archived Goal coverage to the existing negative matrix, and keeps no-consumption, unchanged-store and historical evidence-only recovery assertions.Only two test modules change. Runtime, public protocol and frontend behavior are unchanged; this reuses the current Goal admission and typed operation owners. The existing PR is refreshed onto main
3b26940eec5c7a3691fff424797fd58662d0e2a8atb4e256e56a024bbca8fe1d79fe23d3cb2ac78ebewith a signed merge that preserves the original commit. Both test files are byte-identical to the previously qualified PR head.Validation at the refreshed head:
The historical dashboard failure tested a base before merged #5849, which already fixes that exact Team Plan assertion. Fresh hosted CI remains separate. Other current-main read-model/fixture and output-budget failures retain their existing owners; this refresh does not claim all CI is green or full Goal acceptance is complete. The related future-facing pass found no necessary runtime refactor: the assertions stay with the shared admission owner rather than introduce another rule.