博客

技术沉淀 · 工程实践 · 关于 hulianui 的思考

506

2026

506

06/06lucide-react 升到 v1,Github 图标凭空消失了06/06读不了的 PDF:没装 poppler、文本层还是空的,用 macOS 自带 Swift PDFKit 渲染06/06项目 logo 张冠李戴:Tauri 的 src-tauri/icons 经常是兄弟项目的占位06/05Dialog 逃出手机框:Portal + fixed 联手坑穿 Demo 展示页06/05Canvas 动画剧烈闪烁?你把 RAF 时间戳当相位用了06/05changesets Release workflow 开 PR 403——org 级 Actions 开关才是真正的墙06/05静态站点怎么检测访客国家——别用时区猜,Cloudflare 早给你留好后门了06/05Cloudflare Workers Git 部署静态站:没有 wrangler.jsonc 就是白给06/05跨 pnpm workspace 消费 Tailwind v4 设计系统包的三连坑06/05在 monorepo 之外消费自家 Tailwind v4 设计系统包06/05flex 行里 pill 错位:block 包裹层的行盒陷阱06/05用真实个人站驱动一个组件库的成长06/05DNS 改了没生效?其实是 Clash fake-ip 在骗你06/05MSW 本地跑得好,静态部署后 Demo 永远转圈06/05Next.js App Router 点击没反应?进度条 + loading.tsx 双层方案06/05Next.js 静态导出 + MDX 阅读体验踩坑:usePathname 让 output:export 全面崩溃06/05Next.js 静态导出子路由全 403,根源是 trailingSlash 没开06/05Canvas 组件读 CSS 变量颜色,默认色全部不可见——正则解析 oklch 失效06/05React Offscreen 重连时 ref.current 变游离节点,el.style 直接 undefined 崩溃06/05Recharts 无头截图空白:clipPath 动画在 headless 里被饿死06/05Recharts 图表在 flex 卡片里变白块:ResponsiveContainer 的宽度塌陷陷阱06/05rehype-pretty-code 双主题配置完全正确,代码却全灰——选择器打错了06/05RSC 边界的隐形雷:Client 组件作为 render prop 传入时 type 变 undefined06/05批量重命名 npm scope:锚定斜杠的 sed 和 grep 会系统性漏掉分隔符变体06/05SwiftUI HStack layoutPriority 吃掉了兄弟组件:从 flex 行移植引发的布局灾难06/05SwiftUI macOS Menu 自定义标签只渲染第一个 Text06/05SwiftUI 没有字体回退栈:用 NSFontDescriptor.cascadeList 复刻 CSS font-family06/05Switch 亮色没问题,深色全黑消失——用了 surface token 的旋钮在暗主题里对比度反转06/05TypeScript `in` 收窄被 `?: never` 悄悄废掉了06/05WebGL 着色器渲染正常却全黑——负 z-index 被父级背景盖住了06/04流动极光背景为什么巨卡:别动 background-position,动 transform06/04Base UI MenuGroupLabel 放错位置,点击时整页崩溃06/04cargo-swift 打包 Rust → Swift 的两个隐形炸弹06/04@提及高亮吞掉半句中文——空白符分词器在 CJK 场景下的过捕获陷阱06/04组件「功能不够用」?先查命名是否混用了两个概念06/04dnd-kit 可拖拽卡片内链接/按钮点击被吞——在组件层统一拦截而非逐处打补丁06/04嵌入式 PTY 终端里进程监控的错误路——pid 藏起来了,但它的子孙还在你树里06/04mx-auto + max-w 居中列收缩到内容宽度——flex item 的反直觉尺寸陷阱06/04多 Session 并行写同一文件,git add 会把别人的 WIP 偷进你的 commit06/04用 libghostty-spm 把真实终端嵌进 SwiftUI——三个你绕不过去的坑06/04骨架屏不该有边框——别把 Skeleton 塞进 Card 组件06/04Ad-hoc 签名让 macOS 隐私弹窗每次构建都重新弹出06/04macOS Dock 图标大白底:Squircle 和留白必须烘焙进素材06/04Next.js 16 Turbopack 热添加动态路由后 overlay 卡死——幽灵报错不是代码 bug06/04Next.js dev 日志无上限膨胀吃满磁盘,SSR 输出残缺伪装成你的 bug06/04Next.js 静态导出的动态路由必须拆服务端壳06/04并行 Agent 派发前未验证共享 API Cheatsheet,一行错误炸出 53 个编译错误06/04滑动胶囊指示器:反色文字必须住在胶囊里,胶囊必须在按钮层之上06/04child.kill() 杀不死 Chrome:僵尸进程占端口导致 CDP 第二次跑必挂06/04sticky 毛玻璃头部内容穿透:WebKit 的两个耦合陷阱06/04SwiftUI 动态渐变边框叠在 Material 上,风扇狂转 GPU 拉满06/04Tailwind Preflight 把 SVG 变成块级盒,非 flex 按钮里的图标换行了06/04Tailwind 颜色 Token 写错了却不报错,元素直接变黑06/04Tailwind v4 升级后边框全变黑了?是 currentColor 在作怪06/04Timeline 时间轴圆点对齐时间戳而非正文:翻转渲染顺序而非像素推移06/04Turbopack dev 首次截图全白:不是渲染门控,是冷编译时序坑06/04WebGL 组件「dev 坏、prod 好」:被 StrictMode 毒化的 canvas06/04把 .woff2 字体打包进 macOS 应用,CoreText 静默回退到系统字体06/03Affix 吸顶栏「逃跑」:中间滚动容器里 scroll 事件不冒泡06/03本地构建全绿、CI 爆红——barrel 入口提交了但组件源码没提交06/03Base UI Accordion 折叠动画:别量 scrollHeight,用它内置的 CSS 变量06/03Base UI 箭头消失之谜:floating-ui 只算一半偏移06/03Base UI CheckboxGroup 静默失效:是 value 在匹配,不是 name06/03Base UI 没有 Drawer?用 Dialog + transform 自己搓一个06/03Base UI 导航菜单面板塌缩成 2×2px 的根因:Content 不能脱离文档流06/03Base UI Slider 焦点环怎么都不出来——`:focus-visible` 打在了不接收焦点的元素上06/03Base UI Positioner 没有 Portal 直接崩:浮层组件的强制依赖陷阱06/03Base UI rc.0 的 Select 没有 placeholder prop——用 null 项注入绕坑06/03Base UI Toast 测试:关闭按钮明明在 DOM 里,getByRole 却找不到它06/03裸 CDP 截图永远返回 undefined:你连的是 Browser 端点,不是 Page 端点06/03CDP 截图抓到 FOUC:轮询计算样式才是正解06/03主题色对了照样露黑底:color-scheme 缺失让 macOS overscroll 穿帮06/03d3-geo 渲染中国地图两个无声的坑:多边形内外翻转 + SVG 默认 150px06/03DeepSeek V4 踩坑:模型名换代 + 思考模式不再是独立模型06/03dotted-map 连线弧偏移:默认投影是椭球墨卡托不是等经纬06/03git commit -- pathspec 同样会把残损 worktree 快照进 HEAD06/03git worktree + 软链 node_modules 不等于隔离:pnpm monorepo 下的幻象验证06/03HoverCard 无限闪烁:焦点乒乓死循环与 initialFocus={false} 的救场06/03命令式 Toast 在组件展示系统里重复弹出——Provider 多次挂载是根因06/03macOS 13+ 系统设置侧边栏只剩「通用」——旧版深链接的定时炸弹06/03MCP 浏览器被并发 Session 占用时,用 executablePath 启动独立 Chromium06/03主题切换后数字归零:React 的 reconciler 悄悄覆盖了你的命令式写入06/03MUI 桥接 CSS 变量 palette 时 theme.alpha 抛 Unsupported color06/03MUI palette 传 var() 直接炸:augmentColor 无法解析 CSS 变量的根因与正解06/03嵌套折叠动画抖动:用 CSS grid-template-rows 彻底告别 JS 测量06/03多 Agent 并发抢 next build 锁,用隔离 distDir 绕过06/03构建脚本 import .ts 报 ERR_UNKNOWN_FILE_EXTENSION,用 --experimental-strip-types 一行解决06/03分页省略号坏味道:「1 … 3」比「1 2 3」更难看06/03拖拽手柄在真实鼠标下正常、合成事件下死掉——setPointerCapture 抛异常吞掉了整条 handler06/03React 批处理陷阱:合成事件 dispatch 后同步读 DOM 只拿到旧值06/03编译绿了,类型检查却挂:React HTMLAttributes 同名 prop 冲突与 Omit 解法06/03行级权限只堵了主列表,子列表和搜索还在泄漏06/03行级数据权限开启后,创建者反而看不到自己数据06/03目录导航点击无响应、高亮跑偏——Scrollspy 硬编码 window 在内层滚动容器里全失效06/03SVG 圆形进度环从 3 点开始?用 SVG transform 属性而非 CSS 旋转06/03TanStack Table 是无头的,aria-sort 和排序箭头得你自己加06/03Tauri macOS 发布后用户说「还是老版本」:三处版本号必须同步改06/03设计 Token 的 border-radius 把 Checkbox 变成了圆形06/03无头截图永远看到动画末态?四个混淆因素逐个击破06/03Webview 里不规则揭幕动画整层消失:SVG/CSS 滤镜 fail-closed,用 canvas06/02阿里云百炼图生图:qwen-image-2.0 不支持输入图,必须用 pro06/02阿里云百炼图生视频:Token Plan 根本调不了,必须换通用 key + DashScope 异步接口06/02Base UI 没有 Textarea 原语:用 Field.Control render 道绕,但 TypeScript 会咬你06/02Base UI Field.Error 外部受控时红框有、报错文字消失的根因06/02Base UI Tabs 滑动指示器:两个让你白忙半天的 API 陷阱06/02macOS 检测 App 是否安装,osascript `path to application id` 会偷偷把它启动06/02Next.js 16 按目录去重 dev 服务器,换端口没用06/02并行 Agent 的 git add -A 会偷走你已暂存的文件06/02RSC 模块图陷阱:Registry 把渲染函数拖进服务端 bundle06/02Tauri v2 默认吞掉 HTML5 拖拽——dragDropEnabled 的隐形拦截06/02tauri-plugin-single-instance 在 dev 模式下把自己踢出局06/02Tauri RunEvent::Reopen 是 macOS 专属,移植 Windows 时编译必爆06/02Turborepo Monorepo 里桌面 Shell 的 beforeBuildCommand 把前端构建触发了两次06/02Turborepo 全量测试红了,但锅不是你的06/02DOM eval 说「没问题」,截图说「完全爆了」——UI 布局验证的认知陷阱06/02Windows GUI 应用 spawn 子进程:黑色 cmd 窗口无限闪的根因与解法06/01明明已经登录,点按钮却说「需要验证」:Electron + Playwright 双引擎 Session 隔离陷阱06/01表存在性校验:COUNT(*) 对比 array.length,重复项导致永久误报「缺表」05/31阿里云百炼接口没有 CORS,Tauri 桌面应用要走 tauri-plugin-http05/31DeepSeek 不需要 Native 代理:浏览器/Tauri Webview 可直接 fetch05/31Electron 原生视图宽度被砍两刀:inset 与 flex 兄弟节点的双重扣减05/31WebContentsView 盖住了弹窗——z-index 永远赢不了原生层05/31Playwright 自动填表踩坑:layui 政务表单五个反直觉的坑05/31Tauri 桌面 App 自包含:内置静态 ffmpeg + 把 OpenCV 算法移植到 Rust05/30配置了字段却没存进去——配置驱动系统的「死字段」陷阱05/30Electron BaseWindow 下载在 Windows 上静默失败,Mac 正常——根因是缺少 will-download 处理器05/30Next.js dev 下 CSS @import 链改了没效果?根因是 .next 缓存没失效05/30Turbopack 的 instrumentation 坑:守卫条件写错,dev 侧效默默不跑05/30nginx rewrite break 之后的 set 指令永远不会执行,变量为空导致 50005/30文件监听第一次响应、之后永久沉默——Rust notify 的 inode 置换陷阱05/30pdfjs-dist 在 Next.js dev 下崩溃:eval-source-map 与内置 webpack 运行时的致命冲突05/30Tauri 自定义标题栏拖动后 IPC 卡死几秒——用 AppKit 原生拖拽绕过05/30Tauri macOS 隐藏到托盘后 Dock 图标失效:必须处理 RunEvent::Reopen05/29Tauri 窗口拖拽每隔几秒才动一下:极光背景的大号 blur 动画在饿死原生拖拽05/29backdrop-filter 祖先元素悄悄劫持了 fixed 弹层的定位原点05/29条件空状态 early-return 静默卸载持久子组件05/29@fontsource 裸包 side-effect import 触发 TS2882,用 /index.css 子路径修复05/29HeroUI Tooltip.Trigger 的 inline-block 悄悄击穿了 flex 省略号05/29发版脚本只写部署清单、忘写 package.json,版本号在前端冻结半年05/29Tauri 暗色 App 全屏菜单栏发白——window theme 只管窗口,菜单栏得用 NSApp05/29Tauri 2 macOS 拖拽放大窗口闪出灰黑条纹:backgroundColor 才是真正的修法05/29把 ghostty 渲染器嵌进 Tauri/Electron webview?这条路不存在05/29xterm.js 6 的滚动条不是原生的,CSS 全部失效是正常的05/29xterm.js FitAddon 列数卡死,ResizeObserver 无法自愈的根因05/29xterm.js 多面板布局切换后终端只填半宽——PTY resize 是个坑05/28PATCH 返回 200 数据却消失了——内存合并对象不等于数据库真相05/28全角括号藏在半角里:MySQL 说相等,JS 说不认识05/28新增枚举值 API 返回 200 但数据消失——N 层白名单各自为政的静默丢弃05/28「读取失败:读取失败」——真实错误栈藏在容器 stderr 里05/28LLM Fallback Prompt 把「借来的公司名」写成事实:Identifying Field 必须剥离05/28JSESSIONID 在浏览器自动化里是个骗子:登录检测要看重定向终点,不要看 Cookie 名05/28normalize 函数的白名单悄悄吃掉了你刚写入的字段05/28自动保存 + 关 Tab 时旧闭包把新内容覆盖回去了05/28元数据平台的 Schema 在运行时注册,grep repo 必然空手而归05/27Electron app.getVersion() 开发模式静默返回框架版本号05/27Monospace + letter-spacing 套中文:末尾汉字孤立换行的根因05/27多标签 SPA 里 usePathname() 永远返回 Shell URL05/27MySQL DDL 隐式提交:「空跑验证」其实已写入生产05/27Electron Preload 注入的 window 全局变量在渲染路径里触发 Next.js Hydration Mismatch05/26下拉 API 字段投影过窄,undefined 静默渲染成 005/26自动保存静默丢数据:草稿模式与严格校验的双模式设计05/26管道数据被 heredoc 静默吞掉:`python3 -` 与 `<<'PY'` 不能共存05/26批量写入接口返回 200 却悄悄丢数据:res.ok 陷阱05/26Cron 批量任务行级 Claim Token:彻底消灭重复发送05/26两个服务同写一张子表,队列只保护了一个——Duplicate entry 的跨服务根因05/26改运维脚本前先 ssh 确认容器名——别让「模板意图」覆盖「服务器现实」05/26一次点击触发 800 条 SQL:衍生状态持久化的写放大陷阱05/26Electron iframe 里 window.electronAPI 是 undefined——contextBridge 不注入子帧05/26Electron WebContentsView 位置偏高?你传的坐标系根本不对05/26FastAdmin $noNeedRight 从 ['*'] 改成方法列表,竟然让所有人都 40305/26卡片最后一行「飘」到边框外——外层 min-height 与嵌套 grid button 的 Chromium 布局陷阱05/26HeroUI v3 在 Next.js App Router 里反复爆炸:server-default 文件的 client-only 陷阱05/26HeroUI v3 Modal 偏左不居中?Backdrop 是包裹层不是自闭合标签05/26HeroUI v3 Tabs.Indicator 炸出 SharedElement 错误:两个约束互斥的死局05/26HeroUI v3 的 variant 不向后兼容:从 NextUI v2 迁移时所有 variant= 都是嫌疑人05/26SPA 的 `<Link>` 会悄悄丢掉 `?embed=1`,然后 iframe 套娃递归了05/26给父组件加了 'use client',framer-motion 扫光文字就消失了05/26MySQL 并发写入 fsync 悬崖:rows_examined=0 却慢 1s 的根因05/26next build 触发 instrumentation 噪声:模块级去重为什么会失效05/26触控板捏合抖成筛糠?React 高频事件 + state-as-effect-dep 的连环坑05/26批量任务「撤回」按标题模糊删,误伤了整张共享主表05/26AbortError: Transition was skipped 不是 React 19 的锅,是 View Transitions API05/26vue-element-admin 加菜单别只改路由:meta.roles 与 sys_menu 必须双写05/26后台推订阅消息返回 success 但用户全没收到——微信授权 one-shot 机制踩坑05/23阿里云 OSS S3 兼容接口:LIST 必须用 Virtual-Host 模式05/23Electron macOS Tray:setContextMenu 会吞掉 click 事件05/23Electron 打包后 runtime asset 消失:extraResources + process.resourcesPath 的正确姿势05/23Electron 最小化到托盘:Tray 静默失败会留下无法退出的僵尸进程05/22登录返回 200 但下一个请求立刻 401:Cookie Secure 标志在 HTTP 环境下的静默丢弃05/22抖音视频解析器成功返回 URL,但下载全部 404——iesdouyin 分享页 play_addr 死链排查05/21Element UI el-select 显示原始值而非 label:v-model 类型严格匹配的隐形坑05/20Bun + Playwright 在 Windows 上卡死 180s:ws 解析 101 + 5-fd 管道双重陷阱05/20跨平台桌面 App 的隐形炸弹:Default 值悄悄伪装成另一个平台05/20Docker 清理脚本用字典序排 SHA,把刚 build 的镜像删了05/20ESM 顶层 await 之后的 const 声明会触发 TDZ 崩溃05/20git status 看不见你的修改?文件是渲染产物,找模板才是正解05/20Next.js App Router 下 `_` 前缀目录路由静默消失,middleware 把 404 伪装成 40305/20国内 Playwright 装浏览器卡死:ECONNRESET + 只装一半的双重坑05/20PowerShell 5.1 设空字符串环境变量 = 静默删除它05/20re.sub 的替换字符串是第二套转义体系,raw string 救不了你05/20发版管线中途 prune devDeps,下游 check 集体失联05/20发版日志全绿、用户装完却是旧版本——readdir 字典序吃掉新产物05/20npm install 静默改了 lockfile,下次 release 的 git checkout 就挂了05/20Tauri 2 多构建变体 ACL 报错:remote.urls 是权限门,不是标签05/20Tauri 2 event name 禁用点号——Mac 跑得好好的,Windows 一启动就崩05/20Tauri 2 OTA 完全沉默——updater plugin 注册了≠会自动 check05/20ThinkPHP `/d` 过滤器把 UUID 截成前导数字,查库永远 not found05/20Windows CI 构建机:MSYS-ssh 读 known_hosts 失败的 NULL DACL 陷阱05/20Windows 构建机 npm ci EPERM:是僵尸 node 进程锁住了原生 addon05/20ssh-copy-id 说成功了但还是密码登录:Windows OpenSSH 的三层陷阱05/19set -u 下中文全角标点紧贴变量名导致「unbound variable」的诡异报错05/19手写 Tauri 2 骨架的五个反直觉坑05/19Tauri 2 内网 OTA 静默失败:不是必须 HTTPS,是你少了一个 flag05/18Modal 一打开页面就跳:`place-items` 和 `place-content` 根本不是一回事05/18国内 Docker Registry Mirror 2026 存活清单:旧教程害人不浅05/18装了根证书 Safari 亮绿锁 Chrome 却 ERR_CONNECTION_CLOSED05/18Debian slim 镜像里 apt 换源必须用 http 不能 https05/18Element UI el-cascader 显示对、校验红:整对象替换漏写 key,undefined 中间态卡死校验05/18el-select 选了值还报「必填」——Element UI 表单验证触发器踩坑05/18后端 SQL 已聚合正确,行被炸开的元凶却在前端 flatMap05/18内存 Map 镜像 + 全量快照持久化:写入前不先 hydrate,悄悄清空所有并发 session05/18macOS 浏览器拒绝内网 HTTPS,curl 却完全正常——397 天叶证书硬限制05/18curl 能通、浏览器不通——macOS TUN 代理劫持 LAN 流量的排查全记录05/18Docker 里容器 env 明明是对的,客户端 URL 却死活不变——Next.js NEXT_PUBLIC_* 必须是构建参数05/18Playwright CDPSession 类型定义是 CDP 协议的子集,运行正常却 tsc 报错05/18我填的经纬度,保存后变成了湖州05/18systemd-resolved 把 NXDOMAIN 当终局答案:DNS 兜底列表为何永远不生效05/18Tauri 2 打包 DMG 卡死:rw 镜像残留挂载的根因与 hdiutil 绕行方案05/18Tauri --config 路径坑:相对于 CWD,而非 src-tauri05/18Claude Code 把 git push to main 拦了三次:auto mode classifier 与 trunk-based 部署的握手陷阱05/18nohup 骗了我:Ubuntu 22.04 的 logind 会在 SSH 退出时杀掉所有后台进程05/18Vitest 4 升级后启动崩溃:rolldown native binding 在 Node 20 上悄悄缺失05/17Tauri 白屏不报错,原来是 TLS 主机名不匹配05/16Ali-OSS 默认 30s 超时太激进,三层回退只挡 404 不挡抖动05/16目录名末尾多了个空格,Windows CI 直接 exit 12805/16git push 报 HTTP 400 却提示「Everything up-to-date」——罪魁是 1MB 的上传缓冲区05/16cat /proc/PID/environ 没有你要的 key?别急着下结论05/16重构改了入口路径,systemd 不知道——Release 轮转部署的致命盲区05/16Tailwind v4 的 dark: 全部哑火——两套暗色系统互不相知05/16Tauri 2 NSIS 自动更新流水线静默失败:.nsis.zip 已被移除05/15awk 范围模式的隐形陷阱:起始行同时匹配结束模式05/15外部 API 返回 success,但数据压根没写进去——幽灵写入的排查与防御05/15JVM 存活监控别盯 logback 滚动文件,要盯 stdout05/15监控告警用了永远为真的条件:createtime 从不被 UPDATE 触碰05/15PHP heredoc 里写 // 注释,SQL 直接炸:用 -- 不用 //05/15SPA 迁 Next.js 路由时的子标签碰撞:两个入口撞向同一个 URL05/15Tailwind Preflight 让 docx-preview 浮动图片消失的真相05/15Tauri 2 macOS 签名公证三层坑:dmg 无票、.node 未签、密码被 shell 吃掉05/15ThinkPHP where('col', '') 无法匹配 NULL 行,UPDATE 永远返回 005/15用户说「时间字段错了」,但真正的坑藏在 WHERE 枚举里05/15Write 工具的 JSON 转义陷阱: 变成真实 NUL 字节写进文件05/14宝塔面板 chattr +i 锁住 cron 文件:root 也写不进去05/14Claude Code 本地日志比 Dashboard 多一倍?cache_read 的隐藏折扣坑05/14DOCX 字段绑定连续改三次还在偏移?根因是坐标空间没对齐05/14外部同步主表字段缺失,"懒回填"做完被同步任务一键洗空05/14宝塔 chattr +i 锁死 /usr/bin,apt install 永远 Operation not permitted05/14「等人」状态被当成「等机器」——轮询频率分类错误引发的请求爆炸05/10Cron 阈值小于周期,TTL 资源必有失效空窗05/10Drizzle ORM 的沉默丢字段:schema 漂移让写操作无声消失05/10Node execFile 捕获不到子进程真实报错?错在只看 stderr05/10AI 做需求覆盖审计时 grep 抽样的致命误报05/10Tauri Sidecar 与服务端双写竞态:旧二进制覆盖新代码的 90 分钟血案05/10php think 命令注册 OK 却跑不起来——PHP 8.2 把 null 传 hash_hmac 变成了 Fatal05/10企业微信 batch/get_by_user 写死 limit:100 不传 cursor,>100 客户必丢05/10企业微信同步链路中 follow_user 字段漏写导致客户数静默归零05/09看板显示零失败、运营说全断了——回调 service 的「静默冰山」陷阱05/09Element UI Dialog 长内容把「确定」按钮挤出视区的根因与正解05/09Element UI el-input readonly 灰底失效:inline style 只到外层 div,::v-deep 才能穿进去05/09nohup 忘 kill:长跑 root 进程悄悄污染 PHP-FPM 共享 runtime05/09并发 25 个 Agent 时上下文爆了——把 Payload 落磁盘就省了 96% token05/09fastcgi_finish_request 救 ACK 不救业务 Token:PHP-FPM 双时钟模型踩坑05/09PHP-FPM 与 CLI 的 disable_functions 不对称:SSH 实测通过不代表线上能用05/09重构前置 service 调用前没 grep 内部 SELECT,结果字段渲染漏字05/09Root Cron 污染 PHP-FPM 共享 runtime——看板绿灯、业务全断 38 小时05/09改了 crontab -e 还是有 root 文件?Linux cron 三级投放点排查实录05/09ThinkPHP 5 异步任务锁文件「消失」之谜:RUNTIME_PATH 不在你以为的地方05/09企业微信 41051:欢迎语发过一次就永久封死,换 welcome_code 没用05/09企业微信回调链路:send 前置撞上隐式 SELECT 依赖,欢迎语渲染漏字永久阻断客户05/09企业微信回调日志多行 ≠ 客户重复操作,是平台的多级重试05/09window.confirm() 返回 undefined:按钮点了没反应的隐形陷阱05/08国内云服务器 fetch 大厂 CDN 永远 403:datacenter IP 黑名单才是真凶05/08Monorepo 同一次 push 触发两条 CI,Web 白跑一遍的根因与修法05/08OpenRouter 中转也救不了:X-Forwarded-For 透传让境外模型在国内依然 40305/08同一文件,两条路径:打包后 A 模块成功 B 模块 not-found05/08开发工具用自己的 repo 做测试,上线秒崩——「外部输入盲区」踩坑实录05/08TypeScript strict 模式下 let + 闭包赋值导致类型收窄失效05/08Vitest 并行跑测试,行消失了——fileParallelism 与共享 DB 行的竞争陷阱05/07el-table fixed=right 弹窗内「幽灵列」透视:双 tbody + stacking context 串味05/07FastAdmin admin 模块默认禁止外部路由,CORS 报错是假象05/07前端筛了,导出却全量——服务端导出的筛选条件漂移陷阱05/07下拉选项 value 对不上主数据 key,Element UI 静默失败显示原始编码05/07ThinkPHP success() 被 catch 吃掉:HttpResponseException 的反直觉陷阱05/07ThinkPHP 5 的 max() 为什么把日期截成 4 位数字05/07企业微信 send_welcome_msg 不替换占位符——UI 与 API 是两套渲染引擎05/06ThinkPHP 5.0 的 leftJoin 根本不存在:Query Builder 跨版本兼容陷阱05/06Vue Object Prop 没有 default,$emit 被悄悄截断05/01ali-oss SDK 签名不匹配:两个与 AccessKey 无关的隐藏陷阱05/01DeepSeek Anthropic 兼容层的模型名谎言:res.model 不可信05/01fetch 错误处理器里的 body stream 只能读一次陷阱05/01PaddleOCR PP-StructureV3 响应结构与基础 OCR 不同,复用老解析器静默返回空文本05/01tsx 下 page.evaluate 报 __name is not defined——esbuild --keep-names 的序列化陷阱05/01SPA 爬虫 Selector 每周静默失效,让 LLM 凭空编造内容05/01只 grep 入口函数,SSOT 基线就是假的04/30「布尔列」未必存 0/1:写 SQL 前先 GROUP BY 实测04/30CSS transition 进退场用同一个 class 写——进入顺滑、退出拖尾的根因04/30会员数据分析里的幽灵门店:默认渠道桶污染全复盘04/30PR 验证 grep 与 Required Changes 各自维护——「PASS」背后的静默漏检04/30`import 'dotenv/config'` 不加载 .env.local,密钥永远 undefined04/30Element UI $confirm 把 h 函数渲染成源代码字符串的真相04/30Playwright 登录检测假阳性:DOM 选择器骗了你,session cookie 才是真相04/30UI 列空白≠字段为 NULL:悬挂外键引用才是真凶04/30第三方 POS 接口只传两个字段,开卡门店永远不更新04/30微信小程序 swiper 受控双向绑定引发切后台重进抖动04/29架构师 Review 必须 grep 运行时,光看 Spec 会翻车04/29CHAR(36) 不等于 UUID:列类型不代表运行时语义04/28级联填充的「双重严格」陷阱:源行查找与目标投影必须用不同宽严度04/28配置驱动的字段别名不是真实列:动态 SQL 生成前必须先做物理映射04/28一个 grep 差点删掉正在用的 Spring Bean04/28抄了同文件 sibling 却仍失败:输入象限没对齐才是真根因04/28贪心正则把中文备注吃掉了——枚举后缀剥离的经典误伤04/28双层看门狗踩坑:用 start_time 判断任务存活,坑惨了04/28权限从 fail-open 翻到 fail-closed,上线后用户看到空白页04/28全量封锁新 Lint 规则,反而让团队绕过 pre-commit hook04/28.env 被 git 追踪后,「全量轮转 + 改写历史」的应激反应为什么是错的04/28OSS 预签名 URL 存库 = 定时炸弹,批量 403 的根因与根治04/28axios 默认 JSON Body,PHP $_POST 却是空的——前后端参数透传的静默陷阱04/28PHP 长驻 Worker + PDO 持久连接 = 云数据库空闲后批量 50004/28PII 脱敏上线 13 天,拨打按钮静默失效——下游消费者审计的血泪教训04/2811 轮全失败,用户一句话命中真因——AI 调试的「沉没成本陷阱」04/28微信小程序锁滚三轮排查:Canvas 越界才是橡皮筋的真凶04/28微信小程序 scroll-view 锁滚失效:flex 链 4 件套不够用时,用 absolute inset:0 钉死04/27地址下拉出现「市辖区」「县」:GB/T 2260 占位词污染数据库的三层防线04/27JDK 25 下 Lombok 1.18.x 静默不生成 getter/setter04/27Spring Boot 多模块只更新一个 JAR,写操作无声失败04/27macOS 菜单栏 App 重复启动留下幽灵图标,LSUIElement 单实例守卫04/27「透传代理」不等于「无责代理」:中间层字段缺失的沉默数据损毁04/27ERP 对接踩坑:organizationId 不是 counterCode,静默成功却写入 null04/27position: relative + top 不会推移兄弟元素——CSS 偏移的反直觉陷阱04/27XCTest 全班 abrt 崩溃:一个空 deinit 解决 Swift 回部署运行时的 libmalloc 双释放04/27wx:if 隐藏元素导致布局跳动?visibility:hidden 才是正解04/27下拉选「全部」选了等于没选——Vendor 组件 Falsy 检查吞掉空字符串04/24网易云音乐第三方库分页被锁死,绕过 weapi 加密用 legacy 接口救场04/22npm install -g 报成功却找不到包目录——postinstall 原子回滚坑04/20FastAdmin 默认 .gitignore 静默吞掉所有 *.sql 文件04/20UNION 子查询修好了 OR 索引合并,却把 ORDER BY 索引打掉了04/20ThinkPHP 5.0 Config::get 第二参数是 scope 不是 default04/20ThinkPHP 5 Model 根本没有 newQuery()——Laravel 老手必踩的 ORM 迁移坑04/20ThinkPHP 5.0 分页接口一加关键词搜索就 HY093,根因是 count() 污染了 bindings04/20ThinkPHP 5.0 管道字段 LIKE 搜索:传单值静默丢条件或炸 PDO04/20微信小程序统计文本不能挂 reveal flag:wx:if 导致整块闪烁04/20微信小程序弹窗滚动穿透:scroll-view 是杀手,4 件套才能封死04/20微信小程序弹窗三段式 Flex:一个 min-height:0 救了整个布局04/20微信小程序分包不能嵌套分包——一个让编译器报 should not contain 的隐藏禁令04/20微信小程序分包悄悄越线:亚稳态累积炸掉全员提交04/20van-popup 锁滚三件套:lock-scroll 只锁遮罩,背景穿透靠 page-meta04/18组织拆分后接口只改了一半,另一侧悄悄坏掉04/18反规范化标签字段别让用户填——从 FK 派生,不是表单输入04/18「暂无数据」掩盖了三种截然不同的故障,用自诊断空态拆开它04/18字段渲染器的 if-else 地狱——用策略注册表一刀斩断04/18策略注册表里调 Hook 被 ESLint 封杀——PascalCase 子组件是唯一解04/18DRY 害了我——用「消除重复」把历史遗留假设写死进常量的踩坑04/17API 投影裁掉权限字段,前端过滤返回空表04/17审批表单字段集来源读错节点,四轮修复全部打在症状上04/17级联字段靠配置行识别,不靠 type 字段——一次多节点审批表单的踩坑实录04/17级联下拉永远「暂无选项」——parent_field_key 指向了 alias 而不是实际存储 key04/17nginx 本地 200、外网超时——根在云安全组不在防火墙04/17平台敏感 Bug:复制可工作的兄弟实现,比理论推断快 10 倍04/17前后端双层权限过滤漂移:让两个错误数字对齐并不等于修好了 Bug04/17DDL 有字段不等于有数据:外部同步表的 100% 空字段踩坑04/17FastAdmin noNeedLogin 配了 ['*'] 还是 401,元凶是 new 了另一个 Controller04/17字段别名方向判断陷阱:一行 alias 让条件分支永远为 false04/17修了一个 URL 参数 bug,同名字面量从另外四个地方继续出血04/17表单提交发全量状态,把 403 和审计污染一起发过去了04/17后端悄悄换了 API 字段结构,前端在发布窗口期集体崩溃——规范化层救场04/17git fetch 显示 [new branch] 不是真分叉,是你自己在两台机器上重复提交了04/17功能明明「以前有」,现在代码里找不到——用 git pickaxe 反查被静默删除的历史04/17catch:touchmove 让 iOS 真机 scroll-view 彻底罢工——WebKit Touch Session 所有权机制04/17按钮做完了,运营却翻了 18 页——列表操作功能的 UX 盲区04/17React 多卡片页面:Stack Trace 指向的 Card 和用户说的不是同一个04/17「已授权」背后的谎言:误导性完成态 Flag 让排查多走三条弯路04/17PII 脱敏一刀切:把引流二维码当个人信息砍掉,C 端业务整体断裂04/1725 个单元测试全绿,上线 5 分钟后用户报 bug04/17本地跑得好好的备份 SQL,上了 RDS 直接 1786 报错04/17React Context Provider 收到 subset 就会静默失效04/17软删除只改了写路径,读路径全是幽灵行地雷04/17CSV 字符串被当等值匹配,仪表盘四个接口同时静默返空04/17IN 查询扫了 200 万行却只取 10 条——用「日期夹逼」零 DDL 提速 3750 倍04/17「SSoT 漂移」误报:先确认谁是运行时真正的数据源04/17「已修复」与「还是坏的」同时成立:先查代码有没有部署再说04/17van-popup 关闭动画中内容闪空壳——用 after-leave 解耦才是正解04/17Vitest 位置式 Mock 队列漂移:新增一条 SQL 让六个测试全红04/17Vitest 测 .tsx 报 React is not defined,构建却能过——esbuild classic runtime 惹的祸04/17自定义 TabBar 吃掉了最后一行点击——微信小程序 scroll-view 底部占位坑04/17工作流配置页 Badge 数字对不上:分子分母来自不同候选集04/16Excel 导出列显示 UUID / 枚举 key,页面却显示正常——两条数据通路撕裂了04/15AES-256-GCM 可逆密码存储的四个致命坑04/15点击「开始同步」后立刻刷新,为什么永远看到「空闲」?04/15快速连点 Checkbox 触发中间表竞态:前端防抖 + 后端 INSERT IGNORE 双保险04/15ThinkPHP 跨库 leftJoin 静默返回 null,用两步查询+PHP 内存合并替代04/15外部 API 数据同步的 12 个无声陷阱04/15v-html + Markdown 转换器的隐形 XSS 炸弹,DOMPurify 一行堵死04/15多登录路径写入不对称,同一用户身份字段悄悄漂移04/15第三方 API 已成功但本地事务回滚,钱出去了记录没了04/15外部数据同步:高水位标记提前写入导致明细永久跳过04/15点击「审批通过」为什么会卡半秒?await 了一个不该等的通知04/15git filter-repo 在生产机上跑完,nginx 开始 404——记一次仓库瘦身踩坑04/15GitHub Actions SSH 脚本里嵌套 Heredoc 会让 ${{ secrets }} 炸掉04/15表格列宽莫名膨胀到 150px?罪魁祸首是 input 的隐式 size=2004/15HTML5 原生拖拽的幽灵图片坑:用 1×1 离屏 div 彻底接管拖拽视觉04/15BUILD SUCCESS 骗了我:Java @Async 方法下线 + 残缺仓库部署事故全记录04/15date() 混进 Hash 导致缓存每天失效——LLM 响应缓存的三个反直觉坑04/15多后端混用 code 语义,页面静默空白却不报错04/15多身份维度下「绑定状态」乱飞:前端自判 vs 后端权威字段04/15MyBatis 局部更新的静默覆写陷阱:复用实体对象一行代码毁掉并发写04/15多副本同时启动,Migration 被执行了两遍04/15MySQL OR 查询有索引却跑了 5 秒——index_merge sort_union 踩坑实录04/15MySQL 并发序列号重复:MAX+1 没加锁,压测一下就撞车04/15软删除 + 唯一索引的幽灵冲突:MySQL 不懂你的 is_deleted04/15分页接口 pagesize 翻 5 倍、延迟线性飙升——用 MySQL 8 窗口函数一刀切掉 N+104/15mysql2 读 DATETIME 日期差一天:别让它经过 new Date()04/15mysql2 的 execute 吃动态 SQL 会炸:用 query 才是正解04/15mysql2 v3 升级后 JSON 列被二次解析,500 报错 Unexpected token o04/15对象展开顺序让服务端 UUID 被空字符串 id 悄悄覆盖04/15rsync --exclude 救不了服务器上的 .env.local04/15多人同时编辑同一文档,后保存的人把前人的内容悄悄覆盖了04/15订单状态机被双写:先查再改中间的竞态窗口让两个请求同时"赢了"04/15「每日取消上限 3 次」被并发击穿:SELECT FOR UPDATE 才是正解04/15PHP catch 块把数据库报错直传前端——一个藏了很久的信息泄漏坑04/15whereOr 传空值,唯一性校验全军覆没04/15PHP 服务用默认密钥上了生产——JWT 密钥缺失应快速失败04/15PDO 参数绑定救不了你——MySQL LIKE 通配符注入的隐藏盲区04/15PHP 金额计算用 float?一个坑吃掉两个隐患04/15Dashboard 接口 p99 破秒,SQL 单条却只要 5ms04/15shadcn/ui Dialog 里 buttonVariants 循环依赖炸运行时04/15批量派发 AI agent 时,成功返回的 skill 文件竟是空壳04/151:N 关联表上的「排除」查询,LEFT JOIN + WHERE != 会悄悄漏数据04/15状态枚举扩展后数据静默消失:用「排除终态」代替「白名单」04/15ThinkPHP 5 全局 htmlspecialchars 过滤器悄悄吃掉 JSON 参数04/15TP5 分页查询:count 之后 select 变空,根因是 Builder 状态被消费04/15ThinkPHP5 whereRaw 跨库子查询三重坑:表前缀消失 + 别名失效04/15自定义 tabBar 下组件首屏永远空白:pageLifetimes.show 不触发之谜04/15微信小程序自定义 tabBar 切换闪烁:双 setData 竞态根因04/15微信小程序事件委托:e.target 还是 e.currentTarget?一字之差导致筛选栏间歇失效04/15小程序钻取筛选叠加——「只覆盖传入字段」破坏钻取语义04/15小程序内容页点击必有 300ms 空白?启动预取 + SWR 两步解决04/15小程序列表页每次返回都闪骨架屏?onShow 三态刷新策略04/15小程序对接外部会员系统:占位名 + 逐字段锁,而非全局一刀切04/15微信小程序搜索框删空不刷新:「负向事件」被遗漏的坑04/15微信小程序朋友圈分享后按钮全哑火,scene 1154 沙盒坑04/15浏览器说证书没问题,微信小程序却一直报「证书无效」04/15微信小程序原生地图被弹窗点不到?同层渲染的触摸事件黑洞04/15scroll-view 列表抖动的罪魁祸首:子节点 transform 与合成层打架04/15微信小程序骨架屏 + Canvas 2D:onReady 已过,画布永远空白04/15wx.uploadFile 绕过全局 Token 刷新拦截器,导致上传静默失败04/15van-dialog 弹窗里 textarea 文字诡异跳行?罪魁是 scale 动画而非样式03/28FastAdmin 迁 ThinkPHP 8,成功码和错误码全部反转导致前端白屏03/2114 个接口全 404,后端日志却一条没有——多后端路由写错了03/21PHP CSV 导出的两个隐形炸弹:注入攻击 + 框架生命周期破坏03/21修完一个 Bug,下一轮 Review 又出同类坑——同领域扫描缺失的代价03/21MVP 只写了 C 端,上线前炸出 6 个 P0 断链03/21写完 Service 方法却忘了挂上去:死代码陷阱与集成检查清单03/15axios.create() 实例偷带全局 Header 导致 CORS Preflight 炸掉03/15Element UI $confirm 闭包竞态:操作打到了错误目标03/15多步审批流「已完成」是假的——状态校验只检查了第一步03/15PHP CRUD 白名单过滤空字符串,编辑时字段清空后自动复原03/15PHP date('u') 永远输出零——datetime(6) 微秒精度静默丢失03/15PHP 返回雪花 ID,前端点编辑却 404:JSON 大整数精度丢失全记录03/15PHP 8 升级后 BIT(1) 标志位判断全部静默失效03/15Snowflake ID 遇上 intval():PHP + JS 双端静默截断的根因与正解03/15ThinkPHP .env Section 前缀陷阱:config() 静默返回默认值的真相03/15ThinkPHP Migration 跑到远端库时 Unknown database 的真相03/15微信小程序页面跳转后 WebSocket 还没重连,消息就已经丢了03/15微信小程序 Behavior 拦截 onShow 做异步守卫:definitionFilter 的三个坑03/15微信小程序 disableScroll + 组件 scroll-view:三种滚动方案全部哑火03/15wx.openDocument「打开文件失败」:带查询参数的 OSS 链接吃掉了扩展名03/15微信小程序页面权限守卫:五轮失败后发现 definitionFilter 拦截 onShow 是条死路03/14串行外部 API 中途失败,积分已扣券没发——如何用补偿表兜住「双失」03/14微信小程序自定义组件样式穿透失效:写了等于没写的 CSS03/14微信小程序自定义 tabBar 的 switchTab 静默失败陷阱03/14把 Framer Motion 搬进微信小程序:三个让动画哑掉的反直觉坑03/14onShow + onReady 同时拉数据,微信小程序页面首次加载 API 被调两次03/14微信小程序吸顶触发偏晚:把元素移出 scroll-view 后阈值没跟着更新03/14scroll-view 高度为零:min-height 打断 flex 链路的沉默 Bug03/14微信小程序吸顶幽灵:scroll-view 状态残留三层根因03/14WXML 属性里的中文引号把编译器搞崩了03/13微信小程序 CSS 变量的四个反直觉陷阱03/12数据同步里的自动打标签:8 个让数据悄悄出错的坑03/12关系表存 A 系统 ID、查时传 B 系统 ID——静默返回空的隐形杀手03/12一行 `$noNeedLogin = ['*']` 让后台 API 全裸奔03/12FastAdmin 新 Controller curl 200 但浏览器报网络错误的真相03/12用 || 给表单赋初始值,价格是 0 的商品全部空白了03/12Omix setData 之后派生值算出来是 0,根因是 this.data 还没同步03/12SSH heredoc 传 PHP 文件:$变量和\命名空间被 shell 吃掉03/12Vue 表格列显示 NaN 的真相:Number(undefined).toFixed() 的隐患03/12vue-router 3.0 的 .catch() 会无声吞掉后续所有代码03/12z-index 更高却被遮住?层叠上下文隔离坑透底部弹窗03/12WXML 不是 HTML:微信小程序特殊字符渲染的八个反直觉坑03/12翻页瞬间过滤条件消失:XtTablePage 分页事件整体覆盖 pageOptions03/11骨架屏永远不消失——异步序列计数器被多处递增的经典坑03/11API 返回 200、数据非空,页面偏偏一片空白——前后端字段名系统性错位03/11外部 API 同步回写:`??` 静默吞 null、`insertAll` 遇唯一索引整批失败03/11微信小程序 Canvas 2D 重绘失真:scale 矩阵累积导致图表越刷越放大03/10路径缓存的三个隐患:为什么文件处理要用内容哈希做 key03/10AI Agent 会偷偷篡改 .ruff.toml 来消除 lint 报错03/10用 Swift Actor 替换 DispatchQueue 做持久化,三个坑差点让我退回老路03/10Swift 6.2 并发模型:async 函数不再隐式跳线程,@concurrent 才是明确授权