diff --git a/CLAUDE.md b/CLAUDE.md index a29d9b6..d12e960 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,6 @@ # ai-teacher Development Guidelines -Auto-generated from all feature plans. Last updated: 2026-04-07 +Auto-generated from all feature plans. Last updated: 2026-04-10 ## Active Technologies - Java 25 (backend), TypeScript / Node 20 (frontend) + Spring Boot 4.0.5, Spring AI 2.0.0-M4, OpenAI API (embeddings + chat), PDFBox (via Spring AI PDF reader dependency) (002-image-aware-embedding) @@ -16,6 +16,8 @@ Auto-generated from all feature plans. Last updated: 2026-04-07 - PostgreSQL (JPA + Flyway), pgvector (`VectorStore`) (004-rag-retrieval-quality) - Java 25 (backend), TypeScript / Node 20 (frontend) + Spring Boot 4.0.5, Spring AI 2.0.0-M4, `native-maven-plugin` 0.10.6, (005-native-image-deployment) - PostgreSQL 16 + pgvector (unchanged) (005-native-image-deployment) +- TypeScript / Node 20 (frontend only) + Vue 3.4, Vue Router 4.3, Pinia 2.1 — no changes (006-mobile-responsive-ui) +- N/A (frontend-only change) (006-mobile-responsive-ui) - Java 21 (backend), TypeScript / Node 20 (frontend) (001-neuro-rag-learning) @@ -35,9 +37,9 @@ npm test && npm run lint Java 21 (backend), TypeScript / Node 20 (frontend): Follow standard conventions ## Recent Changes +- 006-mobile-responsive-ui: Added TypeScript / Node 20 (frontend only) + Vue 3.4, Vue Router 4.3, Pinia 2.1 — no changes - 005-native-image-deployment: Added Java 25 (backend), TypeScript / Node 20 (frontend) + Spring Boot 4.0.5, Spring AI 2.0.0-M4, `native-maven-plugin` 0.10.6, - 004-rag-retrieval-quality: Added Java 21 (backend), TypeScript / Node 20 (frontend) + Spring Boot 4.0.5, Spring AI 2.0.0-M4, OpenAI API (chat + embeddings), Vue 3.4, Pinia 2.1, Axios 1.7 -- 004-rag-retrieval-quality: Added Java 21 (backend), TypeScript / Node 20 (frontend) + Spring Boot 4.0.5, Spring AI 2.0.0-M4, OpenAI API (chat + embeddings), pgvector, Vue 3.4, Pinia 2.1 diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 458a2e9..388dc4a 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -10,5 +10,7 @@ RUN npm run build FROM docker.io/library/nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod +x /docker-entrypoint.sh EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/frontend/docker-entrypoint.sh b/frontend/docker-entrypoint.sh new file mode 100644 index 0000000..afa846f --- /dev/null +++ b/frontend/docker-entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +# Write runtime env vars into a JS file loaded before the app bundle. +# Any VITE_* variable passed via `docker run -e` will be available as +# window.__env__.VITE_* inside the browser. +cat > /usr/share/nginx/html/env-config.js <
+ diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 45f24fb..43e2919 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -7,24 +7,29 @@ Neurosurgeon Learning Platform @@ -38,16 +43,21 @@