Replace Server-Sent Events streaming implementation with straightforward
JSON request/response pattern to simplify debugging and reduce complexity.
Changes:
- server.js: Convert /api/chat/stream to /api/chat with JSON response
- src/lib/api.ts: Remove SSE parsing logic, add ChatResponse interface
- src/hooks/useChat.ts: Handle JSON response instead of stream chunks
This change makes the request flow easier to debug and troubleshoot
while maintaining the same conversation functionality.
Remove the environment variable fallback for API_BASE_URL to ensure
all API requests are routed through the proxy server. This provides
consistent authentication and security handling in all environments.
Rewrite server.js to use google-auth-library for generating Google ID
tokens when authenticating requests to the backend Cloud Run service.
Key changes:
- Replace metadata server token fetch with GoogleAuth client
- Implement proper SSE streaming with raw byte passthrough
- Add health check endpoint for Cloud Run monitoring
- Update server to listen on 0.0.0.0:8080 for Cloud Run compatibility
- Add environment variable validation at startup
- Improve error handling and logging throughout request lifecycle
Update Dockerfile to install google-auth-library dependency and expose
port 8080 instead of port 80.
Replace Python http.server with Express to handle:
- Large IAP JWT headers that caused 500 errors
- API request proxying with GCP identity tokens
- Static React build serving with SPA fallback
Update api.ts to use relative URLs in production for proxy routing.
Replace Tyndale AI branding with Woolnoth identity including:
- New brand colors: Deep Navy (#24293e), Soft Light Grey (#f4f4f6),
Cool Slate Blue (#5c6f91), and Burnt Coral Red (#e94f37)
- Updated typography from Montserrat/Outfit to Inter/Plus Jakarta Sans
- Add reusable Logo component for consistent branding
- Update favicon and page title
- Apply new color scheme across all components (chat, landing, pages)
- Update CSS variables and Tailwind config for brand consistency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Increases client_header_buffer_size to 4k and large_client_header_buffers
to 4 16k to handle large Google Cloud IAP JWT headers that were causing
500 errors.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implement a new biography page accessible via /tyndale route that provides
visitors with information about William Tyndale and his historic contribution
to Bible translation. The page features a card-based layout with a brief
summary of his life and work.
Changes:
- Create TyndalePage component with responsive card design
- Add /tyndale route to application routing
- Add "About Tyndale" link to landing page navigation
Initialize complete frontend project structure with the following components:
- React 18 + Vite development environment with TypeScript
- Tailwind CSS for styling with custom animations
- Radix UI components for accessible UI primitives
- React Router for navigation between landing and chat pages
- TanStack Query for efficient API data management
Key features implemented:
- Landing page with hero, features, and footer sections
- Real-time chat interface with message history
- Study/Trading mode toggle for different interaction types
- Custom hooks for chat state management
- API integration layer with backend service
- Responsive design with scroll areas and card layouts
Docker deployment configuration:
- Multi-stage Dockerfile with Node.js build and Nginx production
- Custom nginx configuration for SPA routing on port 3000
- Optimized production build process
Development tools:
- ESLint for code quality
- TypeScript for type safety
- PostCSS with Autoprefixer
- Environment variable configuration with .env.example
Initialize complete frontend project structure with the following components:
- React 18 + Vite development environment with TypeScript
- Tailwind CSS for styling with custom animations
- Radix UI components for accessible UI primitives
- React Router for navigation between landing and chat pages
- TanStack Query for efficient API data management
Key features implemented:
- Landing page with hero, features, and footer sections
- Real-time chat interface with message history
- Study/Trading mode toggle for different interaction types
- Custom hooks for chat state management
- API integration layer with backend service
- Responsive design with scroll areas and card layouts
Docker deployment configuration:
- Multi-stage Dockerfile with Node.js build and Nginx production
- Custom nginx configuration for SPA routing on port 3000
- Optimized production build process
Development tools:
- ESLint for code quality
- TypeScript for type safety
- PostCSS with Autoprefixer
- Environment variable configuration with .env.example