Downloads.tsx has JSX at module initialization (icon fields in const array).
Eagerly importing it crashes the entire app in the Discord Activity iframe
before the React JSX runtime is ready. Lazy loading defers evaluation until
the route is actually navigated to.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Crawlers (Twitter, Discord, Slack) don't execute JavaScript, so the
client-side SEO.tsx useEffect was invisible to them. Every page looked
identical — the hardcoded homepage defaults in index.html.
- node-build.ts: replace simple sendFile with async SSR meta middleware
that injects per-route title/description/og:*/twitter:* before sending
HTML. Static route map covers ~15 routes; dynamic lookup queries
Supabase for /projects/:uuid (title, description, image_url) and
/passport/:username (full_name, bio) so shared project/profile links
render correct cards in Discord/Twitter/Slack unfurls.
- index.html: add twitter:site @aethexcorp; SSO.tsx useEffect still
runs for browser tab updates.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add StaffSubdomainRedirect component: when accessed via staff.aethex.tech,
auto-redirects to /staff prefix so the subdomain serves the right content
- nginx config updated to proxy to aethex-forge (port 5050) instead of
dead port 5054
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
staff.aethex.tech doesn't exist. Re-wired /staff and /candidate to the
existing page components already in the codebase:
Staff: Staff, StaffLogin, StaffDashboard, StaffAdmin, StaffChat,
StaffDocs, StaffDirectory, StaffAchievements, StaffTimeTracking
Candidate: CandidatePortal, CandidateInterviews, CandidateOffers,
CandidateProfile
Unbuilt staff sub-routes (/staff/announcements etc.) now fall back to
/staff/dashboard instead of 404ing through a dead external domain.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Auth & SSO
- Wire Authentik (auth.aethex.tech) as OIDC PKCE SSO provider
- Server-side only flow with HMAC-signed stateless state token
- Account linking via authentik_sub in user metadata
- AeThex ID connection card in Dashboard connections tab
- Unlink endpoint POST /api/auth/authentik/unlink
- Fix node:https helper to bypass undici DNS bug on Node 18
- Fix resolv.conf to use 1.1.1.1/8.8.8.8 in container
Schema & types
- Regenerate database.types.ts from live Supabase schema (23k lines)
- Fix 511 TypeScript errors caused by stale 582-line types file
- Fix UserProfile import in aethex-database-adapter.ts
- Add notifications migration (title, message, read columns)
Server fixes
- Remove badge_color from achievements seed/upsert (column doesn't exist)
- Rename name→title, add slug field in achievements seed
- Remove email from all user_profiles select queries (column doesn't exist)
- Fix email-based achievement target lookup via auth.admin.listUsers
- Add GET /api/projects/:projectId endpoint
- Fix import.meta.dirname → fileURLToPath for Node 18 compatibility
- Expose VITE_APP_VERSION from package.json at build time
Navigation systems
- DevPlatformNav: reorganize into Learn/Build grouped dropdowns with descriptions
- Migrate all 11 dev-platform pages from main Layout to DevPlatformLayout
- Remove dead isDevMode context nav swap from main Layout
- EthosLayout: purple-accented tab bar (Library, Artists, Licensing, Settings)
with member-only gating and guest CTA — migrate 4 Ethos pages
- GameForgeLayout: orange-branded sidebar with Studio section and lock icons
for unauthenticated users — migrate GameForge + GameForgeDashboard
- SysBar: live latency ping, status dot (green/yellow/red), real version
Layout dropdown
- Role-gate Admin (owner/admin/founder only) and Internal Docs (+ staff)
- Add Internal section label with separator
- Fix settings link from /dashboard?tab=profile#settings to /dashboard?tab=settings
Project pages
- Add ProjectDetail page at /projects/:projectId
- Fix ProfilePassport "View mission" link from /projects/new to /projects/:id
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
OKR Management:
- Database tables for OKRs, key results, and check-ins
- Full CRUD API with progress auto-calculation
- UI with quarter/year filtering, create/edit dialogs
- Key result progress tracking with status indicators
- Trigger to auto-update OKR progress from key results
Time Tracking:
- Database tables for time entries and timesheets
- API with timer start/stop, manual entry creation
- Week/month/all view with grouped entries by date
- Stats for total hours, billable hours, avg per day
- Real-time timer with running indicator
Both features include RLS policies and proper indexes.
- Add CandidateInterviews.tsx with interview list, filtering by status,
meeting type badges, and join meeting buttons
- Add CandidateOffers.tsx with offer management, accept/decline dialogs,
expiry warnings, and salary formatting
- Add routes to App.tsx for /candidate, /candidate/profile,
/candidate/interviews, /candidate/offers
- Add StaffOnboarding.tsx main hub with welcome banner, progress ring,
and quick action cards
- Add StaffOnboardingChecklist.tsx with interactive Day 1/Week 1/Month 1
checklist that saves progress to database
- Add database migration for staff_onboarding_progress and
staff_onboarding_metadata tables with RLS policies
- Add API endpoint /api/staff/onboarding for fetching and updating
onboarding progress with admin view for managers
- Add routes to App.tsx for /staff/onboarding and /staff/onboarding/checklist
- Created comprehensive integration docs for Spatial (5M+ visitors, web-based)
- Created comprehensive integration docs for Decentraland (800K+ users, Ethereum)
- Created comprehensive integration docs for The Sandbox (2M+ players, Polygon)
- Updated DocsIntegrations page with new platform showcase cards
- Added routes for /docs/integrations/spatial, /decentraland, /thesandbox
- Updated homepage to mention all 8 supported platforms explicitly
- Each integration includes: Quick start, code examples, auth flows, best practices
- Create VRChat integration docs with Udon C# examples
- Create RecRoom integration docs with Circuits visual scripting
- Add VRChat and RecRoom to homepage cross-platform claims
- Add routes for /docs/integrations/vrchat and /docs/integrations/recroom
- Update DocsIntegrations page with platform showcase cards
- Include authentication flows, code examples, and best practices
- Cover 30K+ VRChat users and 3M+ RecRoom MAU
Closes the gap in cross-platform social VR support
- Add breadcrumbs to all developer platform pages for better navigation context
- Add 'Main Dashboard' link to developer mode navigation for easy exit
- Add prominent developer CTA card to main dashboard to increase discovery
- Wrap developer dashboard route with RequireAccess for authentication
User Flow Improvements:
✓ Users can now easily navigate back to main dashboard from dev platform
✓ Breadcrumbs show clear path: Home > Developer Platform > Current Page
✓ New users see attractive CTA with API keys, docs, and templates links
✓ Authentication enforced on /dev-platform/dashboard
Files changed: 9 (Layout, Dashboard, and 7 dev-platform pages)
Consolidate dev-link routes to redirect to opportunities with an ecosystem filter, and update URL parameter handling in OpportunitiesHub.tsx to preserve existing query parameters.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 05574cd0-d046-4714-966b-aa44b58b4ce8
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/aPpJgbb
Replit-Helium-Checkpoint-Created: true
Removes all pages and components related to Dev-Link, updating routes in App.tsx to redirect /dev-link and /dev-link/waitlist to /opportunities?ecosystem=roblox.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: a73e905c-11b2-4d95-8ad7-db01d93e9347
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/aPpJgbb
Replit-Helium-Checkpoint-Created: true
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
Restructure the Electron application by separating concerns into new modules (windows, ipc, sentinel), introduce TypeScript types for IPC, and update build configurations and entry points for desktop applications.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 714c0a0f-ae39-4276-a53a-1f68eb5443fa
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/CdxgfN4
Replit-Helium-Checkpoint-Created: true