docs: 持久化并行任务跟踪
This commit is contained in:
@@ -83,10 +83,29 @@
|
||||
|
||||
由原生子代理在最新远端基线的独立 worktree 实现易用派单入口:外层在 YAML Target 上通过 trans 派单,Artificer 内部通过 trans 到 NC01 目标工作区复用主机权限;覆盖 target/target-workspace/repo/ref、创建前源码身份预检、合法 session/workspaceRef/Aipod 投影、owning prompt,以及 unidesk-subagent 的“所有子代理先建 MDTODO”固定规则;对应原生任务 artificer_dispatch_ux,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R6.1_Task_Report.md)。
|
||||
|
||||
### R6.2
|
||||
### R6.2 [in_progress]
|
||||
|
||||
主代理审查跨仓改动并按依赖顺序合并 PR,只观察自动 CI/CD 收敛;不得人工触发 mirror、PipelineRun、apply 或 rollout,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R6.2_Task_Report.md)。
|
||||
|
||||
### R6.3
|
||||
|
||||
上线后通过 trans 在 NC01 使用新单命令入口,以任务 worktree /root/.worktrees/selfmedia/r6-ocr-visual-planner、仓库 pikainc/selfmedia 和 ref feat/r6-ocr-visual-planner 派发 OCR/视觉规划,确认 task 直接 running、Artificer 内部继续用 trans、session 可续跑且不出现 schema-invalid 或 repository-not-found,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R6.3_Task_Report.md)。
|
||||
|
||||
### R6.4 [in_progress]
|
||||
|
||||
修复 Target 单命令 live 输出超过全局预算后丢失 task/run/session identity:默认 human 与显式 JSON/YAML 都先返回紧凑 identity、auto-dispatch decision、Target 摘要与下钻命令,不嵌入完整 task/Aipod payload;补超过 10 KiB 场景测试,确保不会退化为 stdout-text-bytes-exceeded-threshold,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R6.4_Task_Report.md)。
|
||||
## R7 [in_progress]
|
||||
|
||||
解决 [AgentRun #348](https://github.com/pikasTech/agentrun/issues/348):由 owning Artificer Aipod YAML 把单 turn hard-timeout 从 30 分钟调整为 2 小时(7200000 ms),只改 YAML 及最小必要 render/配置测试,不新增代码默认、第二 timeout authority、客户端续跑补丁、合同、租约、安全机制或围栏,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R7_Task_Report.md)。
|
||||
|
||||
### R7.1 [completed]
|
||||
|
||||
由原生子代理按 [AgentRun #348](https://github.com/pikasTech/agentrun/issues/348) 在独立 v0.2 worktree 修改 config/aipods/artificer.yaml timeoutMs 为 7200000,并完成最小 render/配置测试;禁止 Artificer 递归修自己,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R7.1_Task_Report.md)。
|
||||
|
||||
### R7.2 [completed]
|
||||
|
||||
主代理审查并合并 [AgentRun #348](https://github.com/pikasTech/agentrun/issues/348) 的最小 PR,只观察自动 CI/CD,不人工触发交付链,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R7.2_Task_Report.md)。
|
||||
|
||||
### R7.3 [in_progress]
|
||||
|
||||
自动上线后以新 Artificer task input 与超过 30 分钟的真实或受控 canary 验证 2 小时 budget 生效,不修改当前 Monitor run 的既有 task policy,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R7.3_Task_Report.md)。
|
||||
|
||||
@@ -141,4 +141,4 @@
|
||||
|
||||
## R10 [in_progress]
|
||||
|
||||
解决 UniDesk #1656(https://github.com/pikasTech/unidesk/issues/1656):由 Artificer 在独立 worktree 修复 cicd status --node 成功零输出,并统一 PaC consumer 的 registry applicability;GitOps-only 或 publisher-only 应显示 N/A 且由 PipelineRun、GitOps/Argo 与 runtime 证据闭环,只有 owning YAML 明确声明 image/registry 的 consumer 才把 registry missing 作为 blocker。保持默认输出有界、text/JSON/YAML 同构、缺失可选 YAML 事实降级为 warning,不新增严格合同或手工交付入口;补针对性测试和 unidesk-cicd 说明,提交独立 PR 且不自行合并,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R10_Task_Report.md)。
|
||||
解决 [UniDesk #1656](https://github.com/pikasTech/unidesk/issues/1656):由 Artificer 在独立 `.worktree/cicd-status-visibility`、`fix/cicd-status-visibility` 分支修复 `cicd status --node` 成功零输出,并统一 PaC consumer 的 registry applicability;GitOps-only/publisher-only 应显示 N/A 且由 PipelineRun、GitOps/Argo 与 runtime 证据闭环,只有 owning YAML 明确声明 image/registry 的 consumer 才把 registry missing 作为 blocker。保持默认输出有界、text/JSON/YAML 同构、缺失可选 YAML 事实降级为 warning,不新增严格合同或手工交付入口;补针对性测试和 `unidesk-cicd` 说明,提交独立 PR 且不自行合并,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R10_Task_Report.md)。
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# R6.1 阶段报告
|
||||
|
||||
## 结论
|
||||
|
||||
Artificer 易用派单入口已在两个独立分支完成实现、本地验证、提交和 PR 创建,尚未合并、发布或执行真实 R6.3 canary,因此 R6.1 保持进行中。
|
||||
|
||||
## 根因
|
||||
|
||||
- 旧派单把目标私有仓库误当成 runner primary resource bundle:
|
||||
- 初始 `workspaceRef` 携带了不合法的 repo/branch 字段,服务端以 `schema-invalid` 拒绝;
|
||||
- 修正 schema 后,runner 又尝试直接拉取私有 `pikainc/selfmedia` bundle,并以 `repo-not-found` 失败。
|
||||
- 旧流程把创建、派发、Target 工作区校验拆散,调用者需要手写 schema 或补第二条 dispatch 命令。
|
||||
- runner primary workspace 与真正任务 Target 没有形成可验证的执行边界。
|
||||
|
||||
## 已实现设计
|
||||
|
||||
- UniDesk YAML 统一声明 `client.transport=target-trans`、marker、CLI 相对路径和 Target 上的 UniDesk 工作区。
|
||||
- 外层命令经 `trans <Target>:<unideskWorkspace>` 重入 Target,再完成预检、创建、自动派发和观察。
|
||||
- Artificer 任务继续继承默认 UniDesk bundle;目标源码不再作为 runner primary bundle。
|
||||
- 目标源码的探测、Git、编辑、验证和运行面观察固定使用 `trans <Target>:<targetWorkspace>`。
|
||||
- `targetWorkspace` 必须是任务专属 clean worktree;preflight 校验 origin、branch、HEAD 与远端 ref commit。
|
||||
- preflight 失败返回 `mutation=false` 且不创建 task;成功时披露合法 workspaceRef、bundle、session、SecretRef presence 和源码身份。
|
||||
- live submit 后自动 dispatch;稳定 idempotency key 和并发回读防止重试重复派发。
|
||||
- `unidesk-subagent` 固化原生子代理与 Artificer 均先登记 MDTODO,prompt 与报告回链同一 MDTODO ID。
|
||||
- AgentRun Artificer AipodSpec 强制 required skill `unidesk-trans`、runner tools bundle 和 `unidesk-ssh` SecretRef。
|
||||
|
||||
## 提交与 PR
|
||||
|
||||
- AgentRun:
|
||||
- 分支:`fix/artificer-source-override`;
|
||||
- 提交:`3d1d8a8a4a41d17053d8c1c0ad3d541272355846`;
|
||||
- PR:[pikasTech/agentrun#349](https://github.com/pikasTech/agentrun/pull/349)。
|
||||
- UniDesk:
|
||||
- 分支:`fix/artificer-target-dispatch-ux`;
|
||||
- 提交:`43124d01e8977f1b12878a852e223b5deb02a20b`;
|
||||
- PR:[pikasTech/unidesk#1911](https://github.com/pikasTech/unidesk/pull/1911)。
|
||||
|
||||
## 验证
|
||||
|
||||
- UniDesk:
|
||||
- `bun test scripts/src/agentrun.test.ts`:20 tests、397 assertions 通过;
|
||||
- `bun scripts/cli.ts agentrun create --help`:单命令 Target 参数展示正确;
|
||||
- `git diff --check`:通过。
|
||||
- AgentRun:
|
||||
- `bun run src/selftest/run.ts 81-artificer-nonrecursive-prompt 90-runner-image-tools`:11 assertions 通过;
|
||||
- `git diff --check`:通过。
|
||||
|
||||
## 后续验收
|
||||
|
||||
- 先审查并合并 AgentRun PR,使 owning AipodSpec 进入受控运行面。
|
||||
- 再审查并合并 UniDesk PR,使 Target 派单入口进入主线。
|
||||
- 从最新 `feat/r6-ocr-visual-planner` 创建并推送 `/root/.worktrees/selfmedia/r6-ocr-visual-planner`。
|
||||
- 先用同一 R6.3 命令执行 dry-run,再执行 live;确认只创建一个 task/attempt 且自动生成 run/session。
|
||||
- 从 runner 证据确认实际通过 `trans NC01:/root/.worktrees/selfmedia/r6-ocr-visual-planner` 完成读取、编辑、验证和 Git 操作。
|
||||
@@ -0,0 +1,60 @@
|
||||
# R6.2 只读诊断报告
|
||||
|
||||
## 结论
|
||||
|
||||
AgentRun NC01 v0.2 自动交付链已经自行收敛,不需要代码、YAML 或运行面修复。本轮没有创建分支、提交或 PR,也没有执行 mirror、PipelineRun、apply、refresh、sync、rollout、patch 等 mutation。
|
||||
|
||||
## 自动链证据
|
||||
|
||||
受控只读入口:
|
||||
|
||||
```bash
|
||||
bun scripts/cli.ts platform-infra pipelines-as-code status \
|
||||
--target NC01 \
|
||||
--consumer agentrun-nc01-v02 \
|
||||
--json
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `mutation=false`、`summary.ready=true`;
|
||||
- latest PipelineRun:`agentrun-nc01-v02-ci-eafac6023ca5bd6afc8cf1f98788974524d21rjxkt`;
|
||||
- source commit:`eafac6023ca5bd6afc8cf1f98788974524d219b2`;
|
||||
- PipelineRun:`Succeeded`,耗时 54 秒;
|
||||
- plan、collect、GitOps promote 三个 terminal role 均成功;
|
||||
- artifact digest:`sha256:963522c48906a290bba1901b5ae5b6b78c892b9f5ddd5d42cfb8885c3f1d7284`;
|
||||
- GitOps commit:`8efa73c802b245275102fc7cc91a9f8b3013c5dc`;
|
||||
- Argo:`Synced`、`Healthy`,revision 与 GitOps commit 完全相同;
|
||||
- runtime:`agentrun-mgr` 为 1/1 ready,运行镜像 digest 与 artifact digest 完全相同;
|
||||
- diagnostics:`pac-ready-gitops-exact`,phase 为 `ready`;
|
||||
- provenance relation:`exact`。
|
||||
|
||||
## Argo 与 GitOps authority 核对
|
||||
|
||||
- 当前 Argo `repoURL` 仍是 `http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git`;
|
||||
- 当前状态投影中的 `expectedRepoURL` 与 `observedRepoURL` 相同;
|
||||
- `revisionRelation.relation=exact`、`proof=owning-git-commit-graph`、`fetchOk=true`;
|
||||
- GitOps promote 已成功,Argo 已取得完全相同的 GitOps commit;
|
||||
- 因此本次没有观察到 Gitea GitOps 写入 authority 漂移,也没有因 legacy read endpoint 阻塞交付。
|
||||
|
||||
## lane-secret-missing 判定
|
||||
|
||||
补充只读入口:
|
||||
|
||||
```bash
|
||||
bun scripts/cli.ts agentrun control-plane status \
|
||||
--node NC01 \
|
||||
--lane nc01-v02 \
|
||||
--source-commit eafac6023ca5bd6afc8cf1f98788974524d219b2
|
||||
```
|
||||
|
||||
该兼容摘要仍返回 `lane-secret-missing`,但同一结果同时显示:
|
||||
|
||||
- PipelineRun 成功;
|
||||
- Argo `Synced/Healthy` 且 revision exact;
|
||||
- manager source 为 `eafac6023ca5`;
|
||||
- manager 1/1 ready;
|
||||
- runtime digest 与 artifact digest 一致;
|
||||
- database Secret 存在。
|
||||
|
||||
因此 `lane-secret-missing` 不是本次 source delivery、GitOps、Argo 或 manager rollout 的真实 blocker,而是独立的 lane Secret presence 信号。自动交付是否完成以 PaC canonical 状态的 `ready=true`、`pac-ready-gitops-exact` 和 runtime exact provenance 为准,本轮不据此创建修复 PR。
|
||||
@@ -0,0 +1,8 @@
|
||||
# R7.1 任务报告
|
||||
|
||||
- Issue:[AgentRun #348](https://github.com/pikasTech/agentrun/issues/348)。
|
||||
- 原生子代理在独立 v0.2 worktree 完成最小修复,PR:[AgentRun #350](https://github.com/pikasTech/agentrun/pull/350)。
|
||||
- Commit:`ea8da03216ee486faa3d302967b76ee1e4b9e7bb`。
|
||||
- 变更仅将 `config/aipods/artificer.yaml#spec.executionPolicy.timeoutMs` 从 `1800000` 调整为 `7200000`,并在既有 Aipod render 自测中断言 Queue task 继承该 YAML 值。
|
||||
- 验证:`76-aipod-spec` 21 项通过,`bun --check` 与 `git diff --check` 通过。
|
||||
- 未修改其他 Aipod、运行时代码默认、合同、租约、安全机制或围栏;未由 Artificer 递归修复。
|
||||
@@ -0,0 +1,7 @@
|
||||
# R7.2 任务报告
|
||||
|
||||
- 主代理完成 PR #350 的完整正文、两文件 diff、YAML authority 与测试断言审查。
|
||||
- `gh pr preflight`:`MERGEABLE/CLEAN`,无 blocker。
|
||||
- PR #350 已以 merge 方式合并,merge commit:`eafac6023ca5bd6afc8cf1f98788974524d219b2`。
|
||||
- 合并后未执行 mirror、PipelineRun、GitOps、Argo、rollout 或其他人工 CI/CD 触发,只进入自动链只读观察。
|
||||
- 已持久化旧 task/run 继续保留旧 `1800000` 快照;新任务在自动上线后读取 `7200000`。
|
||||
@@ -64,6 +64,9 @@
|
||||
|
||||
记录并后续解决 [UniDesk #1828](https://github.com/pikasTech/unidesk/issues/1828):聚合 cicd status 对 sentinel/platform-infra 在 source、GitOps、Argo/runtime 已对齐时仍误报 pac-gitops-missing/relation unknown;统一专用 control-plane 与聚合器的 source→GitOps revision relation authority 和判定证据,本轮仅登记,不扩入 #1760 自动 delivery 修复,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.4_Task_Report.md)。
|
||||
|
||||
### R4.5 [in_progress]
|
||||
|
||||
基于 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 修复当前 AgentRun NC01 自动交付阻塞:将 GitOps read/write、Argo repoURL 与 delivery provenance 从 legacy git-mirror 收敛到既有 Gitea internal 单一 authority;只做 owning YAML、既有 renderer/定向验证的最小必要修改,禁止人工 mirror、sync、flush、trigger、apply、closeout、PipelineRun 或 runtime patch,也禁止新增合同、租约、安全机制和围栏,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.5_Task_Report.md)。
|
||||
## R5 [in_progress]
|
||||
|
||||
解决 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900):修复 NC01 PaC watcher 因 ServiceAccount token 的 node/pod 关系失败而 Pending,恢复 GitHub PR merge 驱动的唯一自动交付链,禁止人工补触发、第二权威或旁路,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5_Task_Report.md)。
|
||||
|
||||
Reference in New Issue
Block a user