Skip to content

feat(desktop): brand the fork build as Chromeria - #12

Merged
lukemaj merged 1 commit into
mainfrom
feat/chromeria-branding
Sep 25, 2026
Merged

lukemaj merged 1 commit into
mainfrom
feat/chromeria-branding

Conversation

@lukemaj

@lukemaj lukemaj commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

The fork's desktop build installed as upstream "T3 Code (Alpha)": same name, bundle id, userData directory and update feed, so it could not run beside the upstream app and its updater could replace it with an upstream release.

This names the stable desktop build Chromeria with its own identity and icon, and stops embedding any update feed.

Changes

  • Product name Chromeria (bundle Chromeria.app, window titles, menus, About panel, DMG title, macOS screen-capture prompt). Nightly/dev labels keep their upstream names.
  • Bundle id md.toolbox.chromeria; artifacts named Chromeria-<version>-<arch>.<ext>.
  • Electron userData directory ~/Library/Application Support/chromeria (upstream holds a single-instance lock on t3code, so sharing it would stop Chromeria starting while T3 Code runs).
  • Icon: assets/chromeria/chromeria-icon-1024.png is the source; the build derives icon.icns and icon.png from it with sips/iconutil (existing pipeline). Committed derived assets: Windows .ico, web favicon.ico (16/32/48), favicon-16x16.png, favicon-32x32.png, apple-touch-icon 180px. Stable web builds use these via the production web brand.
  • Updater: createBuildConfig no longer adds a GitHub publish config (it resolved to the upstream release repo). Without it the app ships no app-update.yml, and DesktopUpdates reports "no update feed is configured". The mock-update path for local testing is unchanged.
  • T3 home is unchanged: T3CODE_HOME if set, else ~/.t3, with state in <home>/userdata (apps/desktop/src/app/DesktopStatePaths.ts). Chromeria reads the same threads as upstream T3 Code.

Upstream files edited

  • apps/desktop/package.json (productName)
  • apps/desktop/src/app/DesktopEnvironment.ts (base name, display name, userData dir names)
  • apps/desktop/src/app/DesktopAppIdentity.test.ts, apps/desktop/src/app/DesktopPreReadyPlatform.test.ts (expectations)
  • scripts/build-desktop-artifact.ts (app id, artifact name, publish feed, stable icons, capture prompt)
  • scripts/build-desktop-artifact.test.ts (expectations)
  • scripts/lib/brand-assets.ts (Chromeria asset paths, production web icons)

New fork-only files: assets/chromeria/*.

Proof (local; fork CI cannot run on Blacksmith runners)

  • pnpm install --frozen-lockfile: ok
  • pnpm exec vp run -r typecheck: exit 0
  • pnpm exec vp lint: exit 0 (warnings only, pre-existing)
  • pnpm exec vp fmt --check: only GLOSSARY.md fails, already failing on origin/main (not touched here)
  • vp test run scripts/build-desktop-artifact.test.ts apps/desktop: 1423 passed, 1 failed. The failure (skips the primary native probe for cross-architecture Windows payloads) fails identically on unmodified origin/main.

Known limit: both apps still register the t3code:// URL scheme, so macOS may route OAuth callbacks to either app while both are installed.

Model and harness: Claude Opus 5.5 (1M context), Claude Code.

🤖 Generated with Claude Code

Name the stable desktop build Chromeria with its own bundle id
(md.toolbox.chromeria), Electron userData directory and icon set, so it
installs and runs beside upstream T3 Code. Threads stay in the shared
T3 home (~/.t3 or T3CODE_HOME).

Desktop builds no longer embed a GitHub update feed, so the updater can
never replace Chromeria with an upstream T3 Code release.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@lukemaj
lukemaj merged commit df6560b into main Sep 25, 2026
4 of 13 checks passed
@lukemaj
lukemaj deleted the feat/chromeria-branding branch September 25, 2026 10:55
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Sep 25, 2026
lukemaj added a commit that referenced this pull request Sep 25, 2026
The #12 branding points production web favicons at assets/chromeria/, but
two brand-assets tests still expected the upstream production icons.

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant