Repository navigation
chore(sync): 同步并行交付与 SQLite 状态更新 - #5
Merged
Merged
Conversation
删除无消费者的 Acceptance 发布接口与重复 Policy writer,统一 User Defaults 写入,并通过 Engine seam 提供预算测试输入。保留兼容迁移、当前状态评论、远端历史评论和预算语义。 补充 StateStore 与测试支撑整理,并修复 required-check supervision 中依赖浮点反向相减的时间断言,保持超时、恢复和持久边界验证。
集中 Delivery Run 的角色、Semantic Attempt、验收、进度和时间事实,迁移 Status、History、CLI 与 Notification 的读取,保留各渠道摘要、机器字段筛选和通知投递合同。 拆分 History 事实聚合与展示,让通知直接消费共享事实;修复 Invocation 身份回填对输入 Attempt 的写入副作用。不新增持久状态,也不改写 transport、outbox 或 Ledger。
将 Locator、Workspace、Repository 和 state directory 的准确 Run 读取、候选发现与身份校验集中到 run_selection.py,复用只读查询和 mutation 的共享边界;保留 CLI 的命令准入、Action 附着及 Executor 保护。补充文件名与 Run ID 不一致时的 fail-closed 回归覆盖。
统一 GitHub/systemd 的有界采集、Host/App 的 socket 关闭和 Ticket/Parent 的 stale 证据清除,保留适配器特有的重试、凭据与 currentness 语义。将 Run Repair 的 reprepare/promotion 接回既有 Publisher/Promotion 权威,并修复不完整请求帧关闭时服务线程无法退出的问题。
将 CLI、交付、控制恢复和 Run 场景支撑迁入按领域归属的 tests/support,统一合法前置并保留真实 Git/StateStore 边界,降低测试维护与准备成本。
将前五项整治收敛到同一候选,集中业务事实、Run 选择、资源生命周期、stale 证据和测试支撑的责任归属,保留兼容行为与真实外部边界。补充 Prompt 配置解析的有限整理,复用既有语言回退并使用已选语言解析固定资源,加入非法个人配置和资源读取边界回归。
让已发布交付基于原发布 head 追加提交并更新现有 PR;远端分支变化时记录观测并安全暂停,保留本地 Candidate。 Issue #305
多 Ticket Parent 在远端集成后执行首次完整验收;Parent-only 保留先开发审核、后集成的顺序。共用快照集成、冲突处理与独立恢复预算。
Ticket CI 修复先集成并绑定最终候选;集成改变时废弃旧审核和发布依据。状态补充失败版本与检查信息,无代码候选时退还预留额度。
为避免单个 Ticket 的局部门禁或 CI 等待阻塞同 Run 的独立 Ticket,持久化按 Ticket 隔离的运行事实,并用单一就绪队列串行管理 Run Branch 集成。依赖仅在合入及完成记录后解除。
固定需求开发基线,统一 Ticket、多 Ticket Parent 与 Parent-only 的远端集成、CI 恢复及原 PR 追加更新。为独立 Ticket 提供有界 Dev/Review 并发,并在 worktree 锁等待结束后复核 Executor 授权,阻止撤权后的 Git 写入。
按固定提交和受管工作区判断任务有效性,避免本地默认分支位置造成误阻断。为批准中断保留可核验的 Run 绑定与失败历史,并支持公开 resume 幂等恢复。允许合法调度刷新与 Ticket lane 状态并存,同时继续校验需求、代次、Invocation 和全局授权。 本次不包括旧版本 Run 迁移或历史事故现场修补。
通过统一 settings 和单次运行覆盖选择身份,并将非秘密来源及 PAT 引用固定到 Run。认证故障修复后,可从同一引用恢复。
将 App 配置和旧配置迁移并入统一设置,让同一 Worker 的后续原生 gh 调用使用续签凭据。 移除旧代理和命令白名单,保留 Runner 的发布与批准门禁。
让 Ticket、Parent-only、Run Repair 的 integration_conflict 按真实冲突上下文通过持久化和重读校验;修复 resume、approve、revise、requeue 在正式绑定为空时定位准确 Run,并按原流程核验、绑定和应用命令意图。
记录统一工作额度、公平排队、运行中定向恢复和单票立即停止的已确认边界,并标明尚未实施。保留单一 Executor、单席集成交付及既有审核和预算规则。
将 Ticket、Parent-only 与完整 Parent 接入共享 Development–Review 推进循环,同时保留各模式的审核、预算和集成边界。
在真实 CLI 的重试边界设置同步屏障,稳定复现并检查进程重启前后的监督窗口;不改变生产重试逻辑。
将已发布 Ticket 的监督与其他 Ticket 的长调用解耦,使它能在满足交付条件后独立推进合入和收尾,并按票持久化状态、隔离迟到结果。
统一 Development、Review、CI 修复、冲突处理与发布内容 Agent 的工作准入;以持久 FIFO 队列在名额释放后补位,同时将工作额度与集成席位分开管理。
将执行失败、人工阻塞、预算耗尽及单票 CI 监督超时限定在准确 Ticket;依赖票继续等待,独立票继续推进。保留共享授权全局门禁,并在合并结果未知时先对账,恢复时沿原阶段续接。
让 Parent-only 在完整开发审核后进入本地集成,并按准确成果事实复用或失效验收。Git 问题与集成 Findings 共用处理循环和额度;额度耗尽后的 resume 只续期对应额度。
以准确证据驱动集成与 CI 失败回流,统一 Ticket、Parent 和 Parent-only 的续接路径,并保留 Parent 整体验收与人工批准。
明确调度、阶段推进、共用执行与同源工作事实的职责,记录固定预算归属和取消 Parent 内部 Repair PR 的取舍。区分已确认目标与当前实现,保留审核、CI 和人工批准边界。
说明当前内部 Repair PR 实现中,已集成 Job 的 Candidate revalidation 再次产生 Finding 时的轮转行为,并标明这段说明描述的是现状,不是 ADR 0025 的目标要求。
调用 Reviewer 前保存 Review Context,并以同一快照生成审核记录,统一表达完整交付范围、本轮重点变化及原始证据。
让 Ticket 与完整 Parent(含 Parent-only)的修复、暂停续接和重载持续消费所属预算;移除 Review 预算搬移及 CI 可变预算重复保存。
将暂停条件与业务进度分开解释,让 status、history 和 resume 共用工作事实。恢复时按实际待继续的工作选择角色,使完整 Parent 的集成 Development 在新线程中正确续接,并保留原证据、成果和待完成操作。
让图调度只计算可运行 Ticket 和 Parent 就绪,由交付阶段根据现有记录决定后继。集中管理 Agent 执行许可,使已返回结果的程序收口不受 Agent 名额限制。
在 Parent 修复集成准备步骤中使用现有 AgentWorkScope,让冲突 Development 按既有执行许可规则运行;不放宽全局检查。
缓存有界的有效策略解析结果,复用未变更的工作字段和持久化后的规范化基线,并将重复的辅助 CLI 查询移入进程内调用。保留原有脱敏、持久化和恢复断言及真实边界。
校准 foreign PR 与 Runner 凭据故障的 Run 级归属断言,并验证持久诊断、status/history 查询和 Publication 状态保留。
首次公开 resume 前核验旧 Executor/Worker 的退出身份,并在原 Action 与代次栅栏内收口遗留调用和租约,保留已保存结果。
日常状态变化通过对象提交保存;完整写入仅用于新 Run 创建,完整查询仍按需执行。
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.
公开仓库同步当前已合并的产品版本,补齐并行 Ticket 交付、单票暂停与恢复、Parent 集成及批准更新、GitHub 身份配置,以及 SQLite 对象级保存和共享存储故障恢复。
同时同步操作指南、领域合同、测试支撑和 CI 分片配置。架构文档中标为后续设计的存储简化仍属于设计,未作为已实现功能声明。
验证:
请使用普通 merge 合并,以保留后续双向同步所需历史。
当前检查结果:
tests/test_sqlite_transactions.py::test_competing_complete_creations_preserve_one_durable_run。src/agent_run/sqlite_state.py:356的PRAGMA journal_mode = WAL抛出sqlite3.OperationalError: database is locked,随后包装为持久化 OSError。该次失败尚未修复,不以重跑或跳过检查代替处理。