Skip to content

feat(branding): rebrand the mobile app as The Boss - #2

Draft
GQAdonis wants to merge 19 commits into
mainfrom
feat/rebrand-the-boss-mobile-ui
Draft

GQAdonis wants to merge 19 commits into
mainfrom
feat/rebrand-the-boss-mobile-ui

Conversation

@GQAdonis

Copy link
Copy Markdown

Branch strategy

  • Active development targets main.

What this PR does

Before this PR: the app shipped as Cherry Studio mobile, with upstream identifiers, upstream icons and colors, upstream error reporting and analytics, and links to CherryHQ.

After this PR: the app is The Boss (the-boss-mobile), matching the-boss desktop. This is the KBD phase rebrand-the-boss-mobile-ui (11 OpenSpec changes, rebrand-001 … rebrand-011).

  • Identity
    • src/shared/branding is the single source for the product name, company, ids, URL scheme, URLs and user agent.
    • iOS tools.know-me.the-boss[.dev|.preview], Android tools.know_me.the_boss, URL scheme theboss.
    • OAuth callbacks are built from the URL scheme.
    • Permission prompts and the share-extension name are localized in 13 languages.
  • Design system
    • Brand Guide v2.2 tokens (boss.css) with a WCAG contrast gate in design:check. Contrast deviations are listed in packages/design-tokens/DEVIATIONS.md.
    • Radius 10px.
    • Brand fonts: Space Grotesk, Inter, Roboto and JetBrains Mono (TTFs with OFL licences), plus font-role tokens in CherryUI.
  • Assets: app icon, adaptive icon, splash, notification icon, About screen, LogoDraw and the activity logo, all generated from assets/branding/** by scripts/branding/generateBrandAssets.ts.
  • Copy: product-name values in all 13 app locales, native .xcstrings and Android values-*, and "Boss Agent" naming.
  • Reporting and sign-in (operator decisions)
    • Sentry and analytics are off: REPORTING_DISABLED, the Sentry plugin is removed, and ANALYTICS_REPORTING_DISABLED.
    • GitHub and Notion plugin sign-in are paused (disabledReason: 'boss-accounts-coming-soon').
    • docs/backend-services/README.md lists what The Boss backend has to replace.
  • Docs and repo
    • README, DESIGN.md and the guides are rebranded.
    • Repo renamed to Prometheus-AGS/the-boss-mobile; links, root package name, podspec and packages/ui metadata updated.
    • publishGitcodeRelease now needs BOSS_ALLOW_GITCODE_PUBLISH=1, because it publishes to upstream's GitCode repo.
  • Regression guard
    • pnpm brand:check, with an allowlist and tests, runs in PR CI.
    • docs/contrib/{upstream-merges,fork-surface,upstream-merge-log}.md cover merge discipline with upstream.
  • Unchanged on purpose (technical contracts): @cherrystudio/* packages, cherry.db, MMKV ids, cherry://file/, _cherry-remote._tcp protocol constants, and the CherryStudioUI / CherryStrings / CherryShareExtension native names. Keeping them avoids data migrations and keeps upstream merges clean.
  • Also included: the agent team, the compass graph report, and the KBD and .prometheus session state, as the operator requested.

Fixes #

Screenshots or videos

Pending. The device walkthrough by the verifier gate on iOS and Android is still open, and screenshots will be added before this PR leaves draft.

Why we need it and why it was done in this way

The following tradeoffs were made:

  • Bundle ids and the Android package match the-boss desktop's APP_ID, as the operator asked. The Android form uses underscores because application ids cannot contain hyphens. As a result the app installs alongside existing Cherry Studio builds rather than upgrading them.
  • In light mode, primary is brand-600, not the guide's brand-500, to meet WCAG AA. The other contrast deviations are recorded in DEVIATIONS.md.
  • All branding values live in one module, and the technical contracts above keep their names, so upstream merges touch as few files as possible.

The following alternatives were considered: renaming the technical contracts too. That was rejected because it forces data migrations and merge conflicts on every upstream sync.

Breaking changes

New store identities: bundle id and package. Existing Cherry Studio installs do not upgrade in place, and app data does not carry over. The URL scheme changes from cherrystudio:// to theboss://.

Special notes for your reviewer

Local gate results for this head:

  • Pass: format:check, i18n:check (13 languages), design:check, ui:check-boundaries, brand:check (2169 files) and docs:check-links (317 files).
  • Could not run locally: lint, packages:build/typecheck and Jest.
    • The local pnpm store is missing native libraries (oxlint, rolldown), so lint cannot start and the package build hangs.
    • Jest fails in jest-expo setup with FormData is not defined even on unchanged suites. The same config passed on the fork's CI at this base.
    • PR CI is the gate for these.
  • The typecheck:app errors seen locally all come from the unbuilt @cherrystudio/ai-* packages; the branch does not touch those packages.

Security gate: pass with notes, no blockers. Open items:

  • The privacy-policy link still points at upstream's policy.
  • GitHub personal_token connect is not blocked by the backend sign-in guard; only the UI blocks it.
  • appleTeamId is still upstream's. It must change before the first TestFlight upload.
  • brand:check does not yet match cherryai.com.cn or cherry-studio.

Deferred: docs/webrtc/ still names the old repo. It must stay identical to the copy in the-boss, so both repos will be updated together.

Checklist

  • Branch: This PR targets main
  • PR: The PR description is expressive enough and will help future contributors
  • Preview: screenshots pending the device walkthrough
  • Code: Write code that humans can understand and keep it simple
  • Refactor: I have left the code cleaner than I found it (Boy Scout Rule)
  • Upgrade: The impact of this change on upgrade flows was considered and addressed if required
  • Documentation: user-guide hosting for The Boss does not exist yet (see docs/backend-services/README.md)
  • Self-review: pending the final gate

Release note

action required: The app is now The Boss (the-boss-mobile) with new app identifiers. It installs as a new app alongside Cherry Studio; existing data does not migrate. Crash reporting, analytics, and GitHub/Notion plugin sign-in are off for now.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb

GQAdonis and others added 19 commits September 26, 2026 09:57
…changes and agent tooling

Operator-approved project tooling (plan decision PD-9):
- boss-mobile agent team (.agent-team, native definitions for Claude Code,
  Codex, OpenCode, Kimi Code) and the lead-first routing note in AGENTS.md
- prometheus-context-bootstrap hooks, rules and settings (.claude),
  versions.toml, UI/UX protocol
- KBD orchestrator state for phase rebrand-the-boss-mobile-ui and the eleven
  OpenSpec rebrand changes
- .prometheus session logs and knowledge notes
- Compass configuration and human-readable graph reports; the large graph,
  store and snapshots are gitignored and regenerated by `compass update .`

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… through it

Adds src/shared/branding (product name, company, app ids, URL scheme,
website/repository/issues/docs/support, attribution, user-agent name, export
watermark name) mirroring The Boss desktop's branding.ts, and routes the About
screen, default headers, analytics app name, desktop-connection device name,
GitHub token URL, Feishu/DingTalk client names and the export watermark name
through it. The translation glossary now protects "The Boss". Technical
contracts (packages, storage ids, protocol constants) are unchanged.

OpenSpec change: rebrand-001-branding-module

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s tokens

Ports the desktop v2.2 palette (ember primary, brand ramp, cool neutral surface
ladder, status families, link, ring, control-active, 10px radius) into the
mobile token sources and native.css, adds WCAG 2.2 AA contrast assertions to
design:check, removes two stale colour-literal allowlist entries, and records
accessibility-driven deviations from the desktop in DEVIATIONS.md.

OpenSpec change: rebrand-004-design-tokens

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Changes product-name values (never keys) in all 13 locales, renames the
default agent to Boss Agent, points locale links at the The Boss website, and
rebrands the agent runtime identity and tool descriptions via the branding
module; tests asserting the old user agent now use the branding constant.

OpenSpec change: rebrand-007-strings-app

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vendors Space Grotesk, Inter, Roboto and JetBrains Mono (OFL, provenance in
assets/fonts/README.md), adds display/ui/body/mono/eyebrow font-role tokens
exported to native.css, and applies them to CherryUI dialog, section,
content-state, bottom-sheet, button, chip, slider and markdown code while
keeping the mobile type-size scale. Font registration in app.json follows in
the app-identity change.

OpenSpec change: rebrand-005-typography

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ith The Boss

Brand assets (rebrand-003-visual-assets): imports the Brand Guide v2.2 vector
sources with provenance, adds a reproducible generator
(scripts/branding/generateBrandAssets.ts), regenerates the app icon and Android
adaptive foreground, adds splash, notification and lockup assets, and switches
the export watermark, About screen, onboarding logo animation and
background-activity widget asset to The Boss mark. The old splash artwork is
removed.

Native strings (rebrand-008-strings-native): rebrands the iOS
SystemIntegration string catalog, Swift fallbacks and Android string resources,
extended from en/zh to all 13 app locales. Resource keys and native type names
are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orting off

- Name The Boss (Dev/Preview), slug the-boss-mobile, iOS
  tools.know-me.the-boss, Android tools.know_me.the_boss, derived app groups,
  widget and share-extension ids, URL scheme theboss from the branding module
- Adaptive icon, splash, notification icon and brand fonts registered from the
  new assets; Geist Mono removed
- Upstream EAS project and App Store Connect ids removed; Sentry plugin removed
  and Sentry/observe/insights disabled through one REPORTING_DISABLED switch
  (re-enable steps in docs/guides/local-builds.md)
- docs/backend-services: inventory of Cherry-operated services and accounts the
  future The Boss backend must replace

OpenSpec changes: rebrand-002-app-identity, rebrand-005-typography

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng The Boss accounts

Adds a catalog disabledReason that blocks new GitHub and Notion OAuth sign-ins
in the backend and plugin screens with a localized explanation (13 locales);
existing connections keep working. OAuth callbacks now derive from the
theboss URL scheme and the Notion client_uri from the branding module.
Analytics reporting is turned off through one documented switch. Exported HTML
code blocks use JetBrains Mono instead of the removed Geist Mono.

OpenSpec change: rebrand-002-app-identity

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd the activity logo

Rewrites DESIGN.md for Brand Guide v2.2 (surfaces, ember accent, feedback
roles, font roles with weight pairing, 10px radius, accessibility gate and
documented deviations from the desktop), aligns the UI development guide, adds
.impeccable.md design context, and replaces the Live Activity logo with The
Boss mark.

OpenSpec changes: rebrand-006-design-doc, rebrand-003-visual-assets

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tension name

Rebrands all iOS permission and usage descriptions (static Info.plist keys and
plugin-configured strings) and localizes the 13 compiled keys into all 13 app
languages through expo.locales (assets/branding/native-locales). The share
extension now displays The Boss; native target and class names are unchanged.

OpenSpec change: rebrand-002-app-identity

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d references

Rewrites the README after The Boss desktop (logo, links, AGPL attribution to
Cherry Studio Mobile, technical-contract note), updates the AGENTS.md intro, and
rebrands product mentions across AI, agent, chat, UI and build references,
feature READMEs and issue templates while keeping upstream provenance links and
technical names. Removes the last Cherry logo asset.

OpenSpec change: rebrand-009-docs-readme

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
…rk-surface ledger

Adds pnpm brand:check (scripts/brandCheck.ts with a reasoned allowlist) that
fails on product-name or cherry-ai.com leftovers in locale values, native
string catalogs, app.json and source string literals, wires it into PR CI, and
documents how the fork consumes upstream (docs/contrib/upstream-merges.md,
fork-surface.md, upstream-merge-log.md).

OpenSpec change: rebrand-011-branding-guard

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
… brand:check

Routes MCP, Notion and official-MCP client names through the branding module,
rebrands WeCom tool copy, model-facing file-tool descriptions and attachment
labels (now app-managed wording), the sidebar header and startup-cover
attribution, and the Storybook brand note; drops PPIO's upstream docs link;
changes the default agent avatar to 🤖 while still recognising the legacy 🍒;
rebrands the docs index and lead-owned guides and records owners for paths
created in this phase. pnpm brand:check now passes.

OpenSpec change: rebrand-007-strings-app

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
…bile

Follows the GitHub rename to Prometheus-AGS/the-boss-mobile (rebrand-010):
REPOSITORY_URL, README and issue-template links, root package name (with the
desktopSyncAudit check and fixtures), podspec and packages/ui metadata, data
docs and the fork-surface ledger. publishGitcodeRelease now refuses to run
unless BOSS_ALLOW_GITCODE_PUBLISH=1, since it targets upstream's GitCode repo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
…f oxfmt

McpRuntimeService.ts gained an unsorted ATTRIBUTION_NAME import in the
leftover-cleanup commit. .compass/ and .kbd-orchestrator/ hold state that the
compass and KBD runtimes rewrite on every run, so formatting them would fail
format:check after each tool invocation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
…er tasks

Task ledger, OpenSpec task checkboxes, KBD projections and session knowledge
logs for the completed builder work. Verifier and security gate tasks stay
open until the final phase gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
… the backend

Security gate follow-ups (operator decisions). The consent sheet no longer links
to Cherry's privacy policy; getPrivacyPolicyUrl returns undefined until a Know Me
Tools policy URL exists. plugins.connect() now applies the same sign-in pause as
authorization.begin, so GitHub personal tokens are refused in the backend, not
only in the UI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
… catalog

Tests still asserted Cherry copy and the cherrystudio-dev:// GitHub callback;
fixtures now derive from PRODUCT_NAME and URL_SCHEME. The agent prompt reads
"The current app language in The Boss is …". providers.json is regenerated
after the ppio docs link removal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
…ames

brand:check source literals now also match cherryai.com(.cn), cherry-studio
and cherrystudio. Only the @cherrystudio/ npm scope form is excluded, so a
handle such as @cherrystudio is still reported. The 14 technical-contract hits
are exempted by path-scoped allowlist entries, each with a reason reviewed by
the security gate (security finding F8).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdvhiodHDEcGH2U52q1Feb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant