Files
Agent-System-Documents/docs/records/2026-10-09-base-v0.2.0-release.md
weichen 176db44c4b Record the v0.2.0 base release scope and owner tag steps
Why: v0.2.0 is the hard prerequisite for RDM shared work, and the release
checklist referenced a stale SurfaceVersion and tag message.
Evidence: SELF - scope lines are tied to merged Backend PRs (#66-#110);
Backend #110 CI success; UI composite run 1369 shows 14 files/103 tests.
Impact: Adds docs/records/2026-10-09-base-v0.2.0-release.md and points the
compat policy and the EXT-1 proposal at the actual 2.5.0-experimental line.
Tag creation and push stay with the owner (dual-key rule).
Refs: Dev feature/base-v020-release; Backend #110
2026-10-09 10:44:33 +00:00

6.1 KiB
Raw Permalink Blame History

基座 v0.2.0 发版记录

项 内容
状态 候选已就绪,tag 待 owner 执行(高后果操作双钥匙:发布版本由 owner 亲手打 tag 并推送)
发版授权 owner 2026-10-09 会话:「越快越好,你来执行即可,我已同意」(Q3)。Agent 完成候选组合、验证与本记录;tag 创建与推送按 AGENTS.md 双钥匙规则由 owner 执行
主任务 Dev 仓 feature/base-v020-release(任务卡即本次发版的主记录)
规范依据 Agent-System-RDM docs/materials/12-基座发版核对清单.md;扩展面兼容与演进 §5

1. 范围

v0.2.0 是第二段发版:在 v0.1.0 评估基线之上,附 experimental 兼容承诺(实验窗口内仍可破坏性调整,但须改快照并在提案记录)。

相对 v0.1.0 的公开面(pkg/extension,SurfaceVersion 2.0.0-experimental → 2.5.0-experimental):

扩展 公开面 来源
EXT-1 Handler、Host、Request、Registry.AddCommandHandler Backend #66
EXT-5 Host.ParseDocument;内置 xlsx/pptx 解析 Backend #67、#68
EXT-8 ResourceAuthorizer、Registry.RegisterResourceAuthorizer;工件/检索/项目流/向量/hostapi 共享读取 Backend #105、#107、#109
EXT-9 Host.KnowledgePublish、Host.KnowledgeDelete、Options.DisableUploadIndexing Backend #106
EXT-11 SetScopedHostFactory、NewScopedHost Backend #108
EXT-12 Options.DisableConvCardMirror Backend #107
执行原语硬关闭 Options.DisableExecTools;CLI --disable-exec-tools、配置键 disableExecTools、环境变量 AGENT_SYSTEM_DISABLE_EXEC_TOOLS Backend #110

同时包含的缺陷修复与行为变化(不改公开面):

  • 命令审计按 owner 存储与查询(v0.1.0 的 GET /api/commands/audit 跨租户可见;Backend e0b1c27,随 #105 合入);
  • DOCX 解析保留修订插入、超链接与域结果内的文字;删除/移走的原文与域代码不进正文;含修订时显式告警(Backend #110);
  • agent-stack N1–N3、Q1–Q3、I1–I2 阶段的库与接线(见 Backend #69–#103)。

升级须知(下游):

  • 多用户共享部署在执行隔离就位前,应设置 Options.DisableExecTools = true。只关闭用户设置 runtime.exec 不够,因为任何用户都能经 PUT /api/settings/user 把它改回 true。
  • 下游 go.mod 的 8 条 deps replace 不变(compat-policy §4)。
  • 下游兼容验证:RDM PR #113 头 d49d5c9 的源码在 replace 指向本次 backend 候选时 go build ./... 与 go test ./... 通过(SELF,2026-10-09)。

2. 候选组合

仓 提交 依据
Backend 由 Dev 合入提交的 gitlink 决定(Backend main f1c9cc0 或其后) Backend #110 合入;CI ci / vet-and-test (push) success
Core a253a40b8e5563119b00c4e71fb61fe0d11d6d6a == Dev gitlink == backend deps/agent-system-core(同 commit 约束)
Frontend 84b73ab32848e623d0a0ab7ade552784dca8cf3c == Dev gitlink == Frontend main
UI 76d6633736a7abb36ac1ecca42fe4e6f120d0558 == Dev gitlink == UI main
Dev 本任务 PR 合入 main 后的合入提交 Dev CI(PR HEAD make test + make build)

最终 SHA 以 Dev 合入后 git ls-tree <Dev 合入提交> modules/ 的实际输出为准,执行前按 §4 核对。

UI 仓自身 CI 现状:UI 仓 ci.yml 跑在 nightly 运行器上,自 2026-10-04 起每次都失败于 vitest 启动(Cannot find native binding,rolldown 可选依赖),与代码无关。同一 UI 提交在 Dev 组合 CI 中 npm ci && tsc && vitest 通过(14 文件 / 103 用例;Dev run 1369),本地 Node 26 复验同样通过。v0.2.0 以 Dev 组合 CI 为 UI 的权威验证;UI 仓 runner 修复另列后续任务。

3. tag 消息(五仓一致)

SurfaceVersion 2.5.0-experimental. Adds in-proc command handlers, the owner-scoped host handle, document parsing, resource authorization, knowledge publish/revoke, scoped host recovery, the card mirror switch and the exec hard switch.

4. owner 执行步骤

先在 Dev 主检出确认合入后的组合(只读):

cd /home/weichen/projects/Agent-System-Dev && git fetch origin && git checkout main && git pull --ff-only
git status --porcelain                         # 必须为空
DEV=$(git rev-parse origin/main); echo $DEV
git ls-tree $DEV modules/backend modules/core modules/frontend modules/ui
# core 同 commit:以下三行必须相同
git ls-tree $DEV modules/core | awk '{print $3}'
git -C modules/core rev-parse HEAD
git -C modules/backend/deps/agent-system-core rev-parse HEAD

然后子仓先、Dev 后,逐仓打 tag(<SHA> 用上面 ls-tree 打印的该仓 gitlink):

MSG='SurfaceVersion 2.5.0-experimental. Adds in-proc command handlers, the owner-scoped host handle, document parsing, resource authorization, knowledge publish/revoke, scoped host recovery, the card mirror switch and the exec hard switch.'
for m in backend core frontend ui; do
  SHA=$(git ls-tree $DEV modules/$m | awk '{print $3}')
  git -C modules/$m fetch origin && git -C modules/$m tag -a v0.2.0 "$SHA" -m "$MSG" && git -C modules/$m push origin v0.2.0
done
git tag -a v0.2.0 "$DEV" -m "$MSG" && git push origin v0.2.0

推完核对(五处一致):

for m in backend core frontend ui; do
  echo "$m tag=$(git -C modules/$m rev-parse v0.2.0^{commit}) gitlink=$(git ls-tree v0.2.0 modules/$m | awk '{print $3}')"
done
git ls-remote --tags origin v0.2.0

5. 发版后(Agent 可执行,tag 在位后启动)

  • RDM 升钉到 v0.2.0 五仓 tag,并重定基合入 #113/#114(RDM 计划 G1-1);
  • RDM 二进制设置 DisableExecTools: true(RDM 计划 G1-7);
  • Releases 仓按 scripts/build-release.sh 0.2.0 构建制品与 manifest(另立任务,内部发布,不公开)。

6. 不做的事

  • 不使用 v0.2.0-experimental 这类 tag 名;不在实验窗口发布 npm;不改 Go module path。
  • RDM 仓 v0.2.0 tag 不在本次范围(RDM 升钉完成后另行评估)。