---
title: 文章
description: 曾亮懿的技术文章：记录前端工程、AI 编程、开发者工具与问题排查。
image: "https://zengliangyi.com/og/default.png"
---

全部文章

# 文章

分享前端工程与 AI 编程中的问题、实现思路和实践总结。

- [#ChatCrystal](/blog/tag/chatcrystal)

- [#Node.js](/blog/tag/node-js)

- [#TypeScript](/blog/tag/typescript)

- [#SQLite](/blog/tag/sqlite)

- [#AI](/blog/tag/ai)

- [#数据解析](/blog/tag/数据解析)

- [#MCP](/blog/tag/mcp)

- [#Claude Code](/blog/tag/claude-code)

- [#知识管理](/blog/tag/知识管理)

- [#Electron](/blog/tag/electron)

[##  彻底解决轮播图 1px 白边与黑缝：从 CSS 亚像素舍入原理到 scale 最佳实践

深入分析移动端与高分屏下轮播图因 CSS 亚像素浮点数与浏览器光栅化取整导致的 1px 缝隙问题，横向对比负 margin、位移与 scale 缩放三种方案，给出零布局破坏的优雅解法。          曾亮懿       2026年10月13日      阅读约 6 分钟

#CSS

#前端开发

#Swiper

#性能优化](/blog/carousel-subpixel-1px-seam)    [##  打破 Google 收录僵局：基于 Astro 与 Indexing API 的增量缓存推送实践

利用 Astro 构建期生成的 sitemap lastmod 时间戳与本地状态缓存，精准推送增量与未收录页面，打破静态博客收录停滞并杜绝配额浪费。          曾亮懿       2026年10月13日      阅读约 4 分钟

#Astro

#SEO

#Google

#自动化](/blog/google-indexing-incremental-cache)    [##  AI 对话格式差异：事件、快照与跨库消息定位

对照五个固定适配器，区分 JSONL 容器、事件语义与 SQLite 键布局，用两个内存数据库观察消息索引、孤立数据和未知版本。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#Node.js

#SQLite](/blog/ai-conversation-format-divergence)    [##  AI 对话管理方案：四种存储路径与迁移验收

比较 Claude Code、Cursor、Copilot、Trae 的固定适配器输入，区分原始副本、可读导出与知识库，并用合成清单验证身份和信息保留。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#Node.js

#SQLite](/blog/ai-conversation-management-options)    [##  五种 AI 对话解析器：字段保留与损失边界

从 Claude Code、Codex、Cursor、Trae 和 Copilot 的实际解析器建立验收矩阵，检查工具标记、思考文本、顺序与快照覆盖范围。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#TypeScript

#Node.js](/blog/ai-conversation-parser-boundaries)    [##  AI SDK Provider 抽象：能力表与协议边界

核对 ChatCrystal 的七项 Provider 注册、AI SDK 7 模型工厂和结构化输出，用无网络 mock 验证 Responses、Chat Completions、Embedding 与 schema 失败。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#Node.js

#TypeScript](/blog/ai-sdk-provider-abstraction)    [##  批量导入 1000 条对话：成本拆分与性能验收

从固定导入链路区分解析、事务、WASM 导出与摘要队列，并用临时合成输入检查流式保留范围与数据等价性。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#SQLite

#Performance](/blog/bulk-import-performance-plan)    [##  CLI 知识流水线：退出码、JSON 合同与最终状态

核对现有 CLI 命令与响应形状，用合成子进程和按 ID 状态验收拒绝假成功，再规划调度、备份与恢复。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#CLI

#Automation](/blog/cli-knowledge-workflow)    [##  AI 编程对话复盘：分母、质量抽检与可复用证据

以合成样本核对来源与长度分母、错收漏收和空样本，并区分当前经验筛选、模型摘要与真实复用结果。          曾亮懿       2026年10月7日      阅读约 5 分钟

#ChatCrystal

#Knowledge Management

#Evaluation](/blog/conversation-knowledge-retrospective)    [##  Fastify 与 Electron：桌面服务的启动和退出边界

跟踪 ChatCrystal 的本地、云端与引导模式，验证 CommonJS 动态加载和端口竞争，核对窗口、安全头及服务关闭顺序。          曾亮懿       2026年10月7日      阅读约 5 分钟

#ChatCrystal

#Node.js

#Electron](/blog/fastify-electron-service-lifecycle)    [##  图谱辅助重构：把关系线索变成故障检查

区分标签共现、笔记关系和代码依赖，核对真实嵌入与取消链路，用合成故障顺序练习审查重构边界。          曾亮懿       2026年10月7日      阅读约 5 分钟

#ChatCrystal

#Knowledge Graph

#Testing](/blog/graph-assisted-refactoring)    [##  MCP 协议的边界：发现、实例身份与调用权限

对照 ChatCrystal 的七个 MCP 工具，用固定 SDK 的内存传输验证同名工具可指向不同实例，并区分参数 schema、行为提示与应用权限。          曾亮懿       2026年10月7日      阅读约 4 分钟

#ChatCrystal

#MCP

#Node.js](/blog/mcp-protocol-boundaries)

##  从文章到代码

到我的 GitHub 看看 ChatCrystal、开发者工具和日常学习记录，欢迎交流实现细节。

[访问我的 GitHub](https://github.com/ZengLiangYi)

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "ZengLiangYi Blog",
  "alternateName": [
    "Zeng Liangyi",
    "ZengLiangYi",
    "zengliangyi.com"
  ],
  "url": "https://zengliangyi.com",
  "description": "曾亮懿的个人网站。记录 AI Native 探索、开发者工具与全栈产品实践。"
}
```
