partial, contract-owned (2026-07-15)

Spec: F41 — Brand Name Consistency (Full Name + Native Short Label)

Status: partial, contract-owned (2026-07-15)

1. Problem & CEO Job

Job: Trust the signal. The product loses trust when web, native, docs, and store metadata use different names.

The 2026-07-01 Apple Guideline 5.2.5 rejection replaced “one literal string everywhere” with a two-label system:

  • Full product name: Lumi AI Workspace
  • Short native/store label: Lumi

Use the full name where space and identity clarity allow: web shell, login/register, HTML metadata, API title, and core docs. Use the short label for icon/display-name surfaces and localized App Store names, where Apple policy and device space apply.

F14’s assistant surface is not renamed: Lumi Assistant and Trợ lý Lumi remain valid when they name the AI assistant, not the product.

2. User Stories & Acceptance Criteria

  • As a user, I want the product itself to be named consistently on web/API/docs, so that I know what product I am using.

    • frontend/src/i18n/locales/en|vi/{login,register,sidebar}.json app_name is Lumi AI Workspace.
    • frontend/index.html title / OG title / site name use Lumi AI Workspace.
    • backend/config/settings/base.py SPECTACULAR_SETTINGS["TITLE"] is Lumi AI Workspace API.
    • openapi/schema.yaml title is Lumi AI Workspace API.
    • Root docs that identify the product (README.md, DESIGN.md, DIAGRAMS.md, monorepo.md) use Lumi AI Workspace.
  • As a mobile user, I want the app icon and store listing to use the compliant short label, so that the product passes Apple review and stays readable on-device.

    • iOS CFBundleDisplayName is Lumi.
    • macOS INFOPLIST_KEY_CFBundleDisplayName is Lumi.
    • Android app_name is Lumi in all shipped values*/strings.xml app-name resources.
    • App Store Connect locale metadata name is Lumi in all docs/mobile/app-stores/locales/*.json files.
  • As a maintainer, I want publishing docs to describe the real shipping names, so that release instructions do not drift from the binaries.

    • docs/mobile/publishing-ios.md lists prod display name Lumi.

3. Scope Boundaries

  • In: product-name strings on web shell, HTML metadata, API metadata, mobile display names, app-store localized names, and publishing/release docs.
  • Out: F14 assistant feature labeling (Lumi Assistant, Trợ lý Lumi, Ask Lumi), archive docs, internal comments, and feature-copy changes that do not identify the product itself.

4. Data Model

No model changes.

5. API Contract

No endpoint changes.

SPECTACULAR_SETTINGS["TITLE"] remains Lumi AI Workspace API.

6. UI / UX

Branding is now surface-specific by rule, not by accident:

  • Full name (Lumi AI Workspace) on web, docs, API titles, and long-form metadata.
  • Short label (Lumi) on native launch/display-name surfaces and App Store localized app names.

This spec governs the product name, not the assistant feature name. The chat entry may still say Lumi Assistant / Trợ lý Lumi where that is the explicit F14 feature label rather than the product label.

Strategic position (v2, 2026-06-14): This feature enforces naming consistency, not marketing positioning. Per competitive-strategy-v2.md, first-market positioning must not lead with generic “AI workspace” language even if the full product name still contains it in web/docs/API contexts.

7. Test Plan

#CaseTypeWhere
1Web shell app-name renders Lumi AI Workspace in active localese2efrontend/tests/e2e/lumi.spec.ts
2API schema title remains Lumi AI Workspace APIbackendbackend/tests/test_branding.py
3iOS/macOS native display names resolve to Lumirepo auditios/Info.plist, ios/Lumi.xcodeproj/project.pbxproj
4Android app_name resources all resolve to Lumirepo auditandroid/app/src/main/res/values*/strings.xml
5App Store Connect locale name values all resolve to Lumirepo auditdocs/mobile/app-stores/locales/*.json
6The publishing runbook shows prod display name Lumidocs auditdocs/mobile/publishing-ios.md

8. Current Behavior

As of 2026-07-02, the repo ships a deliberate split:

  • Web/API/docs: Lumi AI Workspace
  • Native display/store surfaces: Lumi

This matches current implementation and Apple compliance:

  • frontend/index.html still identifies the product as Lumi AI Workspace.
  • Login/register/sidebar labels identify the product as Lumi AI Workspace in the active en/vi locales.
  • OpenAPI still identifies the API as Lumi AI Workspace API.
  • iOS and macOS display names are Lumi.
  • Android app-name resources are now Lumi.
  • App Store Connect localized app names are Lumi.

Before this refinement:

  • The spec incorrectly claimed Lumi AI Workspace was the literal canonical string on every surface.
  • Apple rejected the app on 2026-07-01 under Guideline 5.2.5 for the on-device/display-name form.
  • Release docs still claimed the prod iOS display name was Lumi AI Workspace.

9. Error States

  • If iOS/macOS/App Store localized names drift back to Lumi AI Workspace, Apple review risk returns immediately.
  • If web/API/docs drift down to Lumi without an explicit product rename decision, long-form product identity becomes vague and documentation loses precision.
  • If release docs advertise the wrong display name, publishing/debugging work becomes error-prone because the shipped binary and the instructions diverge.
  • openapi/schema.yaml is generated. If SPECTACULAR_SETTINGS["TITLE"] changes without regenerating schema, API-title drift returns.

10. Diagrams & Docs Touched

  • Release guidance: docs/mobile/publishing-ios.md
  • Web/API identity files: frontend/index.html, backend/config/settings/base.py, openapi/schema.yaml
  • Native display-name resources: ios/Info.plist, ios/Lumi.xcodeproj/project.pbxproj, android/app/src/main/res/values*/strings.xml
  • App Store metadata: docs/mobile/app-stores/locales/*.json

11. Implementation Audit (2026-07-02)

#ClaimStatusEvidence
1Web login/register/sidebar product name is Lumi AI Workspace in active locales✅ match`frontend/src/i18n/locales/en
2frontend/index.html title / OG metadata identify the product as Lumi AI Workspace✅ matchfrontend/index.html
3API title remains Lumi AI Workspace API✅ matchbackend/config/settings/base.py, openapi/schema.yaml, backend/tests/test_branding.py
4iOS display name is Lumi✅ matchios/Info.plist
5macOS display name is Lumi✅ matchios/Lumi.xcodeproj/project.pbxproj INFOPLIST_KEY_CFBundleDisplayName = Lumi;
6Android app-name resources are Lumi across shipped locales✅ matchandroid/app/src/main/res/values*/strings.xml
7App Store Connect localized app names are Lumi✅ matchdocs/mobile/app-stores/locales/*.json
8The publishing runbook states prod display name Lumi✅ matchdocs/mobile/publishing-ios.md
9The spec now distinguishes product-name surfaces from F14 assistant naming✅ match§1, §3, §6
10Legacy universal-string claim (Lumi AI Workspace everywhere) has been removed✅ matchThis spec revision

Gaps flagged:

  • There is still no automated CI guard that asserts all App Store locale name fields remain Lumi.
  • There is still no automated native manifest/resource test for iOS + Android display-name parity; verification is repo-audit based today.
  • Deployed web metadata, installed native bundles, App Store Connect submission metadata, and release-operator execution remain external evidence gaps in the Contract Graph.

12. Open Questions / Decisions

  1. Decision: Lumi AI Workspace remains the full product name for web/API/docs until an explicit rename decision says otherwise.
  2. Decision: Lumi is the required short label for native display-name and App Store localized-name surfaces.
  3. Decision: F14 assistant naming is separate from product naming and is not governed by this spec.

13. Bug / Change Log

2026-08-07 — Keep release identity in the publishing runbook

Type: Documentation ownership correction

Summary:

  • Removed the duplicate iOS release-name table from the root agent router.
  • Kept docs/mobile/publishing-ios.md as the authoritative release instruction and focused the F41 repository proof on that owner.

Impact:

  • No product-name or binary change; this removes a second mutable copy of release metadata.

2026-07-02 — Align brand contract with Apple-compliant native short label

Type: Bug Fix

Summary:

  • Refined F41 from a false “one string everywhere” contract to the real shipped rule: Lumi AI Workspace on web/API/docs, Lumi on native display and App Store localized-name surfaces.
  • Updated Android app_name resources from Lumi AI Workspace to Lumi so Android now matches iOS/macOS short-label behavior.
  • Updated publishing docs to reflect the real prod display name.

Reason:

  • PR #860 changed Apple-facing display surfaces to Lumi after an App Store 5.2.5 rejection, but F41 and release docs still claimed the prod display name was Lumi AI Workspace.

Impact:

  • No model or API changes.
  • Android launcher label now matches Apple display surfaces.
  • Source-of-truth docs now describe the current shipped naming contract precisely.

Tests:

  • Repo audit:
    • rg -n '<string name="app_name">Lumi</string>' android/app/src/main/res/values*/*.xml
    • rg -n 'CFBundleDisplayName|INFOPLIST_KEY_CFBundleDisplayName = Lumi' ios/Info.plist ios/Lumi.xcodeproj/project.pbxproj
    • rg -n '\"name\": \"Lumi\"' docs/mobile/app-stores/locales/*.json

2026-07-15 — Migrate F41 into the Contract Graph

Type: Contract and documentation correction

Summary:

  • Added repository-owned API, web/docs, native/store-source, and publishing-doc proofs.
  • Corrected the active en/vi login taglines and the root diagram title to match the full-name rule.
  • Preserved explicit gaps for deployed web, installed/submitted native/store, and operator-executed release evidence.

2026-06-14 — Strategy v2 realignment (positioning)

Type: Documentation Change

Summary:

  • Added a strategy note distinguishing naming consistency from external marketing positioning.

Notes:

  • The product was not renamed in this change; only the positioning guidance was clarified.

2026-06-12 — Brand rename to Lumi AI Workspace across long-form surfaces

Type: Feature

Summary:

  • Web shell product-name strings, HTML metadata, API titles, and core docs were aligned to Lumi AI Workspace.
  • This remains the full-name half of the contract after the 2026-07-02 native-short-label refinement.