Commit Graph

  • b85dc1ffb7 feat(auth): add 2FA setup UI and login challenge step cesnimda 2026-07-12 21:17:09 +02:00
  • c68b49eda0 feat(auth): add per-account lockout and TOTP 2FA with recovery codes cesnimda 2026-07-12 20:48:09 +02:00
  • 717d1b9963 perf(db): add remaining hot-path indexes (status filter, correspondence/event FKs) perf/phase-7-8 cesnimda 2026-07-12 20:22:23 +02:00
  • 3e09e74fc8 refactor(api): extract Gmail DTOs/parsers, batch N+1 loops cesnimda 2026-07-12 20:17:33 +02:00
  • 4cfdc95b59 refactor(api): extract ProfileCv DTOs, add missing AsNoTracking on reads cesnimda 2026-07-12 20:12:36 +02:00
  • ea6c3650f3 refactor(api): extract JobApplications DTOs and helpers, fix N+1 aggregation cesnimda 2026-07-12 20:08:59 +02:00
  • bd07876a41 fix(db): stop startup crash from MySQL composite-index key length fix/mysql-index-key-too-long cesnimda 2026-07-12 19:50:58 +02:00
  • 597191f384 docs: mark shipped roadmap phases, record what's still open feature/career-workspace cesnimda 2026-07-12 15:57:40 +02:00
  • 47d05ba946 feat: introduce CV variant schema, dual-written from tailored CV saves cesnimda 2026-07-12 15:55:44 +02:00
  • 00c7e0b6ca feat: show ATS-safety badge on each CV template cesnimda 2026-07-12 15:47:04 +02:00
  • 00a035ea20 feat: persist candidate fit and focus plan, stop re-running on every open cesnimda 2026-07-12 15:41:58 +02:00
  • 5916f09852 feat: persist interview prep instead of regenerating on every open cesnimda 2026-07-12 15:34:07 +02:00
  • 102938c28b docs: add Career Workspace research, teardown, strategy, and roadmap cesnimda 2026-07-12 15:21:17 +02:00
  • cbd045a0d3 feat: show diff view for AI CV rewrites cesnimda 2026-07-12 15:21:04 +02:00
  • 66384bda60 test: add regression coverage for CV template renderer cesnimda 2026-07-12 15:19:02 +02:00
  • 235e291d8f feat: add career profile foundation with versioned history cesnimda 2026-07-12 15:18:05 +02:00
  • a4c8e4ac5d fix: unlock CV builder for Google/Microsoft-authenticated users cesnimda 2026-07-12 15:16:49 +02:00
  • 0cd1ba398e Merge pull request 'feat(ux): product/UX review implementation (onboarding, empty states, a11y, mobile kanban)' (#27) from feat/ux-review-quick-wins into main cesnimda 2026-07-12 04:30:00 +02:00
  • d5d82cb528 feat(ux): onboarding checklist, dashboard-first landing (fixed) feat/ux-review-quick-wins cesnimda 2026-07-12 04:26:17 +02:00
  • 9615ee3f41 feat(ux): per-view subtitles, correspondence cross-links, mobile kanban, a11y cesnimda 2026-07-12 04:14:37 +02:00
  • 58868fc2b6 feat(ux): first-time onboarding, empty states, and copy fixes cesnimda 2026-07-12 04:05:32 +02:00
  • 7dadf8dde4 Merge pull request 'fix(auth): Google Sign-In audience mismatch + remove per-user accent color' (#26) from fix/google-signin-and-theming-cleanup into main cesnimda 2026-07-12 03:06:35 +02:00
  • 33d899c243 fix(auth): Google Sign-In audience mismatch + remove per-user accent color fix/google-signin-and-theming-cleanup cesnimda 2026-07-12 02:43:10 +02:00
  • b2e176940c Merge pull request 'fix(deploy): copy .npmrc before npm ci in frontend Dockerfile' (#25) from fix/docker-npmrc-not-copied into main cesnimda 2026-07-12 02:18:47 +02:00
  • 86cdafb3ef fix(deploy): copy .npmrc before npm ci in frontend Dockerfile fix/docker-npmrc-not-copied cesnimda 2026-07-12 02:15:49 +02:00
  • 0e5845a95a Merge pull request 'feat(ui): circular match-score ring in job workspace' (#24) from feature/ui-rework-match-score-ring into main cesnimda 2026-07-12 02:05:18 +02:00
  • ffb9888fb4 feat(ui): circular match-score ring in job workspace feature/ui-rework-match-score-ring cesnimda 2026-07-12 01:59:03 +02:00
  • f4503f7b2c Merge pull request 'feat(ui): dark navy sidebar + restrained kanban status colors' (#23) from feature/ui-rework-sidebar-kanban into main cesnimda 2026-07-12 01:53:27 +02:00
  • 7cfbdf504a feat(ui): dark navy sidebar + restrained kanban status colors feature/ui-rework-sidebar-kanban cesnimda 2026-07-12 01:45:20 +02:00
  • 8a9e402baa Merge pull request 'build(frontend): migrate CRA to Next.js (CSR lift-and-shift)' (#21) from feature/wave6-nextjs-migration into main cesnimda 2026-07-12 01:25:22 +02:00
  • dbb15804a3 fix(frontend): relax npm peer-dep resolution for react-scripts vs TS 5.9 feature/wave6-nextjs-migration cesnimda 2026-07-12 01:22:18 +02:00
  • 6903032c3b Merge pull request 'feat(auth): Microsoft OAuth sign-in/link + self-serve signup via Google/Microsoft' (#22) from feature/wave7-oauth-signup into main cesnimda 2026-07-12 01:15:41 +02:00
  • 53d05dd4c4 Merge pull request 'feat(ai): prompt-injection delimiters + synonym-aware match scoring' (#20) from feature/wave4-ai-hardening into main cesnimda 2026-07-12 01:13:39 +02:00
  • acf60c2a07 build(frontend): migrate CRA to Next.js (CSR lift-and-shift) cesnimda 2026-07-12 00:50:45 +02:00
  • 3081d99355 feat(auth): Microsoft OAuth sign-in/link + self-serve signup via Google/Microsoft feature/wave7-oauth-signup cesnimda 2026-07-12 00:12:23 +02:00
  • 67ee3d7274 feat(ai): prompt-injection delimiters + synonym-aware match scoring feature/wave4-ai-hardening cesnimda 2026-07-11 23:06:52 +02:00
  • fc62a659ef Merge pull request 'fix(jobs): derive attachment checklist flags from actual Attachments' (#19) from refactor/computed-attachment-flags into main cesnimda 2026-07-11 21:14:10 +02:00
  • b4fd5e2f96 fix(jobs): derive attachment checklist flags from actual Attachments refactor/computed-attachment-flags cesnimda 2026-07-11 21:10:39 +02:00
  • 37ea1f98bb Merge pull request 'refactor(gmail): extract DTOs and static helpers from GmailController' (#18) from refactor/wave2-gmail-dtos-helpers into main cesnimda 2026-07-11 20:52:28 +02:00
  • ab79072e52 refactor(gmail): extract DTOs and static helpers from GmailController refactor/wave2-gmail-dtos-helpers cesnimda 2026-07-11 20:45:48 +02:00
  • abe23b799a Merge pull request 'perf(gmail): narrow review-decision lookup to the single ThreadId' (#17) from fix/gmail-review-decision-load-all into main cesnimda 2026-07-11 20:42:18 +02:00
  • 6a43227315 perf(gmail): narrow review-decision lookup to the single ThreadId fix/gmail-review-decision-load-all cesnimda 2026-07-11 20:38:26 +02:00
  • 9b21d5c65d Merge pull request 'chore(db): resync stale EF ModelSnapshot + fix fresh-DB schema gap' (#16) from chore/resync-ef-snapshot into main cesnimda 2026-07-11 20:37:01 +02:00
  • a9a0ddecbc chore(db): resync stale EF ModelSnapshot + fix fresh-DB schema gap chore/resync-ef-snapshot cesnimda 2026-07-11 20:32:07 +02:00
  • 408da93fc7 Merge pull request 'feat(email): add provider picker to Settings > Account' (#14) from feat/email-provider-picker-ui into main cesnimda 2026-07-11 19:59:25 +02:00
  • 6db3bffb2f feat(email): add provider picker to Settings > Account feat/email-provider-picker-ui cesnimda 2026-07-11 19:20:33 +02:00
  • c0d620f528 Merge pull request 'feat(email): add Correspondence.Provider discriminator' (#13) from feat/correspondence-provider-discriminator into main cesnimda 2026-07-11 19:53:32 +02:00
  • cb2715c323 feat(email): add Correspondence.Provider discriminator feat/correspondence-provider-discriminator cesnimda 2026-07-11 19:03:42 +02:00
  • d308f1d5d4 Merge pull request 'feat(email): add ImapProvider (generic IMAP for unsupported providers)' (#12) from feat/imap-provider into main cesnimda 2026-07-11 19:47:31 +02:00
  • a8e2f4dc4a feat(email): add ImapProvider (generic IMAP for unsupported providers) feat/imap-provider cesnimda 2026-07-11 18:53:16 +02:00
  • 8edbdceee9 Merge pull request 'ci: retry frontend build once on silent failure' (#15) from ci/retry-frontend-build into main cesnimda 2026-07-11 19:40:24 +02:00
  • 4f98195592 ci: retry frontend build once on silent failure ci/retry-frontend-build cesnimda 2026-07-11 19:30:15 +02:00
  • b1d5bd516e Merge pull request 'fix(auth): redirect unauthenticated deep links to home, not /login' (#11) from fix/auth-guard-redirect-home into main cesnimda 2026-07-11 18:39:23 +02:00
  • 3eef06e906 Merge pull request 'feat(email): add MicrosoftGraphProvider (Outlook/365 via Graph OAuth)' (#10) from feat/microsoft-graph-provider into main cesnimda 2026-07-11 18:33:17 +02:00
  • daa9694bc7 fix(auth): redirect unauthenticated deep links to home, not /login fix/auth-guard-redirect-home cesnimda 2026-07-11 18:19:25 +02:00
  • cacad5cc94 feat(email): add MicrosoftGraphProvider (Outlook/365 via Graph OAuth) feat/microsoft-graph-provider cesnimda 2026-07-11 18:08:11 +02:00
  • 7529b99edd Merge pull request 'refactor(gmail): route message import through IEmailProvider' (#9) from feat/gmail-provider-contract into main cesnimda 2026-07-11 13:26:21 +02:00
  • 9cb99a7ba7 refactor(gmail): route message import through IEmailProvider feat/gmail-provider-contract cesnimda 2026-07-11 12:54:37 +02:00
  • ad1d0d7b2d Merge pull request 'refactor(gmail): route controller read paths through IEmailProvider' (#7) from feat/gmail-provider-reads into main cesnimda 2026-07-11 13:18:34 +02:00
  • 97900dc05b Merge pull request 'chore: stop tracking .gsd planning tooling' (#6) from chore/untrack-gsd into main cesnimda 2026-07-11 13:18:08 +02:00
  • 9febc2b22f refactor(gmail): route controller read paths through IEmailProvider feat/gmail-provider-reads cesnimda 2026-07-05 21:38:45 +02:00
  • 6ad3eec7bd chore: stop tracking .gsd planning tooling chore/untrack-gsd cesnimda 2026-07-11 12:50:55 +02:00
  • 35eaef9dee Merge pull request 'ci: resilient .NET setup (retry dotnet-install, drop flaky setup-dotnet)' (#8) from ci/resilient-dotnet-setup into main cesnimda 2026-07-11 13:10:57 +02:00
  • fc356012e6 ci: install .NET via retrying dotnet-install.sh instead of setup-dotnet ci/resilient-dotnet-setup cesnimda 2026-07-11 13:02:37 +02:00
  • e90835b51e Merge pull request 'fix(deploy): retry publish after clearing NuGet caches on NU3008' (#5) from fix/deploy-nuget-integrity into main cesnimda 2026-07-06 01:12:06 +02:00
  • 4b38f7c164 ci: retry npm ci once on the runner's intermittent SIGSEGV fix/deploy-nuget-integrity cesnimda 2026-07-06 01:08:00 +02:00
  • 63e0300788 fix(deploy): retry publish after clearing NuGet caches on NU3008 cesnimda 2026-07-05 21:51:29 +02:00
  • 1badff1437 Merge pull request 'perf(gmail): batch CreateSuggestedJob N+1 + landing product preview' (#4) from feat/email-provider-migration into main cesnimda 2026-07-05 21:34:34 +02:00
  • aa19edbc49 feat(ui): add product preview (mockups) to landing page feat/email-provider-migration cesnimda 2026-07-05 21:23:51 +02:00
  • 96b9489d49 perf(gmail): batch the duplicate-message check in CreateSuggestedJob cesnimda 2026-07-05 21:21:36 +02:00
  • af420a7ad1 Merge pull request 'perf(analytics): project minimal columns in GetStats/GetAnalyticsOverview' (#3) from perf/wave1-perf into main cesnimda 2026-07-05 21:18:55 +02:00
  • 3d5ab8f32c feat(ui): add pricing section to landing page perf/wave1-perf cesnimda 2026-07-05 20:45:20 +02:00
  • c53d7978bb feat(email): introduce IEmailProvider seam + GmailProvider adapter cesnimda 2026-07-05 20:42:46 +02:00
  • 919f61dde6 feat(ui): public marketing landing page at "/" for logged-out visitors cesnimda 2026-07-05 20:25:43 +02:00
  • 0ca8c95372 merge: reconcile perf/wave1-perf with main (Wave 0 features) cesnimda 2026-07-05 20:16:40 +02:00
  • b8f8569e6e fix(hooks): stop infinite render loop in useViewResource cesnimda 2026-07-05 15:36:55 +02:00
  • 490c5b803e fix(auth): stop infinite /auth/me request loop when logged out cesnimda 2026-07-05 15:13:18 +02:00
  • 39266c0935 docs(perf): memory-leak investigation reports (no leak found) cesnimda 2026-07-05 14:59:28 +02:00
  • eed9b1fa80 fix(profile): revoke CV-preview blob URLs on unmount, not on every change cesnimda 2026-07-05 14:57:22 +02:00
  • e5e2c65709 feat(ui): adopt JobTrack mockup design tokens (indigo brand, light dashboard) cesnimda 2026-07-05 11:13:22 +02:00
  • 2989a6fa2c refactor(analytics): extract AnalyticsService from JobApplicationsController cesnimda 2026-07-05 10:51:08 +02:00
  • 824251d328 feat(ai): provider router (ollama|gemini|groq) for heavy CV calls cesnimda 2026-07-05 10:40:55 +02:00
  • b8ec268736 perf(db): add owner-prefixed hot-path indexes on JobApplications cesnimda 2026-07-05 10:30:44 +02:00
  • 6cb593ab5c perf(analytics): project minimal columns in GetStats/GetAnalyticsOverview cesnimda 2026-07-05 10:20:58 +02:00
  • 286579ceeb docs(remaster): record multi-tenant SaaS direction + multi-provider email docs/remaster-audit cesnimda 2026-07-05 10:13:29 +02:00
  • f0f178d77e docs(remaster): full-system audit + rebuild-vs-refactor decision cesnimda 2026-07-05 10:04:03 +02:00
  • 31373be841 Merge pull request 'fix(deploy): make bundled Ollama opt-in to avoid duplicate container' (#2) from fix/ollama-no-duplicate into main cesnimda 2026-07-03 15:06:23 +02:00
  • e1e508988a fix(deploy): make bundled Ollama opt-in to avoid duplicate container fix/ollama-no-duplicate cesnimda 2026-07-03 14:52:42 +02:00
  • 316ef9ac1a Merge pull request 'Merge Request — Wave 0 quick wins + Tier-1/Tier-2 features' (#1) from chore/wave0-quick-wins into main cesnimda 2026-07-03 11:14:14 +02:00
  • d61dd6310b fix(build): give the frontend build 1GB /dev/shm chore/wave0-quick-wins cesnimda 2026-07-03 10:53:06 +02:00
  • 3bd7b4b7e4 docs: add merge-request summary for review cesnimda 2026-07-03 04:29:27 +02:00
  • 30bb6a942d feat: installable PWA with mobile share-target capture cesnimda 2026-07-03 04:16:44 +02:00
  • fb11469a48 feat: quick-capture bookmarklet cesnimda 2026-07-03 04:12:36 +02:00
  • 5a9245cf74 docs: add security review of session changes (Phase 6) cesnimda 2026-07-03 03:56:58 +02:00
  • 2996441f52 perf: drop duplicated company-existence query in job Create cesnimda 2026-07-03 03:56:06 +02:00
  • bd51c245d3 test(security): lock tenant isolation on match-score and status-suggestion cesnimda 2026-07-03 03:55:12 +02:00
  • a1a3736cc4 feat(ui): human-confirmed status suggestion banner cesnimda 2026-07-03 03:52:57 +02:00
  • ae3505b877 feat: deterministic email-driven status suggestions cesnimda 2026-07-03 03:48:32 +02:00
  • 695fbd6d21 feat(ui): time-in-stage on the dashboard + localized funnel labels cesnimda 2026-07-03 03:43:17 +02:00
  • 45cbc8b1ab feat: time-in-stage analytics + pipeline-driven funnel cesnimda 2026-07-03 03:40:41 +02:00