Skip to content

fix(build): align default targets with Go test architecture - #110

Draft
ULookup wants to merge 31 commits into
3.0-devfrom
fix/101-align-default-build
Draft

ULookup wants to merge 31 commits into
3.0-devfrom
fix/101-align-default-build

Conversation

@ULookup

@ULookup ULookup commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Primary Issue

Closes #101

Target Version

3.0-dev

Scope

默认 CMake 构建只包含九个业务服务,保留 common/test 历史文件但不将其加入维护中的构建图。新增标准库 Go 用例 BLD-01,通过真实 CMake file-API 构建图验证目标集合。CI 在原生 builder 内运行该契约,并改为默认构建,不再用九服务显式 allowlist 绕开默认入口。

Non-goals

不新增、恢复或修理旧 C++ 测试;不改变服务业务源码、协议、持久化或产品语义;不关闭 #104、#96 或 #108。

Architecture Impact

No — 服务边界和基础设施未变,仅对齐默认构建与既有 Go 测试架构。

Core-flow Impact

No — 本次没有生产服务源码或通信、持久化行为修改。

Updated Skills

  • .agents/skills/chatnow-orienting/references/technology-stack.md
  • .agents/skills/chatnow-testing/references/framework.md
  • .agents/skills/chatnow-testing/references/case-catalog.md
    README.md 的原生构建和 Go 测试入口同步更新,移除失效的 common_tests 执行示例。

RED Evidence

Linux,前序 fb2bb88 源码:
CHATNOW_CMAKE_SOURCE=/home/icepop/ChatNow-lease-99 go test ./pkg/buildcontract -run '^TestDefaultBuildContainsOnlyServices$' -v -count=1
实际配置成功,断言失败:目标集合包含九服务以及 test_inflight、test_local_cache 系列、test_members_cache_rules、test_redis_mutex_contract、test_reliability_state、test_seq_keys 等 12 个遗留目标。exit=1,2.584s;保留 build-graph-red.log。该 RED 来自实际可观察构建图,不是编译环境缺失。

GREEN Evidence

同一命令在入口修复后 exit=0,0.544s,目标恰好为九个服务;保留 build-graph-green.log。
cmake -S /home/icepop/ChatNow-lease-99 -B /home/icepop/ChatNow-lease-99/build -DCMAKE_BUILD_TYPE=Release
cmake --build /home/icepop/ChatNow-lease-99/build -j2
默认 Release 构建 exit=0;九项可执行产物存在,大小与 SHA-256 保留于 artifacts.json。此本地检查复用独占开发验证目录的构建缓存;当前提交 CI 已在新 checkout 中完成原生 builder 构建图、默认编译与九服务产物校验。

Regression Verification

当前提交 ddd3fa91e3d92ffda7af2e299c6dce7791af5d58,八个增量文件的 LF 归一化 SHA-256 与 Linux 受测源码全部一致。

检查 命令 完整输出 / 实际结果
构建图契约 CHATNOW_CMAKE_SOURCE=/home/icepop/ChatNow-lease-99 go test ./pkg/buildcontract -run '^TestDefaultBuildContainsOnlyServices$' -v -count=1 build-graph-green.log,九目标,exit=0
独立测试二进制 CGO_ENABLED=0 go test -c -o /home/icepop/issue101-audit/cmake-contract.test ./pkg/buildcontract;设置同一 CHATNOW_CMAKE_SOURCE 后运行 cmake-contract.test -test.v compiled-graph-green.log,PASS,exit=0;本地执行采用 CI 的编译产物形式,builder 内执行由当前提交 CI 单独验证
默认原生构建 GREEN 段所列 cmake -S/-B 和 cmake --build ... -j2 configure.log / default-build.log,exit=0;九产物的大小和 SHA-256 见 artifacts.json
Go 契约与策略回归 go test ./pkg/contracts ./pkg/buildcontract ./pkg/agentpolicy ./cmd/agent-policy -count=1 static-current.log,四包通过,exit=0;普通主机未设置原生源码环境时 buildcontract 明确跳过,不替代上方实际构建图证据
vet / 格式 go vet ./...;test -z "$(gofmt -l .)" vet-current.log / fmt-current.log,exit=0
策略 / diff agent-policy issue/branch/commits/pull-request/skill-sync/skills 六项;git diff origin/3.0-dev...HEAD --check 六项策略及 diff 检查通过,exit=0
BVT make test-bvt bvt.log,18 项通过,6.147s,exit=0;临时使用本分支相同业务源码的前序镜像,完成后恢复 #109 验证镜像

CI producer 契约新增反例,拒绝跳过构建图编译、允许失败、移除原生配置环境变量及将图检查移到默认编译之后。中间两版发现原有 CI 静态契约仍约束旧显式目标命令,失败日志和已取消的 CI 记录保留;当前提交已同步约束默认命令并通过本地及云端 build 检查。

完整原始日志目录:C:/Users/legion/.codex/visualizations/2026/09/13/01a09ad5-45db-76c1-9764-83a843e3d9ed/issue101/vm/;Linux 为 /home/icepop/issue101-audit/。
当前提交 CI 34760040499 已完成且成功:build、service-artifacts(含 builder 内 BLD-01、默认九服务编译和产物校验)、BVT、Functional、Reliability 全部通过;Performance 作业按现有非定时条件跳过。完整 CI stdout/stderr 保留为同一审计目录下的 ci-34760040499.log。

Security and Compatibility

Security: 只修改开发构建与测试说明;临时构建图由 t.TempDir 清理,不接触运行凭据或业务数据。
Compatibility: 默认原生构建移除历史 C++ 测试目标,九个服务目标名与产物路径不变;Go 行为测试不删减。
Migration: 无数据、协议或运行配置迁移。

Unverified Items

本轮要求的真实 RED/GREEN、默认编译、产物检查、本地静态/BVT 与当前提交 CI 已通过;保持 Draft,等待前序堆叠合入后的同步及人工审查。完整本地 Functional、Scenario、Reliability 未在此构建分支单独重跑;本次没有服务行为变更,当前提交 CI 已用新构建产物通过 BVT、Functional(包含 Scenario)及 Reliability。Performance 非本次开发构建入口修复的必需检查,CI 按既有条件跳过。
#104 间歇消息失败与 #96 历史退出继续单独跟踪,不由本 PR 关闭。前序堆叠合入后仍需同步和集成验证。

Rollback Plan

回退本 PR 的构建与文档增量,无业务数据回退;会重新暴露默认构建的遗留链接失败。合并和生产操作由人工决定。

Stacked PR Dependencies

Dependency: #89 → #98 → #100 → #103 → #106 → #107
Final target version: 3.0-dev
Merge order: #89 → #98 → #100 → #103 → #106 → #107 → 本 PR。
After predecessor merge: 同步开发线并复核祖先关系,保持 3.0-dev 目标,不重写共享历史。#109 是独立的同级后续修复,不隐含为本 PR 祖先。

Full-diff Self-review

Base and range: origin/3.0-dev...HEAD;本轮增量 fb2bb88...HEAD。
Verdict: 复核默认目标、实际 file-API 验证、CI 无显式服务 allowlist 的默认构建、九服务产物验证和三份 Skill 同步。继承内容与前序 fb2bb88 相同,无新增生产源码、凭据或生成代码。当前增量的必需门禁已通过;保持 Draft,前序合入后的同步与最终合并仍由人工审查流程决定。

Agent Acknowledgements

  • 主 Issue、开发线和堆叠依赖已声明。
  • 真实 Go RED 先于构建入口修改。
  • 保留失败和未验证事项。
  • 合并由人工决定。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant