Commit graph

245 commits

Author SHA1 Message Date
Tracewebstudio Dev
a3cc407207 ci: skip gitops update if GITEOPS_REPO secret not set 2026-05-01 18:46:03 +02:00
Tracewebstudio Dev
d7b7f3d3c1 ci: update gitops with new SHA on each build (auto-deploy) 2026-05-01 11:04:17 +02:00
Tracewebstudio Dev
8ee9bd1a53 ci: add post-push registry prune (keep latest 1 SHA build) 2026-05-01 10:10:26 +02:00
Tracewebstudio Dev
0d63bb304e Add comprehensive test infrastructure and AI guardrails
- Add Vitest unit tests for AiChatWidget component
- Add Playwright E2E tests: ai-chat-widget, api, security, guardrails
- Add AI guardrails tests validating no phone/email leaks from Ollama
- Add security tests: auth, rate limiting, input validation, token handling
- Add API tests for AI endpoints and authentication
- Fix playwright.config.ts reporter path conflict
- Update CompanyJobsPage with AI generate buttons (orange icon, loading state)
- Fix AiChatWidget accessibility (role=dialog, aria-label, aria-modal)
- Add app.css spin animation for AI loading spinner
- Add Gitea Actions workflow for nightly CI tests
- Add TESTING.md documentation
2026-05-01 02:54:25 +02:00
Tracewebstudio Dev
9a21b7859f fix(ci): retry frontend buildx build on EOF failures 2026-05-01 00:22:55 +02:00
Tracewebstudio Dev
6a5cd11b2f chore: trigger gitea pipeline 2026-05-01 00:17:44 +02:00
Tracewebstudio Dev
98cedc8019 chore: trigger gitea pipeline 2026-05-01 00:14:33 +02:00
Tracewebstudio Dev
008992c217 chore: trigger gitea pipeline 2026-04-30 22:51:27 +02:00
Tracewebstudio Dev
e9fe992e1d chore: trigger gitea pipeline 2026-04-30 22:47:33 +02:00
Tracewebstudio Dev
17987adfa6 chore: trigger gitea pipeline 2026-04-30 22:41:36 +02:00
Tracewebstudio Dev
11c0a2487a fix(ci): force http1.1 for gitea git transport 2026-04-30 22:32:37 +02:00
Tracewebstudio Dev
e54561fd3d chore(ci): enable git trace for sync debugging 2026-04-30 22:27:16 +02:00
Tracewebstudio Dev
b68f409a83 fix(ci): use GITEA_SECRET in sync workflow 2026-04-30 22:18:09 +02:00
Tracewebstudio Dev
49ceee59f6 fix(ci): enforce Admin basic auth sync flow 2026-04-30 22:03:23 +02:00
Tracewebstudio Dev
472f39e426 fix(ci): always use token owner login for gitea auth 2026-04-30 21:45:03 +02:00
Tracewebstudio Dev
2745d8b940 fix(ci): use GITEA_SECRET for sync token 2026-04-30 21:40:10 +02:00
Tracewebstudio Dev
f4bd0ccb09 fix(ci): add preflight token check and static secret usage 2026-04-30 21:36:42 +02:00
Tracewebstudio Dev
9eb1b55a64 fix(ci): use authenticated remote URL for gitea git ops 2026-04-30 21:23:06 +02:00
Tracewebstudio Dev
096be08d63 chore(ci): log resolved gitea user and validate ls-remote 2026-04-30 21:03:52 +02:00
Tracewebstudio Dev
328ee8c6db fix(ci): tolerate /user 401 and fallback to configured auth user 2026-04-30 20:59:10 +02:00
Tracewebstudio Dev
f256d9ef7b fix(ci): use basic auth header with token-owner login 2026-04-30 20:56:11 +02:00
Tracewebstudio Dev
6dd0f3b6ca fix(ci): support GITEA_TOKEN secret with fallback 2026-04-30 20:48:06 +02:00
Tracewebstudio Dev
3409cc8f1a fix(ci): hardcode admin gitea sync remote 2026-04-30 20:45:49 +02:00
Tracewebstudio Dev
1093069275 fix(ci): use basic auth header for gitea git operations 2026-04-30 20:38:18 +02:00
Tracewebstudio Dev
536b1ec8ca fix(ci): prefer token owner login for gitea git auth 2026-04-30 20:33:51 +02:00
Tracewebstudio Dev
290a67af0f chore: trigger gitea pipeline 2026-04-30 20:24:43 +02:00
Tracewebstudio Dev
596187c06e fix(ci): use GITEA_USERNAME secret for git auth 2026-04-30 20:15:29 +02:00
Tracewebstudio Dev
d0ecc6ff9d fix(ci): derive gitea login from token and retry auth modes 2026-04-30 20:13:35 +02:00
Tracewebstudio Dev
921b97f2c3 fix(ci): try multiple gitea auth url formats 2026-04-30 20:08:50 +02:00
Tracewebstudio Dev
c1b08bd194 fix(ci): replace inline python with curl+jq api fallback 2026-04-30 20:02:08 +02:00
Tracewebstudio Dev
9e55288f08 fix(ci): correct yaml-safe gitea API fallback script 2026-04-30 19:59:50 +02:00
Tracewebstudio Dev
9a2a29d190 fix(ci): auto-resolve gitea target repo for sync 2026-04-30 19:57:17 +02:00
Tracewebstudio Dev
cd9f920ec5 chore: trigger gitea pipeline 2026-04-30 19:54:10 +02:00
Tracewebstudio Dev
c12669dfbe chore: trigger gitea pipeline 2026-04-30 19:45:25 +02:00
Tracewebstudio Dev
d7ddd3d9e0 fix(ui): wire and restyle dashboard notifications dropdown 2026-04-29 11:51:37 +02:00
Tracewebstudio Dev
1effa1cb6f fix(ci): use docker socket host in frontend build 2026-04-29 10:34:24 +02:00
Tracewebstudio Dev
d3f3850e1d fix(wallet): fetch pricing by concrete role key 2026-04-29 09:59:41 +02:00
Tracewebstudio Dev
aa8696bf9f chore: trigger gitea pipeline 2026-04-28 19:07:37 +02:00
Tracewebstudio Dev
f386b0c298 chore: checkpoint workspace updates 2026-04-26 23:58:43 +02:00
Tracewebstudio Dev
35abb6e7aa fix: add Authorization header to all dashboard apiFetch calls; change Buy Credits/Buy Now buttons to BTN_ORANGE 2026-04-22 01:32:43 +02:00
Tracewebstudio Dev
6a4688c854 style: match role dashboard UI to admin solid dashboard - card padding 14px radius 16px, input height 36px, label 11px uppercase, tab underline style, title 18px #111827 2026-04-22 01:26:36 +02:00
Tracewebstudio Dev
188de040ae fix: MyDashboardPage reads role from URL directly, skips stale prop closure; loadRoleBundle uses auth; no fallback config fetch 2026-04-22 01:13:56 +02:00
Tracewebstudio Dev
f1e46e35e7 fix: RequireAuth hydration mismatch using Show component
- Use module-level signal for clientReady to persist across re-renders
- Use Show component for reactive rendering instead of manual null returns
- createEffect handles redirect when client is ready but no token
- onMount sets clientReady after hydration completes
- Dashboard now shows correct TUTOR role sidebar with Leads/My Responses
- Playwright test verifies TUTOR dashboard renders with correct sidebar items
2026-04-22 00:54:08 +02:00
Tracewebstudio Dev
aa79b30465 fix: RequireAuth hydration mismatch and role resolution
- RequireAuth: use setTimeout to defer clientReady=true until after hydration completes, preventing SSR/client mismatch
- dashboard.tsx: add SSR guard to return empty div on server
- playwright tests for dashboard role verification
2026-04-22 00:36:12 +02:00
Tracewebstudio Dev
87a741540b fix: RequireAuth no fallback UI, client-only check 2026-04-21 23:58:09 +02:00
Tracewebstudio Dev
1990b5c99d fix: remove RequireAuth render-time loading spinner causing SSR/hydration mismatch
The loading spinner in RequireAuth caused a hydration error: on SSR the session was available so children rendered, but during client hydration session.loading was true so the spinner rendered instead, causing DOM mismatch (null nextSibling).

Also includes role resolution priority fixes from previous session:
- prefer preferredRole when backendRole is JOB_SEEKER but preferredRole is not
- pass role via URL param to dashboard
- urlRoleLocked signal prevents auth effects from overriding URL role
2026-04-21 23:56:19 +02:00
Tracewebstudio Dev
159b051ac8 fix: resolve role resolution priority - backend roles override localStorage
- login.tsx: pass role via URL param to dashboard instead of relying on localStorage
- dashboard.tsx: add urlRoleLocked signal to prevent auth effects from overriding URL-passed role
- auth.tsx: trust passed-in role over re-reading from localStorage in saveUser
2026-04-21 21:50:57 +02:00
Tracewebstudio Dev
e1a0a5400c ci: trigger 2026-04-19 19:27:32 +02:00
Tracewebstudio Dev
0d43edc97e ci: trigger with fixed secrets 2026-04-19 18:21:01 +02:00
Tracewebstudio Dev
7a4532c534 ci: fix docker login with --password-stdin and explicit registry 2026-04-19 18:13:34 +02:00