白标签审计是我们在发布前运行的检查清单,以确认将安装重命名为 Acme Assist 的买家在每个面向客户的表面上看到 Acme Assist —
永远不会有一个陌生的 "互客鱼" 偷偷溜进来。
本页是审计模板;它存在于文档中,因此任何未来的工程师都可以重新运行它并就地更新相同的表面库存。
测试方法
- 在
/settings/branding 中设置 site_title = "Acme Assist",将标题徽标 + favicon 交换为虚拟艺术,将页脚品牌标签设置为 "Acme",并在付费计划上打开删除 "Powered by"。
- 遍历下面的表面,营销/小部件行注销登录,仪表板/设置行登录(作为客户 + 作为超级管理员)。
- 在途中 grep 代码库中的硬编码文字:
grep -rn "hukeyu\|hukeyu\.ai\|@hukeyu\.com" \
--include="*.tsx" --include="*.ts" --include="*.blade.php" --include="*.php" \
--exclude-dir=tests --exclude-dir=vendor --exclude-dir=node_modules \
resources app routes
按表面过滤结果(resources/views/documentation/ 中的任何内容都允许命名源产品;面向用户的表面不允许)。
表面库存(上次运行:2026-05-09,v1.1.0)
认证 (Fortify)
| 表面 | 状态 | 说明 |
| 登录 / 注册 / 忘记密码卡片 |
✅ 通过 |
auth-simple-layout.tsx 读取
branding.site_title;仅当安装没有
设置品牌时回退到 '互客鱼'。
标题栏、品牌标识和文案都遵循重新品牌化。
|
| 电子邮件验证 + 密码重置邮件 |
✅ 通过 |
邮件模板使用 config('branding.site_title')
通过 AppBranding::siteTitle() — Fortify 的
标准 Laravel mailable 在 AppServiceProvider
中被覆盖以使用白标签视图。
|
仪表板外壳
| 表面 | 状态 | 说明 |
| 侧边栏品牌标识 + 工具提示 |
✅ 通过 |
useBranding().site_title 驱动两者。 |
| 侧边栏“几步设置 X” |
✅ v1.1.0 中修复
|
硬编码为“Set up hukeyu”。现在读取
branding.site_title。
|
| 面包屑 / 页面标题 |
✅ 通过 |
由 config('app.name') +
branding.site_title 通过 Inertia 共享驱动。
|
| 工作区下拉菜单 / 模拟横幅 |
✅ 通过 |
无品牌字符串 — 只有用户 / 工作区标识符。 |
营销站点
| 表面 | 状态 | 说明 |
首页 (/) — hero / 聊天预览 / 页脚 |
✅ 通过 |
从 landingContent +
useBranding() 驱动每个面向品牌的字符串。
发货的默认值确实说“互客鱼” — 但那些是管理员
通过设置 → 营销编辑的 JSON 内容。
|
| 定价 / 工作原理 / 集成 / 隐私 / 条款 |
✅ 通过 |
全部 Inertia 渲染。marketing-shell.tsx
应用重新品牌化。Blade
resources/views/marketing/_layout.blade.php
文件是死代码(不再路由)。
|
公共 /changelog |
✅ 通过 |
ChangelogController::show 共享
品牌化的 site_title;条目正文是管理员撰写的,所以
“互客鱼”仅在管理员输入时出现。
|
| 营销页脚“© 互客鱼...” |
✅ 通过 |
由 landingContent.footer.copyright 驱动;
可从设置 → 营销编辑。
|
小部件(访客表面)
| 表面 | 状态 | 说明 |
| “Powered by ...”页脚链接 |
✅ 通过 |
服务器解析 branding.label 来自
AppBranding::shared()。在剥离互客鱼归因的
付费计划上完全隐藏。
|
| Demo pill(“Live demo ·”) |
✅ v1.1.0 中修复 |
原来是“Live demo · ask anything about 互客鱼”。现在
“Live demo · ask the sandbox agent anything” — 通用
因此任何白标签安装都可以保持相同的小部件包。
|
| 启动器标签 / 聊天标题 / 智能体名称 |
✅ 通过 |
每智能体 theme.launcher_label +
persona.name。买家控制。
|
window.hukeyu.mount() 全局 |
⚪ 接受 |
协议问题 — 嵌入片段已经基于此名称。
重命名会破坏每个现有买家的安装。
|
出站邮件
| 表面 | 状态 | 说明 |
捕获潜在客户通知 (NewLeadCaptured) |
✅ 通过 |
主题 + 正文使用 AppBranding::siteTitle()
+ 白标签潜在客户捕获模板。
使用设置 → 系统 → 邮件上的新“发送测试潜在客户邮件”按钮测试。
|
| Stripe 收据 (cashier) |
✅ 通过 |
白标签级联应用 —
cashier.invoices.from_address +
from_name 从 AppSetting 解析。
|
| PayPal / Razorpay 收据 |
✅ 通过 |
通知模板从 AppBranding::siteTitle() 提取。
在重命名安装上往返测试。
|
| Paddle / Iyzico / PayU 收据 |
⏸ 推迟 |
网关集成尚未发货(卡 #12、#13、#14)。
一旦网关代码落地,重新运行此审计行,以便电子邮件模板
继承相同的白标签级联。
|
文档页面
| 表面 | 状态 | 说明 |
/documentation/* Blade 页面 |
⚪ 接受 |
文档按名称描述源代码库。
运行白标签安装的买家可以直接编辑 Blade 文件
以替换他们自己的品牌 — 我们不会自动重新品牌化文档,
因为项目名称(“hukeyu”)是买家许可的源身份的一部分。
|
总结
- v1.1.0 中修复了 2 个泄漏 — 侧边栏入职文本 + 小部件 DEMO pill。
- 今天客户表面上有 0 个泄漏打开。
- 3 个推迟的行 — Paddle / Iyzico / PayU 电子邮件模板,阻塞在网关本身落地。
-
1 个按设计接受 —
window.hukeyu.mount()
全局,作为协议标识符保留。记录在
嵌入小部件下。
在每次触及出站邮件、营销表面、小部件包或 Fortify 认证流的发布时重新运行此审计。
顶部的 grep 单行使它成为 5 分钟的工作。