MCP 初始化能力冻结:版本协商、握手收据与会话内不变式
initialize 成功不代表双方可以在会话中随意增减功能。本文把协议版本、双方 capability、实现身份与 initialized 边界冻结成可审计收据,阻止旧连接误用新能力。
Articles
沉淀 AI、Web、云原生和独立开发经验。
initialize 成功不代表双方可以在会话中随意增减功能。本文把协议版本、双方 capability、实现身份与 initialized 边界冻结成可审计收据,阻止旧连接误用新能力。
表单是前端最繁琐的活——验证、错误提示、动态字段、提交。本文讲清 React 表单的完整实践:React Hook Form vs Formik、zod 校验、受控 vs 非受控、Server Actions 提交、以及复杂数据(数组/嵌套)怎么处理,让你的表单既简洁又健壮。
MCP Server 在多租户系统中最危险的故障不是报错,而是静默把 A 团队的数据返回给 B 团队。本文从身份上下文、查询约束、缓存、工具参数和测试策略讲解完整隔离设计。
PG 的杀手锏不只是 SQL,是扩展——pgvector 做向量检索、PostGIS 做地理、TimescaleDB 做时序、zhparser 中文分词。本文讲清 PG 扩展的价值、10 个最常用扩展各自解决什么、怎么安装管理,以及"一个 PG 替代多个组件"的架构思维。
resources/updated 只表示某 URI 可能变化,不携带内容版本。本文用发现代次、订阅租约与读取摘要对账通知丢失、乱序更新和分页期间的资源集合变化。
PWA 让 Web 应用拥有原生 app 的能力——离线、安装到桌面、Push 推送、后台同步。本文讲清 PWA 的三大核心(Service Worker/Manifest/Web Push)、实现步骤、以及 2026 年的平台支持现状(iOS 终于支持 Push 了)。
modelPreferences 不是指定模型,Sampling 返回也不该未经复核直达 Server。本文冻结路由策略、实际模型、工具循环和请求/结果两阶段同意,形成唯一交付收据。
限流不只"每分钟 N 次"——用什么算法(固定窗/滑动窗/令牌桶/漏桶)、按什么维度(IP/用户/API key)、存哪(内存/Redis)、超限返回什么(429/Retry-After),都有讲究。本文讲清四种限流算法的对比与实现,给一份生产级限流方案。
MCP Server 接入生产系统时,最容易出问题的不是能否拿到 token,而是身份与权限边界被混用。本文给出一套可落地的鉴权分层、令牌交换、审计与故障处理方法。
分片不只是"把数据拆开"——分片键选错,查询全扫;跨片 JOIN/聚合/分页是噩梦。本文深入讲清分片键的设计原则(高基数/查询路由/避免热点)、跨片查询的应对(应用层合并/反范式/CQRS)、全局唯一 ID(雪花),以及"先别分片"的现实建议。
SSE 断线、HTTP 404 与 DELETE 都不等于同一种结束。本文绑定 MCP session、协议版本、原始 stream 和 Last-Event-ID,避免跨流重放、会话劫持与重复副作用。
渲染 10000 条数据卡死?虚拟列表只渲染可视区域的几行,滚动时动态替换。本文讲清虚拟化的原理(窗口计算/DOM 复用)、react-window 和 TanStack Virtual 的用法、什么场景该虚拟化、以及它的代价(搜索/无障碍/动态高度)。