玟茵开源社区知识库

WenYin Open Source Wiki

用 Rust + egui 重写一个 MarkText 风格的 Markdown 编辑器,功能本身不难——难的是三件事:输入法要能用中文、导出要能看、大文件要能不卡。

这三件事有个共同点:写完不报错,用起来才发现不行。输入法不接就是打不出字,导出不处理就是一堆方块,每帧哈希就是滚动条抖。这篇把这三个方向上的具体坑记下来,顺带记两处桌面集成的连带问题。

阅读全文 »

给 AI agent 加”长期记忆”,第一版几乎都会这么做:在系统提示里约定一个 MEMORY.md,让模型”觉得重要就自己写进去”,下一轮再把它读回来。

能跑,但撑不过几周。这篇记录把它换成 SQLite 主库的过程,以及同一时期在流式管道、定时任务、客户端联网边界上踩到的坑。

阅读全文 »

一个 Fedora 上管理 Copr / OBS 第三方源的命令行工具,跑了一遍 pytest:124 个测试全绿,ruff 和 mypy 也没有意见。看起来挺健康。

但实际用起来,copa audit 稳定崩溃、多关键词搜索搜不到东西、正则搜索永远空、标着”高风险”的仓库照样能装。单元测试覆盖的是函数,不是集成路径——这些缺陷没有一个能在单元测试里暴露。

这篇记录那次审计找出的一批真实缺陷、修法,以及中文化和打包时另外两个坑。

阅读全文 »

这个月做了一堆看起来毫不相干的事:给一个模拟器写 AVX-512 优化、给桌面应用补 FreeBSD 安装包、把一个 Node 项目从空库跑起来、修一个 Electron 分支的冷启动白屏、给两本开源书提 PR。

它们的共同点是:每一个都在”看起来已经完成”的地方翻车。

  • CI 全绿,产物装不上;
  • 测试通过,是因为根本没跑到那段代码;
  • 类型检查全绿,打包才炸;
  • 计划里写着”优化这里能涨 20%”,那行代码默认配置下根本不执行。

这篇按”验证”这条线把它们串起来。

阅读全文 »

给一套老系统接 MCP(Model Context Protocol),让 AI 客户端能直接读写业务数据,是这两年被问得很多的需求。真正做起来会发现:协议本身不难,难的是”人”——谁在操作、怎么证明是他、出了问题怎么追溯。

本文记录一次自建 MCP 服务端的完整过程,重点在认证设计上翻过的车。

阅读全文 »

在 Wayland 上跑虚拟机的桌面集成(剪贴板同步、拖放、指针注入、分辨率自适应),常会遇到一种尴尬处境:功能看着有、实际不工作;翻文档,上游明确写着”不支持 Wayland,请用 X11”。

本文记录一次完整的补全过程。结论先放这里:这类问题很少是”缺一段代码”,多数是”架构上刻意绕开了 Wayland”,所以第一步永远不是写代码,而是搞清楚上游到底绕在哪。

阅读全文 »

接手一套跑了十多年的 PHP 系统,第一件事往往不是加功能,而是”让它在新版 PHP 上别崩”。这类迁移的坑特别有迷惑性:有些是直接白屏,有些是页面看起来正常、数据悄悄错了,还有些是”只有某一个入口才会踩”。

本文汇总四次移植:一套禅道内核(PHP 5/7 时代的代码迁到 PHP 8.5)、2003 年的 Discuz! 2.5 SP1(全程 GBK 编码,125 个 PHP 文件)、跑了多年的 Discuz 4.1(移植 + 安全加固)、以及一套老建站系统 chanzhiEPS(PHP 8.4+ 全量移植 + 自动发布)。最后附一个 Delphi 7 老客户端上的同类问题——技术栈差二十年,踩的坑却高度同构。

阅读全文 »

本文汇总多个 Rust 桌面工具(余额监控、壁纸应用、命令行 AI 助手)开发中积累的踩坑记录,覆盖 TLS 与网络、MSRV 兼容性、Win32/系统集成、SQLite 与进程管理几个方向。这些项目普遍有”支持老旧系统”与”跨 Windows/Linux”的硬约束,坑尤其密集。

阅读全文 »

本文汇总 AI 应用集成类项目(图像/视频生成服务、Web 聊天应用、模型代理插件)对接多家大模型 API 时积累的踩坑记录,覆盖配置加载、多厂商 API 差异、并发语义、数据落库与安全五个方向。

阅读全文 »
0%