Redirect Foundation and GameForge routes to a new domain

Introduce an `ExternalRedirect` component and update routes in `App.tsx` to redirect `/foundation/*` and `/gameforge/*` to `aethex.foundation`. This change enforces legal entity separation as per the Axiom Model, ensuring user-facing URLs reflect the independent `aethex.foundation` domain. Documentation in `replit.md` is updated to reflect this new routing architecture.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: c737b80b-9de9-4761-99f3-d5ff94612014
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/uM0p4Kd
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
sirpiglr 2025-12-06 04:34:07 +00:00
parent 22ca7d752b
commit 7197be23c4
4 changed files with 50 additions and 15 deletions

View file

@ -61,6 +61,10 @@ externalPort = 3000
localPort = 40437
externalPort = 3001
[[ports]]
localPort = 46043
externalPort = 3002
[deployment]
deploymentTarget = "autoscale"
run = ["node", "dist/server/production.mjs"]

View file

@ -36,6 +36,7 @@ import LabsGetInvolved from "./pages/labs/LabsGetInvolved";
import GameForgeStartBuilding from "./pages/gameforge/GameForgeStartBuilding";
import GameForgeViewPortfolio from "./pages/gameforge/GameForgeViewPortfolio";
import GameForgeJoinGameForge from "./pages/gameforge/GameForgeJoinGameForge";
import ExternalRedirect from "./components/ExternalRedirect";
import CorpScheduleConsultation from "./pages/corp/CorpScheduleConsultation";
import CorpViewCaseStudies from "./pages/corp/CorpViewCaseStudies";
import CorpContactUs from "./pages/corp/CorpContactUs";
@ -195,9 +196,10 @@ const App = () => (
path="/dashboard/labs"
element={<LabsDashboard />}
/>
{/* GameForge Dashboard redirects to Foundation (Non-Profit Program) */}
<Route
path="/dashboard/gameforge"
element={<GameForgeDashboard />}
element={<ExternalRedirect to="https://aethex.foundation/gameforge/dashboard" />}
/>
<Route
path="/dashboard/dev-link"
@ -355,21 +357,13 @@ const App = () => (
element={<LabsGetInvolved />}
/>
<Route path="/gameforge" element={<GameForge />} />
<Route
path="/gameforge/start-building"
element={<GameForgeStartBuilding />}
/>
<Route
path="/gameforge/view-portfolio"
element={<GameForgeViewPortfolio />}
/>
<Route
path="/gameforge/join-gameforge"
element={<GameForgeJoinGameForge />}
/>
{/* GameForge redirects to aethex.foundation/gameforge (Non-Profit Program - Axiom Model) */}
<Route path="/gameforge" element={<ExternalRedirect to="https://aethex.foundation/gameforge" />} />
<Route path="/gameforge/*" element={<ExternalRedirect to="https://aethex.foundation/gameforge" />} />
<Route path="/foundation" element={<Foundation />} />
{/* Foundation redirects to aethex.foundation (Non-Profit Guardian - Axiom Model) */}
<Route path="/foundation" element={<ExternalRedirect to="https://aethex.foundation" />} />
<Route path="/foundation/*" element={<ExternalRedirect to="https://aethex.foundation" />} />
<Route path="/corp" element={<Corp />} />
<Route

View file

@ -0,0 +1,22 @@
import { useEffect } from 'react';
interface ExternalRedirectProps {
to: string;
}
const ExternalRedirect: React.FC<ExternalRedirectProps> = ({ to }) => {
useEffect(() => {
window.location.href = to;
}, [to]);
return (
<div className="min-h-screen flex items-center justify-center bg-background">
<div className="text-center">
<div className="animate-spin w-8 h-8 border-4 border-primary border-t-transparent rounded-full mx-auto mb-4" />
<p className="text-muted-foreground">Redirecting to {to}...</p>
</div>
</div>
);
};
export default ExternalRedirect;

View file

@ -22,7 +22,22 @@ The UI/UX emphasizes an isometric 2.5D realm selector, replacing 3D scenes with
Domain architecture is centralized around `aethex.foundation` as the Identity Authority (SSOT) for all identity and passport data, with all other platforms acting as OAuth clients. Creator and Project Passports are accessed via wildcard subdomains (`*.aethex.me`, `*.aethex.space`).
## Axiom Model Routing (Legal Entity Separation)
The monolith (`aethex.dev`) implements split routing to enforce legal separation between For-Profit and Non-Profit arms:
| Route | Destination | Legal Entity | Action |
|-------|-------------|--------------|--------|
| `/foundation/*` | `https://aethex.foundation` | Non-Profit (Guardian) | **Redirect** |
| `/gameforge/*` | `https://aethex.foundation/gameforge` | Non-Profit (Program) | **Redirect** |
| `/dashboard/gameforge` | `https://aethex.foundation/gameforge/dashboard` | Non-Profit | **Redirect** |
| `/labs/*` | stays on `aethex.dev` | For-Profit (Skunkworks) | Local |
| `/nexus/*` | stays on `aethex.dev` | For-Profit (Monetization) | Local |
| `/corp/*` | stays on `aethex.dev` | For-Profit (Services) | Local |
This ensures the Foundation's user-facing URLs display `aethex.foundation` in the browser, demonstrating operational independence per the Axiom Model.
## Recent Changes (December 2025)
- **Axiom Model Routing**: Foundation and GameForge routes redirect to `aethex.foundation` domain for legal entity separation
- **AI Intelligent Agent Integration**: Added global AI chat with 10 specialized personas (Network Agent, Forge Master, Ethics Sentinel, SBS Architect, Curriculum Weaver, QuantumLeap, Vapor, Apex, Ethos Producer, AeThex Archivist)
- **Tiered Access Control**: AI personas gated by user tier (Free/Architect/Council) based on roles
- **Realm-Aware Suggestions**: AI PersonaSelector suggests relevant personas based on current realm context