@fitlab-ai/agent-infra 0.11.6 → 0.11.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/internal-cli.js +8 -2
- package/dist/lib/agent-clients/adapters/codex.js +1 -1
- package/dist/lib/agent-clients/config.js +11 -3
- package/dist/lib/defaults.json +6 -3
- package/dist/lib/git/primary-worktree.js +58 -0
- package/dist/lib/internal/cli-route-inventory.js +3 -0
- package/dist/lib/internal/platform-pr-review.js +20 -3
- package/dist/lib/internal/task-operation-registry.js +3 -1
- package/dist/lib/internal/task-platform-recovery.js +56 -0
- package/dist/lib/merge.js +25 -5
- package/dist/lib/platform/completion-backfill.js +2 -1
- package/dist/lib/platform/in-label-sync.js +12 -1
- package/dist/lib/platform/issue-comments.js +58 -4
- package/dist/lib/platform/issues.js +105 -5
- package/dist/lib/platform/operation-coordinator.js +74 -0
- package/dist/lib/platform/pr-review.js +107 -1
- package/dist/lib/platform/pr-summary.js +79 -57
- package/dist/lib/platform/pull-requests.js +125 -7
- package/dist/lib/sandbox/commands/create.js +6 -3
- package/dist/lib/sandbox/commands/ls.js +4 -3
- package/dist/lib/sandbox/commands/rm.js +1 -1
- package/dist/lib/sandbox/config.js +22 -4
- package/dist/lib/sandbox/control/server.js +6 -2
- package/dist/lib/sandbox/git-metadata.js +50 -0
- package/dist/lib/sandbox/index.js +1 -1
- package/dist/lib/sandbox/mounts.js +12 -0
- package/dist/lib/sandbox/recovery.js +11 -0
- package/dist/lib/sandbox/removal.js +58 -20
- package/dist/lib/sandbox/tools.js +29 -7
- package/dist/lib/server/config.js +7 -27
- package/dist/lib/server/daemon.js +4 -3
- package/dist/lib/server/process-control.js +4 -2
- package/dist/lib/server/runner.js +4 -3
- package/dist/lib/task/activity-intent.js +4 -3
- package/dist/lib/task/artifact-lifecycle.js +42 -10
- package/dist/lib/task/artifact-receipts.js +62 -22
- package/dist/lib/task/capabilities.js +22 -4
- package/dist/lib/task/completion-facts.js +56 -0
- package/dist/lib/task/create-service.js +11 -5
- package/dist/lib/task/create.js +60 -79
- package/dist/lib/task/events.js +268 -195
- package/dist/lib/task/finalization-artifacts.js +4 -1
- package/dist/lib/task/finalization-handoff.js +2 -1
- package/dist/lib/task/finalization.js +157 -24
- package/dist/lib/task/invalidation-command.js +4 -2
- package/dist/lib/task/invalidation.js +38 -9
- package/dist/lib/task/lifecycle.js +38 -2
- package/dist/lib/task/local-artifact-finalization.js +17 -3
- package/dist/lib/task/platform-operation-journal.js +152 -0
- package/dist/lib/task/platform-operation-recovery.js +459 -0
- package/dist/lib/task/qualification-audit.js +23 -105
- package/dist/lib/task/review-finalization.js +7 -0
- package/dist/lib/task/review-identity.js +69 -0
- package/dist/lib/task/sections.js +6 -5
- package/dist/lib/task/task-execution-lock.js +6 -3
- package/dist/lib/task/verification-engine.js +14 -63
- package/dist/lib/task/verification.js +35 -38
- package/dist/lib/task/workflow-warning-intents.js +7 -1
- package/dist/lifecycle-build-manifest.json +3 -3
- package/lib/agent-clients/adapters/codex.ts +1 -1
- package/lib/agent-clients/config.ts +9 -3
- package/lib/defaults.json +6 -3
- package/lib/git/primary-worktree.ts +62 -0
- package/lib/internal/cli-route-inventory.ts +2 -0
- package/lib/internal/platform-pr-review.ts +14 -3
- package/lib/internal/task-operation-registry.ts +3 -1
- package/lib/internal/task-platform-recovery.ts +53 -0
- package/lib/merge.ts +26 -6
- package/lib/platform/completion-backfill.ts +2 -1
- package/lib/platform/in-label-sync.ts +12 -0
- package/lib/platform/issue-comments.ts +59 -3
- package/lib/platform/issues.ts +103 -5
- package/lib/platform/operation-coordinator.ts +96 -0
- package/lib/platform/pr-review.ts +113 -1
- package/lib/platform/pr-summary.ts +22 -1
- package/lib/platform/pull-requests.ts +132 -8
- package/lib/sandbox/commands/create.ts +7 -8
- package/lib/sandbox/commands/ls.ts +4 -3
- package/lib/sandbox/commands/rm.ts +1 -1
- package/lib/sandbox/config.ts +23 -5
- package/lib/sandbox/control/server.ts +5 -2
- package/lib/sandbox/git-metadata.ts +66 -0
- package/lib/sandbox/index.ts +1 -1
- package/lib/sandbox/mounts.ts +14 -0
- package/lib/sandbox/recovery.ts +13 -0
- package/lib/sandbox/removal.ts +57 -19
- package/lib/sandbox/tool-types.ts +1 -1
- package/lib/sandbox/tools.ts +36 -7
- package/lib/server/config.ts +7 -29
- package/lib/server/daemon.ts +5 -3
- package/lib/server/process-control.ts +4 -2
- package/lib/server/runner.ts +7 -4
- package/lib/server/server.schema.json +0 -4
- package/lib/task/activity-intent.ts +4 -3
- package/lib/task/artifact-lifecycle.ts +35 -11
- package/lib/task/artifact-receipts.ts +55 -15
- package/lib/task/capabilities.ts +17 -3
- package/lib/task/completion-facts.ts +66 -0
- package/lib/task/create-service.ts +12 -6
- package/lib/task/create.ts +54 -69
- package/lib/task/events.ts +248 -182
- package/lib/task/finalization-artifacts.ts +4 -1
- package/lib/task/finalization-handoff.ts +2 -1
- package/lib/task/finalization.ts +154 -21
- package/lib/task/invalidation-command.ts +4 -2
- package/lib/task/invalidation.ts +35 -10
- package/lib/task/lifecycle.ts +35 -3
- package/lib/task/local-artifact-finalization.ts +13 -3
- package/lib/task/platform-operation-journal.ts +230 -0
- package/lib/task/platform-operation-recovery.ts +435 -0
- package/lib/task/qualification-audit.ts +21 -114
- package/lib/task/review-finalization.ts +7 -0
- package/lib/task/review-identity.ts +85 -0
- package/lib/task/sections.ts +6 -6
- package/lib/task/task-execution-lock.ts +7 -3
- package/lib/task/verification-engine.ts +13 -86
- package/lib/task/verification.ts +34 -38
- package/lib/task/workflow-warning-intents.ts +9 -1
- package/package.json +1 -1
- package/templates/.agents/README.en.md +19 -17
- package/templates/.agents/README.zh-CN.md +18 -16
- package/templates/.agents/rules/README.en.md +2 -1
- package/templates/.agents/rules/README.zh-CN.md +2 -1
- package/templates/.agents/rules/decision-qualification.en.md +4 -3
- package/templates/.agents/rules/decision-qualification.zh-CN.md +4 -3
- package/templates/.agents/rules/task-management.en.md +12 -0
- package/templates/.agents/rules/task-management.zh-CN.md +12 -0
- package/templates/.agents/rules/validation-output.en.md +19 -0
- package/templates/.agents/rules/validation-output.zh-CN.md +19 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/block-task/SKILL.en.md +2 -0
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +6 -2
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +5 -3
- package/templates/.agents/skills/code-task/SKILL.en.md +5 -3
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/code-task/reference/report-template.en.md +4 -8
- package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +4 -8
- package/templates/.agents/skills/commit/SKILL.en.md +1 -1
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-task/SKILL.en.md +4 -0
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +4 -0
- package/templates/.agents/skills/create-pr/SKILL.en.md +2 -0
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/create-task/SKILL.en.md +2 -0
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -0
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -0
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-issue/SKILL.en.md +2 -0
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/plan-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/plan-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-analysis/SKILL.en.md +3 -1
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +4 -8
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +4 -8
- package/templates/.agents/skills/review-code/SKILL.en.md +13 -12
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +11 -12
- package/templates/.agents/skills/review-code/config/verify.en.json +1 -3
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -3
- package/templates/.agents/skills/review-code/reference/output-templates.en.md +23 -46
- package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +27 -48
- package/templates/.agents/skills/review-code/reference/report-template.en.md +8 -11
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +8 -11
- package/templates/.agents/skills/review-code/reference/review-criteria.en.md +2 -2
- package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +2 -2
- package/templates/.agents/skills/review-plan/SKILL.en.md +3 -1
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +5 -9
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +5 -9
- package/templates/.agents/skills/review-pr/SKILL.en.md +13 -11
- package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +13 -11
- package/templates/.agents/skills/review-pr/reference/output-guidance.en.md +3 -3
- package/templates/.agents/skills/review-pr/reference/output-guidance.zh-CN.md +3 -3
- package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -0
- package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -0
- package/templates/.agents/skills/run-manual-validation/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +19 -6
- package/templates/.agents/skills/watch-pr/SKILL.en.md +2 -0
- package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +1 -1
- package/templates/.agents/templates/task.en.md +2 -2
- package/templates/.agents/templates/task.zh-CN.md +2 -2
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
## 资格审计复核
|
|
28
28
|
|
|
29
|
-
>
|
|
29
|
+
> 仅当本阶段实际复核了候选资格、约束依赖或人工裁决资格时填写本节,并按 `.agents/rules/decision-qualification.md` 完整复核三张决策表和资格快照;否则删除整个审计段。
|
|
30
30
|
|
|
31
31
|
### 约束依赖
|
|
32
32
|
| constraint_id | constraint_digest | role | evidence |
|
|
@@ -40,13 +40,9 @@
|
|
|
40
40
|
| decision_id | classification | evidence |
|
|
41
41
|
| --- | --- | --- |
|
|
42
42
|
|
|
43
|
-
###
|
|
44
|
-
|
|
|
45
|
-
| --- | --- |
|
|
46
|
-
|
|
47
|
-
### 依赖快照
|
|
48
|
-
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
49
|
-
| --- | --- | --- |
|
|
43
|
+
### 资格快照
|
|
44
|
+
| task_input_digest | non_constraint_input_digest |
|
|
45
|
+
| --- | --- |
|
|
50
46
|
|
|
51
47
|
## 检视覆盖声明
|
|
52
48
|
|
|
@@ -66,7 +62,7 @@
|
|
|
66
62
|
|
|
67
63
|
> 场景 A(`ordinary`):保留上表,记录 `Mini-ATAM: not-applicable` 及可复核理由,并删除场景 B 的表格。
|
|
68
64
|
>
|
|
69
|
-
> 场景 B(`architecture-significant
|
|
65
|
+
> 场景 B(`architecture-significant`):保留上表和以下架构评估表,并删除场景 A 的说明。
|
|
70
66
|
|
|
71
67
|
| quality_scenario_id | source_id | business_driver | quality_attribute | priority | stimulus | context | expected_response | measure | result_or_gap |
|
|
72
68
|
|---------------------|-----------|-----------------|-------------------|----------|----------|---------|-------------------|---------|---------------|
|
|
@@ -81,7 +81,7 @@ agent-infra-internal task-activity {task-id} pr-review-start --agent {agent} \
|
|
|
81
81
|
--artifact {pr-review-artifact} --head {head-sha}
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
The one-shot path never calls `task-activity`.
|
|
84
|
+
The one-shot path never calls `task-activity`. If reading the PR, confirming the head, or completing the local review fails, set the artifact status to `aborted` and call `pr-review-terminate --outcome aborted --reason <single-line>` with the same artifact/head. A publication failure after the local review is complete records recovery evidence instead of aborting the review round.
|
|
85
85
|
|
|
86
86
|
### 2. Single decide: evidence enumeration + classification + risk + mode
|
|
87
87
|
|
|
@@ -99,7 +99,7 @@ Complete this round's artifact per `reference/report-template.md`; the task-anch
|
|
|
99
99
|
|
|
100
100
|
### 4. Sync the Issue artifact comments (task-anchored path)
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
Attempt the task and artifact comment syncs in order. Record warnings and recovery evidence on failure, then continue the local review:
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
@@ -116,11 +116,11 @@ Read the remote head again to confirm it did not drift during the review:
|
|
|
116
116
|
agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
If the head matches step 1, assemble the body (head SHA / conclusion / findings / receipt / Issue artifact link, **without a marker**) and publish the formal Review:
|
|
119
|
+
If the head matches step 1, assemble the body (head SHA / conclusion / findings / receipt / available Issue artifact link; use the artifact identity when its comment is pending, **without a marker**). Write the entire body to `pr-review-body.md` (Round 1) or `pr-review-body-r{N}.md` (later rounds) beside the current report, and bind `{review-body-file}` to its absolute path. The report's `Formal Review Body` section records only that filename. For a task-anchored review, use the file in the task directory; recovery rereads it by round and checks its digest. Then publish the formal Review:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
122
|
agent-infra-internal platform-pr-review publish --pr {pr-number} --scope {taskId|pr{pr-number}} --round {round} \
|
|
123
|
-
--commit {head-sha} --event {COMMENT|APPROVE|REQUEST_CHANGES} --body-file {review-body
|
|
123
|
+
--commit {head-sha} --event {COMMENT|APPROVE|REQUEST_CHANGES} --body-file {review-body-file} --artifact {pr-review-artifact} --agent {agent} [--dry-run] [--cwd <path>]
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
`publish` generates and validates the marker (first line) in core and is idempotent per marker + commit (replay is a no-op; marker hit on a different commit fails stably). On head drift, first set the old artifact status to `superseded`, then close the old round:
|
|
@@ -131,11 +131,11 @@ agent-infra-internal task-activity {task-id} pr-review-terminate --agent {agent}
|
|
|
131
131
|
--outcome superseded --reason "head changed before publish"
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
After closure, re-run step 1 for the next canonical round; never start the new round first. If
|
|
134
|
+
After closure, re-run step 1 for the next canonical round; never start the new round first. If `publish` has an uncertain outcome and a durable task journal entry exists, keep the operation pending and finish the local review round. Keep the round open when recovery evidence cannot be proven durable.
|
|
135
135
|
|
|
136
136
|
### 6. Write back the publication result and task state
|
|
137
137
|
|
|
138
|
-
- **Task-anchored path**:
|
|
138
|
+
- **Task-anchored path**: write the actual publication status in the `pr-review-rN.md` "Publication Result" section. Record the Review ID/URL for `applied` / `no-op`; for a failed write with a durable journal entry, record `blocked` / `failed`, the error code, and recovery action. Then close the local Activity Log with the verdict/counts frozen in step 3:
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
141
|
agent-infra-internal task-activity {task-id} pr-review-complete --agent {agent} \
|
|
@@ -145,11 +145,11 @@ After closure, re-run step 1 for the next canonical round; never start the new r
|
|
|
145
145
|
|
|
146
146
|
`task-activity` generates `Verdict: <result>, blockers: N, major: N, minor: N → {pr-review-artifact}` from the typed payload and atomically writes the Activity Log, `## Review Feedback` link, and version stamp through `writeTask`. It never changes `current_step` or puts receipt/head/Review URL into the NOTE.
|
|
147
147
|
|
|
148
|
-
- **One-shot path (no task)**:
|
|
148
|
+
- **One-shot path (no task)**: record the actual publication status in the `pr-review-rN.md` "Publication Result" section. Record the Review ID/URL on success, or the error and lack of automatic recovery on failure. Do not call `task-activity`.
|
|
149
149
|
|
|
150
150
|
### 7. Re-sync after write-back (task-anchored path)
|
|
151
151
|
|
|
152
|
-
Step 6 rewrote the local `pr-review-rN.md` "Publication Result" section and task.md (Activity Log), while step 4 synced the older snapshot.
|
|
152
|
+
Step 6 rewrote the local `pr-review-rN.md` "Publication Result" section and task.md (Activity Log), while step 4 synced the older snapshot. Attempt the syncs again in order; record failures as warnings for `complete-task` to restore before archiving:
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
155
|
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
@@ -166,6 +166,8 @@ agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact
|
|
|
166
166
|
agent-infra-internal task-verify {task-id} review-pr.completed --artifact {pr-review-artifact} --format text
|
|
167
167
|
```
|
|
168
168
|
|
|
169
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
170
|
+
|
|
169
171
|
- **One-shot path**:
|
|
170
172
|
|
|
171
173
|
```bash
|
|
@@ -176,13 +178,13 @@ Exit code 0 passes; 1 means fix per the output and re-run; 2 means stop and ask
|
|
|
176
178
|
|
|
177
179
|
### 9. Inform the user
|
|
178
180
|
|
|
179
|
-
Pick the single exit branch per `reference/output-guidance.md` (
|
|
181
|
+
Pick the single exit branch per `reference/output-guidance.md` (local review complete / blocked-requires-link / one-shot), and read `.agents/rules/next-step-output.md` before rendering the next step.
|
|
180
182
|
|
|
181
183
|
## Completion Checklist
|
|
182
184
|
|
|
183
185
|
- [ ] Completed the evidence-graded PR review and produced `pr-review-rN.md`
|
|
184
|
-
- [ ] Published the formal Review
|
|
185
|
-
- [ ] Synced
|
|
186
|
+
- [ ] Published the formal Review, durably recorded its pending publication, or accurately recorded a one-shot publication failure
|
|
187
|
+
- [ ] Synced the Issue artifact/task comments or recorded their pending recovery on the task-anchored path
|
|
186
188
|
- [ ] Ran the completion verification (`task-verify` or `verify-artifact`)
|
|
187
189
|
- [ ] Updated task.md and appended the Activity Log entry (task-anchored path)
|
|
188
190
|
|
|
@@ -81,7 +81,7 @@ agent-infra-internal task-activity {task-id} pr-review-start --agent {agent} \
|
|
|
81
81
|
--artifact {pr-review-artifact} --head {head-sha}
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
一次性路径不调用 `task-activity
|
|
84
|
+
一次性路径不调用 `task-activity`。读取 PR、确定 head 或本地审查失败时,先把 artifact 状态写为 `aborted`,再以同一 artifact/head 调用 `pr-review-terminate --outcome aborted --reason <single-line>`。本地审查结论完成后的发布失败记录恢复事实,不将审查轮次误判为 aborted。
|
|
85
85
|
|
|
86
86
|
### 2. 单次 decide:证据枚举 + 场景分类 + 风险分级 + 模式选择
|
|
87
87
|
|
|
@@ -99,7 +99,7 @@ agent-infra-internal pr-review-grade decide --input-file {decide-input.json} [--
|
|
|
99
99
|
|
|
100
100
|
### 4. 同步 Issue artifact 评论(任务锚定路径)
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
依次尝试同步 task 评论与 artifact 评论;失败时记录 warning 和恢复事实,继续本地审查:
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
@@ -116,11 +116,11 @@ agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact
|
|
|
116
116
|
agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
若 head 与步骤 1 记录一致,组装正文(head SHA / 结论 / finding / receipt / Issue artifact
|
|
119
|
+
若 head 与步骤 1 记录一致,组装正文(head SHA / 结论 / finding / receipt / 已取得的 Issue artifact 链接;评论待恢复时写明 artifact 身份,**不含 marker**)。把完整正文写入与本轮报告同目录的 `pr-review-body.md`(Round 1)或 `pr-review-body-r{N}.md`(后续轮次),并将 `{review-body-file}` 绑定为该文件的绝对路径。本轮报告的「正式 Review 正文」段只记录该文件名。任务锚定路径必须使用任务目录中的该文件;失败恢复会按报告轮次重读该文件并核对正文摘要。然后发布正式 Review:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
122
|
agent-infra-internal platform-pr-review publish --pr {pr-number} --scope {taskId|pr{pr-number}} --round {round} \
|
|
123
|
-
--commit {head-sha} --event {COMMENT|APPROVE|REQUEST_CHANGES} --body-file {review-body
|
|
123
|
+
--commit {head-sha} --event {COMMENT|APPROVE|REQUEST_CHANGES} --body-file {review-body-file} --artifact {pr-review-artifact} --agent {agent} [--dry-run] [--cwd <path>]
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
`publish` 由 core 生成并校验 marker(首行),按 marker + commit 幂等(重放 no-op;marker 命中但 commit 不一致稳定失败)。head 漂移时,先把旧 artifact 状态写为 `superseded`,再闭合旧轮:
|
|
@@ -131,11 +131,11 @@ agent-infra-internal task-activity {task-id} pr-review-terminate --agent {agent}
|
|
|
131
131
|
--outcome superseded --reason "head changed before publish"
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
闭合成功后重新执行步骤 1,进入下一 canonical round;不得先写新轮 started
|
|
134
|
+
闭合成功后重新执行步骤 1,进入下一 canonical round;不得先写新轮 started。publish 结果不确定且已有任务账本记录时,保留待恢复操作并继续本地审查轮次;无法证明恢复事实已持久化时保持 open。
|
|
135
135
|
|
|
136
136
|
### 6. 回写发布结果与任务状态
|
|
137
137
|
|
|
138
|
-
-
|
|
138
|
+
- **任务锚定路径**:把 publish 的实际状态写入 `pr-review-rN.md`「发布结果」段。`applied` / `no-op` 时记录 Review ID/URL;写入失败且已有任务账本记录时写 `blocked` / `failed`、错误码和恢复动作。随后以步骤 3 冻结的同一组 verdict/counts 闭合本地活动日志:
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
141
|
agent-infra-internal task-activity {task-id} pr-review-complete --agent {agent} \
|
|
@@ -145,11 +145,11 @@ agent-infra-internal task-activity {task-id} pr-review-terminate --agent {agent}
|
|
|
145
145
|
|
|
146
146
|
`task-activity` 由 typed payload 生成 `Verdict: <结论>, blockers: N, major: N, minor: N → {pr-review-artifact}`,并经 `writeTask` 原子完成 Activity Log、`## 审查反馈` 链接与版本戳刷新;不改 `current_step`,也不把 receipt/head/Review URL 写入 NOTE。
|
|
147
147
|
|
|
148
|
-
-
|
|
148
|
+
- **一次性路径(无任务)**:把实际发布状态写入 `pr-review-rN.md`「发布结果」段;成功时记录 Review ID/URL,失败时记录错误与不可自动恢复的限制。不调用 `task-activity`。
|
|
149
149
|
|
|
150
150
|
### 7. 发布后回写再同步(任务锚定路径)
|
|
151
151
|
|
|
152
|
-
步骤 6 已改写本地 `pr-review-rN.md`「发布结果」段与 task.md(活动日志),而步骤 4
|
|
152
|
+
步骤 6 已改写本地 `pr-review-rN.md`「发布结果」段与 task.md(活动日志),而步骤 4 同步的是旧快照。依次尝试再同步;失败记录 warning,由 `complete-task` 在归档前补齐:
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
155
|
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
@@ -166,6 +166,8 @@ agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact
|
|
|
166
166
|
agent-infra-internal task-verify {task-id} review-pr.completed --artifact {pr-review-artifact} --format text
|
|
167
167
|
```
|
|
168
168
|
|
|
169
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;失败、阻塞和软警告保留必要诊断。
|
|
170
|
+
|
|
169
171
|
- **一次性路径**:
|
|
170
172
|
|
|
171
173
|
```bash
|
|
@@ -176,13 +178,13 @@ agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact
|
|
|
176
178
|
|
|
177
179
|
### 9. 告知用户
|
|
178
180
|
|
|
179
|
-
按 `reference/output-guidance.md`
|
|
181
|
+
按 `reference/output-guidance.md` 选择唯一出口(本地审查完成 / 阻塞要求关联 / 一次性检视),渲染下一步前读取 `.agents/rules/next-step-output.md`。
|
|
180
182
|
|
|
181
183
|
## 完成检查清单
|
|
182
184
|
|
|
183
185
|
- [ ] 已按证据分级完成 PR 审查并产出 `pr-review-rN.md`
|
|
184
|
-
- [ ] 正式 Review
|
|
185
|
-
- [ ] 任务锚定路径的 Issue artifact/task
|
|
186
|
+
- [ ] 正式 Review 已发布、任务账本已记录待恢复操作,或一次性路径已如实记录发布失败
|
|
187
|
+
- [ ] 任务锚定路径的 Issue artifact/task 评论已同步,或失败已记录待恢复
|
|
186
188
|
- [ ] 已完成校验(`task-verify` 或 `verify-artifact`)
|
|
187
189
|
- [ ] 已更新 task.md 并追加 Activity Log(任务锚定路径)
|
|
188
190
|
|
|
@@ -6,13 +6,13 @@ Read this file and `.agents/rules/next-step-output.md` before presenting the fin
|
|
|
6
6
|
|
|
7
7
|
| Exit | Trigger | Present |
|
|
8
8
|
|------|---------|---------|
|
|
9
|
-
| A
|
|
9
|
+
| A Local review complete | the local review round closed and verification passed; formal publication succeeded or has a durable pending record | conclusion, mode, reviewed head SHA, actual publication status, Review URL or recovery action, receipt, next step |
|
|
10
10
|
| B Blocked, requires linking | `resolve-host` returned none or ambiguous | linking guidance (create/link an Issue and task); do not auto-create an Issue; or explicitly choose the one-shot review |
|
|
11
|
-
| C One-shot review | the user explicitly chose a "one-shot review" | non-recoverable notice, artifact directory `.agents/workspace/reviews/{pr-number}/`, Review URL |
|
|
11
|
+
| C One-shot review | the user explicitly chose a "one-shot review" | non-recoverable notice, artifact directory `.agents/workspace/reviews/{pr-number}/`, Review URL or publication failure |
|
|
12
12
|
|
|
13
13
|
## Presentation Requirements
|
|
14
14
|
|
|
15
|
-
- On
|
|
15
|
+
- On local completion (exit A), report the review mode (verify/audit/reconstruct), evidence scenario (S1/S2/S3), reviewed head SHA, finding count, formal publication status, Review URL or pending recovery operation, and receipt. Never claim a pending Review was published.
|
|
16
16
|
- On block (exit B) provide concrete commands/steps to establish the link; if `resolve-host` returned `ambiguous`, list the candidate tasks and ask a human to pin the host.
|
|
17
17
|
- On one-shot (exit C) state clearly `recoverable: false` and make no recovery promise.
|
|
18
18
|
- Read `.agents/rules/next-step-output.md` before rendering the next step, and generate the "next step" command per its convention.
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
| 出口 | 触发条件 | 呈现内容 |
|
|
8
8
|
|------|----------|----------|
|
|
9
|
-
| A
|
|
9
|
+
| A 本地审查完成 | 本地审查轮次闭合且校验通过;正式 Review 已发布或有持久化待恢复记录 | 结论、模式、被审 head SHA、实际发布状态、Review URL 或恢复动作、receipt、下一步 |
|
|
10
10
|
| B 阻塞要求关联 | `resolve-host` 返回 none 或 ambiguous | 关联指引(创建/关联 Issue 与 task),不自动创建 Issue;或显式选择一次性检视 |
|
|
11
|
-
| C 一次性检视 | 用户显式选择「仅一次性检视」 | 不可恢复提示、产物目录 `.agents/workspace/reviews/{pr-number}/`、Review URL |
|
|
11
|
+
| C 一次性检视 | 用户显式选择「仅一次性检视」 | 不可恢复提示、产物目录 `.agents/workspace/reviews/{pr-number}/`、Review URL 或发布失败 |
|
|
12
12
|
|
|
13
13
|
## 呈现要求
|
|
14
14
|
|
|
15
|
-
-
|
|
15
|
+
- 本地审查完成(出口 A)时报告:审查模式(verify/audit/reconstruct)、证据场景(S1/S2/S3)、被审 head SHA、finding 总数、正式 Review 发布状态、Review URL 或待恢复操作、receipt。待恢复时不得声称 Review 已发布。
|
|
16
16
|
- 阻塞(出口 B)时给出建立关联的具体命令或步骤;如果 `resolve-host` 返回 ambiguous,列出候选任务并要求人工指定。
|
|
17
17
|
- 一次性检视(出口 C)明确 `recoverable: false`,不承诺可恢复。
|
|
18
18
|
- 渲染下一步前读取 `.agents/rules/next-step-output.md`,并按其中的「下一步」命令约定生成。
|
|
@@ -68,6 +68,10 @@ Land the following in order before the line-level findings, without impersonatin
|
|
|
68
68
|
|
|
69
69
|
- **{title}**: {description} · `{file}:{line}` · Evidence: {evidence} · Impact: {impact} · Suggestion: {suggestion}
|
|
70
70
|
|
|
71
|
+
## Formal Review Body
|
|
72
|
+
|
|
73
|
+
**Body file**: `pr-review-body.md` (Round 1) or `pr-review-body-r{N}.md` (later rounds), beside this report. The file contains the complete formal Review body without the platform marker. Publication and recovery read the same file by round and check its digest.
|
|
74
|
+
|
|
71
75
|
## Publication Result
|
|
72
76
|
|
|
73
77
|
- **Formal Review Status**: {pending / applied / no-op / aborted / superseded / blocked / failed}
|
|
@@ -68,6 +68,10 @@
|
|
|
68
68
|
|
|
69
69
|
- **{标题}**:{描述} · `{file}:{line}` · 证据:{evidence} · 影响:{impact} · 建议:{suggestion}
|
|
70
70
|
|
|
71
|
+
## 正式 Review 正文
|
|
72
|
+
|
|
73
|
+
**正文文件**:`pr-review-body.md`(Round 1)或 `pr-review-body-r{N}.md`(后续轮次),与本报告同目录。文件保存不含平台 marker 的完整正式 Review 正文;发布与恢复按轮次读取同一文件并核对摘要。
|
|
74
|
+
|
|
71
75
|
## 发布结果
|
|
72
76
|
|
|
73
77
|
- **正式 Review 状态**:{pending / applied / no-op / aborted / superseded / blocked / failed}
|
|
@@ -47,7 +47,7 @@ Branch-only has no `{task-id}`: skip this step and record `not-applicable (branc
|
|
|
47
47
|
4. Allocate an `{evidence-file}` for each validation target and invoke every executable item separately with `agent-infra-internal task-validate {task-ref} --scope snapshot --format json --evidence-file {evidence-file} -- {command...}`. Only make a second explicit inplace invocation for that item when evidence proves it is required, using its evidence file. If no item is executable, run no fabricated command but still produce coverage-gap evidence.
|
|
48
48
|
5. Read `reference/report-template.md`, create `validation-run.md|validation-run-r{N}.md`, and record the input mode, discovered list, per-item results, CLI JSON allowlist, and sanitized summaries.
|
|
49
49
|
6. Run `agent-infra-internal task-event {task-id} validation-run.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {artifact}`. When an Issue exists, run only `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`; do not publish the validation artifact as an Issue comment.
|
|
50
|
-
7. Run `agent-infra-internal task-verify {task-id} validation-run.completed --artifact {artifact} --format text`; fix failures and rerun it.
|
|
50
|
+
7. Run `agent-infra-internal task-verify {task-id} validation-run.completed --artifact {artifact} --format text`; fix failures and rerun it, then present the summary per `.agents/rules/validation-output.md` with necessary diagnostics.
|
|
51
51
|
8. Report the evidence path, coverage gaps, and verification result; explicitly leave the decision to run `complete-manual-validation` to the maintainer. Read `.agents/rules/next-step-output.md` and end with `Completed at`.
|
|
52
52
|
|
|
53
53
|
## Scenario B: Branch-Only Fallback
|
|
@@ -47,7 +47,7 @@ branch-only 无 `{task-id}`,跳过本步,并在产物 `## 状态核对` 记
|
|
|
47
47
|
4. 为每个验证目标分配 `{evidence-file}`,分别调用 `agent-infra-internal task-validate {task-ref} --scope snapshot --format json --evidence-file {evidence-file} -- {command...}`;只有证据表明必须原位时才对该项进行第二次显式 inplace 调用并写入对应 evidence 文件。零项可执行时不运行伪造命令,但仍继续产出覆盖缺口证据。
|
|
48
48
|
5. 读取 `reference/report-template.md`,创建 `validation-run.md|validation-run-r{N}.md`;记录输入模式、发现清单、逐项结果、CLI JSON allowlist 与去敏摘要。
|
|
49
49
|
6. 运行 `agent-infra-internal task-event {task-id} validation-run.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {artifact}`。存在 Issue 时仅运行 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`;验证 artifact 不发布为 Issue 评论。
|
|
50
|
-
7. 运行 `agent-infra-internal task-verify {task-id} validation-run.completed --artifact {artifact} --format text
|
|
50
|
+
7. 运行 `agent-infra-internal task-verify {task-id} validation-run.completed --artifact {artifact} --format text`;未通过则修复后重跑,并按 `.agents/rules/validation-output.md` 展示摘要和必要诊断。
|
|
51
51
|
8. 告知用户证据路径、覆盖缺口和验证结果;明确仍需维护者判断是否执行 `complete-manual-validation`。读取 `.agents/rules/next-step-output.md`,最后一行输出 `Completed at`。
|
|
52
52
|
|
|
53
53
|
## 场景 B:branch-only 降级
|
|
@@ -17,7 +17,7 @@ The orchestrator delegates only and never executes a stage skill itself. First r
|
|
|
17
17
|
2. Use the current host's native child spawn, wait, and result interfaces. Task-bound sandboxes execute ordinary task orchestration locally in the current worktree; Codex controller `open`, `verify`, and `close` remain restricted broker operations. Retain task binding and checks for real external process operations.
|
|
18
18
|
3. Before each loop, run `agent-infra-internal task-lifecycle {task-id} recover-started --agent {client} --auto`. The client adapter owns recovery capability and stop-evidence validation; an unsupported adapter or a run that needs no recovery returns `no-op`. Continue only after `no-op` or `applied`. Stop on every other result; a later operator invocation retries from persisted state without routing or dispatching a child.
|
|
19
19
|
4. Run `task-orchestration {task-id} begin-or-resume --client {client}` with the complete explicit policy. With no explicit policy, core reads that client's configured policy; existing runs use persisted policy. Disk state outside the complete current structure fails closed without rewriting; finish or clear active runs before upgrading. Stop on paused/completed results.
|
|
20
|
-
5. Run `route`. On `completed`, run `agent-infra-internal task-verify {task-id} run-task.completed --format text` and stop. Only a `running` result with non-null `next` supplies action, role, round, artifact, requested model, and requested effort.
|
|
20
|
+
5. Run `route`. On `completed`, run `agent-infra-internal task-verify {task-id} run-task.completed --format text`, present its summary per `.agents/rules/validation-output.md` while retaining necessary diagnostics, and stop. Only a `running` result with non-null `next` supplies action, role, round, artifact, requested model, and requested effort.
|
|
21
21
|
6. Call `prepare --client {client} --requested-model {requestedModel} --requested-reasoning-effort {requestedReasoningEffort}` with route's exact policy. The client adapter runs host preflight. Report actual task, policy, or host failures.
|
|
22
22
|
7. After prepare, run `task-orchestration <task-ref> dispatch` before spawning a fresh native child with route's model/effort. Pass the short task ref, skill, `--orchestrated`, and stage identity. The child calls `await-activation --stage ... --round ... --artifact ... --role ...` to associate its actual identity before executing. Code-task creates the local checkpoint; do not delegate a separate commit stage or push. Retain existing write locks without introducing a new lock protocol around native spawn.
|
|
23
23
|
8. Record actual start and terminal results through the current host's native lifecycle events and result interfaces. A timed-out wait does not imply success. Pause on actual identity, transport, or terminal failures. After the stage and child finish, call `advance`; repeat step 3 only while running.
|
|
@@ -17,7 +17,7 @@ description: >
|
|
|
17
17
|
2. 使用当前宿主的原生子 Agent 启动、等待与结果接口。task-bound sandbox 在当前 worktree 本地执行普通任务编排;Codex controller 的 `open`、`verify`、`close` 继续通过受限 broker 执行。保留任务绑定与真实外部进程操作检查。
|
|
18
18
|
3. 每次进入循环时先调用 `agent-infra-internal task-lifecycle {task-id} recover-started --agent {client} --auto`。客户端适配器负责恢复能力和停止证据校验;没有该能力或无需恢复时返回 `no-op`。仅在结构化结果为 `no-op` 或 `applied` 时继续,其他结果安全停止;下一次人为调用按持久化状态幂等重试,不 route、不派发 child。
|
|
19
19
|
4. 调用 `agent-infra-internal task-orchestration {task-id} begin-or-resume --client {client}` 并转发完整显式策略。完全没有显式策略时由核心读取当前 client 的 `agentClients[].orchestration`;existing run 使用持久化策略。磁盘状态不符合当前完整结构时核心失败关闭且不改写;升级前必须完成或清空 active run。仅当核心返回 `ORCHESTRATION_MODEL_POLICY_REQUIRED` 时,先用 `agent-client model-selection` 展示 complete/partial/interactive-only 来源,再一次收集完整策略;未回答则不创建 run。若为 paused/completed,按结构化结果停止。
|
|
20
|
-
5. 调用 `route` 并读取结构化结果。若返回 `completed`,立即运行 `agent-infra-internal task-verify {task-id} run-task.completed --format text`
|
|
20
|
+
5. 调用 `route` 并读取结构化结果。若返回 `completed`,立即运行 `agent-infra-internal task-verify {task-id} run-task.completed --format text` 并停止;按 `.agents/rules/validation-output.md` 展示摘要并保留必要诊断。仅当返回 `running` 且 `next` 非空时读取唯一 action、role、round、artifact、`requestedModel` 和 `requestedReasoningEffort`,不得自行推断。
|
|
21
21
|
6. 调用 `prepare --client {client} --requested-model {requestedModel} --requested-reasoning-effort {requestedReasoningEffort}`,使用 route 返回的精确策略。客户端适配器执行宿主 preflight;任务身份、策略或宿主检查失败时记录实际诊断。
|
|
22
22
|
7. prepare 成功后,在调用 fresh 原生子 Agent 前执行 `task-orchestration <task-ref> dispatch`,显式指定 route 返回的 model/effort;传递短任务引用、skill 名、`--orchestrated` 与 stage/round/artifact/role。child 调用 `await-activation --stage ... --round ... --artifact ... --role ...`,确认当前阶段与实际 child 关联后执行。代码阶段通过 code-task 创建本地 checkpoint;禁止单独委派 commit 阶段或推送。保留已有写锁,不把实际 spawn 纳入新建锁协议。
|
|
23
23
|
8. 通过当前宿主的原生生命周期事件和结果接口记录实际启动及终态。timed-out wait 不推断成功;身份、传输或异常终态失败如实暂停。阶段结果和 child 完成后调用 `advance`;只有 `running` 才重复步骤 3。
|
|
@@ -60,9 +60,12 @@ const DEFAULTS = {
|
|
|
60
60
|
"runtimes": [
|
|
61
61
|
"node22"
|
|
62
62
|
],
|
|
63
|
-
"tools":
|
|
64
|
-
"
|
|
65
|
-
|
|
63
|
+
"tools": {
|
|
64
|
+
"ids": [
|
|
65
|
+
"agent-infra"
|
|
66
|
+
],
|
|
67
|
+
"definitions": {}
|
|
68
|
+
},
|
|
66
69
|
"refreshIntervalDays": 7,
|
|
67
70
|
"dockerfile": null,
|
|
68
71
|
"vm": {
|
|
@@ -334,10 +337,20 @@ function normalizeAgentClientConfig(cfg) {
|
|
|
334
337
|
const sandbox = cfg.sandbox && typeof cfg.sandbox === 'object' && !Array.isArray(cfg.sandbox)
|
|
335
338
|
? cfg.sandbox
|
|
336
339
|
: undefined;
|
|
337
|
-
if (
|
|
338
|
-
|
|
340
|
+
if (sandbox && own(sandbox, 'customTools')) {
|
|
341
|
+
return failure('INVALID_AGENT_CLIENTS', 'sandbox.customTools');
|
|
342
|
+
}
|
|
343
|
+
if (sandbox && own(sandbox, 'tools')) {
|
|
344
|
+
const tools = sandbox.tools;
|
|
345
|
+
if (!tools || typeof tools !== 'object' || Array.isArray(tools)) {
|
|
346
|
+
return failure('INVALID_AGENT_CLIENTS', 'sandbox.tools');
|
|
347
|
+
}
|
|
348
|
+
if (!Array.isArray(tools.ids)) {
|
|
349
|
+
return failure('INVALID_AGENT_CLIENTS', 'sandbox.tools.ids');
|
|
350
|
+
}
|
|
351
|
+
for (const [index, tool] of tools.ids.entries()) {
|
|
339
352
|
if (AGENT_CLIENT_IDS.includes(tool)) {
|
|
340
|
-
return failure('INVALID_AGENT_CLIENTS', `sandbox.tools[${index}]`);
|
|
353
|
+
return failure('INVALID_AGENT_CLIENTS', `sandbox.tools.ids[${index}]`);
|
|
341
354
|
}
|
|
342
355
|
}
|
|
343
356
|
}
|
|
@@ -90,6 +90,8 @@ Run the verification gate:
|
|
|
90
90
|
agent-infra-internal task-verify {task-id} watch-pr.completed --format text
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
94
|
+
|
|
93
95
|
Handle the result:
|
|
94
96
|
- exit code 0 (all passed) -> continue to "Inform User"
|
|
95
97
|
- exit code 1 (verification failed) -> fix per the output and re-run the gate
|
|
@@ -95,7 +95,7 @@ agent-infra-internal task-verify {task-id} watch-pr.completed --format text
|
|
|
95
95
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
96
96
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
99
99
|
|
|
100
100
|
### 7. 告知用户
|
|
101
101
|
|
|
@@ -118,8 +118,8 @@ delivery_remote_head: # Most recent successfully delivered task branch
|
|
|
118
118
|
|
|
119
119
|
### Targets
|
|
120
120
|
|
|
121
|
-
| target_id | operation_id | target_kind | target_family | target_artifact | target_round | target_sha256 | status | reason_code | updated_at |
|
|
122
|
-
|
|
121
|
+
| target_id | operation_id | target_kind | target_family | target_artifact | target_input | target_round | target_sha256 | status | reason_code | updated_at |
|
|
122
|
+
|-----------|--------------|-------------|---------------|-----------------|--------------|--------------|---------------|--------|-------------|------------|
|
|
123
123
|
|
|
124
124
|
## Activity Log
|
|
125
125
|
|
|
@@ -118,8 +118,8 @@ delivery_remote_head: # 最近一次成功交付到 remote 的任务分
|
|
|
118
118
|
|
|
119
119
|
### Targets
|
|
120
120
|
|
|
121
|
-
| target_id | operation_id | target_kind | target_family | target_artifact | target_round | target_sha256 | status | reason_code | updated_at |
|
|
122
|
-
|
|
121
|
+
| target_id | operation_id | target_kind | target_family | target_artifact | target_input | target_round | target_sha256 | status | reason_code | updated_at |
|
|
122
|
+
|-----------|--------------|-------------|---------------|-----------------|--------------|--------------|---------------|--------|-------------|------------|
|
|
123
123
|
|
|
124
124
|
## 活动日志
|
|
125
125
|
|