Skip to content

refactor20260927(P2-05): 完成 config 与 utils 的职责拆分 - #81

Merged
shaohaozhi286 merged 14 commits into
masterfrom
refactor20260927/P2-05
Sep 27, 2026
Merged

shaohaozhi286 merged 14 commits into
masterfrom
refactor20260927/P2-05

Conversation

@shaohaozhi286

@shaohaozhi286 shaohaozhi286 commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

完成 config / utils 的职责拆分:模型探测、搜索地区、桌面活跃工作区、桌面首页工作区、TUI 命令用量五组业务逻辑全部归回所属模块;底层保留通用文件事务。安全写、MCP 拦截和工具错误文案归到 tool,原有工具别名提示及拦截语义保持。旧路径不留转发头。

对应 OpenSpec refactor20260927-restructure-src-layers 的 P2-05,已同步 PR #80 合入后的 master。纯搬迁、机械 include 改写与实现提交分别保留,不 squash。

验证:

  • 全新 Windows CLI / Desktop / GoogleTest / 五个冒烟目标构建通过;完整本机测试 5116 项执行、9 项跳过、0 失败。实际 Desktop 重启后活跃工作区、首页选择及文件预览恢复。
  • 集成四平台矩阵 全部构建完成,逐项目标/既有元组/编译属性与用例/SKIP 清单对照通过。仅新增两项错误文案与有损写拦截回归;Linux 0 失败,Windows 保留 3 项基线失败,macOS 保留 10 项基线失败及已登记的 SSE 时序抖动。
  • 之前 Windows 的 250ms 抢占用例在本次 CI 通过,独立原始 CI 的失败及本机重复验证记录仍保留。
  • 151 项定向测试、重构工具 74 项自测、前端完整测试和构建、静态检查与 OpenSpec strict 通过。分层违规由 152 降到 87 项。

验证源码固定为 4a3366e68b48cfd9dd1b9d2653925d9ef01f0e0c,后续 master 同步与验收补录未改变代码。详细记录: openspec/changes/refactor20260927-restructure-src-layers/verification/P2-05-config-and-utils.md。

…ssions/ tool/ session/ config/ config/vocab/ network/ utils/(纯改名)[mechanical]

对应 src_layout_map.tsv 的 P2-05 move 行:permissions.hpp 与 agent_loop_shell_guard.hpp(→ shell_write_guard)
进 src/permissions/;utils 的 file_operations / tool_errors / tool_args_parser 头进 tool/;token_tracker 进
session/;models_dev_catalog + model_capabilities、provider/builtin_model_catalog 进 config/;pointer_appearance、
theme_id 进 config/vocab/;path_validator 进 permissions/;headless/headless_mode → permissions/interaction_mode;
upgrade/http → network/;upgrade/version → utils/semver(消除与生成的 version.hpp 重名)。7 个镜像测试同步。
内容零改动,全部 R100;include 改写在下一提交。
…nical]

由 `normalize_includes.py --scope src` / `--scope tests` 生成:src 60 文件 / 76 行(裸名 permissions.hpp 16、
utils/tool_errors 9、token_tracker 6、builtin_model_catalog 7、models_dev_catalog 6、tool_args_parser 6、
pointer_appearance 6、headless_mode 5、path_validator 3、file_operations 3、shell_guard 1、theme_id 2、
version / http 各 2 …),tests 52 文件 / 56 行(裸名 permissions.hpp 38 …)。
工具判不了的 4 行(semver.cpp 与 upgrade 两个文件里的 `version.hpp` 与生成头重名、interaction_mode.cpp
对自身旧名 headless_mode.hpp 的裸名 include)在下一提交手工改。
- utils/semver.cpp、upgrade/executable_version.cpp、upgrade/manifest.hpp 原来裸名 include 的 `version.hpp`
  指的是 upgrade 的语义版本头(SemVersion),不是 CMake 生成的 `generated/version.hpp`;改名为 semver 后
  工具只能解析到生成头(或报歧义),这里改成 `semver.hpp` / `utils/semver.hpp`。R9 的 `version.hpp` 重名
  与 R8 的三处歧义随之消失。
- permissions/interaction_mode.cpp 对自身旧头 headless_mode.hpp 的裸名 include 改为 interaction_mode.hpp。
…续映射到它的新位置

P2-05 实测:headless/headless_mode.cpp 搬成 permissions/interaction_mode.cpp 后,它对自身旧头
`headless_mode.hpp` 的裸名 include 仍留下 —— 按包含者旧目录回查到 src/headless/headless_mode.hpp,
但那个文件也已经搬走。现在回查到的邻居再正向映射一次(最终路径与 P2 过渡目录都试);同目录但
改了名的邻居保持裸名风格改成新名(`interaction_mode.hpp`),不再被「同目录裸名一律保留」跳过。

验证:test_guards.py 新增 test_moved_file_bare_include_of_its_own_renamed_header;工具自测 74 项通过;
P2-05 分支树与 master 树 --check src / tests 均 0 diff。
五组状态逻辑全部归回所属模块,安全写与工具报错文案上移。
保留状态文件事务、现有错误提示和动态工具名;同步测试归属、映射与验证记录。

验证:Windows 全新目录构建 CLI/Desktop/单测/五个冒烟目标通过;
151 项定向测试、74 项重构工具测试、前端 test/build 与静态护栏通过。
完整用例清单无删除,新增两项回归;短路径完整复跑及四平台验收待记录。
@shaohaozhi286
shaohaozhi286 changed the base branch from refactor20260927/P2-04 to master September 27, 2026 18:14
@shaohaozhi286
shaohaozhi286 marked this pull request as ready for review September 27, 2026 18:22
@shaohaozhi286
shaohaozhi286 merged commit 5f220f3 into master Sep 27, 2026
3 checks passed
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.

2 participants