Rebrand product to Hesychia (hesychia.ai) (#29) (#32)
Unit Tests / test (push) Successful in 10s

## Summary
- Closes #29
- Rename user-facing product from AIML Operations chat to **Hesychia** (headers, sidenav brand, footer, ToS welcome, sample page)
- Update page metadata (`title`, description, Open Graph, `manifest.json` app name)
- Point README / env comments at **hesychia.ai**; keep live API hosts and deploy webroots until infra cutover

## Android display name
Capacitor tree is not on `master` yet ([#28](#28)). Display name / `appName` → **Hesychia** pushed on `ship-android-capacitor-20` so it lands with that wrap. Package id stays `com.aimloperations.chat` (Play identity; rename later if desired).

## Out of scope (per issue)
- New logo artwork (#30)
- Backend system-prompt identity (`chat_backend` #20)

## Test plan
- [ ] Web UI shows **Hesychia** in header / sidenav / footer (no old product name)
- [ ] Browser tab title and PWA manifest name are Hesychia
- [ ] Footer still credits AI ML Operations, LLC as developer
- [ ] `npm run test:ci` (Footer test updated)
- [ ] After #28 merges: Android launcher / activity title shows HesychiaReviewed-on: #32
This commit was merged in pull request #32.
This commit is contained in:
2026-07-26 17:07:26 -07:00
parent 3162ed1f7f
commit b7f23eb16c
12 changed files with 55 additions and 28 deletions
@@ -115,7 +115,7 @@ const DashboardWrapperLayout = ({ children }: DashboardWrapperLayoutProps): JSX.
<Sidenav
color={sidenavColor}
brand={(transparentSidenav && !darkMode) || whiteSidenav ? brandDark : brandWhite}
brandName="Chat by AI ML, Operations, LLC"
brandName="Hesychia"
routes={[]} // {routes}
onMouseEnter={handleOnMouseEnter}
onMouseLeave={handleOnMouseLeave}
@@ -136,7 +136,7 @@ const DashboardWrapperLayout = ({ children }: DashboardWrapperLayoutProps): JSX.
<Sidenav
color={sidenavColor}
brand={(transparentSidenav && !darkMode) || whiteSidenav ? brandDark : brandWhite}
brandName="AI ML, Operations, LLC"
brandName="Hesychia"
routes={[]} // {routes}
onMouseEnter={handleOnMouseEnter}
onMouseLeave={handleOnMouseLeave}
@@ -11,10 +11,10 @@ describe('Footer', () => {
it('renders copyright and developer credit', () => {
render(<Footer />);
expect(screen.getByText(/© 2025 Chat/i)).toBeInTheDocument();
expect(screen.getByText(/© 2026 Hesychia/i)).toBeInTheDocument();
expect(screen.getByRole('link', { name: /AI ML Operations, LLC/i })).toHaveAttribute(
'href',
'www.aimloperations.com'
'https://www.aimloperations.com'
);
});
});
@@ -5,7 +5,7 @@ const Footer = (): JSX.Element => {
return (
<div className='continer-fluid'>
<MDTypography>&copy; 2025 Chat | Developed by <a href='www.aimloperations.com'>AI ML Operations, LLC</a></MDTypography>
<MDTypography>&copy; 2026 Hesychia | Developed by <a href='https://www.aimloperations.com'>AI ML Operations, LLC</a></MDTypography>
</div>
);
@@ -67,7 +67,7 @@ const Header = ({drawerWidth=0, handleDrawerToggle}: HeaderProps): JSX.Element =
{isLargeScreen ? (
<>
<Typography variant="h6" style={{ flexGrow: 1 }} className='text-white font-weight-bold'>
Chat | AI Ml Operations
Hesychia
</Typography >
<Button color="inherit" onClick={handleDashboardClick}>
Dashboard</Button>
@@ -81,7 +81,7 @@ const Header = ({drawerWidth=0, handleDrawerToggle}: HeaderProps): JSX.Element =
) : (
<>
<Typography variant="h6" style={{ flexGrow: 1 }} className='text-white font-weight-bold'>
Chat
Hesychia
</Typography >
<IconButton color="inherit" onClick={handleDashboardClick}>
<Dashboard />
@@ -150,7 +150,7 @@ const Header2 = ({ absolute = false, light = false, isMini = false }: Header2Pro
return (
<HeaderContainer>
<Logo onClick={() => navigate('/')}>
<h4>Chat</h4>
<h4>Hesychia</h4>
</Logo>
+2 -2
View File
@@ -57,8 +57,8 @@ const SamplePage: React.FC = () => {
</Container>
<footer className="footer">
<a href="https://aimloperations.com" target="_blank" rel="noopener noreferrer">
Visit AIMLOperations.com
<a href="https://hesychia.ai" target="_blank" rel="noopener noreferrer">
Visit hesychia.ai
</a>
</footer>
</div>
@@ -36,7 +36,7 @@ const TermsOfService = (): JSX.Element => {
</CardContent>
<Divider />
<MDTypography>
Welcome to chat.aimloperations.com! We're excited to have you on board. Before you start using our large language model, supplied by AI ML Operations, LLC, we need you to agree to our Terms of Service.
Welcome to Hesychia (hesychia.ai)! We're excited to have you on board. Before you start using our large language model, supplied by AI ML Operations, LLC, we need you to agree to our Terms of Service.
</MDTypography>
<MDTypography variant="h4">
1. Acceptance of Terms