This commit is contained in:
2026-07-24 18:09:36 +08:00
parent 0c870a2222
commit 015d9bb9d7
+79
View File
@@ -0,0 +1,79 @@
2026-07-24: 在 PowerShell 里递归 `Get-ChildItem C:/Users/wyc/.codex -Recurse` 可能因为 `.codex/skills` 下存在失效路径而返回失败码,即使已经输出了部分结果。以后查 Codex 配置优先直接读取 `C:/Users/wyc/.codex/config.toml`,或给递归命令加更严格的 `-ErrorAction SilentlyContinue` 并避免遍历可能损坏的链接目录。
2026-07-24: `npm view everything-mcp-server` 返回 npm 404`peterparker57/everything-mcp-server` 不是 npm 裸包名。以后安装该 MCP 先查 GitHub 仓库或 scoped 包名,不要直接假设 npm 包名等于仓库名。
2026-07-24: 在 `C:/Users/wyc/.codex/mcp-servers/node` 里执行 `npm install github:peterparker57/everything-mcp-server` 会触发仓库 prepare/build,并在 `src/index.ts` 报 TS2589。以后这个 MCP 不要直接用 npm git dependency 安装,先克隆仓库后按其锁定依赖或调整 TypeScript 版本构建。
2026-07-24: 在当前 shell 工具里写 `pwsh -Command "$target=..."` 时,`$target` 可能被外层 PowerShell 抢先展开,导致 pwsh 脚本变量丢失且命令内部报错。以后包含 PowerShell 变量的内联脚本用单引号包住 `-Command '...'`,或反引号转义 `$`。
2026-07-24: 克隆 `peterparker57/everything-mcp-server` 后执行 `npm run build` 仍会在当前默认 TypeScript 版本下报 `src/index.ts(197,1)` 和 `(252,1)` 的 TS2589。以后遇到该 MCP 构建失败,优先在该 MCP 目录内锁定较旧 TypeScript 版本,不要修改业务项目依赖。
2026-07-24: 用 `Get-ChildItem \"C:/Program Files\",\"C:/Program Files (x86)\" -Recurse` 搜 Everything DLL 容易超时。以后先用 `Get-Process Everything` 或检查常见目录 `C:/Program Files (x86)/Everything`,不要直接递归整个 Program Files。
2026-07-24: 用 `rg "web_server\.tiles|/tiles/|tiles/\{z\}|get_true_tiles|\"tiles\""` 这种混合引号和转义的正则在 PowerShell/rg 组合里容易变成 unclosed group。以后查多个固定字符串优先用多次 `rg -F` 或 `rg -e`,不要把复杂转义塞进一个正则。
- 2026-07-24: 在 pwsh 单行里串多个 rg 且包含转义引号/花括号模式时容易被解析成错误路径;以后分别执行 rg 或用 --fixed-strings/-F 且分开调用。
- 2026-07-24: 查 Cesium 源码不要假定 packages 或 Source/Core 路径存在;先用 rg 定位真实文件,再 Get-Content。
- 2026-07-24: 从当前 PowerShell 调 pwsh -Command 时不要用外层双引号包包含 的脚本;会被外层提前展开导致 ParserError,改用外层单引号。
- 2026-07-24: PowerShell 中不要把包含 []、引号、反斜杠的 rg 正则放进双层 -Command;复杂 HTTP 路由残留检查改用多个 rg -F 固定字符串。
- 2026-07-24: rg 固定字符串含引号时如果被 PowerShell 拆坏会把 /tiles 当路径并扫系统根目录;以后使用 rg -F /tiles -- <明确路径>,不要搜索带引号字面量。
- 2026-07-24: 前端源码存在 .js 后缀导入但实际文件可能是 .tsx;批量 Get-Content 多文件时先 rg --files 确认路径,避免半成功半失败。
- 2026-07-24: apply_patch 多处上下文合并修改容易因细微文本差异失败;复杂 TSX 文件改动改用多个小补丁,每次只匹配局部实际片段。
- 2026-07-24: npm run typecheck 使用新版 TypeScript 时会因 moduleResolution=node10 弃用报 TS5107;不想改解析语义时给 tsconfig 增加 ignoreDeprecations。
- 2026-07-24: Vite 项目跑 tsc --noEmit 时 CSS side-effect import 需要 *.css 模块声明;Cesium Entity.description 后续赋值要用 Property/ConstantProperty。
- 2026-07-24: rg 用来查是否存在文件时无匹配会返回 1;如果无匹配是可接受结果,后续命令要显式处理或不要把它当异常失败。
- 2026-07-24: 对现有 enhance.Base 类组件项目启用 react-hooks/rules-of-hooks 会误报既有架构;lint:src 应扫描 TS/TSX 但规则要贴合当前架构,避免为过 lint 大改旧代码。
- 2026-07-24: Windows 下给 rg 传 assets/index-*.js 这类通配路径可能不会展开并报 os error 123;改用 --glob 或先 Get-ChildItem 找真实文件名。
- 2026-07-24: pwsh 调 cmd.exe 执行 VS DevCmd 时外层双引号会拆坏 Program Files (x86) 路径;用 pwsh -Command 后接单引号包住整段 cmd /c 命令。
- 2026-07-24: 后端完整重编时可能暴露非本次瓦片代码的 Local_Server_main.cpp destroy 成员缺失;先确认调用点和 Singleton/Base_Logger_Manager 声明,不要误改无关代码。
- 2026-07-24: Get-NetTCPConnection 查询无监听项可能返回非零;端口探测脚本要把无结果作为正常分支处理。
- 2026-07-24: ecap_server 运行前需要 data/sqlite 目录存在,否则 external_database 打开 @/../data/sqlite/ecap.sqlite 会 fail_fast 退出 75。
- 2026-07-24: New-Item 创建目录时不要用 -LiteralPath;当前 pwsh 下该 cmdlet 不接受此参数,使用 -Path。
- 2026-07-24: App.tsx 路由 JSX 多段 apply_patch 容易上下文失败;路由别名这类改动继续用小块补丁逐段插入。
- 2026-07-24: 重新链接 ecap_server.exe 前必须停止正在运行的测试进程,否则 MSVC link 报 LNK1168 无法打开 exe 写入。
- 2026-07-24: /ui handler 中 req->path().substr(3) 已经带前导 /,再手动加 / 会变成 //mapSPA fallback 判断会失效。
- 2026-07-24: pwsh 中 foreach 语句块后直接接管道容易出现 empty pipe element;先把结果收集到数组变量再 ConvertTo-Json。
- 2026-07-24: PowerShell 的 Select-Object 不能写成 -First 5, -Last 5;需要分两次 Select-Object 或先排序存变量再取首尾。
- 2026-07-24: 用 rg 验证“无残留”时必须在命令中处理 exit 1,例如 `if ($LASTEXITCODE -eq 1) { exit 0 }`,否则预期无匹配也会显示为失败。
- 2026-07-24: Vite dev 的 SPA 路由不能硬编码代理到 localhost:5173;换端口或 5173 被其他项目占用时会错误转发甚至让验证超时。
- 2026-07-24: 用 Get-NetTCPConnection 管道 Stop-Process 时无监听项也可能返回非零;先保存连接数组并显式判断 Count。
- 2026-07-24: Vite dev 验证不要把 readiness、页面请求和代理瓦片请求放在一个长脚本里;超时后无法判断卡在哪一步,应拆成单 URL 短超时检查。
- 2026-07-24: Start-Process 启动 Vite 后不能只看父进程 PID;要检查端口监听或重定向日志,进程可能快速退出导致后续 curl 连接失败。
- 2026-07-24: Drogon setBody 后会自动生成 Content-Length;自定义再 addHeader("Content-Length") 会导致 Node/Vite 代理报 Duplicate Content-Length。
- 2026-07-24: 验证 localhost:5173 时先确认端口监听;外部 Vite 进程可能已退出,直接请求会变成 connection refused。
- 2026-07-24: PowerShell 中带单双引号混合的 rg 正则仍容易被拆坏;残留检查继续用多条 rg -F 固定字符串,不要合并复杂正则。
- 2026-07-24: 运行中前端验证前先检查 Vite 端口;端口已退出时并行请求会产生一串误导性后续空值错误。
- 2026-07-24: PowerShell -Command 中不要用反斜杠转义双引号构造 Contains("key: \"version\"");改用 Select-String -SimpleMatch 或单独 rg -F。
- 2026-07-24: Get-Process 查目标进程不存在会返回非零;用于状态检查时加 `if ($null -eq $p) {}` 分支,避免把“未运行”混成命令错误。
- 2026-07-24: 检查 TSX 中带双引号的文本时不要在 pwsh -Command 里嵌套转义;直接读取文件后人工确认,或用 rg -F 配合外层单引号。
- 2026-07-24: PowerShell `foreach (...) { ... } | ConvertTo-Json` 在内联命令里仍会触发 empty pipe element;先赋值 `$items = foreach (...) { ... }` 再单独管道输出。
- 2026-07-24: `rg` 指定多个路径前先确认目录存在;把不存在的 `cmake` 目录传给 rg 会让整条查询返回失败。
- 2026-07-24: 大段 JavaScript 不要通过 `pwsh -Command '@' ... '@ | node -` 执行;外层命令包装会破坏 here-string,改用 node_repl 或临时脚本文件。
- 2026-07-24: 生成 GLB 时 JSON chunk 不能用 0 字节补齐;应使用 0x20 空格补齐,否则 JSON.parse/部分加载器会失败。
[2026-07-24] PowerShell 调 rg 正则时不要在单引号外再被 JSON/PowerShell 引号转义成 \|、\" 这类非法序列;复杂关键字搜索优先用 rg -F 多次或 PowerShell Select-String -SimpleMatch。
[2026-07-24] Add-Content 追加中文路径或中文内容失败且无错误输出时,不要反复尝试同一种写法;改用 apply_patch 追加记录。
[2026-07-24] 在 powershell 外层再调用 pwsh -Command 的双层命令里,ForEach-Object 的 $_ 会被外层双引号提前展开;要用单引号包 -Command 内容、转义 `$`,或避免双层 PowerShell。
[2026-07-24] 调后端 API 前先从当前运行配置确认端口和 api 前缀;不要默认使用 http://127.0.0.1:8080/api/...,该地址可能是 Vite 代理或返回 404。
[2026-07-24] Select-String -SimpleMatch 在复杂双层命令里传多个字符串容易被解析成错误的位置参数;需要多模式时优先用 rg -F 或在 pwsh 脚本块里显式数组变量。
[2026-07-24] Invoke-WebRequest/Invoke-RestMethod 的 JSON body 不要在双层 PowerShell 命令里手写转义字符串;在 pwsh 脚本块内用 hashtable | ConvertTo-Json 生成 body。
[2026-07-24] Invoke-WebRequest 的 Content 可能是 byte[] 而不是 string;输出摘要前先判断类型或用 Invoke-RestMethod/显式编码转换,不能直接调用 Substring。
[2026-07-24] 在 pwsh 里调用带空格和括号的 VsDevCmd.bat 路径时,不要手写多层反斜杠转义;先把 bat/cmake 路径赋给变量,再用 cmd.exe /d /c \"call \"\"$vs\"\" ... && \"\"$cmake\"\" ...\"。
[2026-07-24] rg 同时传多个路径时要先确认每个路径存在;即使其它路径有输出,不存在路径仍会污染结果,优先用 rg --files 或 Test-Path 过滤。
[2026-07-24] Windows 链接 DLL 报 LNK1168 时,不能只停最近启动的 PID;要先查所有可能加载该 DLL 的 ecap_server/data_process/test 进程,否则 dll_source.dll 仍可能被旧进程占用。
[2026-07-24] PowerShell 访问 JSON 返回对象中带冒号和中文括号的属性名时,点号语法容易解析失败;用 PSObject.Properties 遍历或 Select-Object -ExpandProperty 加字面属性名。
[2026-07-24] 项目 JSON 的 try_get_string 返回 tl::expected,不是 std::optional;不能在三元表达式里和 std::nullopt 混用,需先判断 parse 成功再单独处理 expected。
[2026-07-24] 请求 http://127.0.0.1:5173 前要先确认 Vite dev server 是否还在运行;如果没有运行,应测后端生产静态路径或先启动 npm run dev。
2026-07-24: 在外层 PowerShell 中调用 pwsh -Command 时,rg 正则包含 | 和 \(\) 不要用未转义的双引号嵌套;用单引号包住整个 -Command 内容,内部路径和正则再用双引号。
2026-07-24: rg 搜索没有匹配时退出码也是 1;这类结果要区分为无匹配,不要当作命令语法失败。
2026-07-24: 用 Invoke-WebRequest 检查 http://localhost:5173 前要确认 Vite dev server 已启动;未启动时会返回目标计算机积极拒绝连接。
2026-07-24: pwsh 里执行 node -p 时,JS 字符串包含 ./ 路径不要用反斜杠转义的双引号嵌套,容易触发 PowerShell 引用解析;外层 -Command 用双引号或单引号时内部 JS 字符串要反向使用引号。
2026-07-24: 在当前 shell 包装下嵌套 pwsh -Command 再传 node -p 的引号仍会被外层解析;读取 package.json 版本时优先用 Get-Content -Raw | ConvertFrom-Json,避免 JS 字符串引号。
2026-07-24: rg 同时搜索多个路径时,只要其中一个路径不存在,哪怕其它路径有匹配也会退出码 1;先用 rg --files 或确认文件存在再组合路径。
2026-07-24: 读取 vite.config.ts 前要先确认文件存在;该前端没有 vite.config.ts 时 Get-Content 即使用 SilentlyContinue 仍可能产生非零退出码。
2026-07-24: tsconfig 默认 DOM lib 不一定包含 DedicatedWorkerGlobalScopeVite worker 文件里需要避免直接依赖该全局类型,或显式补 webworker lib。
2026-07-24: ESLint globals.browser 不一定声明 Transferableworker postMessage 转移列表类型可写成当前使用到的 ArrayBuffer[],避免 no-undef。
2026-07-24: Float32Array.buffer 在 TypeScript 中是 ArrayBufferLike;如果当前数组明确由 new Float32Array 创建,可局部断言为 ArrayBuffer 后再传给 postMessage 转移列表。
2026-07-24: rg --files 管道给第二个 rg 搜文件名时,无匹配会退出码 1;先确认这只是无匹配,不要当作命令损坏。
2026-07-24: 在外层 PowerShell 调用 pwsh -Command 时,脚本块里有 $paths/$p 变量必须用单引号包住整个 -Command,否则外层会提前插值成空导致 foreach 语法错误。
2026-07-24: 在外层 PowerShell 调用 pwsh -Command 时,rg 正则里的 | 和 /map/... 不能放在未转义双引号中;用单引号包住 -Command 或把正则放入变量。
2026-07-24: cmake-build-vs2019_debug 使用 Ninja 时不能假定主目标叫 ECAP_Server;先用 cmake --build <dir> --target help 查询实际目标名。
2026-07-24: ecap_server 目标编译通过但链接报 LNK1168 时,说明 cmake-build-vs2019_debug/ecap_server.exe 正被运行中的服务占用;先查占用进程再决定是否停止重建。
2026-07-24: Stop-Process 后直接用 Get-Process 管道确认结果可能在无匹配时让包装命令返回非零且没有有效错误;停止和确认应拆成两个命令或显式 exit 0。
2026-07-24: rg 同时查多个具体文件路径前要确认扩展名;把 Terrarium_Terrain_Provider.tsx 写成 .ts 会让 rg 虽有其它匹配仍返回非零。
2026-07-24: Start-Process、Invoke-RestMethod、JSON 输出塞进同一个双层 pwsh 命令时容易被策略拦截;启动服务和接口验证要拆成短命令,并用单引号脚本块。
2026-07-24: PowerShell 中 foreach 语句块不能直接跟管道;需要先 `$results = foreach (...) { ... }`,再 `$results | ConvertTo-Json`。
2026-07-24: apply_patch 同时改源码配置和运行配置时,运行配置可能已被接口保存成 1.000000/4.000000 等格式;不要用同一段精确 JSON 上下文匹配两份文件。
2026-07-24: 通过 pwsh -Command 执行多行 JS here-string 时,不能把 `@'` 直接作为 -Command 的参数开头;外层会把后续 JS 当 PowerShell 解析,复杂脚本优先落到临时 .cjs 再执行。