Files
cad-agent/ai.memory/feedback_preferences.md
gjm 0b4ffdec0c chore(memory): 沉淀基座 c++_dll 加载/执行的排查结论
- 新增 ai.memory/project_mcp_frame_dll_loader.md:
  1) 运行时 acrxGetApiVersion() 有状态、不可用于版本比对;
  2) DLL 工具写数据库需文档锁(应用上下文 → eLockViolation);
  3) 同一 DLL 只加载一次(模块缓存)及代理不再 FreeLibrary 的原因。
- 更新索引 MEMORY.md;reference_environment.md 的 c++_dll 说明改为「只加载一次」
  并指向新文件,测试脚本表补 verify_annotate.py。
- 修正 feedback_preferences.md 中 ai.memory「尚未入库」的过时说明。
2026-10-09 22:37:31 +08:00

75 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: 用户协作偏好
description: 用户在本项目中明确的工作方式偏好(调试版本、模型、代码组织、配置文件等)
type: feedback
---
# 用户协作偏好
## 【最高优先级】提交与推送流程(Gitea PR)
- 规则:**今后所有提交都 commit 到当前分支 `home-ai-dev`**,然后**自动推送**到代码服务器并
**创建 PR**。推送**必须严格使用**如下格式:
```bash
git push origin HEAD:refs/for/main/<你的分支名称>
```
- **绝对禁止**使用常规的 `git push origin <branch_name>`。
- **Why:** 必须带 `refs/for/main/` 引用格式,才能触发 **Gitea 的自动 PR 创建机制**。
其中 `main` 是**目标主分支**,`<你的分支名称>` 是当前工作的**临时特性分支**名。
- **How to apply:** 例:当前分支为 `home-ai-dev` 时执行
`git push origin HEAD:refs/for/main/home-ai-dev`。每次提交后自动完成推送 + 建 PR,无需再问。
注意 `home-ai-dev` 的 upstream 常显示 `[gone]`(合并后源分支被删),这不影响该推送方式。
## 调试用 R230 + Debug,不用 Release
- 规则:涉及 CAD 版本的调试**只用 R230**,且配置用 **Debug**(非 Release)。
- **Why:** 用户明确要求;Release 曾造成误解(只构建了插件目标、没见基座 `.arx`)。
- **How to apply:** 任何联调/构建验证默认 `--config Debug` + `--preset R230`;
需要交叉验证时可另编 R243。
## 视觉模型用 `deepseek-flash`
- 规则:审查脚本调用的模型是 **`deepseek-flash`**,已确认支持视觉。
- **How to apply:** 脚本默认模型名保持 `deepseek-flash`;不要擅自换成其它模型。
## 插件代码集中在 `cad_mcp_plugins`
- 规则:DLL 工具的开发**全部实现在 `cad_mcp_plugins` 工程内**,便于统一管理。
- **How to apply:** 新增审查工具放进该工程;不要散落到其它目标。
## 封装常用函数
- 规则:编写代码时注意**封装常用函数**,避免重复。
- **How to apply:** 公共逻辑进 `dwg_review_common`;同类工具复用同一 helper。
## `mcp_config.json` 是注册工具的枢纽
- 规则:`mcp_config.json` 是向「基座」注册工具的**关键文件**,必须编辑它才能让工具生效。
- **How to apply:** 新增工具要同步更新模板 `src/cad_mcp_frame/cad-mcp-frame.json`
与运行时 `bin/<Config>-R230/mcp_config.json`;注意 `plugin_directory` 相对 `.arx` 目录解析。
## 命名前缀用 `dwg_review`
- 规则:审查相关源码前缀用 **`dwg_review`**,不用 `review_`(不够明确)。
## `ai.memory/` 要入库并推送到服务器,**不要**加进 `.gitignore`
- 规则:`CadProject/ai.memory/` 目录**不加入 `.gitignore`**,应作为 **`CadProject` 仓库的一部分**
提交并推送到远程服务器(`cad-agent.git`),以便 AI 在其它机器上接手记忆。
- **Why:** 用户希望记忆可跨机器共享/接管。
- **How to apply:** 不要建议把 `ai.memory/` 加入 `.gitignore`;提交/推送时正常包含它。
- 现状:`ai.memory/` **已入库**(提交 `chore(memory): 新增 ai.memory 记忆库`),随 `home-ai-dev`
正常提交并推送。(`CadProject` 已独立为单独仓库,远程 `cad-agent.git`。)
## 【重要】新建的 C++ 源文件必须存为 **UTF-8 with BOM**
- 规则:`src/` 下新增的 `.cpp` / `.h` 必须带 **UTF-8 BOM**(文件头 `EF BB BF`),与既有工程文件一致。
- **Why:** 工程未加 `/utf-8` 编译开关;无 BOM 的 UTF-8 文件会被 MSVC 按系统代码页(GBK)解析,
中文注释字节错位后会**吞掉紧随其后的声明/代码**,报出一堆离奇的
`C2447` / `C2039: 'xxx': is not a member of ...` / 行号错位错误,极难定位。
- **How to apply:** 用 Write 新建源文件后,立即补 BOM:
`printf '\xef\xbb\xbf' > f.tmp; cat f >> f.tmp; mv f.tmp f`(或确认 `head -c3 f | xxd -p` == `efbbbf`)。
既有文件(如 `dwg_review_*.cpp`、`StdAfx.h`)都带 BOM,可对照。