ci / test (pull_request) Failing after 10m52s
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt. Evidence: feature-binary-doc-index.md(PR#114) feature-input-queue.md(PR#115) feature-preview-sniff-fallback.md(PR#96) fix-empty-create-task.md(PR#116) fix-mimosa-triage.md(PR#117) svc-remote-source.md(PR#102) — merges verified via git log --merges against origin/main. Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change. Refs: task.sh close (card-autoclose-r1)
5.7 KiB
5.7 KiB
feature/svc-remote-source 任务卡
任务主记录:Dev PR #102 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/102 ;状态:已完成(回填);owner:weichen
基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)=
f65d89e59b - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-svc-remote-source(worktree);分支:feature/svc-remote-source
- 启动方式说明:主检出存在 owner 本人未收尾现场(
modules/frontend子模块修改态,前端重设计进行中),task.sh start按门禁硬拒。owner 在任务对话中明确指示本任务并要求"更新/部署不依赖当前仓库状态",即 collaboration.md 的"经 owner 确认"路径;本工作区由 Agent 以与 task-start 完全相同的命令手动建立(同 R0、同命名、子模块零漂移),全程未写主检出、未触碰该未提交现场。 - 授权与交付终点:修改
scripts/svc.sh与docs/svc.md(实现 + 文档),验证后推送并建 PR;不合并(合入由 owner 决定);不动主检出modules/frontend现场。
目标与非目标
背景:scripts/svc.sh update dev 在主检出工作树不干净时跳过更新("主检出工作树不干净——跳过")。owner 明确要求:更新、部署等操作不应依赖当前仓库状态;不指定时默认使用最新仓库;构建放在独立于当前仓库/目录的地方。
目标:
- 新增"独立部署源仓":脚本自有的干净克隆(默认
~/.cache/agent-system-svc/src,SVC_SRC_DIR覆盖;可随时删除重建),dev 源的解析、列举(commits)、worktree 物化全部基于它。 - 默认来源改为远端最新:裸
deploy与--from dev(不带 @sha)= 源仓origin/main最新提交;--from local保留为显式"构建当前工作区"。 update去 pull 化:删除"local 源 → 主检出 pull(要求分支=main + 树干净)"路径;local@/dev@源一律重新部署为dev@<远端最新>(隔离 worktree 构建),与工作区脏净/所在分支无关。领先/分叉/提交不在远端三种情形仍不动作(不盲目降级)。update的 fetch 也走源仓(不再 fetch 主检出);commits dev列表改为源仓origin/main(自动确保+fetch),[HEAD]标记改为[最新]。- 文档同步:脚本头注释、
help各主题、docs/svc.md(§2/§5/§6.3/§9.3/§11/§13/§14)。
非目标:不改 --from local 语义与实现;不改 release 源、数据库、生命周期、dbops 行为;不动 Makefile。
同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | f65d89e59b |
f65d89e59b |
2026-09-30(手动 task-start 复刻) |
| 同步前验收 | 4c4071e5d8 |
(合并提交) | 2026-10-01T04:10:00Z |
结果与验证
-
结果:已实现(提交 a42fff6)。svc.sh 新增独立部署源仓(
SVC_SRC_DIR,默认~/.cache/agent-system-svc/src,可随时删除重建):dev 源的提交解析、commits列举、 worktree 物化全部基于它;裸deploy与--from dev缺省取源仓origin/main最新;update删除"主检出 pull(要求分支=main+树干净)"路径,local@/dev@源一律重新 部署为dev@<远端最新>(领先/分叉/提交不在远端三种情形仍不动作);docs/svc.md与脚本 help 各主题同步更新。 -
验证:
bash -n scripts/svc.sh通过;help/help lifecycle渲染正常;scripts/svc.sh commits dev:首次自动克隆源仓并 fetch,列表来自源仓 origin/main, 顶提交标[最新];- 裸
deploy --dry-run(无--from):计划dev@0be23f9(源仓远端最新); - 端到端(复刻 owner 场景):在任务 worktree 制造脏现场(未跟踪文件 + 跟踪文件
修改)并手工登记
source=local@d64742c的服务,scripts/svc.sh update svc-selftest直接更新成功:local@d64742c → 0be23f9,从源仓物化隔离 worktree 构建(npm ci + vite + go build),服务启动健康(pid 1228696,http://127.0.0.1:8812,来源dev@0be23f9,版本组合完整),全程未触碰工作区;随后 stop + rm --purge 清理, worktree 无残留; make task-sync:sync_base=0be23f9a4d,tested_head=87cc6b3b55(并入 PR #101 后组合);make test全绿(core ok;backend 全部 ok 含 server 4.8s;frontend 5 文件 33 用例; ui 7 文件 49 用例;agentcmd ok),退出码 0。
-
影响与剩余项:
- 行为变化:部署缺省来源从"当前工作区"改为"远端 main 最新"——构建当前工作区须显式
--from local;update不再依赖主检出状态,owner 遇到的"工作树不干净——跳过" 场景消除。 - 观察项(非本任务引入):部署时对产物
serve -h探测不到--auth会自动省略该 flag(0be23f9 产物即如此),与旧版行为一致,健康检查通过。 - 剩余项:PR 合入由 owner 决定;合入并在主检出 pull 后,旧版"树脏跳过"即消失。
- 行为变化:部署缺省来源从"当前工作区"改为"远端 main 最新"——构建当前工作区须显式
闭合记录(card-autoclose 回填)
- 依据:merge 4968f97b8531b90caa64534eae2a3bc8ec75bb5b(PR #102)已包含于 origin/main,分支成果已落盘;本段为合入后回填。
- 合并主题:Merge pull request 'svc.sh: deploy/update from an isolated remote source clone (dirty-tree independent)' (#102) from feature/svc-remote-source into main
- 归档:随闭合移入 .task/archive/;任务执行期的过程证据见原任务记录与 PR。