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

Rename user-facing UI, page metadata, and docs from the AIML Operations chat
product to Hesychia. Keep live API hosts and deploy webroots; document the
hesychia.ai migration path until infra cutover.
This commit is contained in:
2026-07-26 18:33:25 -05:00
parent 3162ed1f7f
commit d11a97b9bf
12 changed files with 55 additions and 28 deletions
+2
View File
@@ -1,2 +1,4 @@
# Beta API hosts (current). Target public product domain: hesychia.ai
# Flip these to hesychia.ai API hosts when server-infra / DNS cut over.
REACT_APP_BACKEND_REST_API_BASE_URL=https://beta.chatbackend.aimloperations.com/api/
REACT_APP_BACKEND_WS_API_BASE_URL=wss://beta.chatbackend.aimloperations.com/ws/chat_again/
+3 -1
View File
@@ -1,2 +1,4 @@
# Production API hosts (current). Target public product domain: hesychia.ai
# Flip these to hesychia.ai API hosts when server-infra / DNS cut over.
REACT_APP_BACKEND_REST_API_BASE_URL=https://chatbackend.aimloperations.com/api/
REACT_APP_BACKEND_WS_API_BASE_URL=wss://chatbackend.aimloperations.com/ws/chat_again/
REACT_APP_BACKEND_WS_API_BASE_URL=wss://chatbackend.aimloperations.com/ws/chat_again/
+6 -2
View File
@@ -8,7 +8,11 @@
<link rel="icon" type="image/png" sizes="16x16" href="%PUBLIC_URL%/favicon-16x16.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Chat app by AI ML Operations, LLC" />
<meta name="description" content="Hesychia — a calm AI assistant by AI ML Operations, LLC" />
<meta name="application-name" content="Hesychia" />
<meta property="og:title" content="Hesychia" />
<meta property="og:description" content="Hesychia — quiet, focused AI chat at hesychia.ai" />
<meta property="og:url" content="https://hesychia.ai" />
<link rel="apple-touch-icon" sizes="180x180" href="%PUBLIC_URL%/apple-touch-icon.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
@@ -24,7 +28,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Chat by AI ML Operations. LCC</title>
<title>Hesychia</title>
</head>
<body>
+2 -2
View File
@@ -1,6 +1,6 @@
{
"short_name": "Chat by AI ML Operations. LLC",
"name": "Chat by AI ML Operations, LLC",
"short_name": "Hesychia",
"name": "Hesychia",
"icons": [
{
"src": "favicon.ico",
@@ -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