查找问题与解决方法
每次 pnpm run 都先安装:检查 dedupePeers 与 pnpmfile 的组合
pnpm 12.15.0 在运行前检查中可能把 dedupePeers 固定视为 false,导致锁文件变更后反复安装。普通 install 可恢复当次状态,仍需保留后续变更回归。
read_csv 已设 encoding_errors,PyArrow 仍报解码错误
pandas 的 PyArrow CSV 字节输入路径可能没有传递 encoding_errors。先确认真实编码;必须替换坏字节时,选择已核对支持该策略的读取引擎并保留原件。
gRPC Java 报 Invalid DNS name,检查短主机名的最后一段
gRPC Java 1.84.0 使用 java.net.URI 校验地址,末段以数字开头的短 DNS 名可能在解析前被拒绝。确认实际服务的完整 DNS 名、证书标识与通道 authority,不能用固定 IP 绕过后就丢掉解析和安全约定。
tracing-appender 初始化文件失败就 panic,改用可返回错误的 Builder
tracing-appender 0.2.5 的 RollingFileAppender::new 和滚动便捷函数会在文件初始化失败时 panic。需要由应用决定退出或降级时,使用 Builder::build 接收 InitError,而不是继续调用 expect。
Gradle 9 报 SourceUnit 为 null:检查闭包里的局部变量重名
Groovy 构建脚本在闭包内重复声明外层局部变量,Gradle 9 可能以 SourceUnit 空引用遮住真正的作用域错误。给独立临时值改名并保留两个变量的原含义。
Textual DataTable 重载后只显示表头宽度,按键后才恢复
Textual 8.2.8 同数据重载后,提前绘制可能缓存过窄的单元格。先区分数据与显示问题;允许固定列宽时使用 width,并检查不做按键操作时的完整画面。
Hatchling 1.32 起拒绝 ../README.md,README 必须放进项目边界
Hatchling 1.32 起检查 README 的项目边界。将说明文件放入各包或使用内联文本,再验证独立 sdist 与 wheel,避免依赖仓库父目录。
PyJWT 2.12.0 在 Python 3.10 导入时报缺少 typing_extensions
PyJWT 2.12.0 漏掉 Python 3.11 以下的类型依赖,未安装 cryptography 时可能连 import jwt 都失败。2.12.1 已修正依赖声明;临时补包也要进入锁文件。
setuptools 可编辑安装成功却缺包,检查显式映射的公共前缀
setuptools 可编辑安装中,两个显式根包名字有公共前缀、目录又物理嵌套时,其中一个可能被 finder 错误省略。比较普通 wheel 与 editable 的实际导入。
Vitest mock 类字段后报 __vi_import_0__ 未初始化,检查同名导入
Vitest 4.1.3 mock 类的实例字段与导入同名时,可能提前读取 __vi_import_0__。以固定计算键局部避开,并核对 4.1.4 转换修复。
CARGO_BUILD_WARNINGS=deny 让链接警告也失败,先区分 Cargo 与 rustc 的门禁
同一个 linker_messages 在 -D warnings 下仍是警告,Cargo 的 warnings=deny 却可能让构建失败。先定位门禁层,再按项目策略局部绕行。
date-fns 把季度显示为第三季度,zh-CN 解析却报 Invalid Date
date-fns 4.4.0 的 zh-CN 格式化输出季,季度解析匹配却仍期待刻。交换值带上年份和数字季度,解析结果是季度起点。
gRPC Java 收到 GOAWAY 后报 Http2Error cannot be null,调用一直等到超时
gRPC Java 1.83.1 遇到未知 GOAWAY 错误码可能在错误转换时空引用。1.85.0 正式修复将未知码按 INTERNAL_ERROR 处理,同时保留 RPC deadline。
Uri.TryUnescapeDataString 缓冲区不足,却抛出 ArgumentOutOfRangeException
目标 Span 短于百分号之前的普通前缀时,.NET 10.0.12 会先越界。按输入长度准备空间,或补上前缀容量检查,保留 false 契约。
MapStruct 1.7.0.Beta2 映射 Optional 集合报 No value present
同一个 mapper 中标量有 isPresent 检查,Optional<Map> 或 Optional<List> 却直接 get。定位生成代码,用明确的创建映射保留空值语义。
zone.js 0.16.3 的 Promise.all(Set) 为什么提前返回空数组
CommonJS 加载的 Zone UMD 用 length 遍历输入,Set 中的 Promise 可能被跳过。检查实际产物,转换稳定任务快照,或按测试预设配置受支持的 ESM。
Panache 同时更新两个字段报 code 52,$set 里多出了 $and
Quarkus MongoDB Panache 的多字段更新可能把 and 解析为 $and 后包进 $set。用 Bson 更新定义保留字段和值,避免逗号写法静默漏更。
Jdbi 批量绑定首行 NULL,下一行 LocalDate 却找不到转换器
Jdbi 3.52.0 的 PreparedBatch 可能从首行 NULL 推断出 Object,后续 LocalDate 因找不到 argument factory 而失败。为每行显式 bindByType,并核对包含正式修正的版本。
Hono 改写 POST 为 GET 后报 Request with GET/HEAD method cannot have body
methodOverride 复制有正文的 Request,再把方法改为 GET/HEAD,可能在路由执行前失败。核对正式4.13.13实现,优先直接只读请求并保留方法授权边界。
Lombok 1.18.48 遇到 javac 27 和通配导入时报 AssertionError
JDK 27 编译器遇到 import lombok.* 与原生 var 局部变量,可能在 visitVarType 阶段崩溃。先收窄为实际使用的 Lombok 导入;--release 25 不会把 javac 27 换成旧编译器。


