Rebrand user-facing copy from Mike/MikeOSS to Gary/GaryOSS

✅ merged · #1 · foolish-bandit/gary ← foolish-bandit/gary · opened 19d ago by foolish-bandit · merged 19d ago by foolish-bandit · self · +36-34 across 24 files · ↗ on GitHub

From the PR description

Summary

Minimal, behavior-preserving rebrand from Mike/MikeOSS to Gary/GaryOSS. No changes to auth, database schema, AI provider logic, document processing, or API routes. No new dependencies. AGPL-3.0-only license preserved.

What changed (24 files)

README - replaced with the GaryOSS title and the requested one-line description ("A private, hosted legal AI workspace for one lawyer or small firm..."). Setup and license sections preserved.

Package names

  • frontend/package.json: mikegary
  • backend/package.json: mike-backendgary-backend
  • Lockfile name fields updated to match.

Env / storage defaults

  • backend/.env.example: R2_BUCKET_NAME=mikegary
  • backend/src/lib/storage.ts and frontend/src/lib/storage.ts: default fallback ?? "mike"?? "gary"; doc comments updated.

User-facing UI copy

  • frontend/src/app/layout.tsx - <title> metadata: Mike - AI Legal PlatformGaryOSS - AI Legal Platform
  • frontend/src/app/global-error.tsx - <title>Something went wrong - Mike</title>... - GaryOSS
  • frontend/src/components/site-logo.tsx - visible <span>Mike</span>Gary; landing URL https://mikeoss.comhttps://garyoss.com
  • frontend/src/app/components/shared/AppSidebar.tsx - sidebar brand text MikeGary
  • frontend/src/app/components/workflows/WorkflowList.tsx - system-workflow tag MikeGary
  • frontend/src/app/components/tabular/AddColumnModal.tsx and WFEditColumnModal.tsx - column-prompt placeholder copy ...describe what Mike should extract......what Gary should extract...
  • frontend/src/app/(pages)/account/models/page.tsx - "running your own instance of Mike" → "...of GaryOSS"
  • frontend/src/app/signup/page.tsx - terms/privacy links mikeoss.comgaryoss.com

AI persona / DOCX author (visible to users)

  • backend/src/lib/chatTools.ts - system prompt: You are Mike, an AI legal assistant...You are Gary, ...; applyTrackedEdits author argument "Mike""Gary"
  • backend/src/routes/tabular.ts - tabular system prompt You are Mike, ...You are Gary, ...
  • backend/src/lib/docxTrackedChanges.ts - default tracked-changes author "Mike""Gary" (this is what shows up in Word's Review pane)
  • backend/src/index.ts - startup log Mike backend running on port ...Gary backend running...

Cosmetic comments / headers (no behavior)

  • frontend/src/app/components/shared/types.ts, PeopleModal.tsx doc comment, backend/migrations/000_one_shot_schema.sql header comment.

What was intentionally NOT changed

To keep the PR small and avoid touching ~50+ files, internal-only symbols are left alone:

  • TypeScript type names: MikeDocument, MikeProject, MikeChat, MikeFolder, MikeMessage, MikeWorkflow, MikeCitationAnnotation, MikeEditAnnotation, MikeChatDetailOut, MikeDocumentVersion
  • Module/file names: frontend/src/app/lib/mikeApi.ts, frontend/src/components/chat/mike-icon.tsx
  • React component name: MikeIcon (and its no-op mike boolean prop)
  • Function name: MikeLayout in (pages)/layout.tsx
  • Drag-and-drop MIME types: application/mike-doc, application/mike-folder (purely internal data-transfer keys)
  • localStorage key: mike.selectedModel (changing it would invalidate every existing user's saved model)
  • Internal change-id prefix: mike-${editIdx}-... in docxTrackedChanges.ts

These are all internal identifiers with no user visibility. They can be renamed in a follow-up "internal rename" PR.

Out of scope (not touched, per request)

  • Auth, Supabase schema, AI provider clients, document processing pipeline, API route shapes
  • API key management or Cloudflare architecture changes
  • AGPL license notice (preserved verbatim in LICENSE and package.json files)

Test plan

  • npm run build --prefix backend - passes (tsc clean)
  • npm run build --prefix frontend - passes (Next 16 / Turbopack; required NEXT_TURBOPACK_EXPERIMENTAL_USE_SYSTEM_TLS_CERTS=1 and placeholder Supabase env vars in this sandbox to satisfy prerendering, neither related to the rebrand)
  • npm run lint --prefix frontend - same 108 pre-existing problems as main; no new lint issues introduced by this branch (verified by linting only the files I touched)
  • Manual UI smoke (couldn't run dev server in sandbox): visit /, /account/models, /signup, sidebar - confirm "Gary" / "GaryOSS" replaces all visible "Mike" copy and the title bar shows "GaryOSS - AI Legal Platform"
  • Send a chat message - confirm the assistant introduces itself as "Gary" rather than "Mike"
  • Apply tracked-changes edit to a DOCX, open in Word - confirm the change author shows "Gary"

https://claude.ai/code/session_01McEfVnpbGdMs5TgeTM7P3R


Generated by Claude Code

Our analysis

Rebrand Mike to Gary across user-facing surfaces — read the full analysis →

Think the analysis missed something the PR description covers?

Commits in this PR (1)

SHA Subject Author Date
dae6f594 Rebrand user-facing copy from Mike/MikeOSS to Gary/GaryOSS Claude 2026-05-07 ↗ GitHub
commit body
Updates user-visible branding (HTML titles, sidebar/logo text, AI
system prompts, DOCX tracked-changes author, signup links, placeholder
copy) and renames the frontend/backend npm packages to gary and
gary-backend. Default R2 bucket name in env example and storage.ts
fallbacks changes from "mike" to "gary". Internal type names
(MikeDocument, MikeIcon, mikeApi module, drag/drop MIME types,
localStorage key, change-id prefix) are intentionally left unchanged
to keep this PR small; they can be renamed in a follow-up.

https://claude.ai/code/session_01McEfVnpbGdMs5TgeTM7P3R

Capture this PR into my fork

Download a Markdown prompt that tells Claude how to port every commit in this PR into your working tree. Run it via claude -p < capture-pull-1.md from inside the repo you want the changes in.

⬇ Download capture-pull-1.md