「MCP 连接指南公开页」更新场景 EC-1
查看前后差异
变更前
- 情境
- 团队希望把同一约定共享给所有成员
- 操作
- 查看指南第五节说明
- 结果
- 仓库根目录 AGENTS.md 被标注为可选加强、非必需;已连接 agent 还会随连接收到相同的 MCP instructions
变更后
- 情境
- 未传入 locale 的 CopyBlock 使用方
- 操作
- 点击复制按钮
- 结果
- 按钮文案以默认 zh-CN 显示「复制」/「已复制」
CoDelphi 把 GitHub 仓库变成一份可追溯的产品规格。 连接仓库后,AI 自动提取功能清单与用户场景,每次 push 自动总结行为变化——每一条结论都附带可点击的源码证据,而不是凭空生成的摘要。
34d18b7 ↗界面语言切换扩展到入口界面:登录页、403 页、产品总览、我的工作区、添加产品页与共享反馈组件按 ui locale 服务端渲染或经 props 接收 locale,新增 lib/ui-strings/dashboard.ts 域字典;时间线日期与日期 chip 改用 formatDateIn,CopyBlock 复制按钮文案随 locale 切换。
「MCP 连接指南公开页」更新场景 EC-1
components/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsx「MCP 连接指南公开页」更新场景 HP-29
components/copy-block.tsxcomponents/dashboard-lists.tsx「产品总览仪表盘」新增场景 EC-15
components/dashboard-lists.tsx「产品总览仪表盘」新增场景 EC-2
components/dashboard-lists.tsxapp/page.tsxapp/page.tsxapp/page.tsxapp/page.tsx「产品总览仪表盘」新增场景 HP-11
app/page.tsx「产品总览仪表盘」新增场景 HP-12
components/dashboard-lists.tsx「产品总览仪表盘」新增场景 HP-13
components/dashboard-lists.tsx「产品总览仪表盘」新增场景 HP-2
app/page.tsxapp/page.tsxapp/page.tsxapp/page.tsxapp/page.tsxcomponents/product-form-sections.tsxcomponents/product-form-sections.tsxapp/products/new/page.tsxcomponents/product-form-sections.tsxcomponents/product-form-sections.tsxapp/products/new/page.tsxcomponents/product-form-sections.tsxcomponents/new-product-form.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/organizations/page.tsxapp/login/page.tsxapp/page.tsxapp/login/page.tsxcomponents/dashboard-lists.tsxapp/login/page.tsxapp/forbidden/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/forbidden/page.tsxapp/login/page.tsxapp/forbidden/page.tsxapp/forbidden/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/forbidden/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/forbidden/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/login/page.tsxapp/forbidden/page.tsxcomponents/new-product-content.tsxcomponents/new-product-form.tsx「产品注册入口与凭据前置校验」新增场景 EC-3
components/new-product-content.tsxcomponents/new-product-form.tsxcomponents/new-product-content.tsxcomponents/product-form-sections.tsxapp/products/new/page.tsx「产品注册入口与凭据前置校验」新增场景 HP-4
app/products/new/page.tsx「产品注册入口与凭据前置校验」新增场景 HP-5
components/new-product-content.tsxcomponents/copy-block.tsx「可复制代码块组件」新增场景 ER-1
components/copy-block.tsxcomponents/copy-block.tsx新增 lib/ui-strings/dashboard.ts 域字典(LOGIN/FORBIDDEN/DASHBOARD/ORGANIZATIONS/NEW_PRODUCT/FEEDBACK),登录页、403 页、产品总览、我的工作区、添加产品页经 resolveUiLocale 取 locale 后用 pick 渲染;dashboard-lists、form-feedback、product-form-sections、new-product-content 经 props 接收 locale。
用户影响:界面语言为英文时,登录、403、产品总览、工作区、添加产品与表单按钮文案显示英文;中文界面保持原文案。
仪表盘标题、统计卡、区块标题、空状态与产品卡/时间线文案改由 DASHBOARD 字典按 locale 取值,ProductGrid 与 ReleaseTimeline 接收 locale,timelineDate 改用 formatDateIn。
用户影响:英文界面下产品总览的标题、统计、空状态与时间线日期按英文显示。
CopyBlock 新增可选 locale 属性,复制按钮文案在「复制/已复制」与「Copy/Copied」间按 locale 切换。
用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied。
添加产品页与 NewProductContent、ProductInformationSection、RepositorySection、ProductSubmitButton 的标题、字段标签、占位符、提示与提交按钮文案改由 NEW_PRODUCT/FEEDBACK 字典按 locale 取值。
用户影响:英文界面下添加产品页的引导卡片、表单标签与提交按钮显示英文。
登录页与 403 页新增按 ui locale 渲染的文案:登录页标题、说明、Chandler 登录按钮、数据说明、公开演示入口与五个匿名导出标签;403 页标题、正文与返回登录链接。
用户影响:英文界面下登录页与 403 页显示英文文案,公开演示导出入口标签同步英文化。
我的工作区页新增按 ui locale 渲染的标题、邀请成员表单、邀请结果提示、工作区表格表头、角色标签与切换按钮文案。
用户影响:英文界面下工作区页的邀请表单、结果提示与角色列显示英文。
新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览仪表盘、我的工作区、添加产品页与共享反馈组件改为服务端解析界面语言后用 pick() 渲染中英文文案,时间线日期改用 formatDateIn 按 locale 格式化。
用户影响:界面语言为英文的用户在登录、403、仪表盘、工作区与添加产品等入口看到英文文案与英文日期格式;中文界面渲染保持不变。
CopyBlock 新增可选 locale 属性,复制按钮文案按界面语言显示「复制/已复制」或 Copy/Copied,默认 zh-CN。
用户影响:英文界面下 /mcp 指南的复制按钮显示英文文案;中文界面不变。
新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、仪表盘、我的工作区、添加产品页在服务端解析界面语言后用 pick() 渲染中英文文案;CopyBlock、表单反馈与仪表盘列表组件经 props 接收 locale。
用户影响:界面语言为英文的用户在登录、403、产品总览、工作区与添加产品等入口界面看到英文文案,中文界面保持原样。
仪表盘标题、统计卡、产品空间与最近变化区块文案改由 DASHBOARD 字典按界面语言取值,产品卡片与时间线组件接收 locale,时间线日期改用 formatDateIn 按 locale 格式化。
用户影响:英文界面下仪表盘标题、统计、空状态与时间线日期以英文呈现。
添加产品页与新建产品表单各区块(产品信息、GitHub 仓库、提交按钮)文案改由 NEW_PRODUCT/FEEDBACK 字典按界面语言取值,locale 经 props 逐层传入。
用户影响:英文界面下添加产品页的引导卡片、表单标签、占位符与提交按钮显示英文。
登录页与 403 页新增界面语言支持:登录页标题、说明、Chandler 登录按钮、数据说明与公开演示入口及五个匿名导出链接按 locale 渲染;403 页改为服务端解析 locale 后渲染标题、正文与返回登录链接。
用户影响:英文界面用户看到英文登录页与 403 提示;中文界面文案与之前一致。
我的工作区页新增界面语言支持:返回链接、标题、邀请成员表单、邀请结果提示、成员表格表头与角色名、当前工作区徽标与切换按钮按 locale 渲染。
用户影响:英文界面下工作区页的邀请与成员管理文案显示英文。
新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览、我的工作区、添加产品页在服务端解析界面语言后经 pick() 渲染中英文案;表单反馈标签与仪表盘卡片/时间线/空态改为 locale 感知,时间线日期改用 formatDateIn。
用户影响:界面语言为英文的用户在登录、403、产品总览、工作区与添加产品页看到英文文案与英文日期格式;中文界面渲染保持不变。
CopyBlock 新增可选 locale 属性,复制按钮文案按界面语言在「复制/已复制」与 Copy/Copied 之间切换,默认 zh-CN。
用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied;中文界面不变。
添加产品页与新建产品内容/表单分区接收 locale,标题、字段标签、占位符、提示与提交按钮文案按界面语言渲染。
用户影响:英文界面下添加产品页的引导卡片、表单标签与提交按钮显示英文。
仪表盘标题、统计卡、分区标题、产品卡片与时间线空态文案改由 DASHBOARD 字典按界面语言取值,产品网格与时间线接收 locale,时间线日期经 formatDateIn 按 locale 格式化。
用户影响:英文界面下产品总览的标题、统计、空态与时间线日期显示英文;中文界面不变。
登录页与 403 页改为服务端解析界面语言,标题、说明、Chandler 登录按钮、数据说明、公开演示入口与五个匿名导出链接、403 提示与返回登录链接均按界面语言渲染。
用户影响:英文界面用户看到英文登录页与 403 提示;公开演示导出入口名称随界面语言切换。
我的工作区页新增界面语言解析,返回链接、标题、邀请成员表单、邀请结果提示、成员表格表头、角色名与切换按钮按界面语言渲染。
用户影响:英文界面下工作区页的邀请表单、角色与表格文案显示英文。
新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览、我的工作区、添加产品页与表单分区、通用反馈组件按 resolveUiLocale 取 locale 后用 pick 渲染中英文案;时间线日期与日期 chip 改用 formatDateIn。
用户影响:界面语言为英文的用户在登录、403、仪表盘、工作区与添加产品等入口界面看到英文文案与英文日期格式;中文界面渲染保持不变。
CopyBlock 新增可选 locale 属性,复制按钮文案按 locale 在「复制/已复制」与 Copy/Copied 之间切换,默认 zh-CN。
用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied,中文界面文案不变。
仪表盘标题、统计卡、产品空间与最近变化区块、产品卡片与时间线空态文案改由 DASHBOARD 字典按 locale 渲染,时间线日期经 formatDateIn 按 locale 格式化。
用户影响:英文界面下产品总览的标题、统计、空态与时间线日期显示英文;中文界面不变。
添加产品页标题、返回链接、凭据缺失引导卡片与产品信息/仓库表单分区文案改由 NEW_PRODUCT 字典按 locale 渲染,locale 经 props 传入表单组件。
用户影响:英文界面下添加产品页与表单标签、占位符、提示显示英文;中文界面不变。
新增登录页与 403 页的双语渲染:登录页标题、说明、Chandler 登录按钮、数据说明与公开演示入口及五个导出链接按 LOGIN 字典渲染;403 页标题、正文与返回登录链接按 FORBIDDEN 字典渲染。
用户影响:英文界面下登录页与 403 页显示英文文案与英文导出入口名称;中文界面保持原文案。
我的工作区页新增双语渲染:返回链接、标题、邀请成员表单、邀请结果提示、成员表格表头、角色标签与切换按钮按 ORGANIZATIONS 字典渲染。
用户影响:英文界面下工作区页的邀请表单、结果提示与成员表格显示英文;中文界面不变。
新增 lib/ui-strings/dashboard.ts 域字典,登录页、403 页、产品总览、我的工作区、添加产品页与表单分区、通用反馈组件按 resolveUiLocale 取 locale 后用 pick 渲染。
用户影响:界面语言为英文时,登录、403、仪表盘、工作区与添加产品等入口页面显示英文文案;中文界面保持原样。
仪表盘标题、统计卡、产品空间与最近变化区块文案改由 DASHBOARD 字典按 locale 取值,ProductGrid 与 ReleaseTimeline 接收 locale,时间线日期改用 formatDateIn。
用户影响:英文界面下仪表盘标题、统计与空状态显示英文,时间线日期按英文格式输出。
CopyBlock 新增可选 locale 属性,复制按钮文案在「复制/已复制」与「Copy/Copied」之间按 locale 切换。
用户影响:英文界面下 /mcp 指南的复制按钮显示 Copy/Copied。
添加产品页、NewProductContent、产品信息与仓库分区、提交按钮文案按 locale 渲染,locale 经 props 逐层传递。
用户影响:英文界面下添加产品页的引导卡片、表单标签与提交按钮显示英文。
登录页与 403 页改为服务端解析界面语言,标题、说明、Chandler 登录按钮、数据说明、公开演示入口与五个匿名导出链接按 locale 渲染。
用户影响:英文界面下登录页与 403 页显示英文文案,公开演示导出链接名称同步英文化。
我的工作区页标题、邀请成员表单、邀请结果提示、成员表格表头与角色标签、切换按钮按 ORGANIZATIONS 字典渲染。
用户影响:英文界面下工作区页的邀请与成员管理文案显示英文。
新增 lib/ui-strings/dashboard.ts 域字典(每键一个 LocaleEntry),登录/403/仪表盘/工作区/新建产品页服务端解析 ui locale 并通过 pick() 渲染;CopyBlock 增加可选 locale 参数(默认 zh-CN)。
用户影响:界面语言切换覆盖登录、仪表盘、工作区、新建产品与共享反馈组件;默认中文渲染不变。
403 页面由同步硬编码中文改为 async 组件,await resolveUiLocale() 后按 locale 渲染标题、正文与返回登录链接。
用户影响:无权限访问时 403 页文案随界面语言切换。
登录页主标题按换行拆两行渲染,说明、面板文案、Chandler 登录按钮、用户提示、数据说明链接与公开演示区块均改为 pick 渲染;DemoExports 增加 locale 参数,五个导出入口标签本地化,接口路径不变。
用户影响:登录页与公开演示导出入口文案随界面语言切换,导出链接行为不变。
仪表盘标题、副标题、添加产品按钮、统计区 aria-label 与三张统计卡标签/单位、产品空间与最近变化区块标题说明改为 pick 渲染;ProductGrid 与 ReleaseTimeline 额外传入 locale;日期 chip 仍用 formatDateIn。
用户影响:仪表盘全部文案与日期格式随界面语言切换。
工作区页返回链接、标题、邀请表单、邀请结果提示、表头、角色名、当前工作区徽标与切换按钮改为 pick 渲染。
用户影响:工作区列表与邀请流程文案随界面语言切换,权限与表单行为不变。
新建产品页返回链接、标题、副标题改为 pick 渲染,NewProductContent 额外传入 locale。
用户影响:新建产品页文案随界面语言切换,连接状态与默认输出语言逻辑不变。
CopyBlock 复制按钮文案改为按 locale 渲染「复制/已复制」与「Copy/Copied」,locale 默认 zh-CN。
用户影响:公开指南页复制按钮文案随界面语言切换。
dashboard-lists 的 timelineDate、ProductCardContent、ProductGrid、ReleaseTimeline 增加 locale 参数(默认 zh-CN),pending 文案、功能/发布计数单位、空态文案改为 pick(locale, DASHBOARD.*),时间线日期改用 formatDateIn(locale, ...) 格式化。
用户影响:英文界面下产品卡片、空态与时间线日期以英文呈现;中文界面渲染不变。
form-feedback 的 analysisButtonLabel、submitLabel、ProductSubmitButton 增加 locale 参数(默认 zh-CN),按钮文案改为 pick(locale, FEEDBACK.*)。
用户影响:英文界面下分析/提交按钮文案为英文;中文界面不变。
NewProductContent 增加 locale 参数(默认 zh-CN),无凭据时的标题、说明与「前往 Integrations」链接文案改为 pick(locale, NEW_PRODUCT.*),有凭据时向 NewProductForm 传 locale。
用户影响:英文界面下未连接 GitHub 的提示区文案为英文;中文界面不变。
NewProductForm 增加 locale 参数(默认 zh-CN),并向 ProductInformationSection 与 RepositorySection 传递 locale。
用户影响:添加产品表单各区块文案随界面语言切换。
ProductInformationSection 与 RepositorySection 增加可选 locale 字段(默认 zh-CN),区块标题、说明、字段标签、占位符、slug 提示、输出语言标签与 aria-label、输出语言提示后缀、仓库与分支标签/占位符/提示改为 pick(locale, NEW_PRODUCT.*)。
用户影响:英文界面下产品信息与仓库区块的标签、占位符与提示为英文;中文界面不变。
输出语言选择器的标签、aria-label 与提示后缀改为按 locale 取值,选项标签仍来自 OUTPUT_LANGUAGE_LABELS。
用户影响:英文界面下输出语言字段的标签与提示为英文。
新增 LOGIN 字典(含嵌套 demoExports),登录页文案按 locale 渲染。
用户影响:英文界面下登录页标题、说明、Chandler 登录按钮与演示入口文案为英文。
新增 FORBIDDEN 字典,403 页标题、说明与返回登录链接按 locale 渲染。
用户影响:英文界面下无权限页文案为英文。
新增 ORGANIZATIONS 字典,我的工作区页标题、邀请表单、角色标签、邀请结果提示与切换工作区文案按 locale 渲染。
用户影响:英文界面下工作区页与邀请相关文案为英文。
ProductGrid 中 pending 卡片是否渲染为链接或非链接等待卡的判定逻辑未变,仅透传 locale。
用户影响:无外部可见行为变化。
203cdca ↗新增界面语言管线:lib/ui-locale.ts 纯函数解析 locale 与文案字典,lib/ui-locale-server.ts 在服务端读取 cookie;POST /api/ui-locale 校验 locale 与同源重定向后写入一年期 SameSite=Lax cookie 并 303 回原页;顶栏新增语言切换 pill;AppShell/PublicShell/DemoShell/Brand 与根布局改为 locale 感知,html lang 与 metadata 描述随语言变化;日期格式化改为 locale 感知的 formatDateIn/formatDateTimeIn,替换仪表盘、设置、成本页与产品总览中的硬编码 zh-CN。
lib/format.tslib/format.tsapp/settings/page.tsx证据路径命中lib/format.tslib/format.ts证据路径命中lib/product-overview.tslib/format.tslib/format.tslib/product-overview.tslib/product-overview.tslib/product-overview.tslib/product-overview.tslib/product-overview.tslib/product-overview.ts「产品总览仪表盘」更新场景 HP-10
app/page.tsxlib/product-overview.tslib/product-overview.tslib/product-overview.tslib/product-overview.tslib/product-overview.tsapp/products/[slug]/[product]/page.tsxcomponents/demo-shell.tsxapp/products/[slug]/[product]/page.tsxapp/products/[slug]/[product]/page.tsxcomponents/demo-shell.tsxlib/product-overview.tsapp/products/[slug]/[product]/page.tsxlib/product-overview.tsapp/products/[slug]/[product]/page.tsxcomponents/demo-shell.tsxapp/products/[slug]/[product]/page.tsxcomponents/app-shell.tsxapp/products/[slug]/[product]/page.tsxcomponents/demo-shell.tsxapp/products/[slug]/[product]/page.tsxapp/products/[slug]/[product]/page.tsxcomponents/demo-shell.tsxcomponents/demo-shell.tsxapp/products/[slug]/[product]/page.tsxapp/products/[slug]/[product]/page.tsxcomponents/demo-shell.tsxcomponents/demo-shell.tsxlib/ui-locale-server.ts证据路径命中lib/ui-locale.tsapp/api/ui-locale/route.tscomponents/language-switcher.tsxcomponents/language-switcher.tsxapp/api/ui-locale/route.ts证据路径命中components/language-switcher.tsxcomponents/app-shell.tsx证据路径命中components/language-switcher.tsx证据路径命中components/shell-frame.tsxapp/layout.tsx证据路径命中lib/format.tsapp/api/ui-locale/route.tslib/ui-locale.tscomponents/language-switcher.tsxcomponents/language-switcher.tsxcomponents/language-switcher.tsxapp/api/ui-locale/route.tscomponents/language-switcher.tsxapp/api/ui-locale/route.tscomponents/language-switcher.tsxapp/api/ui-locale/route.tscomponents/language-switcher.tsxcomponents/language-switcher.tsxapp/api/ui-locale/route.ts证据路径命中components/language-switcher.tsxapp/admin/costs/page.tsx证据路径命中app/page.tsx证据路径命中app/settings/page.tsx证据路径命中lib/format.ts证据路径命中lib/product-overview.tsapp/api/ui-locale/route.ts证据路径命中components/language-switcher.tsxapp/settings/page.tsx证据路径命中lib/format.tsapp/api/ui-locale/route.tsapp/layout.tsx证据路径命中components/app-shell.tsx证据路径命中lib/ui-locale-server.tsapp/admin/costs/page.tsx证据路径命中app/page.tsx证据路径命中app/settings/page.tsx证据路径命中lib/format.ts证据路径命中lib/product-overview.tsapp/layout.tsx证据路径命中components/app-shell.tsx证据路径命中lib/ui-strings.tscomponents/public-shell.tsxapp/api/ui-locale/route.ts证据路径命中components/language-switcher.tsxapp/layout.tsx证据路径命中lib/ui-strings.tsapp/page.tsx证据路径命中lib/format.tsapp/api/ui-locale/route.ts证据路径命中components/language-switcher.tsxapp/api/ui-locale/route.tsapp/layout.tsx证据路径命中lib/ui-locale-server.ts证据路径命中lib/ui-strings.ts新增 POST /api/ui-locale:校验 locale 仅限 zh-CN/en、redirectTo 必须为同源路径,写入 codelphi_locale cookie(一年期、非 HttpOnly、SameSite=Lax)并 303 重定向回原页;非法输入返回 400。
用户影响:用户可在顶栏切换界面语言,选择被记住一年并停留在当前页面。
新增 LanguageSwitcher 客户端组件:以「中文 / English」自名展示两个选项,当前语言标记 aria-pressed,点击时读取 window.location 路径 POST 到 /api/ui-locale 后 router.refresh()。
用户影响:顶栏出现语言切换 pill,点击即切换界面语言并刷新当前页。
新增 lib/ui-locale.ts(locale 类型、cookie 名、自名标签、resolveUiLocaleValue 缺省回退 zh-CN、pick/intlLocale)与 lib/ui-locale-server.ts(服务端读取 cookie),以及 lib/ui-strings.ts 双语字典(导航、壳层文案、品牌标语、侧栏说明)。
用户影响:界面语言由 cookie 决定,未设置或非法值回退中文。
AppShell、PublicShell、DemoShell 改为 async 并读取 locale,导航标签、侧栏说明、演示徽标、登录/退出等文案改由字典取值,顶栏挂载 LanguageSwitcher;Brand 接收 locale 切换标语与 aria-label。
用户影响:登录、公开与演示三种外壳的导航与顶栏文案随界面语言切换。
根布局改为 async 并读取 locale:html lang 属性随语言变化,metadata 描述按语言输出中英双语。
用户影响:页面语言标记与搜索引擎描述随界面语言切换。
新增 lib/format.ts 的 formatDateIn/formatDateTimeIn,按 locale 格式化日期;仪表盘日期 chip、设置页计费周期/宽限期/跳过记录/钱包到期/订单时间、成本观测页 run 时间与产品总览时间线及上一行为发布日期改用该函数。
用户影响:日期时间显示随界面语言变化,不再固定中文格式。
新增 lib/ui-locale.ts(纯函数 locale 解析与字典取值)、lib/ui-locale-server.ts(服务端读 cookie)、lib/ui-strings.ts(导航与外壳文案双语字典)、lib/format.ts(locale 感知日期格式化)、components/language-switcher.tsx(顶栏语言切换 pill)与 POST /api/ui-locale(校验 locale 与同源 redirectTo,写一年期 cookie 后 303 重定向)。
用户影响:用户可在顶栏一键切换界面语言,选择被记住一年;导航、品牌标语、演示提示、登录入口与页面日期按所选语言展示。
buildProductOverview 新增可选 locale 参数(默认 zh-CN),发布时间线与最近一次有行为变化发布的日期标签改用 formatDateIn 按 locale 格式化。
用户影响:界面语言为英文时,总览页发布时间线与历史发布日期以英文格式展示。
AppShell、PublicShell、DemoShell 改为 async 组件并读取界面语言 cookie,导航项改为 labelKey 经字典取值,顶栏挂载 LanguageSwitcher,Brand 接收 locale 渲染双语标语与 aria-label。
用户影响:三种外壳的导航、品牌标语、演示模式徽章与登录入口随界面语言切换,顶栏出现语言切换器。
产品页在构建总览时传入 resolveUiLocale() 结果,使简介行所在页面的日期标签按界面语言格式化。
用户影响:英文界面下产品页头部相关日期以英文格式展示。
演示外壳改为 async 并读取界面语言,演示徽章、只读说明与「使用 Chandler 登录」链接文案经字典按 locale 渲染,顶栏新增语言切换器。
用户影响:匿名演示访客看到的演示提示与登录引导随界面语言切换。
演示外壳的只读说明与登录入口文案改为按界面语言取值,写入口仍不渲染。
用户影响:只读演示页的提示文案随界面语言切换,写入口可见性不变。
DemoShell 读取界面语言并渲染双语演示徽章、侧栏只读说明与登录链接,顶栏挂载语言切换器。
用户影响:演示模式页面文案随界面语言切换,登录引导仍集中在顶栏。
POST /api/ui-locale 以 zod 校验 locale 仅限 zh-CN/en、redirectTo 必须为同源路径(拒绝 // 与绝对 URL),成功写 codelphi_locale cookie(非 HttpOnly、SameSite=Lax、Path=/、一年)并 303 重定向回原页。
用户影响:切换语言后停留在当前页面,刷新与后续访问保持所选语言;非法语言或外站跳转被拒绝。
resolveUiLocaleValue 仅将 cookie 值 en 解析为英文,其余(含缺失与未知值)回退 zh-CN;resolveUiLocale 从 next/headers 读取 cookie。
用户影响:未设置或设置异常语言的用户默认看到中文界面。
根布局改为 async,按 cookie 设置 html lang,并用 generateMetadata 输出双语站点描述。
用户影响:页面语言属性与搜索引擎/分享摘要随界面语言变化。
新增 formatDateIn/formatDateTimeIn,按 locale 用 Intl 格式化,空值与非法日期返回「—」;仪表盘、设置页与成本观测页的硬编码 zh-CN 日期改为调用该函数。
用户影响:英文界面下这些页面的日期与时间以英文格式展示,缺失日期显示「—」。
新增界面语言 cookie 管线与切换器:POST /api/ui-locale 接受 locale(zh-CN/en)与同源 redirectTo,写一年期非 HttpOnly SameSite=Lax cookie 并 303 重定向;LanguageSwitcher 以自名标签展示两种语言、点击时读取 window.location 提交并刷新;应用/公开/演示三种外壳与 Brand 改为异步 locale 感知,导航、登录、演示提示等文案取自双语字典;根布局按 cookie 设置 html lang 与双语 description。
用户影响:用户可在顶栏一键切换界面语言,刷新后导航、外壳文案、页面标题描述与日期格式随之切换;非法语言或站外重定向被拒绝。
buildProductOverview 新增可选 locale 参数(缺省 zh-CN),发布时间线与用户影响投影的日期标签改用 formatDateIn 按界面语言格式化,不再硬编码 zh-CN。
用户影响:切换界面语言后,总览页发布时间线与影响卡中的日期按所选语言显示。
演示外壳 DemoShell 改为异步 locale 感知:侧栏 DEMO MODE 说明、顶栏演示模式徽标与「使用 Chandler 登录」链接文案取自双语字典,顶栏新增 LanguageSwitcher;写入口的权限判定逻辑未变。
用户影响:演示页顶栏出现语言切换器,演示提示与登录链接随界面语言切换;匿名访客仍看不到任何写入口。
产品页在构建总览时传入 resolveUiLocale() 解析的界面语言,简介行与总览日期标签按该语言格式化;简介为空时的编辑/只读分支逻辑未变。
用户影响:产品页简介与日期展示随界面语言切换,编辑入口与空简介提示的可见性规则不变。
演示外壳顶栏新增 LanguageSwitcher,登录引导文案改为字典取值;匿名访客不渲染分析入口的判定未变。
用户影响:匿名演示访客可在顶栏切换界面语言,登录引导仍集中在顶栏。
演示外壳与产品页的 locale 解析接入后,只读演示下的分析入口渲染条件与 demo guard 拦截逻辑保持不变,仅外壳文案与日期随语言切换。
用户影响:只读演示下仍不出现分析入口,页面文案与日期随界面语言切换。
DemoShell 改为异步组件并读取界面语言,演示徽标、只读说明与登录链接文案取自字典,顶栏挂载语言切换器;demo guard 与服务端写校验边界未变。
用户影响:演示模式页面文案随界面语言切换,写操作仍被 demo guard 与服务端校验拦截。
新增 POST /api/ui-locale:zod 校验 locale 枚举与以单个 / 开头的同源 redirectTo(最长 2000 字符),失败返回 400;成功写 codelphi_locale cookie(一年、非 HttpOnly、生产环境 secure、SameSite=Lax、Path=/)并 303 重定向到目标路径。
用户影响:语言切换请求被安全校验,站外或协议相对地址被拒绝,切换后回到原页面。
lib/ui-locale.ts 定义 UiLocale、cookie 名、自名标签、resolveUiLocaleValue(仅 en 生效,其余回退 zh-CN)与 pick/intlLocale;lib/ui-locale-server.ts 从 next/headers 读取 cookie;lib/ui-strings.ts 提供导航、外壳 chrome、品牌标语与侧栏说明的双语条目。
用户影响:未设置或非法 cookie 时界面回退简体中文,两种语言下导航与外壳文案均有对应文本。
新增 lib/format.ts:formatDateIn 按 locale 用 Intl.DateTimeFormat 格式化,空值或非法日期返回「—」;formatDateTimeIn 使用 medium 日期加 short 时间。仪表盘、设置页、成本观测页与产品总览改用该函数。
用户影响:日期与时间展示随界面语言变化,缺失或非法日期统一显示「—」。
新增 lib/ui-locale.ts(纯函数、客户端安全)与 lib/ui-locale-server.ts(隔离 next/headers 读取 cookie),POST /api/ui-locale 校验 locale 枚举与同源 redirectTo 后写一年期 cookie 并 303 重定向;LanguageSwitcher 以自名标签(中文/English)在 AppShell、PublicShell、DemoShell 顶栏挂载,点击时读取 window.location 提交并刷新。
用户影响:用户可在顶栏一键切换界面语言,刷新后整页以所选语言渲染,且与分析输出语言相互独立。
AppShell、PublicShell、DemoShell 与 Brand 改为 async locale 感知组件,导航、侧栏说明、演示徽标、登录入口与品牌标语改由 lib/ui-strings 字典按 locale 取值;根布局改为 generateMetadata 并按 cookie 设置 html lang。
用户影响:外壳导航与品牌文案随界面语言切换,英文界面下显示英文导航与说明。
新增 lib/format.ts 的 formatDateIn/formatDateTimeIn,仪表盘、设置页、成本观测页与 buildProductOverview 的日期展示改为按 locale 格式化,替换硬编码 zh-CN。
用户影响:日期与时间按当前界面语言格式化,英文界面下不再出现中文日期格式。
新增 lib/ui-locale.ts(locale 类型、cookie 名、自名标签、取值回退)与 lib/ui-locale-server.ts(服务端读 cookie),新增 POST /api/ui-locale 校验 locale 枚举与同源 redirectTo 后写一年期 cookie 并 303 重定向,新增 LanguageSwitcher 客户端组件。
用户影响:用户可在顶栏一键切换界面语言,刷新后整页以所选语言渲染,偏好保留一年。
AppShell、PublicShell、DemoShell 改为 async 并读取 locale,导航与壳层文案改由 lib/ui-strings 字典取值,Brand 接收 locale 渲染双语标语;根布局改为 async 并按 cookie 输出 html lang 与双语 description。
用户影响:导航、侧栏说明、演示模式提示、登录入口与品牌标语随界面语言切换,页面 lang 属性与搜索引擎描述同步。
buildProductOverview 与 buildUserImpact 新增 locale 参数,发布时间线与上一行为发布日期标签改用 formatDateIn 按 locale 格式化,默认仍为 zh-CN。
用户影响:界面语言为英文时,总览页的发布日期以英文格式显示。
新增 lib/format.ts 的 formatDateIn/formatDateTimeIn;仪表盘、设置页与成本观测页的日期展示改为按 locale 格式化,替换硬编码 zh-CN。
用户影响:英文界面下这些页面的日期与时间以英文格式呈现,中文界面保持原样。
新增 lib/ui-locale.ts(纯函数 locale 解析与字典取值)、lib/ui-locale-server.ts(服务端读 cookie)、lib/ui-strings.ts(中英字典)、components/language-switcher.tsx(顶栏语言 pill)与 POST /api/ui-locale(校验 locale 与同源 redirectTo,写一年期 cookie 后 303 重定向)。
用户影响:用户可在顶栏一键切换界面语言,刷新后导航、品牌标语、演示提示、登录入口等外壳文案随之切换。
AppShell、PublicShell、DemoShell 改为 async 并读取 locale,导航项由固定中文 label 改为 labelKey 经字典取值;Brand 接收 locale 输出双语标语与 aria-label;根布局改为 generateMetadata 并按 cookie 设置 html lang。
用户影响:登录、公开与演示三种外壳的导航与品牌文案随界面语言切换,页面 lang 属性与站点描述同步。
新增 lib/format.ts 的 formatDateIn/formatDateTimeIn,仪表盘、设置页、成本观测页与 buildProductOverview 的日期展示改为按 locale 格式化,buildProductOverview 增加可选 locale 参数。
用户影响:日期与时间显示随界面语言变化,不再固定为中文格式。
新增界面语言(UI locale)解析与切换:POST /api/ui-locale 校验 locale(zh-CN/en)与同源 redirectTo,成功写一年期非 HttpOnly、SameSite=Lax、path=/ 的 cookie 并 303 重定向回原页;根布局按 cookie 设置 html lang 与双语 description;三个外壳顶栏挂载语言切换器。
用户影响:用户可在界面中切换界面语言,刷新后保持;界面语言与分析输出语言相互独立。
仪表盘页先解析界面语言,日期 chip 由硬编码 zh-CN 改为 formatDateIn(locale, ...) 按界面语言格式化。
用户影响:仪表盘日期显示随界面语言变化。
产品页公开演示分支与登录分支调用 buildProductOverview 时传入解析出的界面语言,概览内日期按界面语言格式化。
用户影响:产品概览中的日期显示随界面语言变化。
设置页解析界面语言,计费周期、宽限期、跳过提示、额度钱包到期与订单创建时间由硬编码 zh-CN 改为按界面语言格式化。
用户影响:设置页各日期显示随界面语言变化。
成本后台页解析界面语言,最近 run 时间列由硬编码 zh-CN 改为 formatDateTimeIn(locale, ...)。
用户影响:成本后台最近 run 时间显示随界面语言变化。
lib/ui-locale.ts 为纯客户端安全模块、lib/ui-locale-server.ts 隔离 next/headers,属内部实现分层,不单独构成外部可见行为。
用户影响:无直接外部可见影响。
新增界面语言切换器 LanguageSwitcher(客户端组件),在 AppShell、PublicShell、DemoShell 顶栏渲染两个语言按钮,点击后 POST /api/ui-locale 写 cookie 并 router.refresh() 刷新当前页。
用户影响:用户可在顶栏直接切换界面语言,切换后当前页面以新语言重新渲染。
新增 POST /api/ui-locale 路由:设置一年期 SameSite=Lax 的 locale cookie,校验同源 redirectTo,非法输入返回 400,成功返回 303 重定向。
用户影响:切换语言通过服务端 cookie 持久化一年,并在刷新后生效;非法请求被拒绝。
AppShell、PublicShell、DemoShell 由同步组件改为 async 组件,先 await resolveUiLocale() 读取 locale,再按 locale 从字典取导航、侧栏说明、顶栏回退文案与登录/登出文案;导航项由中文字面 label 改为 labelKey。
用户影响:三个外壳的导航与顶栏文案随界面语言变化,未设置时回退默认语言。
Brand 组件新增可选 locale 参数(默认 zh-CN),aria-label 与副标题文案按 locale 取字典。
用户影响:品牌区副标题与无障碍标签随界面语言变化。
新增 lib/format.ts 的 formatDateIn/formatDateTimeIn,按 locale 用 Intl.DateTimeFormat 格式化日期,空值与无效日期返回“—”。
用户影响:仪表盘、设置、成本等页面日期显示随界面语言变化,无效日期显示占位符。
lib/ui-locale.ts 为纯客户端安全模块、lib/ui-locale-server.ts 隔离 next/headers,属内部实现分层,不改变外部可见行为。
用户影响:无直接外部可见变化,仅保证客户端包不引入服务端依赖。
新增 lib/ui-locale.ts:定义 UiLocale 类型(zh-CN|en)、UI_LOCALE_COOKIE=codelphi_locale、UI_LOCALES、自名标签字典、resolveUiLocaleValue(仅 en 返回 en,其余回退 zh-CN)、pick/intlLocale 工具。
用户影响:界面语言取值与回退规则确定:非 en 的 cookie 值一律按中文渲染。
新增 lib/ui-locale-server.ts:resolveUiLocale 异步读取 next/headers cookies 中的界面语言 cookie,可注入 jar 便于测试。
用户影响:服务端组件可按 cookie 渲染对应界面语言。
新增 lib/ui-strings.ts:NAV_LABELS、COMMON_LABELS、BRAND_TAGLINE、SIDEBAR_NOTE 中英双语字典。
用户影响:导航、壳层 chrome、品牌标语与侧栏说明在两种界面语言下均有对应文案。
buildProductOverview 新增第二参数 locale(默认 zh-CN),时间线条目 dateLabel 由硬编码 zh-CN 改为 formatDateIn(locale, ...)。
用户影响:产品总览时间线日期按界面语言格式化,英文界面显示英文月份。
buildUserImpact 新增第五参数 locale(默认 zh-CN),priorBehavioralRelease 的 dateLabel 改为 formatDateIn(locale, ...),buildProductOverview 调用时透传 locale。
用户影响:用户影响卡中「最近一次有行为变化的发布」日期按界面语言格式化。
文件顶部新增 import { formatDateIn } from "./format",为内部依赖引入,无独立外部行为。
用户影响:无直接外部可见变化。
e6dc205 ↗新增分析输出语言(简体中文 / English):产品注册时可选并缺省继承工作区默认,产品设置页可切换(切换后下一次分析全量重建),工作区设置页可改新仓库默认语言;分析 run 读取产品语言并传入提取上下文。数据库新增 products.output_language、organizations.default_output_language、spec_versions.output_language 三列。
lib/analysis.tslib/analysis.tslib/ai.tslib/ai.tslib/ai.tslib/ai.tslib/analysis.tslib/ai.tslib/analysis.tslib/ai.tslib/ai.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.ts「AI 规格分析与发布变化」新增场景 EC-42
lib/ai.ts「AI 规格分析与发布变化」新增场景 EC-43
lib/analysis.ts「AI 规格分析与发布变化」新增场景 EC-44
migrations/072_output_language.sqllib/analysis.tslib/ai.tslib/ai.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.ts「AI 规格分析与发布变化」新增场景 HP-12
lib/ai.ts证据路径命中lib/analysis.ts「AI 规格分析与发布变化」新增场景 HP-13
lib/ai.ts「AI 规格分析与发布变化」新增场景 HP-14
lib/analysis.ts「AI 规格分析与发布变化」新增场景 HP-15
migrations/072_output_language.sqllib/analysis.tslib/analysis.tslib/ai.tslib/analysis.tslib/ai.tslib/analysis.tslib/analysis.tslib/ai.tslib/ai.tslib/ai.tscomponents/product-output-language-settings.tsxcomponents/product-output-language-settings.tsxcomponents/product-output-language-settings.tsxcomponents/product-output-language-settings.tsx证据路径命中components/workspace-output-language-settings.tsxcomponents/product-output-language-settings.tsxapp/api/settings/output-language-default/route.ts证据路径命中lib/product-input.tslib/product-registration.tslib/product-input.tscomponents/product-output-language-settings.tsxapp/api/settings/output-language-default/route.tscomponents/product-output-language-settings.tsxapp/api/settings/output-language-default/route.ts证据路径命中lib/product-input.tslib/product-input.tsapp/api/settings/output-language-default/route.tscomponents/product-output-language-settings.tsxapp/api/settings/output-language-default/route.tscomponents/workspace-output-language-settings.tsxapp/api/settings/output-language-default/route.tsapp/api/settings/output-language-default/route.ts证据路径命中components/workspace-output-language-settings.tsxcomponents/product-output-language-settings.tsxcomponents/product-output-language-settings.tsxcomponents/workspace-output-language-settings.tsxapp/api/settings/output-language-default/route.tslib/product-registration.tslib/analysis.tscomponents/product-output-language-settings.tsx证据路径命中lib/product-client.tsapp/products/new/page.tsx证据路径命中components/new-product-form.tsxapp/api/settings/output-language-default/route.tslib/product-registration.tslib/product-rename.tslib/analysis.tscomponents/new-product-form.tsxcomponents/product-output-language-settings.tsxapp/api/settings/output-language-default/route.tsapp/api/settings/output-language-default/route.tsapp/api/settings/output-language-default/route.tsapp/api/settings/output-language-default/route.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/product-rename.tslib/product-rename.tslib/product-rename.ts「产品改名与旧链接重定向」新增场景 HP-3
lib/product-rename.tslib/product-registration.ts「产品注册与移除」新增场景 EC-2
lib/product-registration.ts「产品注册与移除」新增场景 EC-3
lib/product-registration.ts「产品注册与移除」新增场景 EC-4
migrations/072_output_language.sqllib/product-registration.tsapp/api/products/[slug]/route.tslib/product-registration.tslib/product-registration.ts「产品注册与移除」新增场景 HP-3
lib/product-registration.ts「产品注册与移除」新增场景 HP-4
migrations/072_output_language.sqlcomponents/new-product-content.tsx「产品注册入口与凭据前置校验」新增场景 EC-2
components/new-product-content.tsxcomponents/new-product-form.tsxcomponents/new-product-content.tsx「产品注册入口与凭据前置校验」新增场景 HP-2
app/products/new/page.tsx证据路径命中components/new-product-form.tsx「产品注册入口与凭据前置校验」新增场景 HP-3
app/products/new/page.tsx证据路径命中components/new-product-content.tsxlib/product-input.tslib/product-client.tslib/product-client.ts「产品管理与成员管理客户端」新增场景 ER-3
lib/product-client.tslib/product-client.tslib/product-client.tslib/product-client.ts「产品管理与成员管理客户端」新增场景 HP-4
lib/product-client.tslib/product-details.tslib/product-details.tslib/product-details.tslib/product-details.ts「产品详情与发布变化读取」新增场景 HP-3
lib/product-details.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis-trigger.tslib/analysis-trigger.tslib/analysis-trigger.tslib/analysis-trigger.tsapp/products/[slug]/[product]/page.tsxlib/product-client.tsapp/products/[slug]/[product]/page.tsxapp/products/[slug]/[product]/page.tsxlib/ai.tslib/ai.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/ai.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/analysis.tslib/ai.tslib/ai.tslib/analysis.tslib/ai.tslib/ai.tslib/ai.tslib/analysis.tslib/analysis.tslib/ai.tslib/ai.tslib/ai.ts注册产品时写入 output_language:显式传入优先,否则继承工作区 default_output_language,两者都无时回退 zh-CN。
用户影响:新接入产品按所选或工作区默认语言生成规格与发布稿。
添加产品页读取工作区默认输出语言并传入表单;产品信息区新增「分析输出语言」下拉,默认选中继承值。
用户影响:注册时可直接选择输出语言,默认值来自工作区设置。
updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),PATCH 路由把 outputLanguage 纳入身份更新分支。
用户影响:产品设置页可单独切换输出语言,不影响名称与 slug。
新增 setOutputLanguage 客户端方法,PATCH /api/products/{slug} 提交 { outputLanguage } 并校验 status=updated。
用户影响:产品设置页保存输出语言失败时展示接口错误。
getProductDetails 的 products 查询新增 output_language AS outputLanguage 并随 product 返回。
用户影响:产品设置页可展示当前输出语言。
analyzeWithAI 上下文新增 outputLanguage 字段;runAnalysisBody 从 run.outputLanguage 传入单窗与分区提取上下文。
用户影响:分析产出的功能、场景与发布稿按产品输出语言生成。
新增产品设置页「分析输出语言」面板与工作区设置页「新仓库默认输出语言」面板,以及 PATCH/GET /api/settings/output-language-default 接口;语言枚举仅 zh-CN 与 en。
用户影响:工作区编辑者可改新仓库默认语言,产品编辑者可切换单个产品语言,只读成员看不到面板。
新增产品级 output_language 与工作区级 default_output_language 字段(migration 072),支持 zh-CN 与 en 两种取值。
用户影响:用户可为每个产品选择 AI 生成功能规格、场景与发布稿所用的语言。
注册产品时优先使用请求中的 outputLanguage,缺省继承 organizations.default_output_language,再缺省为 zh-CN,并写入 products.output_language。
用户影响:新接入产品自动按工作区默认语言生成规格,无需逐个设置。
PATCH /api/products/[slug] 接受 outputLanguage,经 updateProductIdentity 以 COALESCE 方式更新 output_language;产品设置页新增「分析输出语言」面板,保存后提示下一次分析全量重建。
用户影响:编辑者可在产品设置页切换输出语言,历史版本保持原语言。
新增 GET/PATCH /api/settings/output-language-default,编辑者可修改工作区默认输出语言,查看者可读取;设置页新增「新仓库默认输出语言」面板。
用户影响:工作区管理员可统一设定新接入产品的默认输出语言。
添加产品页读取工作区默认输出语言并传入表单,产品信息区新增「分析输出语言」下拉,默认选中工作区默认值。
用户影响:注册产品时可直接选择输出语言,默认值来自工作区设置。
loadRun 查询 products.output_language,runAnalysisBody 将其作为 outputLanguage 传入 analyzeWithAI 的提取上下文。
用户影响:分析产出的规格与发布稿按产品所选语言生成。
getProductDetails 的产品查询新增 output_language AS outputLanguage 字段。
用户影响:产品详情与设置页可读取当前输出语言。
新增产品级 output_language 与工作区 default_output_language 列(migration 072),spec_versions 逐版记录语言;注册、产品设置页与工作区设置页均可选择简体中文或 English。
用户影响:用户可决定 AI 生成的功能规格、场景与发布稿使用中文还是英文;新接入产品默认继承工作区设置,已有产品单独管理。
注册产品时读取工作区默认输出语言,按请求显式值 > 工作区默认 > zh-CN 的优先级写入 products.output_language。
用户影响:新添加的产品自动使用工作区默认输出语言,无需逐个设置。
updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),PATCH /api/products/[slug] 接受 outputLanguage 并走同一身份更新路径。
用户影响:产品设置页切换输出语言后立即保存,下一次分析按新语言生成。
添加产品页读取工作区默认输出语言并传入表单,产品信息区新增「分析输出语言」下拉选择。
用户影响:注册时即可看到并调整输出语言,默认值来自工作区设置。
新增 setOutputLanguage 客户端方法,PATCH /api/products/[slug] 提交 { outputLanguage } 并透出接口错误。
用户影响:产品设置页切换语言失败时显示接口返回的错误消息。
getProductDetails 的 products 查询新增 output_language AS outputLanguage,详情返回产品当前输出语言。
用户影响:产品设置页能回显当前输出语言选项。
analyzeWithAI 上下文新增 outputLanguage 字段,runAnalysisBody 从 run 上下文透传给单趟与分区提取调用。
用户影响:AI 提取的功能、场景与摘要按产品所选语言生成。
新增 GET/PATCH /api/settings/output-language-default 与设置页面板,工作区 editor 可改新仓库默认输出语言,viewer 只读。
用户影响:工作区管理员可统一设定新接入产品的默认输出语言,已有产品不受影响。
注册产品时读取工作区默认输出语言,按「请求显式指定 > 工作区默认 > zh-CN」写入 products.output_language。
用户影响:新接入产品默认按工作区设定的语言生成规格与发布稿,注册时也可单独指定。
updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),支持仅改输出语言的部分更新。
用户影响:产品设置页切换输出语言走同一身份更新路径生效。
新增 setOutputLanguage 客户端方法,PATCH /api/products/[slug] 提交 { outputLanguage },失败抛出接口错误。
用户影响:产品设置页可保存输出语言选择。
添加产品页读取工作区默认输出语言并传入表单,表单新增「分析输出语言」下拉,提交时随产品创建请求携带。
用户影响:注册产品时可见并调整输出语言,默认值来自工作区设置。
getProductDetails 的产品查询新增 output_language AS outputLanguage 字段返回。
用户影响:产品设置页能显示当前输出语言。
analyzeWithAI 上下文新增 outputLanguage 字段,runAnalysisBody 从 run 上下文透传给主提取与分区提取。
用户影响:AI 产出的功能、场景与发布稿按产品所选语言生成。
新增产品级输出语言设置面板与工作区默认输出语言设置面板及 PATCH/GET /api/settings/output-language-default 接口,语言枚举限定 zh-CN 与 en,编辑权限校验,切换后下一次分析全量重建。
用户影响:产品设置页可切换本产品输出语言;工作区设置页可设定新仓库默认语言,已有产品不受影响。
注册产品时读取工作区默认输出语言,请求显式指定优先,其次继承 organizations.default_output_language,均无则回退 zh-CN,并写入 products.output_language。
用户影响:新接入产品默认按工作区设定的语言生成规格,也可在注册时单独选择。
updateProductIdentity 的局部更新路径新增 output_language 列,可与改名、改 slug、公开演示开关一并提交。
用户影响:产品设置页切换输出语言走同一身份更新接口生效。
新增 setOutputLanguage 客户端方法,PATCH /api/products/[slug] 提交 outputLanguage,失败时抛出接口错误或「保存输出语言设置失败」。
用户影响:产品设置页可保存输出语言并看到失败提示。
添加产品页读取工作区默认输出语言并传入表单,产品信息区新增「分析输出语言」下拉,默认选中继承值。
用户影响:注册时可直接看到并调整输出语言。
analyzeWithAI 上下文新增 outputLanguage,runAnalysisBody 从 run 上下文透传给主提取与分区提取;loadRun 查询 products.output_language。
用户影响:AI 产出的功能、场景与发布稿按产品所选语言生成。
新增 PATCH/GET /api/settings/output-language-default 与设置页面板:editor 可改、viewer 可读,语言枚举仅 zh-CN 与 en,非法值 400,无权限 403。
用户影响:工作区可统一设定新接入产品的默认输出语言,已有产品不受影响。
产品设置页新增「分析输出语言」面板,展示两种语言与全量重建提示,保存成功后刷新页面,只读成员不渲染。
用户影响:产品级可切换输出语言,并明确告知下一次分析将全量重建。
新增产品级分析输出语言(zh-CN/en):注册表单可选、产品设置页可切换、工作区设置页可设新仓库默认语言,分析 run 读取产品 output_language 传入提取上下文。
用户影响:用户可为新产品选择输出语言,切换后下一次分析按新语言全量重建,历史版本保持原语言。
注册产品时读取工作区默认输出语言,请求未指定时继承,均无则回退 zh-CN,并写入 products.output_language。
用户影响:新接入产品默认继承工作区输出语言设置。
updateProductIdentity 的局部更新路径新增 output_language 列,PATCH 产品接口接受 outputLanguage 并走同一身份更新路径。
用户影响:产品设置页切换输出语言通过既有产品 PATCH 接口生效。
getProductDetails 查询新增 output_language AS outputLanguage 并随产品返回。
用户影响:产品详情页可读取当前输出语言用于设置面板展示。
产品 PATCH 接口新增解构 outputLanguage,并在 name/newSlug/isPublicDemo/outputLanguage 任一有值时调用 updateProductIdentity 传入 outputLanguage。
用户影响:产品编辑者可通过 PATCH 更新产品输出语言,与名称、Slug、公开演示设置走同一身份更新路径。
新增工作区默认输出语言路由:PATCH 以 editor 权限校验并更新默认语言,GET 以 viewer 权限读取默认语言;非法语言返回 400,权限不足返回 403。
用户影响:工作区成员可读取默认输出语言,editor 及以上可修改;非法语言值被拒绝。
产品设置页 settings 分支新增渲染 ProductOutputLanguageSettings,传入 slug、current(outputLanguage 为 en 时取 en,否则 zh-CN)与 canEdit(角色非 viewer)。
用户影响:产品设置页出现输出语言面板,非 viewer 成员可编辑,viewer 只读。
新建产品页读取工作区默认输出语言并作为 defaultOutputLanguage 传给 NewProductContent,后者再传给 NewProductForm。
用户影响:新建产品表单预填工作区默认输出语言,注册产品继承该默认值。
账户设置页在触发默认设置与 MCP Keys 之间新增渲染 WorkspaceOutputLanguageSettings,传入 canEdit 与当前工作区默认输出语言。
用户影响:工作区设置页出现默认输出语言设置项,非 viewer 可编辑。
产品设置页新增 ProductOutputLanguageSettings 导入语句,属内部实现,无独立外部可见行为。
用户影响:无直接外部可见影响。
新建产品页新增 getWorkspaceOutputLanguageDefault 导入,属内部实现。
用户影响:无直接外部可见影响。
账户设置页新增 WorkspaceOutputLanguageSettings 导入并合并 analysis-trigger 导入,属内部实现。
用户影响:无直接外部可见影响。
NewProductContent 新增 OutputLanguage 类型导入,属内部实现。
用户影响:无直接外部可见影响。
新建产品表单新增「分析输出语言」下拉选择,初始值取工作区默认输出语言,缺省为 zh-CN,并随创建请求提交 outputLanguage。
用户影响:注册产品时可直接选择 AI 分析输出语言,默认继承工作区设置。
产品设置页新增「分析输出语言」面板,可在 zh-CN/en 间切换并保存;保存成功提示下一次分析全量重建、历史版本保持原语言;无编辑权限时不渲染。
用户影响:有权限的成员可在产品设置中切换输出语言,切换后下一次分析按新语言全量重建。
工作区设置页新增「新仓库默认输出语言」面板,通过 PATCH /api/settings/output-language-default 保存默认语言,响应非 ok 或 status 非 updated 时报错;无编辑权限时不渲染。
用户影响:管理员可设置新接入产品继承的默认输出语言,已有产品不受影响。
analyzeWithAI 的 context 参数新增可选 outputLanguage 字段(zh-CN/en)。
用户影响:分析调用可携带产品输出语言,供后续按语言生成规格与发布稿。
新增 lib/analysis-language.ts 定义 OutputLanguage 类型、默认值、zod 校验、标签与提示文案,为内部共享常量与类型,本身不改变外部行为。
用户影响:无直接外部可见变化。
新增 getWorkspaceOutputLanguageDefault / updateWorkspaceOutputLanguageDefault,读写 organizations.default_output_language,非 en 一律回退 zh-CN。
用户影响:工作区可设置默认输出语言,新接入产品继承该默认值。
insertRegistration 在事务内先读取工作区 default_output_language,按 input.outputLanguage ?? 工作区默认 ?? zh-CN 计算后写入 products.output_language。
用户影响:新注册产品自动继承工作区默认输出语言,也可在注册时显式指定。
productInputSchema 新增可选 outputLanguage;productUpdateSchema 新增可选 outputLanguage 并纳入 refine 至少一项条件。
用户影响:注册与 PATCH 请求可携带 outputLanguage 字段,仅传 outputLanguage 的 PATCH 也合法。
新增客户端 setOutputLanguage,PATCH /api/products/${slug} 携带 { outputLanguage },status 非 updated 抛错。
用户影响:设置页可切换产品输出语言,失败时提示保存输出语言设置失败。
getProductDetails 两条 SELECT 增加 output_language AS outputLanguage,结果类型新增可选 outputLanguage。
用户影响:产品详情读取结果包含当前输出语言,供设置面板展示。
RunContext 新增可选 outputLanguage;loadRun 查询 p.output_language;单分区与多分区提取 context 均传入 outputLanguage。
用户影响:分析提取与发布稿按产品输出语言生成,缺省按 zh-CN。
ProductRenameInput 新增可选 outputLanguage 字段,updateProductIdentity 的 UPDATE 语句新增 output_language = COALESCE(?, output_language),参数为 input.outputLanguage ?? null。
用户影响:通过身份更新路径可修改产品输出语言;未传该字段时保持原值不变。
迁移 072 为 products 增加 output_language VARCHAR(8) NOT NULL DEFAULT 'zh-CN'。
用户影响:存量产品默认中文输出,新字段对外可读写。
迁移 072 为 organizations 增加 default_output_language VARCHAR(8) NOT NULL DEFAULT 'zh-CN',作为注册时继承的工作区默认值。
用户影响:工作区具备默认输出语言配置,存量工作区默认 zh-CN。
迁移 072 为 spec_versions 增加 output_language VARCHAR(8) NOT NULL DEFAULT 'zh-CN',逐版记录语言,存量版本为中文。
用户影响:规格版本携带语言标记,语言切换后首个 run 全量重建。
文件顶部新增 import type { OutputLanguage } from './analysis-language',仅为类型导入,无运行时行为。
用户影响:无外部可见影响。
d48d4d2 ↗本次发布为分析流水线引入变体治理:锚定装载时受影响功能优先装入 24k 预算;增量契约改为基于上一版锚做修订并限制每功能输出条数;提取合并与规格 diff 共用确定性变体折叠(removed↔added 措辞近似对折叠为 reason=variant,审计保留不删数据);纯测试/文档证据的场景在规格工作台打「测试佐证」标,发布稿勾选计数与影响投影降权而全量变化视图保留;另提供一次性变体合并提案脚本。
「产品总览仪表盘」更新场景 EC-1
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-10
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-11
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-12
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-13
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-14
lib/product-overview.ts「产品总览仪表盘」更新场景 EC-2
lib/product-overview.ts「产品总览仪表盘」更新场景 EC-3
lib/product-overview.ts「产品总览仪表盘」更新场景 EC-4
lib/product-overview.ts「产品总览仪表盘」更新场景 EC-5
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-6
「产品总览仪表盘」新增场景 EC-7
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-8
lib/product-overview.ts「产品总览仪表盘」新增场景 EC-9
lib/product-overview.ts「产品总览仪表盘」新增场景 ER-1
lib/product-overview.ts「产品总览仪表盘」新增场景 ER-2
「产品总览仪表盘」更新场景 HP-1
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-10
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-11
lib/product-overview.ts「产品总览仪表盘」更新场景 HP-2
lib/product-overview.ts「产品总览仪表盘」更新场景 HP-3
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-4
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-5
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-6
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-7
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-8
lib/product-overview.ts「产品总览仪表盘」新增场景 HP-9
lib/product-overview.ts「产品页头部与简介展示」更新场景 EC-1
lib/product-overview.ts「产品页头部与简介展示」更新场景 EC-2
「产品页头部与简介展示」更新场景 EC-3
「产品页头部与简介展示」更新场景 EC-4
components/scenario-card.tsx「产品页头部与简介展示」更新场景 EC-5
lib/evidence.ts「产品页头部与简介展示」更新场景 EC-6
app/globals.css证据路径命中components/scenario-card.tsx「产品页头部与简介展示」更新场景 ER-1
「产品页头部与简介展示」更新场景 HP-1
lib/product-overview.ts「产品页头部与简介展示」更新场景 HP-2
「产品页头部与简介展示」更新场景 HP-3
components/scenario-card.tsx「产品页头部与简介展示」更新场景 HP-4
components/scenario-card.tsx「产品页头部与简介展示」更新场景 HP-5
components/scenario-card.tsx「分析覆盖率回执与继承」更新场景 EC-1
lib/product-overview.ts「分析覆盖率回执与继承」更新场景 EC-2
「分析覆盖率回执与继承」更新场景 EC-3
「分析覆盖率回执与继承」新增场景 EC-4
「分析覆盖率回执与继承」新增场景 EC-5
「分析覆盖率回执与继承」新增场景 EC-6
lib/spec-versions.ts「分析覆盖率回执与继承」新增场景 EC-7
lib/spec-versions.ts「分析覆盖率回执与继承」新增场景 ER-1
「分析覆盖率回执与继承」新增场景 ER-2
「分析覆盖率回执与继承」新增场景 ER-3
lib/analysis.ts「分析覆盖率回执与继承」更新场景 HP-1
lib/product-overview.ts「分析覆盖率回执与继承」更新场景 HP-2
「分析覆盖率回执与继承」新增场景 HP-3
「分析覆盖率回执与继承」新增场景 HP-4
「分析覆盖率回执与继承」新增场景 HP-5
lib/spec-versions.ts「分析覆盖率回执与继承」新增场景 HP-6
lib/spec-versions.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.tsscripts/merge-variant-scenarios.ts「多趟提取确定性合并」更新场景 EC-1
lib/extraction-merge.ts「多趟提取确定性合并」更新场景 EC-2
lib/extraction-merge.ts「多趟提取确定性合并」更新场景 EC-3
tests/bm6-variant-fold.test.ts「多趟提取确定性合并」新增场景 EC-4
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 EC-5
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 EC-6
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 EC-7
lib/extraction-merge.ts「多趟提取确定性合并」更新场景 HP-1
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-10
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-2
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-3
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-4
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-5
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-6
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-7
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-8
lib/extraction-merge.ts「多趟提取确定性合并」新增场景 HP-9
lib/extraction-merge.ts「行为面两步提取」更新场景 EC-1
tests/ai.test.ts「行为面两步提取」新增场景 EC-2
tests/ai.test.ts「行为面两步提取」新增场景 EC-3
lib/analysis.ts「行为面两步提取」新增场景 EC-4
「行为面两步提取」新增场景 EC-5
「行为面两步提取」更新场景 ER-1
「行为面两步提取」更新场景 HP-1
tests/ai.test.ts「行为面两步提取」新增场景 HP-2
lib/analysis.ts「行为面两步提取」新增场景 HP-3
lib/analysis.ts「行为面两步提取」新增场景 HP-4
components/scenario-card.tsxcomponents/scenario-card.tsxcomponents/scenario-card.tsxcomponents/scenario-card.tsx证据路径命中lib/evidence.tslib/evidence.tscomponents/scenario-card.tsxcomponents/scenario-card.tsxcomponents/scenario-card.tsxcomponents/scenario-card.tsxlib/spec-diff.tslib/spec-diff.tslib/spec-diff.tslib/spec-diff.tslib/spec-diff.tslib/spec-diff.tslib/spec-diff.ts「规格版本落库与发布记录」更新场景 EC-1
lib/analysis.ts「规格版本落库与发布记录」新增场景 EC-10
lib/spec-versions.ts「规格版本落库与发布记录」新增场景 EC-2
lib/spec-versions.ts「规格版本落库与发布记录」新增场景 EC-3
lib/spec-versions.ts「规格版本落库与发布记录」新增场景 EC-4
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 EC-5
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 EC-6
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 EC-7
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 EC-8
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 EC-9
lib/spec-versions.ts「规格版本落库与发布记录」更新场景 ER-1
lib/analysis.ts「规格版本落库与发布记录」新增场景 ER-2
lib/analysis.ts「规格版本落库与发布记录」新增场景 ER-3
lib/spec-diff.ts「规格版本落库与发布记录」更新场景 HP-1
lib/analysis.ts「规格版本落库与发布记录」更新场景 HP-2
lib/analysis.ts「规格版本落库与发布记录」新增场景 HP-3
lib/spec-versions.ts「规格版本落库与发布记录」新增场景 HP-4
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 HP-5
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 HP-6
lib/spec-diff.ts「规格版本落库与发布记录」新增场景 HP-7
「规格版本落库与发布记录」新增场景 HP-8
lib/spec-versions.ts「规格版本落库与发布记录」新增场景 HP-9
lib/spec-versions.ts「证据清洗与提取重试」更新场景 EC-1
lib/analysis.ts「证据清洗与提取重试」更新场景 EC-2
lib/analysis.ts「证据清洗与提取重试」新增场景 EC-3
tests/ai.test.ts「证据清洗与提取重试」新增场景 EC-4
lib/evidence.ts「证据清洗与提取重试」新增场景 EC-5
lib/evidence.ts「证据清洗与提取重试」新增场景 EC-6
lib/evidence.ts「证据清洗与提取重试」新增场景 EC-7
「证据清洗与提取重试」更新场景 ER-1
lib/analysis.ts「证据清洗与提取重试」新增场景 ER-2
tests/ai.test.ts「证据清洗与提取重试」新增场景 ER-3
lib/ai.ts「证据清洗与提取重试」新增场景 ER-4
「证据清洗与提取重试」更新场景 HP-1
lib/analysis.ts「证据清洗与提取重试」新增场景 HP-2
lib/analysis.ts「证据清洗与提取重试」新增场景 HP-3
tests/ai.test.ts「证据清洗与提取重试」新增场景 HP-4
tests/ai.test.ts「证据清洗与提取重试」新增场景 HP-5
lib/evidence.ts「证据清洗与提取重试」新增场景 HP-6
lib/evidence.ts「证据清洗与提取重试」新增场景 HP-7
「证据链接与证据强度分级」更新场景 EC-1
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-10
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-11
lib/evidence.ts「证据链接与证据强度分级」更新场景 EC-2
lib/evidence.ts「证据链接与证据强度分级」更新场景 EC-3
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-4
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-5
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-6
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-7
「证据链接与证据强度分级」新增场景 EC-8
lib/evidence.ts「证据链接与证据强度分级」新增场景 EC-9
lib/evidence.ts「证据链接与证据强度分级」更新场景 HP-1
lib/evidence.ts「证据链接与证据强度分级」新增场景 HP-2
lib/evidence.ts「证据链接与证据强度分级」新增场景 HP-3
lib/evidence.ts「证据链接与证据强度分级」新增场景 HP-4
lib/evidence.ts「证据链接与证据强度分级」新增场景 HP-5
「证据链接与证据强度分级」新增场景 HP-6
lib/evidence.ts「证据链接与证据强度分级」新增场景 HP-7
「证据链接与证据强度分级」新增场景 HP-8
lib/evidence.ts「证据链接与证据强度分级」新增场景 HP-9
lib/evidence.ts「零行为变更窗口沿用」更新场景 EC-1
lib/analysis.ts「零行为变更窗口沿用」新增场景 EC-2
lib/spec-versions.ts「零行为变更窗口沿用」新增场景 EC-3
lib/analysis.ts「零行为变更窗口沿用」新增场景 EC-4
「零行为变更窗口沿用」新增场景 EC-5
lib/analysis.ts「零行为变更窗口沿用」新增场景 ER-1
lib/analysis.ts「零行为变更窗口沿用」更新场景 HP-1
lib/analysis.ts「零行为变更窗口沿用」新增场景 HP-2
lib/analysis.ts「零行为变更窗口沿用」新增场景 HP-3
lib/analysis.ts「零行为变更窗口沿用」新增场景 HP-4
lib/analysis.ts「零行为变更窗口沿用」新增场景 HP-5
lib/analysis.ts「零行为变更窗口沿用」新增场景 HP-6
lib/analysis.tslib/analysis.tslib/ai.tslib/ai.tslib/ai.ts「AI 规格分析与发布变化」新增场景 EC-2
lib/ai.ts「AI 规格分析与发布变化」新增场景 EC-3
components/scenario-card.tsx证据路径命中lib/evidence.tslib/ai.ts「AI 规格分析与发布变化」新增场景 EC-33
lib/analysis.ts证据路径命中lib/spec-versions.ts「AI 规格分析与发布变化」新增场景 EC-34
lib/ai.ts「AI 规格分析与发布变化」新增场景 EC-35
lib/analysis.ts证据路径命中lib/spec-versions.ts「AI 规格分析与发布变化」新增场景 EC-36
lib/ai.ts「AI 规格分析与发布变化」新增场景 EC-37
lib/ai.ts「AI 规格分析与发布变化」新增场景 EC-38
lib/spec-diff.ts「AI 规格分析与发布变化」新增场景 EC-39
lib/spec-diff.ts「AI 规格分析与发布变化」新增场景 EC-4
lib/evidence.ts「AI 规格分析与发布变化」新增场景 EC-40
lib/spec-diff.ts「AI 规格分析与发布变化」新增场景 EC-41
scripts/merge-variant-scenarios.ts「AI 规格分析与发布变化」新增场景 ER-1
lib/analysis.tslib/ai.tslib/ai.ts「AI 规格分析与发布变化」新增场景 ER-8
lib/spec-diff.ts「AI 规格分析与发布变化」新增场景 ER-9
scripts/merge-variant-scenarios.tslib/analysis.ts「AI 规格分析与发布变化」新增场景 HP-10
scripts/merge-variant-scenarios.ts「AI 规格分析与发布变化」新增场景 HP-11
scripts/merge-variant-scenarios.ts「AI 规格分析与发布变化」新增场景 HP-2
lib/analysis.ts「AI 规格分析与发布变化」新增场景 HP-3
lib/extraction-merge.ts「AI 规格分析与发布变化」新增场景 HP-4
app/globals.css证据路径命中components/scenario-card.tsxlib/ai.tslib/analysis.ts「AI 规格分析与发布变化」新增场景 HP-7
lib/ai.ts「AI 规格分析与发布变化」新增场景 HP-8
lib/spec-diff.ts「AI 规格分析与发布变化」新增场景 HP-9
lib/spec-versions.tslib/ai.ts「LLM 调用回执记账」新增场景 ER-2
lib/ai.ts「LLM 调用回执记账」新增场景 ER-3
lib/ai.tslib/ai.ts增量分析契约由「与全量分析相当地重新枚举」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字,确属新增才新增条目,每功能输出条数不得超过锚中该功能条数 +3;锚段新增「同一行为只允许一条场景」约束。
用户影响:增量分析产出的规格更贴近上一版措辞,减少同义改写与同行为重复建条带来的噪音。
上一版规格锚装载改为受影响功能优先:loadPreviousSpecText 接受 prioritize 参数,把受影响功能稳定排到最前,其余保持 position 序;analysis 在计算受影响集之后再装载锚并传入 affectedFeatureNames。
用户影响:24k 锚预算截断时优先保住受影响功能的旧场景,减少因无锚可沿用导致的重推导与编号分裂。
mergeChunkResults 的场景去重除行为等价外新增变体近似判定:同功能内措辞近似(同义替换、角色改写)的场景折叠并计入 scenariosDeduped,与跨版本 spec-diff 共用同一判定。
用户影响:单分区输出中同一行为从不同角色重复建条的变体不再落库并存,规格场景列表更干净。
新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径都不是实现代码(测试/文档)时返回 true;基础设施文件仍按实现代码处理。
用户影响:系统可识别「只有测试/文档佐证」的场景,用于展示标记与发布影响降权。
发布稿功能勾选计数与用户影响投影改用实现证据口径:场景级变化对侧证据全为测试/文档时不计入 changeGroups;影响文本排序让实现证据优先、测试佐证靠后;发布时间线 changeStats 保持全量口径。
用户影响:总览影响卡不再让测试断言类变化排在最前,发布稿勾选计数与时间线数字差异由「测试佐证」徽标解释。
ScenarioCard 在场景证据全部来自测试/文档时渲染「测试佐证」徽标,悬停提示说明行为以人工核实为准;新增对应样式。
用户影响:规格工作台中可一眼区分仅有测试/文档佐证的场景,提示需人工核实。
新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景做合并提案,默认 dry-run,--apply 才写入;复用 scenarioVariantSimilar 判定,跳过 manual 功能与人工核实过的场景。
用户影响:运维可对存量变体场景生成可审阅的合并提案,避免直接改动账本。
增量契约由「与全量分析相当」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字,确属新增才新增,每功能输出条数不得超过锚中该功能条数 +3;锚段新增「同一行为只允许一条场景」约束。
用户影响:增量分析不再为同一行为重复建条,规格条目更稳定、发布变化噪音更少。
loadPreviousSpecText 新增 prioritize 参数,受影响功能稳定排到锚最前,其余保持 position 序;analysis.ts 在零行为变更窗口判定之后加载锚并传入 affectedFeatureNames。
用户影响:24k 锚截断时受影响功能优先保留旧场景,减少无锚重推导导致的键分裂与重编号。
mergeChunkResults 的去重条件在 scenarioBehaviorEqual 之外增加 scenarioVariantSimilar,单分区输出内的措辞变体也在合并层收口。
用户影响:同一行为从不同角色/措辞重复建条不再落库为多条场景。
spec-diff 新增 scenarioVariantSimilar 变体判定与 reason=variant 折叠:同功能内 removed↔added 措辞近似对折叠进 folded 审计,不产生变化行;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型增加 variant。
用户影响:措辞改写不再被计为行为变化,审计面仍可见折叠明细。
新增 changeIsTestOnly:场景级变化对侧证据全为测试/文档时,从发布稿功能勾选计数(changeGroups)中排除;changeStats 与发布变化视图保持全量;影响投影中实现证据文本优先、测试佐证文本靠后补充。
用户影响:总览影响卡与发布稿勾选不再让测试断言冒充用户影响,时间线数字仍为全量口径。
新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径均非 implementation 时判为测试佐证。
用户影响:为「测试佐证」徽标与发布影响降权提供统一判定口径。
ScenarioCard 在场景标签行新增「测试佐证」徽标,悬停提示证据全部来自测试/文档、行为以人工核实为准;globals.css 新增 .test-only-badge 样式。
用户影响:编辑者可在规格工作台直接识别仅由测试/文档佐证的场景。
新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本按 scenarioVariantSimilar 生成措辞变体合并提案,默认 dry-run,--apply 才删除;跳过 manual 功能/场景与已人工核实场景。
用户影响:维护者可先审阅提案再一次性清理存量重复场景,历史 changes 的 before/after JSON 不动。
上一版规格锚装载改为在零行为变更窗口判定之后执行,并传入受影响功能名列表;loadPreviousSpecText 支持 prioritize 参数,把受影响功能稳定排到最前,其余保持 position 序。
用户影响:24k 锚预算截断时优先保留受影响功能的旧场景,模型有锚可沿用,减少无锚重推导导致的键分裂。
mergeChunkResults 在原有行为等价去重之外,新增 scenarioVariantSimilar 近似折叠,收口单分区输出内的措辞变体(同行为不同角色/措辞重复建条)。
用户影响:同一功能内措辞变体不再重复落库,规格场景清单更干净。
spec-diff 新增 scenarioVariantSimilar 判定与 variant 折叠原因:同功能内 removed↔added 且措辞近似(category 一致、数字/英文词/否定词守护、操作与结果等价或合并文本 Jaccard≥0.5)的对折叠为 reason=variant,写入 folded 审计而不产生变化行;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型扩展 variant。
用户影响:同义改写不再被计为一次行为变化,发布变化清单噪音下降,审计面仍可查看被折叠对。
lib/evidence 新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径均非实现代码(测试/文档)时返回 true。
用户影响:系统可识别「测试这样断言」而非「运行时如此执行」的场景,用于展示标注与影响降权。
场景卡片在证据全部来自测试/文档时显示「测试佐证」徽标,悬停说明行为以人工核实为准;globals.css 新增 .test-only-badge 样式。
用户影响:规格工作台中可一眼区分仅有测试/文档佐证的场景,避免误当实现事实。
总览发布稿功能勾选计数与用户影响投影排除测试佐证场景变化(changeIsTestOnly),影响文本按实现证据优先排序、测试佐证文本靠后补充;发布时间线 changeStats 保持全量口径。
用户影响:发布稿与影响卡不再让测试佐证变化冒充用户影响,时间线数字与勾选数字的差异由「测试佐证」徽标解释。
新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景做合并提案,默认 dry-run,--apply 才写入;复用 scenarioVariantSimilar 判定,跳过 manual 功能/场景与已人工核实的场景。
用户影响:运维可对存量变体场景生成可审阅的清理提案,避免误合人工维护内容。
增量分析契约由「与全量分析相当地重新枚举」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字,确属新增才新增,每功能输出条数不得超过锚中该功能条数 +3;锚段新增「同一行为只允许一条场景」约束。
用户影响:增量分析不再为同一行为重复建条,规格条目更稳定、编号漂移更少。
上一版规格锚装载改为在零行为变更窗口判定之后执行,并传入受影响功能名做定向优先:受影响功能稳定排到锚最前,保证 24k 字符预算先覆盖它们。
用户影响:被本次提交触及的功能更可能拿到旧场景锚,减少无锚重推导导致的键分裂。
mergeChunkResults 在行为等价去重之外新增变体近似折叠:单分区输出内措辞变体(同行为不同角色/措辞重复建条)按 scenarioVariantSimilar 收口,与跨版本 spec-diff 共用同一判定。
用户影响:同一行为不再以多条近似场景并存落库。
spec-diff 的 removed↔added 折叠新增 variant 通道:措辞近似但语义相同的场景对折叠为 reason=variant,与 renumber 一样进 folded 审计面、不产生变化行、不删数据;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型加入 variant。
用户影响:同义改写不再被计为行为变化,审计面仍可查看被折叠的差异。
新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径经 evidenceKind 判定均非 implementation 时返回 true。
用户影响:系统可识别「测试这样断言」而非「运行时如此执行」的场景。
总览发布稿勾选计数与影响投影改用实现证据口径:场景级变化对侧证据全为测试/文档时不计入 changeGroups;影响文本按实现证据优先排序,测试佐证文本仅在有余位时补充;changeStats 时间线保持全量口径。
用户影响:总览影响卡不再让测试佐证文本冒充最靠前的用户影响,两处数字差由「测试佐证」徽标解释。
场景卡片在证据全部来自测试/文档时显示「测试佐证」徽标,悬浮说明行为以人工核实为准;新增 .test-only-badge 样式。
用户影响:规格工作区可直接看出哪些场景只有测试/文档佐证。
新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景做合并提案,默认 dry-run,--apply 才写库;复用 scenarioVariantSimilar 判定,跳过 manual 功能/场景与人工核实过的场景。
用户影响:运维可对存量变体场景产出可审阅的清理提案,不自动改账本。
上一版规格锚的加载改为在受影响功能清单确定之后执行,并把受影响功能名传入 loadPreviousSpecText 做定向优先装入。
用户影响:24k 锚预算截断时优先保留受影响功能的旧场景,减少因无锚可沿用导致的重推导与重编号。
loadPreviousSpecText 新增 prioritize 参数:按功能名(去空白、忽略大小写)把受影响功能稳定排到最前,其余保持 position 序;无命中时顺序不变。
用户影响:锚定内容顺序随受影响功能变化,截断时优先覆盖本次改动涉及的功能。
mergeChunkResults 的去重条件在 scenarioBehaviorEqual 之外增加 scenarioVariantSimilar,单分区输出内的措辞变体在合并层即被折叠并计入 scenariosDeduped。
用户影响:同一行为从不同角色/措辞重复建条不再落库为多条场景。
发布稿功能勾选计数改用排除测试佐证场景变化后的集合;时间线 changeStats 保持全量口径;影响文本排序改为实现证据优先、测试佐证靠后补充。
用户影响:总览影响卡不再让测试佐证文本排在最前,勾选计数与时间线数字差异由「测试佐证」徽标解释。
场景卡片在证据全部来自测试/文档时显示「测试佐证」徽标,悬浮说明行为以人工核实为准;globals.css 新增 .test-only-badge 样式。
用户影响:规格工作台中可一眼区分仅有测试/文档佐证的场景。
新增 scripts/merge-variant-scenarios.ts:对指定仓库最新规格版本内的措辞变体场景产出合并提案,默认 dry-run,--apply 才执行;复用 scenarioVariantSimilar 判定,跳过 manual 功能/场景与人工核实过的场景。
用户影响:运维可先审阅提案再决定是否清理存量变体场景,避免误合。
锚定段新增「同一行为只允许一条场景」约束;增量模式契约由「与全量分析相当」改为「以上一版规格锚为基准做增量修订」,要求未变场景逐字沿用、每功能输出条数不超过锚中该功能条数 +3。
用户影响:增量分析不再为同一行为从不同角色或措辞重复建条,受影响功能的场景编号与文字更稳定,发布变化清单噪音减少。
loadPreviousSpecText 新增 prioritize 参数,受影响功能按名称稳定排到锚最前,其余保持 position 序;analysis.ts 在零行为变更窗口判定之后加载锚并传入 affectedFeatureNames。
用户影响:24k 锚预算截断时优先保留受影响功能的旧场景,减少因无锚可沿用导致的重新推导与编号漂移。
mergeChunkResults 的去重条件在 scenarioBehaviorEqual 之外增加 scenarioVariantSimilar,单分区输出内的措辞变体在合并层收口。
用户影响:同一行为以不同措辞重复出现的场景不再同时落库,规格场景列表更干净。
新增 isTestOnlyEvidence:证据数组、JSON 字符串或带 evidence 字段的场景对象中,全部证据路径均非 implementation 级时返回 true。
用户影响:系统可识别「仅由测试/文档佐证」的场景,用于展示标记与发布影响降权。
发布稿功能勾选计数与影响投影排除测试佐证场景变化,影响文本按实现证据优先排序;发布时间线 changeStats 保持全量口径。
用户影响:总览影响卡不再让测试断言类变化排在最前,发布稿勾选数与时间线数字的差异由「测试佐证」徽标解释。
ScenarioCard 在场景证据全部来自测试/文档时渲染「测试佐证」徽标,悬停提示行为以人工核实为准;globals.css 新增 .test-only-badge 样式。
用户影响:编辑者在规格工作区可直接看出哪些场景只有测试/文档佐证、未链接实现代码。
spec-diff 新增 scenarioVariantSimilar 判定(category 一致、数字签名一致、英文词交集、否定词计数一致、长字段 Jaccard 下限、操作+结果等价或合并文本 Jaccard ≥0.5),removed↔added 近似对折叠为 reason=variant 并进 folded 审计;FoldedSpecChange 与 FoldedBehaviorChangeRow 的 reason 联合类型新增 variant。
用户影响:措辞改写但语义相同的场景不再产生变化行,审计面仍可见折叠记录,数据不删除。
新增 scripts/merge-variant-scenarios.ts,对指定仓库最新规格版本内的措辞变体场景产出合并提案,默认 dry-run,--apply 才写库;跳过 manual 功能与已人工核实的场景。
用户影响:维护者可对存量变体场景生成可审阅的清理提案,人工拍板后再执行。
specAnchoringSection 新增「同一行为只允许一条场景」规则行,禁止从不同角色/视角/措辞为同一行为重复建条,与锚中既有场景语义相同的输出按沿用处理。
用户影响:AI 生成的规格中同一行为不再出现多条同义场景,场景条数与措辞更稳定。
incrementalScopeSection 对受影响功能的输出要求由「完整清单重新提取、覆盖与全量相当」改为「以上一版规格锚为基准做增量修订」:未变场景逐字沿用原编号与文字、变化行为改写对应条目、新增行为才新增条目、消失行为不再输出,每功能输出条数不得超过锚中该功能条数 +3;仅当锚中没有该功能时才允许重新枚举。
用户影响:增量分析输出的场景数量受锚约束,减少无锚重推导导致的键分裂与场景膨胀。
上一版场景全文的加载从 runAnalysisBody 早期(noBehavioralWindow 判定前)移到受影响集计算之后、多趟提取之前,并传入 affectedFeatureNames 使受影响功能优先装入锚。
用户影响:24k 锚截断时优先保留受影响功能的旧场景,增量修订有锚可用;加载失败仍降级为空锚不阻塞分析。
mergeChunkResults 的场景去重条件在 scenarioBehaviorEqual 之外新增 scenarioVariantSimilar 近似通道,单分区输出的措辞变体在合并层收口,与跨版本 spec-diff 的 variant 折叠共用同一判定。
用户影响:同一行为从不同角色重复建条的措辞变体在提取合并时被折叠,不再同义并存落库。
lib/evidence.ts 新增导出 isTestOnlyEvidence(value):证据数组非空且每项 path 经 evidenceKind 判定均非 implementation 时返回 true;入参兼容证据数组、JSON 字符串与带 evidence 字段的场景对象。
用户影响:为测试佐证场景的展示打标与发布影响降权提供统一判定口径。
ScenarioCard 计算 testOnly = isTestOnlyEvidence(scenario.evidence),为真时在 reference 之后显示「测试佐证」徽标(class test-only-badge,带 title 说明证据全部来自测试/文档、行为以人工核实为准)。
用户影响:规格工作区中证据仅来自测试/文档的场景被显式标注,读者可区分「测试这样断言」与「运行时如此执行」。
app/globals.css 新增 .test-only-badge 样式规则(inline-block、左外边距 8px、内边距 2px 7px、圆角 4px、背景 #eef2f7、文字色 #4a5d78、字号 12px、字重 600、vertical-align middle)。
用户影响:测试佐证徽标以独立配色呈现,与「可能过时」徽标视觉区分。
提交说明中的「发布计数与影响投影排除/降权测试佐证场景、完整变更视图保留全部条目」以及 scripts/merge-variant-scenarios.ts 一次性清理脚本,在本批次提供的上下文代码中无对应实现片段,无法给出可验证证据,仅留痕。
用户影响:无直接可验证的外部行为变化证据。
新增 scenarioVariantSimilar 确定性变体判定(category 一致、情境轻守护、操作/结果严守护、操作+结果等价即同行为、合并文本 contentJaccard≥0.5 兜底),并在 scenarioChanges 的 removed↔added 配对中折叠为 reason=variant。
用户影响:措辞改写但语义相同的场景不再作为新增/移除变化出现,而是进入折叠审计明细(reason=variant),变化列表更贴近真实行为差异。
FoldedSpecChange.reason 与 FoldedBehaviorChangeRow.reason 类型新增 "variant"。
用户影响:发布变化视图的折叠审计条目可展示变体折叠原因。
loadPreviousSpecText 新增 prioritize 参数,按功能名(trim+小写)把受影响功能稳定排到最前,其余保持 position 序。
用户影响:24k 字符锚预算优先覆盖受影响功能,未变行为更可能被逐字沿用,减少重推导与重编号。
新增 changeIsTestOnly:场景级变化对侧证据全为测试/文档时判定为测试佐证;总览功能分组改用过滤后的 userVisibleChanges,changeStats 仍基于全量。
用户影响:总览功能级变化计数不再包含仅测试/文档佐证的变化,与发布时间线全量统计的差异由「测试佐证」徽标解释。
buildUserImpact 先筛最新发布且 userImpact 非空的条目,再按证据是否测试佐证分组,实现证据在前、测试/文档佐证在后填充每组最多 3 条。
用户影响:影响卡优先展示实现证据的用户影响文本,测试断言类文本仅在有余位时补充。
新增 scripts/merge-variant-scenarios.ts:按仓库最新规格版本用 scenarioVariantSimilar 生成变体合并提案,跳过 manual 功能/场景与已核实场景,默认 dry-run,--apply 时删除被合并场景行。
用户影响:运维可对存量措辞变体场景产出可审阅的合并提案,默认不改数据。
8b6a0c0 ↗匿名演示访客在产品页不再看到「立即分析」「发布产品」入口及只读提示,登录引导统一收敛到顶栏;登录只读成员仍看到禁用按钮与权限说明,服务端写校验仍是最终边界。
components/overview-publish-dialog.tsx「产品发布入口」更新场景 EC-2
components/overview-publish-dialog.tsx「产品发布入口」新增场景 EC-3
components/overview-publish-dialog.tsx「产品发布入口」新增场景 EC-5
components/overview-publish-dialog.tsx「产品发布入口」更新场景 ER-1
components/overview-publish-dialog.tsx「产品发布入口」新增场景 ER-2
components/overview-publish-dialog.tsx「产品发布入口」更新场景 HP-1
components/overview-publish-dialog.tsx「产品发布入口」新增场景 HP-2
components/overview-publish-dialog.tsx「产品发布入口」新增场景 HP-3
components/overview-publish-dialog.tsx「产品页头部与演示只读入口」更新场景 EC-1
components/analyze-button.tsx证据路径命中tests/public-demo-page.test.ts「产品页头部与演示只读入口」新增场景 EC-13
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 EC-14
components/overview-publish-dialog.tsx「产品页头部与演示只读入口」更新场景 EC-2
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 EC-3
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 EC-4
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 EC-5
tests/public-demo-page.test.ts「产品页头部与演示只读入口」新增场景 EC-6
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 EC-7
tests/public-demo-page.test.ts「产品页头部与演示只读入口」新增场景 EC-8
tests/public-demo-page.test.ts「产品页头部与演示只读入口」更新场景 ER-1
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 ER-2
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 ER-3
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 ER-4
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 ER-5
components/analyze-button.tsx证据路径命中components/overview-publish-dialog.tsx「产品页头部与演示只读入口」更新场景 HP-1
components/analyze-button.tsx「产品页头部与演示只读入口」更新场景 HP-2
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 HP-3
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 HP-4
「产品页头部与演示只读入口」新增场景 HP-5
tests/public-demo-page.test.ts「产品页头部与演示只读入口」新增场景 HP-6
components/analyze-button.tsx「产品页头部与演示只读入口」新增场景 HP-7
components/analyze-button.tsx「产品页头部与简介展示」更新场景 EC-1
app/globals.css「产品页头部与简介展示」更新场景 EC-2
「产品页头部与简介展示」更新场景 EC-3
「产品页头部与简介展示」更新场景 EC-4
tests/public-demo-page.test.ts「产品页头部与简介展示」更新场景 EC-5
tests/public-demo-page.test.ts「产品页头部与简介展示」更新场景 EC-6
tests/public-demo-page.test.ts「产品页头部与简介展示」更新场景 EC-7
「产品页头部与简介展示」新增场景 ER-1
「产品页头部与简介展示」更新场景 HP-1
「产品页头部与简介展示」更新场景 HP-2
「产品页头部与简介展示」更新场景 HP-3
「产品页头部与简介展示」更新场景 HP-4
tests/public-demo-page.test.ts「产品页头部与简介展示」更新场景 HP-5
tests/public-demo-page.test.ts「产品页头部与简介展示」更新场景 HP-6
tests/public-demo-page.test.ts「产品页头部与简介展示」更新场景 HP-7
「匿名演示态分析入口」更新场景 EC-1
「匿名演示态分析入口」更新场景 EC-2
components/analyze-button.tsx「匿名演示态分析入口」新增场景 EC-3
「匿名演示态分析入口」新增场景 EC-4
components/analyze-button.tsx「匿名演示态分析入口」新增场景 EC-5
components/analyze-button.tsx「匿名演示态分析入口」新增场景 EC-8
components/analyze-button.tsx「匿名演示态分析入口」新增场景 ER-1
components/analyze-button.tsx「匿名演示态分析入口」新增场景 ER-2
「匿名演示态分析入口」更新场景 HP-1
components/analyze-button.tsx证据路径命中tests/write-access-buttons.test.ts「匿名演示态分析入口」更新场景 HP-2
components/analyze-button.tsx「匿名演示态分析入口」新增场景 HP-4
components/analyze-button.tsx「只读演示下的分析入口」更新场景 EC-1
components/analyze-button.tsx证据路径命中tests/write-access-buttons.test.ts「只读演示下的分析入口」新增场景 EC-2
「只读演示下的分析入口」新增场景 EC-3
tests/write-access-buttons.test.ts「只读演示下的分析入口」新增场景 EC-4
components/analyze-button.tsx「只读演示下的分析入口」新增场景 EC-5
tests/public-demo-page.test.ts「只读演示下的分析入口」新增场景 EC-6
tests/public-demo-page.test.ts「只读演示下的分析入口」新增场景 EC-7
tests/public-demo-page.test.ts「只读演示下的分析入口」新增场景 ER-1
components/analyze-button.tsx「只读演示下的分析入口」新增场景 ER-2
「只读演示下的分析入口」更新场景 HP-1
components/analyze-button.tsx「只读演示下的分析入口」更新场景 HP-2
components/analyze-button.tsx「只读演示下的分析入口」新增场景 HP-3
components/analyze-button.tsx「只读演示下的分析入口」新增场景 HP-4
components/analyze-button.tsx「只读演示下的分析入口」新增场景 HP-5
tests/public-demo-page.test.ts「只读演示下的分析入口」新增场景 HP-6
「演示模式分析入口」更新场景 EC-1
components/analyze-button.tsx「演示模式分析入口」新增场景 EC-10
「演示模式分析入口」新增场景 EC-2
components/overview-publish-dialog.tsx「演示模式分析入口」新增场景 EC-4
components/analyze-button.tsx「演示模式分析入口」新增场景 EC-5
components/analyze-button.tsx「演示模式分析入口」新增场景 EC-6
tests/write-access-buttons.test.ts「演示模式分析入口」新增场景 EC-7
tests/write-access-buttons.test.ts「演示模式分析入口」新增场景 EC-8
tests/write-access-buttons.test.ts「演示模式分析入口」新增场景 EC-9
「演示模式分析入口」新增场景 ER-1
components/analyze-button.tsx「演示模式分析入口」更新场景 HP-1
「演示模式分析入口」新增场景 HP-2
「演示模式分析入口」新增场景 HP-3
components/analyze-button.tsx「演示模式分析入口」新增场景 HP-4
tests/public-demo-page.test.ts「演示模式分析入口」新增场景 HP-5
tests/write-access-buttons.test.ts「演示模式分析入口」新增场景 HP-6
tests/write-access-buttons.test.ts「演示模式分析入口」新增场景 HP-7
writeAccess 为 demo 时 AnalyzeButton 直接返回 null,不再渲染「只读演示」提示与「登录后可分析」链接。
用户影响:匿名演示访客在产品页看不到分析入口与只读提示,需通过顶栏「使用 Chandler 登录」进入登录。
writeAccess 为 demo 时 OverviewPublishButton 直接返回 null,不再渲染「登录后可发布」链接。
用户影响:匿名演示访客在总览页看不到发布产品入口,登录引导集中在顶栏。
移除 .analyze-control.demo-gate 样式规则,演示态不再有横向排列的登录引导控件。
用户影响:演示页不再出现该登录引导按钮样式。
测试改为断言 demo 态渲染空字符串,并断言演示页不含「登录后可分析」。
用户影响:无直接用户可见变化,仅固化新行为。
writeAccess 为 demo 时 AnalyzeButton 直接返回 null,不再渲染只读提示与「登录后可分析」链接。
用户影响:匿名访客在产品页看不到分析入口与只读提示,登录引导集中在顶栏。
移除 .analyze-control.demo-gate 样式,该样式仅服务于已删除的 demo 登录引导布局。
用户影响:无直接可见影响,仅清理不再使用的样式。
移除 .analyze-control.demo-gate 样式,demo 态不再有横向排列的登录引导控件。
用户影响:演示页不再出现该登录引导控件样式。
测试改为断言 demo 态渲染空字符串、页面不含「登录后可分析」。
用户影响:无用户可见变化,仅测试口径更新。
移除 .analyze-control.demo-gate 样式规则,demo 态不再有横向排列的登录引导控件。
用户影响:演示页不再出现该登录引导控件及其布局样式。
测试改为断言 demo 态渲染空字符串,公开演示页测试断言不再出现「登录后可分析」。
用户影响:无用户可见变化,仅测试口径同步。
AnalyzeButton 在 writeAccess 为 demo 时由渲染只读提示与「登录后可分析」链接改为直接返回 null;OverviewPublishButton 在 demo 时由渲染「登录后可发布」链接改为返回 null;同时删除 .analyze-control.demo-gate 样式规则。
用户影响:匿名 demo 访客在产品页不再看到分析按钮、发布按钮、只读提示与登录 CTA,登录引导仅保留在顶栏;登录只读成员仍看到禁用按钮与权限说明。
组件注释更新(analyze-button.tsx 第 14-17 行、overview-publish-dialog.tsx 第 16-20 行)仅调整说明文字,不改变运行时行为。
用户影响:无外部可见影响。
24135a7 ↗移除产品标题下的通用来源说明,产品简介改为全文展示并去掉截断与展开按钮;匿名演示页把只读提示移到登录按钮前并改为弱化小字,使头部行对齐。
「产品简介编辑」更新场景 EC-1
components/product-description-line.tsx「产品简介编辑」更新场景 EC-2
components/product-description-line.tsx「产品简介编辑」新增场景 EC-3
components/product-description-line.tsx「产品简介编辑」新增场景 EC-4
components/product-description-line.tsx「产品简介编辑」更新场景 ER-1
「产品简介编辑」更新场景 HP-1
components/product-description-line.tsx「产品简介编辑」新增场景 HP-2
「产品简介编辑」新增场景 HP-3
components/product-description-line.tsxcomponents/analyze-button.tsxapp/products/[slug]/[product]/page.tsxcomponents/analyze-button.tsxapp/products/[slug]/[product]/page.tsx证据路径命中components/analyze-button.tsxapp/globals.css证据路径命中components/analyze-button.tsxcomponents/product-description-line.tsxcomponents/product-description-line.tsxcomponents/product-description-line.tsxapp/products/[slug]/[product]/page.tsxcomponents/product-description-line.tsxcomponents/product-description-line.tsxapp/globals.css证据路径命中app/products/[slug]/[product]/page.tsxcomponents/product-description-line.tsxapp/products/[slug]/[product]/page.tsxcomponents/product-description-line.tsxcomponents/product-description-line.tsxcomponents/product-description-line.tsxapp/products/[slug]/[product]/page.tsxcomponents/product-description-line.tsxapp/products/[slug]/[product]/page.tsxcomponents/product-description-line.tsxapp/products/[slug]/[product]/page.tsx证据路径命中components/product-description-line.tsxapp/globals.css证据路径命中components/product-description-line.tsxapp/globals.css证据路径命中components/product-description-line.tsxapp/products/[slug]/[product]/page.tsx证据路径命中components/product-description-line.tsxapp/globals.css证据路径命中components/product-description-line.tsxapp/products/[slug]/[product]/page.tsx证据路径命中components/product-description-line.tsxcomponents/product-description-line.tsxcomponents/product-description-line.tsxapp/globals.css证据路径命中components/product-description-line.tsxcomponents/analyze-button.tsxcomponents/analyze-button.tsxapp/globals.cssapp/globals.css证据路径命中components/analyze-button.tsxapp/globals.css证据路径命中components/analyze-button.tsxcomponents/analyze-button.tsxapp/globals.css证据路径命中components/analyze-button.tsxcomponents/analyze-button.tsxapp/globals.cssapp/globals.css证据路径命中components/analyze-button.tsx产品简介行不再按长度截断,也不再提供「展开全文/收起」按钮,始终展示全文;编辑入口 ✎ 仍仅对可编辑者显示。
用户影响:用户无需点击展开即可读到完整产品简介,头部更简洁。
删除产品标题下方的通用来源说明段落(「CoDelphi 根据此仓库的持续分析形成功能规格…」)及其样式。
用户影响:产品页头部不再显示该通用说明文案。
匿名演示页的分析入口改为同一行内先显示只读提示、再显示「登录后可分析」按钮,提示使用弱化小字样式。
用户影响:演示访客在登录按钮前直接看到只读原因,头部操作行对齐更整齐。
产品页头部不再渲染通用来源说明段落;产品简介不再按长度截断,也不再提供「展开全文/收起」开关,始终全文展示。
用户影响:访客与成员在产品页看到完整简介,无需点击展开;标题下少一段通用说明文字。
只读演示态下,只读提示文案移到「登录后可分析」按钮之前,容器改为行内排列,提示使用弱化小字样式。
用户影响:匿名访客先看到只读说明再看到登录按钮,头部行对齐更整齐。
删除产品标题下的通用来源说明段落;产品简介不再两行截断,去掉「展开全文/收起」按钮,始终全文展示;编辑入口仅在可编辑时显示。
用户影响:访客与成员在产品页可直接看到完整简介,不再需要点击展开;标题下方不再出现统一的来源说明文案。
demo(匿名)访问时,只读提示文案改为排在「登录后可分析」按钮之前,容器改为行内换行布局,提示使用弱化小字样式。
用户影响:匿名访客在产品页看到登录按钮与只读说明同行排列,说明文字更弱化,头部更整齐。
产品标题下不再渲染通用来源说明段落;产品简介去掉两行截断与「展开全文/收起」切换,始终全文展示;编辑入口仅在可编辑时显示。
用户影响:访客与成员在产品页可直接读到完整简介,头部更简洁;长简介不再需要点击展开。
匿名演示访问时,只读提示改为行内小字并排在「登录后可分析」按钮之前,容器改为横向排列可换行。
用户影响:演示页头部操作行对齐更整齐,登录引导与只读说明同排展示。
产品页头部不再渲染「CoDelphi 根据此仓库的持续分析形成功能规格、行为变化与回归建议;结论附源码证据,采纳前经人工核实」通用来源说明,并删除对应样式。
用户影响:产品页标题下方更简洁,不再出现统一的来源与信任说明文案。
产品简介不再按 90 字截断为两行,也不再提供「展开全文/收起」按钮,始终全文展示;编辑入口仅在可编辑时显示。
用户影响:长简介直接完整可见,无需点击展开。
匿名演示(demo)模式下,只读提示文案移到「登录后可分析」按钮之前,容器改为横向排列,提示使用 readonly-hint 弱化小字样式。
用户影响:演示页头部操作行对齐更整齐,提示与登录入口并排展示。
产品页头部不再渲染「CoDelphi 根据此仓库的持续分析形成功能规格、行为变化与回归建议;结论附源码证据,采纳前经人工核实」通用来源说明;产品简介不再按 90 字截断为两行,也不再提供「展开全文/收起」按钮,始终全文展示。
用户影响:访客与成员在产品页看到更简洁的标题区,简介内容一次看全,无需点击展开。
writeAccess 为 demo 时,只读提示文案移到「登录后可分析」按钮之前,容器改为 demo-gate 行内布局,提示使用 readonly-hint 弱化小字样式。
用户影响:匿名访客在演示产品页先看到只读说明再看到登录按钮,头部操作区排列更整齐。
产品页标题区不再渲染 p.product-source-note 通用来源说明段落,标题区仅保留 eyebrow、h1 与简介行。
用户影响:外部观察者看到的产品页头部少了一段通用来源/信任说明文案。
产品简介行移除两行截断与展开/收起逻辑:不再计算长度阈值、不再附加 clamp 类与 title,直接全文展示;编辑入口仍仅编辑者可见。
用户影响:长简介不再被截断为两行,也不再出现「展开全文/收起」按钮,读者直接看到完整简介。
匿名演示(writeAccess=demo)下分析入口改为横向排列容器,只读提示以弱化小字样式内联显示在「登录后可分析」登录按钮之前。
用户影响:匿名访客在产品页看到只读提示位于登录按钮左侧/前方,头部行对齐更整齐;登录入口与提示文案内容不变。
CSS 中 .inline-message 定义从 .analyze-control 行拆分到 .readonly-hint 同一行,样式声明本身未变,属内部样式组织调整。
用户影响:无外部可见变化。
1d56805 ↗本窗口无实现级行为变更(纯文档/注释/格式提交),规格原样沿用上一版,零行为变化。
本次分析未发现规格行为变化,无需全量回归;建议做瘦身回归——按近期风险抽查核心路径与既有冒烟用例即可。
8ad6fac ↗本窗口无实现级行为变更(纯文档/注释/格式提交),规格原样沿用上一版,零行为变化。
本次分析未发现规格行为变化,无需全量回归;建议做瘦身回归——按近期风险抽查核心路径与既有冒烟用例即可。
9a21af3 ↗MCP initialize 响应新增 instructions 字段,随连接下发计划期反查、push 后对账与反馈上报的工作流约定,并同步改写相关工具描述;/mcp 连接指南新增可复制的用户级常驻指令段(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),仓库级 AGENTS.md 降为可选;新增 CopyBlock 客户端组件为指南代码块提供复制按钮。
lib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 ER-11
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 ER-12
lib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-27
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-28
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-29
lib/mcp/server.tslib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-30
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-31
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-32
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-33
lib/mcp/server.ts「MCP key 管理与只读工具面」新增场景 HP-34
lib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.tslib/mcp/server.ts「MCP 连接指南公开页」更新场景 EC-1
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-18
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-19
app/mcp/page.tsx「MCP 连接指南公开页」更新场景 EC-2
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-20
app/mcp/page.tsx证据路径命中lib/mcp/server.ts「MCP 连接指南公开页」新增场景 EC-21
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-22
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-23
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-24
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-25
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 EC-26
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」更新场景 EC-3
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 ER-1
components/copy-block.tsx「MCP 连接指南公开页」更新场景 HP-1
app/mcp/page.tsx「MCP 连接指南公开页」更新场景 HP-2
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-27
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-28
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-29
app/mcp/page.tsx「MCP 连接指南公开页」更新场景 HP-3
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-30
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-31
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-32
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-33
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-34
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-35
app/mcp/page.tsx证据路径命中components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-36
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-37
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-38
components/copy-block.tsx「MCP 连接指南公开页」新增场景 HP-39
app/mcp/page.tsx「MCP 连接指南公开页」更新场景 HP-4
app/mcp/page.tsx「MCP 连接指南公开页」新增场景 HP-40
app/mcp/page.tsx证据路径命中components/copy-block.tsxcomponents/copy-block.tsxcomponents/copy-block.tsxinitialize 响应新增 instructions 字段,内容为 MCP_WORKFLOW_INSTRUCTIONS:计划期用 list_projects 匹配 slug 并 lookup_by_files 反查爆炸半径、理解既有行为用 search_scenarios、push 后用 list_releases/get_release 对账、发现不符用 send_feedback 上报。
用户影响:零配置接入的 coding agent 无需额外指令文件即可获得工作流触发时机。
工具描述补充时机说明:list_projects 提示先用 git remote 的 owner/name 匹配取 slug;search_scenarios 提示理解既有行为优先用它;lookup_by_files 标注做计划或改文件前必查;list_releases 标注 per-push 一条、docs-only 也有零变化条目并提示用本次 sha 找发布;get_release 标注 push 后对账;send_feedback 要求带场景、证据、代码实际行为三要素。
用户影响:agent 在工具列表中即可看到各工具的调用时机,减少误用与漏用。
指南第五节新增用户级常驻指令段 WORKFLOW_AGENTS_SNIPPET,以 CopyBlock 展示,可一键复制贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md;段内自带门控,未连接 codelphi MCP 或 remote 匹配不到时自动跳过。
用户影响:用户一次粘贴即可让所有仓库的 agent 自觉执行账本约定,无需逐仓库配置。
通用 mcpServers JSON 由静态 pre 块改为 CopyBlock 组件,带「复制」按钮;仓库级 AGENTS.md 从「建议写进」降为「可选加强,非必需」,并说明已连接 agent 会随连接收到相同的 MCP instructions。
用户影响:配置 JSON 可直接复制,接入步骤更少出错;团队共享指令文件变为可选。
新增客户端组件 CopyBlock:标题行 + 复制按钮 + pre/code,点击后写入剪贴板并把按钮文案切换为「已复制」。
用户影响:指南页的配置与指令段可一键复制。
initialize 响应新增 instructions 字段,下发工作流约定(计划期 lookup_by_files 反查、push 后 get_release 对账、send_feedback 上报),零配置连接也自带触发时机。
用户影响:连接 MCP 的 coding agent 无需额外配置即可收到工作流约定,按约定在计划期反查爆炸半径、push 后核对行为变化。
list_projects、search_scenarios、lookup_by_files、list_releases、get_release、send_feedback 的工具描述补充使用时机(slug 匹配、计划前必查、push 后对账、反馈三要素)。
用户影响:agent 从工具描述即可判断何时调用,减少漏查与错序调用。
连接指南改为推荐把门控工作流片段贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),一次覆盖所有仓库;仓库级 AGENTS.md 降为可选团队共享,并说明已连接 agent 会随连接收到相同约定。
用户影响:用户按新指引配置一次即可在所有仓库生效,未接入的项目因门控自动跳过。
新增 CopyBlock 客户端组件,为指南中的通用 mcpServers JSON 与用户级指令片段提供标题行、复制按钮与代码块,复制后按钮显示「已复制」。
用户影响:用户可一键复制连接配置与指令片段,无需手动选中文本。
MCP initialize 响应新增 instructions 字段,内容为工作流约定(计划前 lookup_by_files 反查爆炸半径、push 后 list_releases/get_release 对账、send_feedback 上报),并同步在 list_projects、search_scenarios、lookup_by_files、list_releases、get_release、send_feedback 的工具描述中写明使用时机。
用户影响:零配置接入的 coding agent 连接后即收到工作流触发约定,无需额外配置指令文件也能按约定在计划前反查、push 后对账。
连接指南改为推荐把门控生效的用户级常驻指令段贴进 ~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md(一次配置所有仓库生效),仓库根目录 AGENTS.md 降为可选的团队共享加强;配置 JSON 与指令段改用新增的 CopyBlock 组件渲染,带复制按钮与「已复制」反馈。
用户影响:用户可一键复制连接配置与常驻指令段,并按推荐路径做一次用户级配置即可在所有仓库生效。
initialize 响应新增 instructions 字段,下发计划期 lookup_by_files 反查、push 后 get_release 对账、send_feedback 上报等工作流约定;list_projects、search_scenarios、lookup_by_files、list_releases、get_release、send_feedback 的工具描述补充触发时机。
用户影响:零配置连接的 coding agent 随连接即获得工作流触发时机,无需额外配置指令文件。
连接指南改为推荐把门控生效的工作流指令段贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),仓库级 AGENTS.md 降为可选团队共享;通用 mcpServers JSON 与指令段均改为带复制按钮的 CopyBlock 组件。
用户影响:用户一次粘贴即可对所有仓库生效,并可在页面上直接复制配置与指令段。
新增 CopyBlock 客户端组件:标题行 + 复制按钮 + pre/code,点击后写入剪贴板并把按钮文案切换为「已复制」。
用户影响:指南页的配置与指令段可一键复制,避免手动选中出错。
initialize 响应新增 instructions 字段,内容为 MCP_WORKFLOW_INSTRUCTIONS:计划前用 list_projects 匹配 slug 并 lookup_by_files 反查爆炸半径、push 后用 list_releases/get_release 对账、发现不符用 send_feedback 上报。
用户影响:零配置连接的 coding agent 也能收到工作流触发时机,无需额外配置文件。
指南由「建议写进仓库 AGENTS.md」改为推荐贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),提供带门控的常驻指令段;仓库级 AGENTS.md 降为可选团队共享,并说明已连接 agent 会随连接收到相同约定。
用户影响:用户一次粘贴即可对所有仓库生效,未接入的项目因门控自动跳过。
新增 CopyBlock 客户端组件,为通用 mcpServers JSON 与用户级指令段提供标题行、复制按钮与代码块,复制后按钮文案变为「已复制」。
用户影响:指南中的配置与指令段可一键复制,减少手工选中出错。
MCP initialize 响应新增 instructions 字段,内容为工作流约定(计划期用 list_projects 匹配 slug 并 lookup_by_files 反查爆炸半径、理解既有行为用 search_scenarios、push 后用 list_releases/get_release 对账、发现不符用 send_feedback 上报)。
用户影响:零配置连接的 coding agent 无需额外指令文件即可获得工作流触发时机。
连接指南改为推荐把工作流约定贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md),提供带门控的常驻指令段;仓库根 AGENTS.md 降为可选的团队共享加强,并说明已连接 agent 会随连接收到相同约定。
用户影响:用户一次粘贴即可对所有仓库生效,未接入的项目因门控自动跳过。
新增 CopyBlock 客户端组件,为指南中的通用 mcpServers JSON 与用户级指令段提供标题行、复制按钮与「已复制」反馈。
用户影响:用户可一键复制连接配置与指令片段,无需手动选中文本。
新增客户端组件 CopyBlock:接收 label 与 text,渲染标题行(label + 复制按钮)与 pre/code 文本;点击按钮调用 navigator.clipboard.writeText 复制文本,按钮文案在「复制」与「已复制」间切换。
用户影响:访问 /mcp 的用户可一键复制配置 JSON 与指令段,无需手动选中文本。
「二、写入你的 coding agent」小节的通用 mcpServers JSON 展示由手写 div.mcp-guide-config + pre.mcp-guide-code 改为 CopyBlock 组件(label=通用 mcpServers JSON,text=configJson)。
用户影响:该配置块外观保持 mcp-guide 样式,并新增复制按钮。
「五、给 agent 的工作流约定」小节由建议贴进仓库 AGENTS.md 改为:推荐贴进用户级指令文件(~/.zcode/AGENTS.md 或 ~/.claude/CLAUDE.md,每人一次、所有仓库生效、段内自带门控),并提供 CopyBlock 展示 WORKFLOW_AGENTS_SNIPPET;同时说明团队可选贴进仓库根目录 AGENTS.md,已连接 agent 还会随连接收到相同约定(MCP instructions)。
用户影响:用户按指南配置一次即可对所有仓库生效;仓库级 AGENTS.md 变为可选加强项。
新增导出常量 MCP_WORKFLOW_INSTRUCTIONS(四条编号工作流约定拼接文本),并在 handleMcpRpc 的 initialize 响应中新增 instructions 字段返回该常量。
用户影响:MCP 客户端在 initialize 时即可获得工作流约定并注入 agent 上下文,零配置连接也具备触发时机。
多个工具描述更新:list_projects 追加按 git remote owner/name 匹配产品取 slug;search_scenarios 追加理解既有行为优先使用;lookup_by_files 改为「做计划或改文件前必查」开头;list_releases 追加 per-push 一条、docs-only 零变化条目与 push 后用 sha 找发布;get_release 追加 push 后对账;send_feedback 改为带三要素上报。
用户影响:tools/list 返回的工具描述变化,agent 可据此在正确时机调用工具。
app/mcp/page.tsx 新增 CopyBlock 导入与 WORKFLOW_AGENTS_SNIPPET 常量定义,属页面内部实现,外部可见效果已由上述场景覆盖。
用户影响:无独立外部影响。
场景表述仅措辞差异(行为等价,未计入行为变化)
45f2727 ↗本窗口无实现级行为变更(纯文档/注释/格式提交),规格原样沿用上一版,零行为变化。
本次分析未发现规格行为变化,无需全量回归;建议做瘦身回归——按近期风险抽查核心路径与既有冒烟用例即可。