Skip to content

feat!: 品牌改名 Claude Code Hub -> CC Hub,补充 Anthropic 商标免责声明 - #1361

Merged
ding113 merged 13 commits into
devfrom
rebrand-cc-hub
Jul 30, 2026
Merged

feat!: 品牌改名 Claude Code Hub -> CC Hub,补充 Anthropic 商标免责声明#1361
ding113 merged 13 commits into
devfrom
rebrand-cc-hub

Conversation

@ding113

@ding113 ding113 commented Jul 25, 2026

Copy link
Copy Markdown
Owner

背景

为尊重 Anthropic 的商标权利、避免名称侵权与商业误解,将用户可见的品牌名Claude Code Hub 改为 CC Hub,并在登录页页脚与 README 末尾补充商标免责声明。

改动范围

  • 显示常量DEFAULT_SITE_TITLE 改为 CC Hubtransformers.ts / system-settings-cache.ts / layout-site-metadata.ts / config-snapshot.ts 四处硬编码 fallback 收敛到该常量
  • 数据库:新增 drizzle/0114_silent_starhawk.sql,改列默认值 + 条件回填(只更新仍等于旧默认值的行,用户自定义标题不受影响)
  • i18n:5 语言 20 条文案改名;新增 auth.brand.disclaimer
  • UI:全局 footer 版权行;登录页页脚新增免责声明小字
  • 登录表单:删除 sk-xxxxxxxx 占位符(易被误认为要填 Anthropic 官方 key),连同只服务于它的整个 auth.placeholders
  • OpenAPI / 日志 / 文档 / 部署脚本:标题、横幅、提示词改名(ASCII 边框已重新居中对齐)
  • README:中英文末尾各加一行 <sub> 免责声明

免责声明文案

CC Hub 并非 Anthropic 官方项目,与其无任何关联。Claude Code、Claude 等均属 Anthropic 公司的商标。

刻意未改动的技术标识符

package.json name、ghcr 镜像名、GitHub 仓库 URL、DB 名 claude_code_hub、k8s 资源名、localStorage key(-theme / -columns / -onboarding)、advisory lock 名、postgres application_nameurn:claude-code-hub:problem:* 错误类型、x-cch-* header、CCH_* 环境变量、cch: redis 前缀、cch CLI 名、上游 UA fallback、MCP 厂商归因 header、CHANGELOG 历史条目、docs 归档文件名。

改这些会重置用户 UI 状态、破坏滚动升级期的互斥锁、破坏 API 契约,或让存量部署升级失败。

验证

检查 结果
bun run typecheck 通过
bun run build 通过
bun run test 7911 passed
bun run test:v1 通过(critical coverage 达标)
bun run openapi:check 通过
biome check(改动文件) 通过

src/components/ui/__tests__/language-switcher.test.tsx 有 1 例失败,已在 pristine HEAD 上复现,属存量问题,与本 PR 无关。

迁移端到端实测

临时 postgres 上先迁到 0113、灌入存量数据,再应用 0114:

```
迁移前 迁移后
1 | Claude Code Hub -> 1 | CC Hub 旧默认值已回填
2 | 我司内部网关 -> 2 | 我司内部网关 自定义标题未被覆盖
3 | CC Hub 新行默认值正确
```

重复执行回填语句返回 UPDATE 0,幂等。

注意

commit 标记为 feat! + BREAKING CHANGE,会触发 major 版本号跃升。如果不希望这样,我可以改写 commit message。

🤖 Generated with Claude Code

Greptile Summary

Updates the product branding from Claude Code Hub to CC Hub.

  • Adds localized Anthropic trademark disclaimers to the login page and README files.
  • Moves the login footer into normal document flow so localized content remains scrollable on short viewports.
  • Centralizes the default site title and migrates unchanged database defaults while preserving customized titles.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains in the previously reported login-footer layout path.

Important Files Changed

Filename Overview
src/app/[locale]/login/page.tsx The revised flex-column layout keeps the disclaimer and version footer in normal flow and permits vertical page scrolling.
drizzle/0115_breezy_polaris.sql Updates the site-title default and conditionally migrates rows that retain the former default.
src/lib/site-title.ts Changes the centralized default user-visible site title to CC Hub.

Reviews (3): Last reviewed commit: "test(db): assert migration journal order..." | Re-trigger Greptile

Rename all user-facing references from Claude Code Hub to CC Hub
across the application UI, i18n strings, documentation, deployment
scripts, OpenAPI specs, and database defaults. Add an Anthropic
trademark disclaimer to the login page footer and both README files,
with localized translations for all five supported locales.

Remove the sk- API key placeholder from the login form.

A database migration updates the site_title column default and
migrates any existing rows still set to the old name.

BREAKING CHANGE: The default site title and all user-visible product
branding change from Claude Code Hub to CC Hub. Existing deployments
with the default site_title will be migrated automatically;
customized titles are unaffected.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

项目统一将品牌名称更新为“CC Hub”,同步调整默认站点标题、登录免责声明、公共状态投影、数据库迁移、OpenAPI 文档、多语言文案、部署脚本、README 和测试,并新增 TFFT/TTFB 字段区分及启动期站点标题对账流程。

Changes

CC Hub 品牌、站点标题与运行时更新

Layer / File(s) Summary
品牌文案与界面更新
README*, messages/*, src/app/[locale]/login/page.tsx, scripts/*
项目显示名称统一为 CC Hub;登录页新增免责声明并移除 API Key 占位符;多语言、CLI 和部署输出同步更新。
默认标题与公共状态对账
src/lib/site-title.ts, src/lib/public-status/*, src/instrumentation.ts
默认站点标题统一使用 DEFAULT_SITE_TITLE,公共状态快照默认值随之更新,并在启动时对账站点标题投影。
数据库迁移与性能字段
src/drizzle/schema.ts, drizzle/*
系统设置默认标题更新为 CC Hub;message_requestusage_ledger 区分 TFFT 和 TTFB,并新增迁移及 schema 快照。
API、文档与自动化提示词
src/app/api/*, docs/*, .github/prompts/*, .github/workflows/*, Makefile
OpenAPI 信息、文档、提示词、README 和构建/部署辅助文本更新为 CC Hub,并补充 Next.js 16 与商标声明。
测试同步
tests/*, src/repository/_shared/transformers.test.ts
默认标题、登录布局、公共状态投影、迁移、OpenAPI、系统设置及相关回退行为的测试数据和断言同步更新。

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 15.38% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed 标题直接概括了主要变更:品牌从 Claude Code Hub 更名为 CC Hub,并补充商标免责声明。
Description check ✅ Passed 描述与本次变更一致,涵盖品牌改名、免责声明、迁移和文案更新等内容。
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rebrand-cc-hub

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 06d8c6f791

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/app/[locale]/login/page.tsx
Comment thread drizzle/0115_breezy_polaris.sql
Comment thread src/app/[locale]/login/page.tsx
coderabbitai[bot]
coderabbitai Bot previously requested changes Jul 25, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/prd-claude-code-hub-2025-11-29.md`:
- Line 14: Replace the user-visible legacy “CCH” branding in the PRD, including
the references around lines 32–35 and 24, with “CC Hub.” Retain “CCH” only where
it is explicitly defined as an official abbreviation.

In `@scripts/deploy.ps1`:
- Line 1: Save scripts/deploy.ps1 as UTF-8 with BOM so Windows PowerShell 5.1
correctly renders its Chinese text; preserve the script contents and behavior
unchanged.

In `@src/components/customs/footer.tsx`:
- Line 23: 更新全局页脚中显示“© {year} CC Hub · v{version}”的组件,接入 next-intl 并渲染现有的
auth.disclaimer 文案;为该键补充 5 种语言的翻译,保留现有版权与版本信息。
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4ec53a23-b707-47e3-ae4d-c2e6ebff90bb

📥 Commits

Reviewing files that changed from the base of the PR and between d154fe7 and 06d8c6f.

📒 Files selected for processing (102)
  • .github/prompts/changelog-update.md
  • .github/prompts/docs-update.md
  • .github/prompts/release-analysis.md
  • .github/prompts/release-notes.md
  • .github/workflows/claude-unified-docs.yml
  • CONTRIBUTING.md
  • Makefile
  • README.en.md
  • README.md
  • deploy/k8s/README.md
  • dev/Makefile
  • docs/api-authentication-guide.md
  • docs/api-docs-summary.md
  • docs/api/v1/README.md
  • docs/architecture-claude-code-hub-2025-11-29.md
  • docs/k8s-deployment.md
  • docs/prd-claude-code-hub-2025-11-29.md
  • docs/product-brief-claude-code-hub-2025-11-29.md
  • docs/public-status-api.md
  • drizzle/0114_silent_starhawk.sql
  • drizzle/meta/0114_snapshot.json
  • drizzle/meta/_journal.json
  • messages/en/auth.json
  • messages/en/bigScreen.json
  • messages/en/settings/config.json
  • messages/en/settings/providers/form/url.json
  • messages/en/usage.json
  • messages/ja/auth.json
  • messages/ja/bigScreen.json
  • messages/ja/settings/config.json
  • messages/ja/settings/providers/form/url.json
  • messages/ja/usage.json
  • messages/ru/auth.json
  • messages/ru/bigScreen.json
  • messages/ru/settings/config.json
  • messages/ru/settings/providers/form/url.json
  • messages/ru/usage.json
  • messages/zh-CN/auth.json
  • messages/zh-CN/bigScreen.json
  • messages/zh-CN/settings/config.json
  • messages/zh-CN/settings/providers/form/url.json
  • messages/zh-CN/usage.json
  • messages/zh-TW/auth.json
  • messages/zh-TW/bigScreen.json
  • messages/zh-TW/settings/config.json
  • messages/zh-TW/settings/providers/form/url.json
  • messages/zh-TW/usage.json
  • scripts/cch
  • scripts/clear-session-bindings.ts
  • scripts/deploy-k8s.sh
  • scripts/deploy.ps1
  • scripts/deploy.sh
  • src/app/[locale]/login/page.tsx
  • src/app/api/actions/[...route]/route.ts
  • src/app/api/v1/_root/document.ts
  • src/components/customs/footer.tsx
  • src/drizzle/schema.ts
  • src/instrumentation.ts
  • src/lib/config/system-settings-cache.ts
  • src/lib/layout-site-metadata.ts
  • src/lib/public-status/config-snapshot.ts
  • src/lib/public-status/openapi.ts
  • src/lib/site-title.ts
  • src/repository/_shared/transformers.test.ts
  • src/repository/_shared/transformers.ts
  • tests/README.md
  • tests/api/api-openapi-spec.test.ts
  • tests/api/v1/system/system-config.test.ts
  • tests/e2e/v1-management-smoke.test.ts
  • tests/integration/public-status/config-publish.test.ts
  • tests/unit/actions/admin-user-insights.test.ts
  • tests/unit/actions/system-config-fake-streaming-setting.test.ts
  • tests/unit/actions/system-config-gemini-function-id-setting.test.ts
  • tests/unit/actions/system-config-non-chat-retry-setting.test.ts
  • tests/unit/actions/system-config-stream-gate-affinity-settings.test.ts
  • tests/unit/actions/system-config-thinking-effort-conflict-setting.test.ts
  • tests/unit/api/public-site-meta-route.test.ts
  • tests/unit/api/public-status-api-contract.test.ts
  • tests/unit/api/v1/api-client-actions.test.ts
  • tests/unit/api/v1/docs-routes.test.ts
  • tests/unit/auth/login-page-site-title.test.tsx
  • tests/unit/i18n/auth-login-keys.test.ts
  • tests/unit/layout-site-metadata.test.ts
  • tests/unit/lib/config/system-settings-cache.test.ts
  • tests/unit/lib/timezone/timezone-resolver.test.ts
  • tests/unit/public-site-meta.test.ts
  • tests/unit/public-status/config-publisher.test.ts
  • tests/unit/public-status/config-snapshot.test.ts
  • tests/unit/public-status/layout-metadata.test.ts
  • tests/unit/public-status/public-api-loader.test.ts
  • tests/unit/public-status/rebuild-worker.test.ts
  • tests/unit/public-status/status-page-locale.test.ts
  • tests/unit/public-status/status-page-title.test.tsx
  • tests/unit/public-status/status-slug-page.test.tsx
  • tests/unit/public-status/system-config-publish.test.ts
  • tests/unit/repository/system-config-degradation-ladder.test.ts
  • tests/unit/repository/system-config-update-missing-columns.test.ts
  • tests/unit/settings/system-settings-form-fake-streaming.test.tsx
  • tests/unit/settings/system-settings-form-ip-extraction.test.tsx
  • tests/unit/settings/system-settings-form-non-chat-fallback.test.tsx
  • tests/unit/settings/system-settings-form-replay-cache-toggles.test.tsx
  • tests/unit/settings/system-settings-form-upstream-error-message.test.tsx

Comment thread docs/prd-claude-code-hub-2025-11-29.md
Comment thread scripts/deploy.ps1 Outdated
Comment thread src/components/customs/footer.tsx
@github-actions

Copy link
Copy Markdown
Contributor

🧪 测试结果

测试类型 状态
代码质量
单元测试
集成测试
API 测试

总体结果: ✅ 所有测试通过

Comment thread README.md Outdated
Comment thread drizzle/0115_breezy_polaris.sql
@github-actions github-actions Bot added the size/XL Extra Large PR (> 1000 lines) label Jul 25, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

This PR is XL and mixes runtime behavior, migration SQL, docs/scripts, and broad test fixture churn, which makes upgrade-path verification harder than it needs to be. I found one upgrade-safety gap in the new migration and one documentation-drift issue in the rebranded docs that should be addressed before merge.

PR Size: XL

  • Lines changed: 5680
  • Files changed: 102
  • Split suggestion: Separate runtime/database/UI changes (src/*, drizzle/*) from docs/scripts/prompt rebranding, and keep the mass test-string updates isolated from behavior changes where possible.

Issues Found

Category Critical High Medium Low
Logic/Bugs 0 0 0 0
Security 0 0 0 0
Error Handling 0 0 0 0
Types 0 0 0 0
Comments/Docs 0 0 1 0
Tests 0 1 0 0
Simplification 0 0 0 0

Critical Issues (Must Fix)

None.

High Priority Issues (Should Fix)

  • [HIGH] [TEST-MISSING-CRITICAL] drizzle/0114_silent_starhawk.sql:2 rewrites persisted site_title values during upgrade, but the new backfill has no automated regression guard. A follow-up edit to the predicate can silently overwrite customized titles.
  • [MEDIUM] [COMMENT-INACCURATE] README.md:17 still states Next.js 15 even though the repo is already on next: ^16; the same drift appears in the mirrored rebrand docs touched by this PR.

Review Coverage

  • Logic and correctness
  • Security (OWASP Top 10)
  • Error handling
  • Type safety
  • Documentation accuracy
  • Test coverage
  • Code clarity

Automated review by Codex AI

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Reviewed PR #1361, applied the size/XL label, and submitted the summary review comment.
  • Posted inline comments on drizzle/0114_silent_starhawk.sql:2 and README.md:17.
  • Main findings: the new site_title backfill migration lacks an automated regression guard, and the rebranded docs still claim Next.js 15 even though the repo is already on next: ^16.
  • The review summary also includes XL split guidance: separate runtime/database changes from docs/scripts/prompt renames and keep broad test-string churn isolated from behavior changes.
  • If you want, I can do a second pass after the author pushes follow-up fixes.

ding113 and others added 9 commits July 30, 2026 21:44
Resolve the 0114 migration collision by preserving the TTFB migration and regenerating the CC Hub site-title migration as 0115.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Keep the login footer in document flow and allow vertical scrolling while preserving the existing desktop composition.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Skip matching projections, preserve the active version when replacing legacy titles, and report unavailable Redis writes without triggering rebuild churn.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Reconcile the database title before production and development schedulers start, while keeping Redis failures non-fatal.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Align the mirrored project overviews and architecture diagrams with the current Next.js 16 dependency.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Update the rebranded architecture summary, diagram, rationale, and comparison table to the repository's current framework version.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Use CC Hub consistently in user-facing product goals, scenarios, and workflow descriptions.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add the UTF-8 BOM required by Windows PowerShell 5.1 without changing the decoded deployment script.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Apply text-balance to the card description and disclaimer so wrapped
lines distribute evenly instead of leaving orphaned words. Widen the
disclaimer container on large screens to reduce excessive line breaks.
Adds a regression test asserting the new utility classes are present.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
tests/unit/auth/login-page-site-title.test.tsx (1)

170-177: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

通过 parentElement 链推断布局结构较脆弱。

一旦登录页多包一层容器,footer/page 的推断即失效,失败信息也难定位。建议为页脚与页面容器加上 data-testid 并直接查询;类名断言本身作为重叠回归的守护可以保留。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unit/auth/login-page-site-title.test.tsx` around lines 170 - 177,
Replace the brittle parentElement traversal in the login layout test with direct
queries using dedicated data-testid attributes for the footer and page
container. Add the corresponding test IDs to the rendered elements, then keep
the existing class-name assertions and footer placement check against those
directly queried elements.
tests/unit/drizzle/site-title-migration.test.ts (1)

26-31: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

断言依赖“journal 最后两条”,新增迁移后必然失败。

任何后续迁移(0116…)加入都会让该断言崩掉,与本次校验目标无关。建议按 idx 精确查找条目,并用 JSON 解析替代字符串包含校验,使意图更明确。

♻️ 建议改法
-    expect(new Set(indexes).size).toBe(indexes.length);
-    expect(journal.entries.slice(-2).map(({ idx, tag }) => ({ idx, tag }))).toEqual([
-      { idx: 114, tag: "0114_overconfident_ronan" },
-      { idx: 115, tag: "0115_breezy_polaris" },
-    ]);
-    expect(snapshotSource).toContain('"first_byte_ms"');
-    expect(snapshotSource).toContain("'CC Hub'");
+    expect(new Set(indexes).size).toBe(indexes.length);
+    expect(journal.entries.find(({ idx }) => idx === 114)?.tag).toBe("0114_overconfident_ronan");
+    expect(journal.entries.find(({ idx }) => idx === 115)?.tag).toBe("0115_breezy_polaris");
+    expect(indexes.indexOf(115)).toBeGreaterThan(indexes.indexOf(114));
+
+    const snapshot = JSON.parse(snapshotSource);
+    expect(snapshot.tables["public.message_request"].columns.first_byte_ms).toBeDefined();
+    expect(snapshot.tables["public.system_settings"].columns.site_title.default).toBe("'CC Hub'");
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unit/drizzle/site-title-migration.test.ts` around lines 26 - 31,
更新迁移测试中的 journal 断言,改为按 idx 精确查找并校验 0114 和 0115 条目,避免依赖最后两条记录。将 snapshotSource
的字符串包含断言改为解析 JSON 后验证对应字段和值,明确校验 first_byte_ms 与 “CC Hub”。
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/lib/public-status/config-publisher.ts`:
- Line 184: Update the comparison in the snapshot reconciliation flow around
readCurrentPublicStatusConfigSnapshot so missing siteTitle values do not call
trim on undefined; use optional chaining for the snapshot field, treating a
missing value as unequal and allowing the republish path to run.

---

Nitpick comments:
In `@tests/unit/auth/login-page-site-title.test.tsx`:
- Around line 170-177: Replace the brittle parentElement traversal in the login
layout test with direct queries using dedicated data-testid attributes for the
footer and page container. Add the corresponding test IDs to the rendered
elements, then keep the existing class-name assertions and footer placement
check against those directly queried elements.

In `@tests/unit/drizzle/site-title-migration.test.ts`:
- Around line 26-31: 更新迁移测试中的 journal 断言,改为按 idx 精确查找并校验 0114 和 0115
条目,避免依赖最后两条记录。将 snapshotSource 的字符串包含断言改为解析 JSON 后验证对应字段和值,明确校验 first_byte_ms 与
“CC Hub”。
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 50cbeb86-af6d-4413-8bd1-b217ea379220

📥 Commits

Reviewing files that changed from the base of the PR and between 06d8c6f and 42ea8c2.

📒 Files selected for processing (17)
  • README.en.md
  • README.md
  • docs/architecture-claude-code-hub-2025-11-29.md
  • docs/prd-claude-code-hub-2025-11-29.md
  • drizzle/0115_breezy_polaris.sql
  • drizzle/meta/0115_snapshot.json
  • drizzle/meta/_journal.json
  • scripts/deploy.ps1
  • src/app/[locale]/login/page.tsx
  • src/drizzle/schema.ts
  • src/instrumentation.ts
  • src/lib/public-status/config-publisher.ts
  • src/lib/public-status/startup-reconciliation.ts
  • tests/unit/auth/login-page-site-title.test.tsx
  • tests/unit/drizzle/site-title-migration.test.ts
  • tests/unit/public-status/config-publisher.test.ts
  • tests/unit/public-status/startup-reconciliation.test.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • README.en.md
  • src/app/[locale]/login/page.tsx
  • README.md
  • scripts/deploy.ps1
  • docs/architecture-claude-code-hub-2025-11-29.md

Comment thread src/lib/public-status/config-publisher.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

🧪 测试结果

测试类型 状态
代码质量
单元测试
集成测试
API 测试

总体结果: ✅ 所有测试通过

@ding113
ding113 dismissed coderabbitai[bot]’s stale review July 30, 2026 15:37

Superseded by head 42ea8c2. All three actionable findings were addressed or dispositioned with replies: PRD branding and PowerShell BOM were fixed, while the conditional global-footer suggestion was kept out of scope because the localized disclaimer is intentionally on the login page. All eight review threads are resolved and the latest CodeRabbit status is successful.

ding113 added 3 commits July 31, 2026 00:52
Legacy public-status config snapshots persisted before siteTitle was
introduced can have an undefined siteTitle field. The reconciliation
check called .trim() on the snapshot value without a null guard,
causing a crash. Adding optional chaining lets these snapshots be
detected as stale and republished while preserving their existing
configVersion.
Replace positional journal slicing and raw substring checks with
tag-based migration lookup and parsed snapshot structure assertions.
The previous approach relied on the last two journal entries and
loose string matching, which would break as soon as a new migration
is appended. Finding entries by tag and validating the full column
definitions makes the test resilient to future journal growth.
Replace find-based lookups with index-based checks so the test
verifies that 0115_breezy_polaris follows 0114_overconfident_ronan
in execution order and that each migration tag appears exactly once.
This guards against journal corruption from concurrent or reordered
appends.
@github-actions

Copy link
Copy Markdown
Contributor

🧪 测试结果

测试类型 状态
代码质量
单元测试
集成测试
API 测试

总体结果: ✅ 所有测试通过

@ding113
ding113 merged commit c7174f6 into dev Jul 30, 2026
15 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Claude Code Hub Roadmap Jul 30, 2026
@AptS-1547

Copy link
Copy Markdown
Collaborator

别忘了改仓库名称.jpg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL Extra Large PR (> 1000 lines)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants