Merge pull request 'T1: pin contracts combo (core cards/commands, agent-command v0) and guard task-finish' (#15) from feature/core-cards-commands-r1 into main
ci / test (push) Successful in 1m51s

This commit was merged in pull request #15.
This commit is contained in:
2026-09-30 06:34:06 +00:00
11 changed files with 44 additions and 11 deletions
+1
View File
@@ -33,3 +33,4 @@
| 同步前验收 | dca932c6da3aea34af722f2a6772e621cf6143f5 | 6acda49e04eafc08fc12a9654d96b2512799cffa | 2026-09-30T04:20:54Z |
| 同步前验收 | a58f85e0d0ade6e8b4da3afe9985985a38bae47a | 3e1cdbda1e7c7f218743132908dfdd2b39c71afc | 2026-09-30T04:44:49Z |
| 同步前验收 | f20c634fea9e4316db664b4da7b4a6c772dd855e | 15f0da63742d68036accdf9a6a5fffd445eb63a3 | 2026-09-30T05:56:09Z |
| 同步前验收 | 69e9471dafd275f98928ff005732b94c4b18b638 | 24b45a26672015c84e6754f900ba2a6a3ede6f2c | 2026-09-30T06:30:25Z |
+25
View File
@@ -0,0 +1,25 @@
# feature/core-cards-commands-r1 任务卡
任务主记录:Dev PR(feature/core-cards-commands-r1);状态:待合入;owner:weichen
## 基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 69e9471dafd275f98928ff005732b94c4b18b638
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-core-cards-commands-r1(worktree);分支:feature/core-cards-commands-r1
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明>
## 目标与非目标
<预期结果、受影响入口/模块/契约;明确不做什么。>
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | 69e9471dafd275f98928ff005732b94c4b18b638 | 69e9471dafd275f98928ff005732b94c4b18b638 | 2026-09-30T06:17:08Z |
## 结果与验证(完成后填写)
- 结果:完成。Core 契约扩展(ActivityCard/card 事件/HITL 锚定阻断/UI 七词汇/manifest commands+workspaces/工作流 card 步骤)PR#2 合入;Agent-Command v0(spec/registry/四态回执/审计信封+conformance)PR#2 合入;frontend 与 ui contracts 再生成 PR#3 合入;backend 消费适配(嵌套 pin 升级)PR#7 合入;documents 验证记录 PR#9 合入;task.sh finish 增加 cwd 防护(T0 误删主检出事故的修复)。
- 验证(synced head):PASS make test(core ok;backend 13 包 ok;frontend 9/9;ui tsc+6/6;agent-command vet+tests);PASS make build(版本串含 agentcmd);黄金样本逐字节一致(core 新增 5 份 + 扩展 1 份;agent-command 2 份);全变更为增量、既有样本不变。
- 影响与剩余项:组合版本串纳入 agentcmd;task-finish 必须在 worktree 内运行(已写入 AGENTS.md + 脚本防护)。剩余:T2 收件箱(backend cardsvc + 卡片组件 + mock 演示)。
+3 -2
View File
@@ -11,8 +11,9 @@
feature 分支(自动记录 R0 与任务卡);任务中途不重复运行 precheck。
- **验收、请求审核、合入前**各运行一次 `make task-sync`;完成声明附 precheck、task-sync、
测试三段输出。
- 合入后运行 `make task-finish` 回收 worktree 与分支;放弃未合入工作用
`make task-finish ABANDON="--abandon <原因>"` 并记录原因。
- 合入后**在 worktree 内**运行 `make task-finish` 回收 worktree 与分支(脚本会把
当前目录当 worktree 回收——在主检出运行会误删主检出,已加防护);放弃未合入
工作用 `make task-finish ABANDON="--abandon <原因>"` 并记录原因。
## 提交与 PR
+6 -3
View File
@@ -10,10 +10,10 @@ BIN := bin/agent-system
EMBED_DIR := $(BACKEND)/web/dist
PLUGINS := plugins
# 版本溯源(release-operations:运行制品须可对上固定组合)。无 tag 时 --always 给短 SHA。
COMBO := core=$(shell git -C $(CORE) rev-parse --short HEAD 2>/dev/null)+backend=$(shell git -C $(BACKEND) rev-parse --short HEAD 2>/dev/null)+frontend=$(shell git -C $(FRONTEND) rev-parse --short HEAD 2>/dev/null)+ui=$(shell git -C $(UI) rev-parse --short HEAD 2>/dev/null)+documents=$(shell git -C modules/documents rev-parse --short HEAD 2>/dev/null)
COMBO := core=$(shell git -C $(CORE) rev-parse --short HEAD 2>/dev/null)+backend=$(shell git -C $(BACKEND) rev-parse --short HEAD 2>/dev/null)+frontend=$(shell git -C $(FRONTEND) rev-parse --short HEAD 2>/dev/null)+ui=$(shell git -C $(UI) rev-parse --short HEAD 2>/dev/null)+agentcmd=$(shell git -C deps/agent-command rev-parse --short HEAD 2>/dev/null)+documents=$(shell git -C modules/documents rev-parse --short HEAD 2>/dev/null)
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null)+$(COMBO)
.PHONY: help sync status build frontend test test-backend test-frontend test-ui test-core dev pin clean setup precheck task-start task-sync task-finish version
.PHONY: help sync status build frontend test test-backend test-frontend test-ui test-core test-agentcmd dev pin clean setup precheck task-start task-sync task-finish version
version:
@echo "agent-system $(VERSION)"
@@ -82,7 +82,10 @@ test-frontend: contracts
test-ui: contracts
cd $(UI) && npm ci --no-fund --no-audit && npx tsc --noEmit && npx vitest run
test: test-core test-backend test-frontend test-ui
test-agentcmd:
cd deps/agent-command && go vet ./... && go test -count=1 ./...
test: test-core test-backend test-frontend test-ui test-agentcmd
# 运行演示(mock 模式):单二进制 + 示例插件 + 嵌入式存储,浏览器 http://127.0.0.1:8787
demo: build
+3
View File
@@ -118,6 +118,9 @@ cmd_finish() {
head=$(git rev-parse HEAD)
common=$(git rev-parse --git-common-dir); common=$(cd "$common" && pwd)
mainrepo=$(dirname "$common")
# 防护(T0 事故教训):finish 必须在任务 worktree 内运行——本脚本把 $PWD 当
# worktree 回收(rm -rf);从主检出运行会误删主检出。mainrepo==PWD 即主检出。
[ "$(cd "$mainrepo" && pwd)" = "$PWD" ] && die "task-finish 须在任务 worktree 内运行(cd 到 worktree 再执行),防止误删主检出"
git fetch -q origin "${TARGET_BRANCH}" 2>/dev/null || true
if [ "$abandon" = "--abandon" ]; then
local reason="${2:-}"; [ -n "$reason" ] || die "--abandon 需要原因:task.sh finish --abandon <reason>"