Published on

2026-第四十周

Authors

该周报主要为各个地方内容的汇总整理

技术

我们如何在两周内让 claude.ai 提速 3 倍

Anthropic 工程团队在 2026 年 8 月的两周冲刺中,通过 Slack 中的人类与 Claude 协作、确定性实验室基准和 CI 棘轮,将 claude.ai 与桌面应用核心体验提升约 3 倍,合并 3000+ 变更且无客户影响事故。

  • 🚀 四大旅程占 95% 用户活动:启动应用、开始对话、加载对话、发送消息;13 项 p75 测量平均提速 3.1 倍。
  • ⚡ 具体结果:claude.ai 网页冷加载 3.1s→0.55s,Claude Code 新会话 0.8s→0.3s,Cowork 云会话 2.6s→0.73s;每天节省数万用户小时。
  • 🤝 使用 Claude Tag(beta,约 Opus 5.5),在一个 Slack 频道中监控部署、完善遥测、维护仪表盘、主动修复并提议项目;人类设定目标、取舍并批准变更。
  • 📊 用 Datadog MCP 分析,识别最高影响旅程,建立客户端/服务端可比的端到端基线;启动约 20 个项目并由 Claude 估算毫秒收益,第 3 天完成 12/13 目标。
  • 🧱 早期优化包括:把静态 composer 烤进 HTML、预编译 V8 code cache、保持 composer 挂载、悬停预取会话、将侧栏重渲染减少 90%。
  • 🔬 核心经验:能被测量就能被优化;用 Valgrind + node --predictable 测指令数,用 React commits、V8 调用数、布局/样式重算、DOM 变更等确定性指标做实验室基准。
  • 🛡️ 每个基准必须证明与 wall-clock 相关,否则丢弃;有效指标进入 CI 作为只能下降的棘轮。
  • 📉 示例:消息树组装消除重复 message ID 解析,指令 -48%、墙钟 -78%;状态行扫描器加首字符检查,指令 -31%、墙钟 -44%。
  • 🔁 工作循环:开线程→追踪并建基准→提交 PR→带 flag 部署→读真实用户数据→成功则下调棘轮,失败则关 flag 迭代→继续找下一处;同时运行 150+ 线程。
  • 🐛 发现并修复:侧栏抖动(31% 网页加载在可用后移动)、composer 输入路径 6900 hooks/900 store 订阅、:root:has() 每次 DOM 变更加 24ms、每天 50 万隐藏 reload、IndexedDB 重复克隆,以及 em dash 触发 UTF-16 使代码高亮变慢(1.0s→0.35s)。
  • 🚦 护栏:自动审查 + 人工批准、测试先行、短生命周期 feature flags;近 200 个 flag 超过一半已清理;静态 composer 有 jsdom、14 视口 1px、按键、0.1px 字段偏移等测试;高风险变更按员工→1%→全量推进。
  • 🎛️ 人类 steering 分三部分:Ambition 鼓励更大胆、Taste 由人类 owner 判断体验取舍、Direction 保持线程窄并聚焦排序/合并/止损。
  • 🖥️ 8.33ms 帧预算:用 headless Chrome DevTools begin-frame 实现确定性 120Hz,逐帧优化流式渲染,约 60 个 PR;长回复主线程阻塞 750ms→200ms、CPU 约 1/3、120fps,流式流畅度约 4 倍。
  • 📌 后续:claude.ai 和桌面应用目前约快 3 倍,棘轮防止回退;p95、其他旅程和超长对话仍有空间,并向上游 Electron、Chromium、Node.js 贡献。

咬紧牙关,把它发布出去

本文核心是“咬牙发布”:构建能力与交付能力是两种不同技能,优秀品味会放大对不完美的痛苦,使人拖延;但无论编程还是写作,都必须偏向发布,接受瑕疵,靠持续产出和动量而非单次结果来提升成功率。

  • 🧱 构建与交付是分开的技能,短期内甚至相互冲突;有构建天赋的人往往更不擅长交付。
  • 🎯 Ira Glass 式差距:好品味让你看出作品不够好,但早期作品本就不可能达到你的品味标准。
  • 🚢 唯一办法是“咬牙发布”,即使自己觉得作品很糟,也要先把它公之于众。
  • 💻 优秀程序员追求优雅、正确、整洁,容易对缺陷产生情绪反应,因而迟迟不肯交付。
  • 🏢 在大型软件系统中,缺陷无处不在;一致性常比局部完美更重要,有时甚至应复制非灾难性缺陷。
  • 🧊 天赋高的人可能冻结、退到小范围“修正”、或羞愧拖延直至崩溃离职;差 diff 可改,没 diff 无法改。
  • ✍️ 写作同理:对别扭句子和粗糙文笔敏感会让写作痛苦,但必须偏向发布,发布得越多越容易。
  • 📈 无法预测什么会流行:作者不喜欢的一些文章反响很好,自认不错的文章却不受欢迎;高产比少而精收益更高。
  • 🔄 成功不可控,应做“动量导向”而非“结果导向”:多做、看什么能留下,而不是死磕单篇至满意。
  • 💡 不要过度珍惜点子;同一主题可以反复写直到写对,作者已写了约三十篇关于发布等主题的文章。
  • 🏔️ 相关文章提醒“工程绝望谷”:每个项目都会有一段像要失败的低谷,优秀项目执行者要学会预期并忍受它。

Cloudflare 如何使用 AI 执行工程标准 | Cloudflare 博客

Cloudflare 通过 Cloudflare Codex 将工程标准集中为可供人和 AI 代理检索、应用的治理化知识库,并让 AI 代理在代码审查、设计评审和事故报告审查中执行这些标准,以减少碎片化、尽早发现问题并保持一致性。

  • 🧭 背景:工程指导分散在文档、仓库、聊天和个人经验中,查找耗时且可能过时,组织扩张后难以统一维护。
  • 📚 Codex 按领域治理并采用 RFC 格式,由领域 owner 负责;使用 RFC 2119 的 SHOULD/MUST,批准后发布到内部 Astro 站点。
  • 🔄 RFC 分 approved 与 enforced:approved 只产生非阻塞发现,enforced 的 MUST 违规可导致不批准或阻止合并,升级步骤给团队适应时间。
  • 🧩 为避免上下文过载,代理把 SHOULD/MUST 提取为带稳定 slug 和元数据的 JSON,支持懒发现与渐进披露,未来将加入 SDLC 阶段等元数据。
  • 🤖 AI 代码审查代理自今年初已标记近 230,000 次违规,其中近 16,000 次导致不批准或阻止合并。
  • ⚡ 为减少等待,Cloudflare 提供与 Codex 对齐的 linter 包(TypeScript 已支持 oxlint,Rust 开发中,Go 后续),并支持本地 CLI 运行代码审查代理。
  • 📐 规格审查代理在实现前评估技术设计,运行在 Workers、D1、AI Gateway 和 Cron Trigger 上;自 2026 年 5 月已审查近 600 个开放规格、超过 3,200 次调用。
  • 📊 规格审查发现中 65% 为 major、29% 为 minor、6% 为 critical;未来将直接评论、支持人机对话并标记高影响提案供人工审查。
  • 🚨 事故报告审查代理检查 postmortem 是否完整、解释清楚、记录贡献因素与解决措施并提出后续行动;自 2026 年 5 月已审查 200+ 报告。
  • ✅ 被审查事故中 93% 为低影响、内部或预防性;高严重性事故中审查已强制,所有发现解决后报告才算完整。
  • 🔭 未来将把 Codex 扩展到整个 SDLC,使代理更自主发现问题并提出修复,工程师保留审批;产品、安全、合规与信任安全团队也开始加入标准。
  • 🚀 核心结论:AI 最有用之处是在工作点向工程师提供正确指导,从而更早发现问题并一致执行标准;Cloudflare 工程团队正在招聘。

工具

livenerf

livenerf 是一个长期、尽量确定性的基准测试,用于检测前沿模型在发布后是否悄悄变差,尤其回应 Anthropic 模型被“削弱”的传闻。它从 Claude Opus 5.5 发布后启动,每天运行 30 天,使用 Claude Max 订阅通过无头 Claude Code,冻结提示词、固定 CLI、精确评分器和原始日志,并用统计方法度量能力漂移。

  • 🎯 目标:检测模型发布后是否出现真实能力漂移或静默降级,并区分变化与噪声。
  • 📅 时间线:Opus 5.5 于 2026-09-22 发布;Day 1 为 2026-09-24,运行 30 天,前 10 天为基线;截至 2026-10-01 已收集 8/30 天。
  • ⚙️ 运行方式:通过 headless Claude Code(claude -p)和 Claude Max 订阅运行,无需 API key;固定 CLI 版本 2.1.280,并关闭自动更新。
  • 🔬 确定性设计:冻结系统提示词、固定 CLI、使用纯函数评分器、保存原始 .eval 日志,统计漂移基于数千个样本。
  • 📊 统计框架:基于 UK AISI 的 Inspect,遵循 Anthropic 的《Adding Error Bars to Evals》,使用配对每题差异和聚类标准误。
  • 🧩 面板筛选:从 2,336 道 GPQA Diamond、MMLU-Pro、竞赛数学和 AIME 题中筛出 78 道模型有时对、有时错的题。
  • 🧮 检测能力:每日运行整个面板可检测约 7.5 个百分点/10 天窗口的准确率变化,成本约为每周计划额度的 3.6%。
  • 🧪 验证结果:正对照显示低/中 effort 会显著减少输出 token 并降低准确率;A/A 检查验证误差棒可靠。
  • 🚫 已知限制:无法区分 Opus 5 与 Opus 5.5 的同族模型替换;问题中有 8 个答案键疑似错误、30 个模糊题,但未删除,改用预注册敏感性分析。
  • 🛡️ 安全分类器:有时会以 Opus 5 回答或拒绝生物/数学题;这些样本被拒绝并计数,相关题目排除。
  • 📈 主要指标:配对每题分数差异对比基线;次要指标是每样本输出 token 数,可能先于准确率显示“思考变少”。
  • 🔒 预注册规则:数据收集前公开 PREREGISTRATION.md;判定变化需两个连续 10 天窗口 99% 区间排除零、效应至少 3 点、且控制组不移动。
  • 🧠 双组设计:主面板测量 Opus 5.5;对照组用 claude-opus-5 每天跑 GPQA 题,用于排除 harness 或平台变化。
  • 🛠️ 使用流程:需要 Python 3.11+、uv 和已登录的 Claude Code;依次运行校准、设计、验证、提交并启动每日收集,支持 Linux/macOS/Windows。
  • 📌 测量对象:Opus 5.5 通过 Claude Code 订阅服务,而非原始 API;发布周基线只是参考点,不假设降级机制。
  • 🤝 贡献与披露:任务须可精确评分、位于 30–70% 区间且足够便宜;变更会创建新版本;PR 需披露 LLM 贡献,冻结面板题目保持私有。

harness-sdk

Strands Agents 是一个开源 SDK,用模型驱动方式在 Python 和 TypeScript 中只需少量代码即可构建和运行生产级 AI 代理;本仓库是包含 harness、SDK、CLI、文档与治理材料的 monorepo。

  • 🧩 核心定位:适合原本需要手写 agent loop 的场景,SDK 在自身进程运行,无需托管控制平面。
  • 📦 仓库结构:包含 harness-py、harness-ts、strands-cli、strands-py、strands-ts、site、team、test-infra 等目录。
  • ⚡ 快速开始:推荐使用 Strands harness,通过 create_harness() 或 createHarness() 获得带基准默认配置的完整代理。
  • 🚀 安装方式:Python 可 pip install strands-harness,TypeScript 可 npm install @strands-agents/harness。
  • 🧰 SDK 深入:Python 需 3.10+,安装 strands-agents 与 strands-agents-tools;TypeScript 需 Node.js 22+,安装 @strands-agents/sdk。
  • 🔄 模型无关:一等支持 Amazon Bedrock、Anthropic、OpenAI、Gemini,并支持更多提供商和自定义模型。
  • 🛡️ 生产控制:内置生命周期控制、token 预算、取消、停止原因、guardrails、steering,以及可拦截每步的 hooks。
  • 🔌 内置能力:MCP、流式输出、多代理模式、结构化输出、记忆、会话、追踪和评估。
  • 🧭 可观测性:agent loop 默认追踪每个决策,hooks 可记录、验证或重定向任一步骤。
  • 👨‍💻 编码代理集成:提供 Strands skill,Claude Code 可通过 .claude/skills/strands 自动发现。
  • 📚 文档与社区:文档位于 site/,发布在 strandsagents.com;Discord 可联系团队与用户。
  • 🛠️ 开发方式:Python 用 hatch 测试与格式化,TypeScript 用 npm 构建与测试,文档站用 npm run dev。
  • 📈 社区指标:约 8.6k stars、1.3k forks、2,845 次提交、541 个 issues、369 个 PR。
  • 📜 许可证:项目采用 Apache License 2.0。

EmDash 1.0

EmDash 1.0 正式发布,这是一个基于 Astro 构建的稳定、免费且开源的 CMS,历经六个月开发与生产环境验证,现已准备好服务于从个人博客到大型生产站点的各类需求。

  • 🚀 EmDash 1.0 正式发布,稳定、免费、开源,基于 Astro 构建,已通过生产环境验证,适合个人博客到大型站点
  • 💡 构建灵感源于“如果今天重新打造 WordPress 会是什么样”,优先考虑易用性、插件生态和主题系统
  • ☁️ 支持免费部署到 Cloudflare,无需新服务器即可应对大规模流量,无锁定,可在任何 Node.js 环境运行
  • 🤖 从底层为人类和 AI 代理设计,内置 MCP 服务器、API 和 CLI,人类能做的代理也能做
  • 🛠️ 内置 OAuth 与细粒度访问控制,默认模板附带代理技能,可轻松搭建新插件或从 WordPress 迁移
  • 📅 项目于 4 月 1 日首次公布,六个月间合并数千个 PR,1.0 目标聚焦稳定、安全和大规模测试
  • 🌐 Cloudflare 博客在 7 月 Agents Week 前率先切换至 EmDash,成功应对数百万页面浏览和 DDoS 攻击
  • 🔓 采用 MIT 许可证,给予用户更多自由和灵活性,可分发私有主题或插件
  • 👥 社区蓬勃发展,Discord 数百名成员,近 200 名外部贡献者,多数提交来自外部
  • 🔒 插件采用沙箱模型,每个插件在隔离环境中运行,无直接访问站点权限,解决 WordPress 96% 安全问题
  • 🌐 插件注册表基于 AT Protocol 构建,去中心化,无中央权威控制,任何人可创建兼容商店
  • 🎯 注册表本周启动,计划举办插件黑客松,所有现有插件均可参与
  • 🔮 团队表示这只是开始,未来有更大计划,邀请用户加入 Discord 参与塑造 EmDash 的未来

Hallmark

  • 🎨 Hallmark 是面向 Claude Code、Cursor 和 Codex 的设计技能,目标是让产出拒绝“AI 生成感”;由 Together AI 制作。
  • 🔁 现场演示包含 21 个主题、4 个动词,可按 T 循环切换。
  • 🧱 它会为 brief 选择宏结构,套用 21 个主题之一,并运行 57 道 slop-test 关卡及发射前自批评。
  • 🚫 拒绝 LLM 默认风格;不同 brief 生成的两页像不同网站,而不是同一模板换色。
  • 🏗️ 默认动词:构建新 UI,选择宏结构、应用规则、返回前跑 slop test。
  • 🔍 hallmark audit <target>:用反模式给现有代码打分,输出待办清单,不直接编辑。
  • ♻️ hallmark redesign <target>:丢弃结构,保留文案、信息架构和品牌,用不同指纹重建。
  • 🧬 hallmark study <screenshot | URL>:从欣赏的设计提取 DNA,如宏结构、字体搭配、色彩锚点;拒绝像素克隆和付费模板,可选生成 design.md。
  • 🖼️ 示例覆盖应用、API、唱片、AI 工具、茶单、蜂蜜农场、印刷展、字体工作室、SaaS、旅行、时尚、基础设施等;每页自包含 HTML+CSS,CSS 注释标记宏结构。
  • 🌐 完整示例可在 usehallmark.com 或 site/_tests/ 浏览。
  • 🧵 Custom NEW:当目录主题都不适配时,从零定制调色板、字体和布局,仍走 57 道测试,无底层模板;协议在 custom-theme.md。
  • 📦 安装:npx skills add nutlope/hallmark,可重跑更新;也可复制 SKILL.md + references/ 到 Claude Code、Cursor、Codex 对应目录。
  • 📚 规则在 SKILL.md 和 references/,示例在 docs/recipes.md 与 docs/study-examples.md;MIT 许可,可自由使用、fork、发布。

magpie

magpie 是一款免费、开源、原生的本地 AI 网关工具,运行在你自己的机器上(127.0.0.1:3425),可同时兼容 OpenAI、Anthropic 和 Google Gemini 等各家 API 协议,并双向翻译(含流式输出、工具调用与推理),让任意 AI 编程代理都能调用任意厂商的模型。它提供菜单栏界面、智能路由、订阅共享、多账号故障转移、逐代理用量统计,并附带 TUI 与 CLI,支持 macOS、Windows 和 Linux。

  • 🌐 一个网关,通晓所有 API:Codex 只会说 OpenAI Responses,Claude Code 只会说 Anthropic Messages,magpie 在本地做双向翻译,任何代理都能用任何厂商的模型。
  • 🖥️ 菜单栏管理:一眼看清每个代理当前用的模型,点击即可修改,magpie 只重写你改动的那个配置键,下个会话生效。
  • 🔁 一键还原:选择原生模型时,magpie 会精确恢复原有配置;配置档案(Profiles)可一次性切换所有代理。
  • 🔑 订阅共享:已登录的代理账号会变成一个 provider,其模型出现在其他代理的选择器中,无需复制或粘贴密钥,令牌按原代理方式刷新。
  • 🧠 智能路由:为每轮对话按意图(如"快速提问""写测试")分配最合适的模型,由一个小而快的分类模型判断,工具调用轮次保持在同模型上。
  • ⚖️ 多账号与故障转移:可同时启用多个 Claude、ChatGPT、Copilot 或 Grok 账号,优先使用最早重置额度的账号,余额耗尽或限流的账号自动跳过,失败时在你看到错误前就已重试。
  • 📦 供应商预设:20 个预设覆盖厂商、中转和本地服务器,粘贴密钥即可完成配置,新发布的模型会在下次刷新时自动出现,密钥只留在 magpie 中。
  • ✂️ 细致且无侵入:config 编辑保留注释、顺序与缩进,写入是原子的;程序小于 15 MB,使用系统原生 webview,无 Electron 无运行时。
  • 🔒 安全与开放:MIT 许可、代码在 GitHub 上,从不从环境变量读取 API 密钥;Mac 版本经过签名与公证,并支持静默自动更新。
  • 📊 用量统计:按代理和模型查看 token、缓存命中与花费。
  • 💻 终端支持:提供 TUI 和 CLI,安装脚本会把 magpie 命令放入 ~/.local/bin;支持 provider add、codex、claude、gemini、group add、ls、save/use、tui 等命令;Windows 上 magpie.exe 命令一致,另有纯终端构建版本。

Submarine — Modern SSH & SFTP Client

Submarine 是一款免费、开源、快速且安全的 SSH/SFTP 客户端,支持 Windows、macOS、Linux 和 Android。它基于 Rust + Tauri 构建,用一个原生标签窗口整合终端、SFTP、端口转发、文件夹镜像、Docker 管理、服务器信息和加密配置同步,目标替代 PuTTY + WinSCP + 隧道管理器的组合,MIT 许可。

  • 🚀 免费开源,MIT 许可;Rust + Tauri,启动快、内存约 80 MB,非 Electron。
  • 🖥️ 跨平台:Windows、macOS、Linux(.deb/.rpm/Arch/AppImage)和 Android 8.0+(APK 侧载)。
  • 🧩 每台服务器一个标签窗口,集成终端、SFTP、隧道、文件夹镜像、Docker、信息和命令库。
  • 👥 支持分屏查看两台会话、全局 Wall 网格看板,以及广播输入到多个会话。
  • 💻 终端支持 xterm.js 真彩色、鼠标、选择复制、右键粘贴、断线重连缓冲和容器 shell。
  • 📁 SFTP 双窗格拖放、多选、过滤、覆盖确认、远程实时编辑、权限编辑和直接下载。
  • 🔄 文件夹镜像支持双向同步、内容哈希比较、实时监听、冲突策略和软删除到 .submarine-trash/。
  • 🐳 Docker 管理器支持容器启停、实时日志、统计、资源、Compose 查看、安全 prune 和 exec 终端。
  • 🌐 端口转发支持本地 -L、远程 -R、动态 -D,以及 SOCKS/HTTP 代理。
  • 📊 服务器信息面板展示系统、网络、端口、服务,并可启停 systemctl 服务。
  • 🔐 零知识云同步:本机 Argon2id 派生密钥,AES-256-GCM 加密,服务器仅存密文;无注册和密码找回。
  • 🛡️ 安全默认:TOFU 主机密钥与 nonce 绑定、严格 CSP、最小 Tauri ACL、零化主密钥。
  • 📦 支持从 PuTTY、MobaXterm、OpenSSH config 和 Submarine JSON 批量导入配置。
  • 📱 Android 版复用同一 Rust 核心和加密保险库,提供触控终端软键、SFTP、端口转发;文件夹镜像暂仅桌面端。
  • ⚙️ 其他功能:快捷命令、每节点笔记、自动启动、资源监控、快速连接、离线使用、无遥测。
  • 🏗️ 技术栈:React 18、TypeScript、Tailwind、xterm.js、Rust、Tauri 2、russh、rusqlite、aes-gcm、argon2、zstd。
  • 📥 安装包覆盖主流平台,但当前构建未签名,Windows/macOS/Android 需手动允许或去除隔离。

terminal-browser

  • 🖥️ terminal-browser 是一个可在终端内运行的真实浏览器,基于 Chromium,支持在终端中显示网页并与其交互。
  • 📦 支持 curl 安装:curl -fsSL https://terminal-browser.sh/install | bash,并用 terminal-browser upgrade 升级。
  • 🍺 支持 Homebrew 安装:brew install terminal-browser。
  • 🤖 提供 Claude Code 插件,安装说明见原文链接。
  • 🚀 常用命令:terminal-browser 启动,terminal-browser open <url> 打开网址,--split right 右侧分屏。
  • 🔐 支持 terminal-browser open --ssh <user@host> <url>,通过远程服务器代理所有网络请求。
  • 📋 管理命令:ls 列出已打开浏览器,action 提供与 agent-browser 兼容的 CLI,upgrade 升级版本。
  • 🧑‍💻 让编码 agent 和网站共享同一终端标签。
  • 🌐 让 agent 完全访问已打开的终端浏览器,从而具备使用网页的能力。
  • 📄 让 agent 生成 HTML 计划,并自动在终端浏览器分屏中打开。
  • 🔗 通过 SSH 轻松预览远程机器上运行的网站。
  • ⌨️ 提供 macOS/Linux 快捷键:退出、新标签、编辑 URL、命令面板、页内查找、刷新、前进/后退、缩放、Devtools、复制/粘贴/剪切、录制页面、元素选择、关闭弹窗等。
  • 🖼️ 依赖支持 kitty graphics protocol 的终端,如 ghostty、kitty、cmux、VS Code 等,用于在终端显示像素。
  • ⚡ 使用 Electron 离屏渲染 API 从 GPU 直接读取 Chromium 像素,实现流畅渲染且不丢帧。
  • 🖱️ 监听终端鼠标和键盘事件并发送合成事件给 Chromium;终端无法获取的输入由后台 Swift 应用非侵入读取,支持平滑滚动和触控板事件。
  • 🦀 外层 UI 由 Rust 图形引擎构建,React 自定义渲染器和 TypeScript 定义界面;浏览器 UI 与内容绘制到同一共享 canvas。
  • 📚 底层能力已抽象为 JS 库 pixel:https://github.com/zenbu-labs/pixel。
  • 🔗 SSH 推荐使用 terminal-browser --ssh <ssh arguments>:网站本地运行,网络请求经 SSH 由远程机器代理,可加载远程 localhost 网站。
  • 🧩 支持嵌入现有 TUI,参考 examples/embedded。
  • 🐧 路线图:Linux 支持已完成 ✅,后续包括 Chrome 扩展和设计模式。
  • 🤝 贡献规则:PR 描述必须由人类撰写且解释清楚,动机明确,尽量缩小 PR;本地开发建议询问 coding agent。
  • 🧩 新增终端/多路复用器支持时,参考 terminals/src/terminals 现有实现。

更新

Panda CSS 2.0

Panda CSS 2.0 正式发布,最大的变化是编译器完全用 Rust(基于 Oxc)重写,但样式 API 保持不变;性能大幅提升,同时带来可发布设计系统、新工具函数、官方 ESLint 插件等新特性,升级需注意 ESM-only、Node 22+ 及若干配置与 CSS 输出变更。

  • 🚀 核心重写:编译器从 Node/TypeScript(ts-morph)迁到 Rust + Oxc,CLI 与打包器用原生绑定,浏览器用约 490 KB 的 WASM 绑定,管线为 extract → encode → emit。
  • ⚡ 性能飞跃:抽取快 15–37 倍;watch 模式重新解析快约 360 倍(每文件 650μs 降到 2μs 以内);staticCss 在 29,000 条规则配置上从 25.7 秒降到约 0.3 秒,约快 85 倍。
  • 🧠 类型更轻:生成类型的类型实例化减少约 99%,tsc 内存少 21–25%,类型检查时间减少 40–60%;运行时因记忆化约快 4 倍。
  • 📦 可发布设计系统:用 panda lib 编写并发布 npm 包,消费端通过 designSystem 字段接入,无需在应用中重新抽取样式,支持跨配置、互相扩展。
  • ✨ 新样式工厂:新增 viewTransition()、firstThatWorks()、keyframes()、positionTry(),用于视图过渡、带回退的有序值、组件局部动画与锚点定位回退。
  • 🎨 新预设能力:内置遮罩(mask)与滚动条(scrollbar)工具类,新增指针、用户校验、inert 等条件;变量改用 @property 注册,仅在真正使用时输出。
  • 🛠️ CLI 与工具升级:panda doctor、panda analyze、panda debug、--profile、--include、panda init -i 等;日志统一为 --log-level。
  • 🧩 编辑器与 ESLint:官方 @pandacss/eslint-plugin 提供无效 token、硬编码颜色、简写冲突等规则;类型服务插件与 LSP 为 panda.config.ts 提供真实补全与诊断。
  • 📚 其他新增:@pandacss/preset-typography 提供 prose 配方;MCP 独立为 npx -y @pandacss/mcp;Vite、webpack、Rollup、Bun 打包插件支持 transform: true 消除运行时。
  • 🔄 升级要点:Panda 2.0 仅支持 ESM,需要 Node 22+,panda.config.ts 基本沿用;hooks 移入 plugins,createStyleContext 拆分为 createSlotRecipeContext / createRecipeContext,matchTag 改为声明式 jsxMatchTag。
  • ⚠️ 移除与输出变化:删除 studio、eject、lightningcss、browserslist 等 9 个配置及模板字符串写法;CLI 合并为 panda doctor;边框覆盖按属性而非源码顺序排序,scrollbarWidth 改为关键字取值。
  • 🧱 渐进迁移提醒:Panda 的 CSS 位于 @layer 中,未分层的旧样式会默认胜出;可运行 postcss-cascade-layers 去掉层级包装,或按路由、目录、团队划清边界。

Mermaid 12.0.0

Mermaid 12.0.0 是一次破坏性大版本:默认布局改为 ELK,默认主题/外观改为 redux-color / neo,新增 UML 用例图,并要求 ES2024、Safari 17.4+、Node 22.12+;若要保留旧渲染,需显式设置 layout: 'dagre'、theme: 'default'、look: 'classic'。

  • 💥 破坏性升级:要求 ES2024、Safari 17.4+、Node.js 22.12+,旧浏览器可能需要 polyfill 或转译。
  • 🧩 ELK 成为内置默认布局引擎:流程图、状态图、类图、ER、需求、用例等未指定 layout 时会从 dagre 切换到 ELK;可显式用 layout: 'dagre' 恢复。
  • 🎨 新默认外观:redux-color / neo 取代 default / classic,未配置的图会重新布局和配色。
  • 🆕 新增 UML 用例图:支持角色、用例、系统边界、关系、构造型、备注、JSON 表、类/样式、无障碍元数据和业务变体。
  • ⚙️ 布局配置增强:支持 elk.stress、elk.force、elk.mrtree、elk.sporeOverlap、elk.box、elk.rectpacking 等变体;容器可用 @{ algorithm: … } 指定自己的 ELK 算法。
  • 🧹 移除 defaultRenderer:流程图、类图、状态图的该选项失效,改用顶层 layout: 'dagre' / 'elk';旧 legacy 渲染器 ID 移除。
  • 📦 构建变化:ESM 中 ELK 按需加载;IIFE 内联后约增大 500 kB gzip;tiny 构建不含 ELK,会回退到 dagre。
  • 🧭 配置粒度增强:theme、look、layout 可按图类型设置;优先级为 front matter/directive、initialize()、图类型默认、全局默认。
  • 🌈 主题增强:redux-color / redux-dark-color 支持类框、流程图子图、复合状态、泳道、用例图等按项、按容器或按角色轮换配色。
  • 🐛 关键修复:块图渐变边框、C4 边界端点、ELK 箭头日志、子图边框/标题留白、复合状态循环起始点、手绘填充和线跨避让等。
  • 📐 图形与标签修复:多边形边连接偏移半像素、stadium 标签不再挤成圆形、</br> 识别为换行、Circle/Delay/Display 节点按标签高度调整尺寸。
  • 🧪 性能与维护:深度缩进解析性能从约 1.4 秒降至约 30 毫秒;移除部分内部布局导出;更新 @mermaid-js/parser@2.0.0。
  • ✅ 兼容旧外观:初始化时设置 mermaid.initialize({ layout: 'dagre', theme: 'default', look: 'classic' }),或在前言中按图设置。

宣布 Vite+ 1.0 | VoidZero

Vite+ 1.0 正式发布,这是由 Vite、Vitest、Rolldown 和 Oxc 背后的团队打造的统一 Web 开发工具链。它采用 MIT 开源许可,接近每周两百万下载量,通过单条命令 vp 统一管理 Node.js 运行时、包管理器和前端工具链。Vite+ 并非框架、包管理器,也不是 Vite 的替代品,而是一个框架无关的整合方案,将已有工具组合成经过测试的单一技术栈,配以单一配置文件和一致的命令集,支持从 React 应用到大型 monorepo 的各类项目。

  • 🚀 核心定位:Vite+ 为 Web 开发提供单一入口,将现有工具整合为统一技术栈,拥有单一配置文件与一致的命令体系,且项目本身无需使用 Vite 也能采用。
  • 🛠️ 九大命令覆盖本地开发周期:包括 vp create(脚手架)、vp install(依赖安装)、vp dev(开发服务器)、vp check(格式化/检查/类型检查)、vp test(测试)、vp build(生产构建)、vp pack(库构建与独立二进制)、vp run(带缓存的 monorepo 任务运行器)、vp env(Node.js 版本管理),全部由根目录的 vite.config.ts 统一配置。
  • ⚡ 性能大幅提升:底层工具以 Rust 编写,Oxlint 比 ESLint 快 50 至 100 倍,Oxfmt 比 Prettier 快最高 30 倍,Vite 8 借助 Rolldown 显著加快构建速度。
  • 📦 告别工具链维护:单个 vite-plus 依赖可替代 vite、vitest、eslint、prettier、tsup、turbo 等一整套依赖及其插件配置,升级只需一次版本号变更且作为整体经过测试。
  • 🔄 跨仓库一致体验:内置 vp 命令在任何项目中含义相同,项目自定义脚本通过 vpr 运行,方便新成员和 AI 代理上手。
  • ⏩ CI 更高效:vp run 记录任务实际使用的文件、参数与环境变量,未变更任务可即时重放缓存;setup-vp 将 Node 环境、包管理器与依赖缓存步骤合并为单一操作。
  • 🔓 无锁定风险:可继续使用喜爱的 Vite 插件和包管理器,vp run 的缓存同样适用于任意脚本。
  • 🆕 Beta 以来的更新:新增 GitLab CI/CD 的 setup-vp、支持 tsup 迁移、提供 Homebrew 和 Docker 镜像、新增 vp toolchain、vp env doctor、vp hooks 与 vp staged 命令;Vitest 5 稳定,Vite 8.1 发布实验性 Bundled Dev Mode,Oxc 获得原生 React Compiler 支持。
  • 🌍 采用情况:接近两百万周下载量,超过 2600 个公开仓库依赖 vite-plus;用户包括 Tiptap、Dify、vinext、BlockNote、Inkline、npmx、hono 等,其中 Tiptap 已用 Vite+ 替换其原有的 Vite、Vitest、tsup 和 Oxc 组合。
  • 📥 快速开始:macOS/Linux 使用 curl -fsSL https://vite.plus | bash,Windows 使用 PowerShell 脚本安装;随后运行 vp create 新建项目,或用 vp migrate 迁移现有项目(迁移前会展示计划,生产项目建议先阅读迁移指南,也可使用迁移提示词配合编码代理)。
  • 🔮 未来规划:远程缓存、更深入的 monorepo 诊断、vp release 和 vp docs 等功能将在后续版本中推出。
  • 🙌 社区共建:Vite+ 由国际核心团队与社区共同开发,半数核心成员来自社区,感谢众多贡献者的审核、修复与功能提交。

设计

接口 › 速查表

界面设计速查表,涵盖用户界面、动画、排版、颜色、无障碍、布局与文案写作等核心原则,旨在帮助设计师与开发者打造精致、易用的产品界面。

  • 🎯 同心圆角:嵌套元素时,外圆角 = 内圆角 + 间距,保持圆角同心。
  • 👁️ 视觉对齐优先:视觉对齐比几何对齐更重要,人眼感受比精确计算更关键。
  • 🔘 图标按钮内边距:带图标和文字的按钮,图标一侧的内边距应略小。
  • 🌑 层叠阴影代替边框:用分层 box-shadow 营造深度感,而非使用边框。
  • 🖼️ 图片描边:给图片加 1px 描边并偏移 -1px,浅色模式黑色 8% 透明度,深色模式白色 8%。
  • ✏️ 图标描边匹配文字:图标的描边粗细应与旁边文字一致。
  • 🎬 动画从触发点开始:根据触发位置设置 transform-origin,而非从中心开始。
  • ⚡ 常用菜单跳过开启动画:频繁打开的菜单只做关闭动画,开启时直接显示。
  • 🌫️ 退出动画更含蓄:退出时移动距离更短,配合透明度与 4px 模糊渐隐。
  • 🎛️ 指定具体过渡属性:明确写下要动画的属性,永远不要用 transition: all。
  • 🔽 按钮按下缩放:按下时缩放至 0.95–0.98,用 transition: scale 200ms ease-out。
  • 🔄 图标切换淡入淡出:新图标从 scale 0.25 → 1、opacity 0 → 1、blur 4px → 0,旧图标反向。
  • 🧩 交互用 CSS 过渡:需要中途改变方向的交互用 transition,仅运行一次的序列用 keyframes。
  • 🌗 切换深浅色时禁用过渡:避免主题切换时出现动画闪烁。
  • 🌀 防止元素抖动:动画中元素随机偏移 1–2px 时,添加 will-change: transform(iOS Safari 尤其有用)。
  • 📦 分组进入动画:元素入场时分小组依次出现,而非整块一起动画。
  • 🚫 避免页面加载动画:除非有意为之,否则阻止元素在页面加载时播放动画。
  • ⚡ 常用交互保持即时:悬停变色等高频交互应瞬间或极快响应。
  • 📄 使用 .woff2 字体:网页字体只用 .woff2,避免 .ttf 与 .otf。
  • 🔢 等宽数字:计时器、计数器、价格和表格使用 font-variant-numeric: tabular-nums,防止数值变化时布局跳动。
  • 📏 控制行宽:文章等长文本每行保持 60–75 个字符,过宽难以阅读。
  • ⚖️ 文本换行优化:标题用 text-wrap: balance,描述用 text-wrap: pretty 防止孤字。
  • 🔗 长内容不溢出:用 overflow-wrap: break-word 处理长词与链接,用 white-space: nowrap 防止标签换行。
  • 🔍 字体平滑:在根布局设置 -webkit-font-smoothing: antialiased 和 -moz-osx-font-smoothing: grayscale,让文字更锐利。
  • 🔤 正常大小写书写:文字用正常大小写书写,需要大写或小写时使用 text-transform。
  • ✒️ 智能标点:使用弯引号、短破折号(–)表示范围、长破折号(—)表示插入语、省略号(…)。
  • 🖊️ 下划线避让:使用 text-underline-position: from-font 与 text-decoration-skip-ink: auto,避免下划线穿过 g、y 等字母尾部。
  • 💬 省略号补充完整内容:文字被省略号截断时,通过 tooltip 或展开视图让用户看到全文。
  • 🎨 色阶各有用途:调色板每一步都应有明确用途(页面背景、悬停、边框、实色填充、正文),不要添加无用的色阶。
  • 🏷️ 语义化颜色令牌:组件使用语义令牌(如 --color-text-secondary),而非原始色值(如 --blue-500)。
  • 📛 按用途命名颜色令牌:用 --color-accent-solid 而非 --color-blue-button 或 --color-sidebar-gray。
  • 🌟 强调色专属品牌色:accent 保留给品牌色,避免 primary 同时表示品牌色和正文主色。
  • 🔲 对比度以实际背景为准:测量元素直接所在背景的对比度,而非页面背景。
  • 🌙 深色模式独立调色板:为深色模式创建独立调色板,而非反转浅色模式。
  • 🔀 统一主题切换方式:选择 prefers-color-scheme 或 .dark 类其中之一,不要混用。
  • 🌈 渐变混合模式:用 in oklab 获得均匀亮度,in oklch 让中间色更鲜艳,in srgb 让中间色更柔和。
  • 🧱 使用原生 HTML 元素:按钮用 <button>,链接用 <a>,原生元素自带无障碍与预期行为。
  • 🎯 使用 :focus-visible:替代 :focus,不要在没有替代方案的情况下移除轮廓。
  • ⌨️ tabindex 仅用 0 和 -1:正值会改变元素的预期顺序。
  • 🖱️ 图标按钮加 aria-label:仅有图标的按钮需有描述性 aria-label,可聚焦元素上不要加 aria-hidden="true"。
  • 🖼️ 图片替代文本:替代文本说明图片用途与内容,装饰性图片用 alt=""。
  • 🏷️ 输入框使用可见标签:用 <label> 标注每个输入框,并设置匹配的 type 与 inputmode。
  • 📋 不阻止粘贴:用户需要粘贴密码和一次性验证码。
  • ✅ 提交时校验:提交按钮保持可用直到请求开始,用 aria-invalid="true" 标记无效字段,aria-describedby 关联错误信息,并将焦点移到第一个无效字段。
  • 👆 点击区域足够大:至少 24×24px,触屏目标 44×44px,桌面 40×40px,且不可重叠。
  • ✨ 装饰元素禁用指针事件:光晕、渐变等装饰元素使用 pointer-events: none,避免吞掉事件。
  • 🖐️ 悬停样式加媒体查询:将悬停样式放入 @media (hover: hover),避免触屏点击后 :hover 保持激活。
  • 🎞️ 尊重减少动态效果:将动画放入 @media (prefers-reduced-motion: no-preference) 中。
  • 📢 状态播报角色:常规更新用 role="status",紧急错误用 role="alert"。
  • 🚦 不只依赖颜色:状态变化需配合图标、标签或下划线。
  • ⏭️ 跳转内容链接置顶:让“跳到内容”链接成为 Tab 键的第一站。
  • 📌 滚动边距:用 scroll-margin-top 在标题上方留出空间,方便锚点跳转。
  • 📐 组间距是项间距两倍:组与组之间至少留出组内项目间距的两倍。
  • 🗣️ 按钮标签以动词开头:如“保存草稿”“删除项目”,不要用“OK!”或“是”。
  • 🧾 确认按钮说明操作:“删除项目”搭配“取消”,而非“是/否”。
  • 🔁 流程中步骤标签一致:全流程统一使用“继续”或“下一步”。
  • 🔗 描述链接去向:用“阅读文档”代替“点击这里”。
  • 🔠 大小写风格统一:按钮、标题、标签在全站统一使用句式大小写(如“Save changes”)。
  • 🔘 开关标签说明开启行为:写“发送已读回执”,而非“禁用已读回执”。
  • 📭 空状态给出指引:说明此处应有什么,并提供一个起步操作。
  • 🙋 称呼读者为“你”:用“你将收到邮件”,而非“用户将收到邮件”。

其他

关于倦怠,你听到的一切都是错的

作者认为倦怠并非源于工作过度,而是缺乏可信动机;休息通常无效,真正有效的是把遥远目标拆解为近期、可信、有意义的里程碑,从而“工程化动机”。

  • 🔥 文章颠覆常识:倦怠不是因为太努力,而是因为目标太远、太不可达、太抽象。
  • ✈️ Boom 团队曾为 XB-1 亮相长期高强度工作,成功后获一周假,却仍抱怨倦怠。
  • 🧭 作者提出“满足窗口”:人需要在一段可信时间内看到有意义回报,才能持续保持动力。
  • 🍡 棉花糖实验说明满足窗口长短不同;创始人通常较长,多数人处于中间。
  • 🎯 只要窗口内有具体、可信、鼓舞人的目标,优秀的人愿意长期聪明而努力地工作,甚至很少休息。
  • 🚫 若窗口内没有目标,即使工作不重、刚休完假,也会感到倦怠。
  • 🛠️ 休息、充电不是根本解法,关键是工程化动机。
  • 🪜 作者把“飞行”这种遥远抽象目标拆成一系列近期里程碑,称为 Mission Success Events。
  • 🎉 例如首次起落架收放测试;约每月一个,达成后全公司共同庆祝。
  • 🔍 面对倦怠,应先检查动机而非工作量:团队被什么驱动?下个里程碑是什么?人们是否相信它可实现且有意义?
  • 🚀 工程化动机,是工程化超音速喷气机的第一步。

TBM 440:将人分门别类的问题

本文批判职场中把人塞进人格类型、优势标签或“文化契合”盒子的做法,认为静态标签无法说明人在不同情境、激励、权力动态与文化规范下会如何表现。作者借大五人格示例和个人经历指出,组织常把既有规范自然化,把适应负担推给个体,尤其边缘群体;所谓勇气、主人翁等美德也常被窄化为特定文化表达。真正有用的,是理解触发行为切换的条件与假设。

  • 🧩 人格与“优势”测试虽有趣,却难指导日常工作,也无法替代真正了解他人及情境反应。
  • 🏟️ 团队建设常借用运动队或“文化契合”隐喻,但容易把现有文化美化成“果断、协作、高主人翁”等抽象优点。
  • 🏷️ 给人贴“战略型、人际型、高尽责、低宜人”等标签很方便,却压缩复杂性并忽略情境差异。
  • 🔍 更该问的不是“你是什么类型”,而是“在什么条件下你会切换模式,依据哪些区分?”
  • 🧪 同为高尽责、低神经质的人,面对会议节奏问题可能做出相反选择,因对可逆性、证据、权威与实验标准理解不同;高尽责 + 高宜人也可能表现迥异。
  • 🎭 作者自述:多数时候重视共同设计与行动偏向,但遇到权力滥用、泛化或贬低他人时,会迅速进入捍卫者模式,显得直接对抗;外部矛盾,内部一致。
  • 🏢 组织规范是行为的沉淀,却被去个人化为“这里就是这样”;受益者视其为自然,适应者却承担调整、读空气与融入的个人负担。
  • ⚖️ 适应负担不均,常最重地落在双重代表性不足者身上,他们更少拥有定义“正常”的权力。
  • 🦁 “勇气、纪律、行动偏向、主人翁”看似普世,组织实际奖励的是特定表达;同一行为在不同文化中可能被视为勇气或不尊重。
  • 🧭 结论:类型只提示重心或惯性;理解情境触发因素、注意到的差异及对风险、权威、公平、可逆性、责任的假设,才更能预测合作实际会怎样。

我不想要细节 | michaelheap.com

一次与工程高管的通话点明核心:复盘的目标不是解释“为什么发生”,而是确认“我们要改变什么”,让同类失败更不容易重演。

  • 🚫 高管说“我不想知道细节”,并非轻视,而是表达信任:他相信团队是称职的,重点应转向下一步改变。
  • 🧩 多数组织事故后问“为什么发生”,容易写出合情合理的时间线,但理解问题不等于解决问题,甚至会削弱改变的紧迫感。
  • 🔄 更有效的问题是:“我们要改变什么,让同一类失败下次更不可能发生?”
  • 🧠 前提是假设“合理的人也会造成这个结果”,然后追问系统需要怎样调整,而不是责怪个人。
  • 🗂️ 例如:有人休假导致归属不清,就明确无人可用时的责任归属;需求临近发布变更,就设计发布窗口内的变更机制;告警太多导致疲劳,就提升告警信噪比。
  • 🛠️ 好的解释不是修复;若复盘只写“更早通知支持”“加强沟通”“下次更小心”,那只是愿望,不是行动。
  • 🧪 判断修复是否有效:如果相关人员明天都离职,这个修复还能生效吗?不能,则系统仍然注定失败。
  • ❓ 有效复盘应问:“如果明天发生同样情况,什么会导致不同结果?”能强制决策的流程是改进,能阻止同类错误的系统更强。
  • ⚖️ 也不要为每个失败都造新流程;要有意识地接受某些风险,而不是用“我们会更努力”来自我安慰。
  • 🤝 共情不应成为组织免除改变责任的机制;人通常是在信息、激励和约束下做出当下最好的决定,所以修复人往往是错误答案。
  • 💬 领导者最有用的表态是:“我相信你。我不需要细节。告诉我,我们要改变什么。”