Files
Agent-System-Dev/.task/archive/svc-remote-source.md
T
weichen cac91a8f9b
ci / test (pull_request) Failing after 10m52s
Close 6 merged task card(s) and archive them
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)
2026-10-01 05:32:31 +00:00

5.7 KiB
Raw Blame History

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 明确要求:更新、部署等操作不应依赖当前仓库状态;不指定时默认使用最新仓库;构建放在独立于当前仓库/目录的地方。

目标:

  1. 新增"独立部署源仓":脚本自有的干净克隆(默认 ~/.cache/agent-system-svc/src,SVC_SRC_DIR 覆盖;可随时删除重建),dev 源的解析、列举(commits)、worktree 物化全部基于它。
  2. 默认来源改为远端最新:裸 deploy 与 --from dev(不带 @sha)= 源仓 origin/main 最新提交;--from local 保留为显式"构建当前工作区"。
  3. update 去 pull 化:删除"local 源 → 主检出 pull(要求分支=main + 树干净)"路径;local@/dev@ 源一律重新部署为 dev@<远端最新>(隔离 worktree 构建),与工作区脏净/所在分支无关。领先/分叉/提交不在远端三种情形仍不动作(不盲目降级)。
  4. update 的 fetch 也走源仓(不再 fetch 主检出);commits dev 列表改为源仓 origin/main(自动确保+fetch),[HEAD] 标记改为 [最新]。
  5. 文档同步:脚本头注释、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 后,旧版"树脏跳过"即消失。

闭合记录(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。