Commit Graph

  • 10bac5eb91 ci: clone via docker-git.easysoft.ro:3000 (LAN DNS; drop git.easysoft.ro:3000 dependency) main staging claude 2026-06-24 09:51:31 +03:00
  • 65ae4b42da myai: document MSSQL host as mssql.easysoft.ro (DNS name) in the env template claude 2026-06-23 17:01:06 +03:00
  • 5aaf848423 chore: remove stray CV.pdf test artifact from repo root (unused, 284KB) claude 2026-06-18 19:20:21 +03:00
  • 9a33dc019a Promote staging->production: BuildKit CI, Compact JSON logging, consolidated compose + latest app code production claude 2026-06-18 19:14:59 +03:00
  • 62654978af ci: re-enable BuildKit (runner now has buildx plugin) claude 2026-06-18 18:09:35 +03:00
  • 7da084c174 ci: revert DOCKER_BUILDKIT (runner job env has no buildx plugin -> build failed) claude 2026-06-18 18:02:29 +03:00
  • 27f4cfe21e ci: enable BuildKit + let its GC manage the layer cache claude 2026-06-18 17:58:00 +03:00
  • 903fbcd143 ci: preserve Docker build cache (faster runner) claude 2026-06-18 17:36:59 +03:00
  • c5e1b7f687 ci: branch-driven deploys (staging/production branches), build the pushed commit claude 2026-06-18 16:29:07 +03:00
  • 9b33876c11 docs: replace template README with a proper one (intro, run, deploy, logging) claude 2026-06-18 16:04:23 +03:00
  • 2d5572725d docs: add Observability section to CLAUDE.md (Compact JSON logs->Loki); gitignore ACCESS.md claude 2026-06-18 15:46:46 +03:00
  • da1f90449e Merge observability/compact-json: standardize Serilog to Compact JSON (Application/Environment/AppVersion enrichment) claude 2026-06-18 10:59:13 +03:00
  • 2192c3f4c5 Logs: Compact JSON + aligned enrichment in shared StartupExtensions observability/compact-json claude 2026-06-17 11:03:55 +03:00
  • 492859f17f ci: prune images + build cache after build (prevent runner disk exhaustion) claude 2026-06-16 22:48:38 +03:00
  • 1920885835 Merge main into production: PR #55 — Fix CV keyword extraction prompt claude 2026-06-09 16:41:03 +03:00
  • a3567ce8e9 Merge pull request 'Fix CV keyword extraction — derive from candidate CV, not matched job' (#55) from feature/fix-keyword-extraction-prompt into main claude 2026-06-09 13:40:10 +00:00
  • b52ef8ddff Fix CV keyword extraction to reflect candidate identity, not matched job feature/fix-keyword-extraction-prompt claude 2026-06-09 16:38:02 +03:00
  • eb83d28ed5 Merge staging into production: PR #54 — Fix hardcoded user-facing strings claude 2026-06-08 22:34:35 +03:00
  • d2b12e39ec Merge PR #54: Fix hardcoded user-facing strings (Issue #53) claude 2026-06-08 22:34:28 +03:00
  • 1e8758796e Fix hardcoded user-facing strings — localize email fallbacks, API errors, AI parse messages feature/fix-hardcoded-strings claude 2026-06-08 22:32:03 +03:00
  • b6d9aea3bc Merge branch 'main' into production claude 2026-06-08 22:10:26 +03:00
  • ef2793448a Fix: declare language before jobLabel in CvMatcherController claude 2026-06-08 22:10:22 +03:00
  • 2b9132a3a9 Merge branch 'main' into production claude 2026-06-08 22:08:32 +03:00
  • cbf06031e8 Merge pull request 'Fix language consistency in job search and match emails' (#52) from feature/language-consistency into main claude 2026-06-08 19:08:28 +00:00
  • 90f540139a Fix language consistency in job search and match emails feature/language-consistency claude 2026-06-08 22:07:15 +03:00
  • e5bf56cc4d Merge branch 'main' into production claude 2026-06-08 21:48:24 +03:00
  • 71d5ac8e06 Remove environment name prefix from email subjects claude 2026-06-08 21:47:21 +03:00
  • c2082d6729 Suppress environment prefix in email subjects on Production claude 2026-06-08 21:45:29 +03:00
  • 8f58708cd9 Revert "Suppress environment prefix in email subjects on Production" claude 2026-06-08 21:45:45 +03:00
  • 06dd0140d6 Suppress environment prefix in email subjects on Production claude 2026-06-08 21:45:29 +03:00
  • 0aee7c4ed6 Changes claude 2026-06-08 21:31:35 +03:00
  • cd661fe613 Merge pull request 'Staging to Production' (#51) from main into production claude 2026-06-08 18:28:46 +00:00
  • 6f1d8992ab Merge pull request 'Link pageFetcher.PageFetches to cvSearch.JobSearchSessions' (#50) from feature/page-fetch-session-link into main claude 2026-06-08 16:57:07 +00:00
  • 2d9ffc9c2b Link pageFetcher.PageFetches to cvSearch.JobSearchSessions feature/page-fetch-session-link claude 2026-06-08 19:56:13 +03:00
  • 9fbad722fc Merge pull request 'Add Email and ClientIpAddress audit fields to cvSearch.JobSearchSessions and JobSearchResults' (#48) from feature/job-search-audit-fields into main claude 2026-06-08 16:21:46 +00:00
  • 473c36d65f Store match-time ClientIpAddress on cvSearch.JobSearchTokens feature/job-search-audit-fields claude 2026-06-08 19:20:02 +03:00
  • 292d19d5ed Populate JobText from fetched page content in JobSearchResults claude 2026-06-08 19:13:10 +03:00
  • d56729de42 Add Email and ClientIpAddress audit fields to cvSearch.JobSearchSessions and JobSearchResults claude 2026-06-08 19:11:50 +03:00
  • 79a3dec679 Merge pull request 'Add Email and ClientIpAddress audit fields to cvMatcher.Results' (#46) from feature/result-email-and-ip into main claude 2026-06-08 15:58:18 +00:00
  • 02d2b1e510 Add Email and ClientIpAddress audit fields to cvMatcher.Results feature/result-email-and-ip claude 2026-06-08 18:56:36 +03:00
  • 3c3451b198 Merge branch 'main' into staging claude 2026-06-08 18:43:56 +03:00
  • a83f6f705f Remove UseHeadlessBrowser from JobProvider — all fetches now go via page-fetcher-api claude 2026-06-08 18:43:42 +03:00
  • b68cf942a8 Merge branch 'main' into staging claude 2026-06-08 18:37:00 +03:00
  • 61805e2fb5 Merge pull request 'feat: page-fetcher-api centralised Playwright page fetcher' (#44) from feature/page-fetcher-api into main claude 2026-06-08 15:36:44 +00:00
  • dcfc50ff32 Fix Docker builds: upgrade Refit to 11.0.1, add page-fetcher-api-models to Dockerfiles feature/page-fetcher-api claude 2026-06-08 18:35:41 +03:00
  • b1ed1cb201 Rename EmailApi.Models.* namespace to Email.Models.* in email-api-models claude 2026-06-08 18:06:38 +03:00
  • e1f171168e Align email-api and page-fetcher-api namespaces to Api.* convention claude 2026-06-08 18:04:03 +03:00
  • ae2bc9b902 Move SmtpSettings and PageFetcherSettings into their respective models projects claude 2026-06-08 18:00:44 +03:00
  • 30a8df431f Move PageFetcherSettings back to page-fetcher-api/Settings/, matching SmtpSettings pattern claude 2026-06-08 17:56:21 +03:00
  • 95b0cfa0a9 Move PageFetcherSettings to page-fetcher-api-models, consistent with EmailApiSettings pattern claude 2026-06-08 17:54:08 +03:00
  • 20b13647de Move PageFetcherSettings to Settings/ folder, consistent with email-api pattern claude 2026-06-08 17:51:51 +03:00
  • df011f2a03 Fix PageFetcherApi BaseUrl default to use Docker service name, not container name claude 2026-06-08 17:49:00 +03:00
  • 3414c61cea Commit claude 2026-06-08 17:47:17 +03:00
  • 898dd09d50 feat: add page-fetcher-api — centralised Playwright page fetcher claude 2026-06-08 17:43:56 +03:00
  • 4de6f1db45 Merge branch 'main' into staging claude 2026-06-08 17:30:49 +03:00
  • 1222a86eb7 Fix file:// URL bug in HtmlJobSearcher — skip non-HTTP(S) URLs claude 2026-06-08 16:57:52 +03:00
  • 2e9069cbdb Fix file:// URL bug in HtmlJobSearcher — skip non-HTTP(S) URLs claude 2026-06-08 16:57:52 +03:00
  • c89df975bd Add searched location to job search results email claude 2026-06-08 15:54:38 +03:00
  • 709c0ac4c3 Merge pull request 'Fix job search: location filtering, keyword quality, anchor filter bypass' (#42) from feature/job-search-location-keywords into main claude 2026-06-08 12:51:16 +00:00
  • 99e5cfb76b Fix job search: location filtering, keyword quality, anchor filter bypass feature/job-search-location-keywords claude 2026-06-08 15:45:45 +03:00
  • 91b2baa445 Fix email-api middleware order: API key check before swagger claude 2026-06-01 22:41:29 +03:00
  • 0f64cb8d99 Fix email-api Dockerfile: add missing shared-data COPY claude 2026-06-01 22:30:25 +03:00
  • b67e926c5f Fix Serilog email sink: configure in code, not JSON config claude 2026-06-01 22:25:26 +03:00
  • f7d856147e Escalate provider fetch failures to Error for alert emails claude 2026-06-01 22:03:46 +03:00
  • 8679bd1efd Fix Serilog email sink config for v4 API breaking changes claude 2026-06-01 21:57:06 +03:00
  • 1bcf95d8d4 Add download rate limit policy to template and docker-compose claude 2026-06-01 20:40:25 +03:00
  • 73f67d1342 Protect FileDownloadController with reCAPTCHA v3 and rate limiting claude 2026-06-01 20:37:44 +03:00
  • 650505c08d Merge pull request 'Fix Outlook email layout and move all HTML/prompts out of code' (#38) from main into staging claude 2026-06-01 17:30:18 +00:00
  • 4066ab5f3f Remove duplicate html.job-search.* rows from email.Templates claude 2026-06-01 20:22:29 +03:00
  • 7a316b4a45 Move hardcoded HtmlPage shell into html.job-search.shell DB template claude 2026-06-01 20:17:58 +03:00
  • 808a4901d9 Add keywords field to AI CV-match system prompt claude 2026-06-01 20:13:00 +03:00
  • b5b654532c Fix HTML shell templates to use table-based layout (Outlook-safe) claude 2026-06-01 20:06:55 +03:00
  • 2838885e22 Fix email templates for Outlook compatibility and move HTML out of code claude 2026-06-01 20:01:58 +03:00
  • 8f90a4cfda Reduce email match table width to 500px max-width, centered claude 2026-06-01 19:18:26 +03:00
  • 978dd3a069 Update email templates to HTML format and fix EmailApiEmailSender claude 2026-06-01 19:16:02 +03:00
  • f9530b168f Restore AddHtmlShellTemplates migration with copyright symbol fix claude 2026-06-01 18:37:26 +03:00
  • 9cb38e5bc8 Create separate migration for HTML shell templates claude 2026-06-01 17:55:10 +03:00
  • d4c05d7d44 Add HTML email shell templates to email InitialSchema migration claude 2026-06-01 17:36:40 +03:00
  • e3e088a365 WIP: Add automatic seeding to migrations (SQL not executing yet) claude 2026-06-01 17:14:54 +03:00
  • b114156e9c Return 500 errors for missing email templates and AI prompts claude 2026-06-01 16:58:11 +03:00
  • 64e003a639 Use language-specific AI prompts instead of wildcard substitution claude 2026-06-01 16:56:29 +03:00
  • 7ea59d0940 Seed AI prompt for CV matching in cvMatcher InitialSchema migration claude 2026-06-01 16:53:45 +03:00
  • 823cbecb84 Use raw SQL for template seeding in email InitialSchema migration claude 2026-06-01 16:50:23 +03:00
  • bf9b35eda2 Seed email templates in InitialSchema migration to fix 0% matches claude 2026-06-01 16:46:33 +03:00
  • dc3051f447 Consolidate all migrations into single InitialSchema migrations claude 2026-06-01 16:31:05 +03:00
  • bd1d4cf792 Add migration to rename EmailTemplates table to Templates claude 2026-06-01 16:22:26 +03:00
  • 0bc860b1a7 Rename EmailApiDbContext to EmailDbContext and EmailTemplates table to Templates claude 2026-06-01 16:21:32 +03:00
  • 070aa329fe Add warning log for duplicate key violations in SaveMatchAsync claude 2026-06-01 16:16:54 +03:00
  • 87de7d3f77 Fix duplicate key violation in CvMatchResults by updating unique constraint to 3 columns claude 2026-06-01 16:13:58 +03:00
  • 8b143dcb12 revert: sync DbContext and ModelSnapshot to match current database schema (2-column index) claude 2026-06-01 16:05:47 +03:00
  • 6bb00163ae feat(migrations): add 3-column unique constraint for Results (CvDocumentId, JobDocumentId, Language) claude 2026-06-01 16:00:37 +03:00
  • a04e35bd82 fix(context): update unique index to include Language column claude 2026-05-29 14:18:22 +03:00
  • 06bec9b0ae fix(results-schema): include Language in unique constraint for CvMatchResults claude 2026-05-29 14:14:00 +03:00
  • e38f40732f feat(providers): add headless browser scraping via Playwright for SPA job sites claude 2026-05-29 13:42:52 +03:00
  • 209325ace5 fix(providers): correct bestjobs.eu job link filter pattern claude 2026-05-29 13:16:35 +03:00
  • 5ae65642c4 Merge pull request 'feat: move job providers to DB and suppress job-search link when none enabled' (#36) from feature/job-providers-db-and-link-guard into main gelu 2026-05-29 10:07:16 +00:00
  • 9cf3db089d fix(cv-search-job): separate keyword badges with whitespace in results email claude 2026-05-29 13:05:33 +03:00
  • e5b6f19c1a chore: remove orphaned project directories left over from renames claude 2026-05-29 12:49:01 +03:00
  • 9bedf57f39 fix(migrations): replace hardcoded schema strings with MigrationConstants.SchemaName claude 2026-05-29 12:46:41 +03:00
  • b78ede23cf feat(job-search): extract keywords from LLM match call instead of heuristics claude 2026-05-29 12:44:13 +03:00