Amruth Pillai
a27425e350
Merge remote-tracking branch 'origin/main' into feat/applications
2026-07-05 15:17:23 +02:00
Amruth Pillai
20c803e934
feat(export): separate resume/cover-letter downloads, redesign dialog, add Markdown export ( #3217 )
...
* feat(export): separate resume/cover-letter downloads, redesign dialog, add Markdown
Let people export the resume and cover letter as distinct documents, and add a
Markdown format alongside PDF / DOCX / JSON (handy for AI agents).
- Server/API: scope PDF generation and download URLs to a resume/cover-letter target.
- Export domain: getResumeExportData + resumeHasCoverLetter in @reactive-resume/resume.
- Redesign the download dialog: one global "What to export" scope toggle (Tabs) plus
flattened per-format rows, reusing existing UI components and design language.
- Add Markdown export (@reactive-resume/resume/markdown) with a small tiptap-HTML converter.
- Fix blank section headings in DOCX and Markdown by injecting the locale-aware
section-title resolver (titles are stored empty and resolved at render time).
- Locale catalogs updated for the new strings.
* test(e2e): open the download dialog before exporting JSON
The JSON export moved into the redesigned download dialog, so the spec now opens
the dialog from the Export sidebar section before clicking "Download JSON".
2026-07-05 14:40:49 +02:00
Amruth Pillai
893df25aff
feat(applications): job application tracker with AI copilot
...
Add an Applications module at /dashboard/applications: pipeline board
(dnd-kit), table view with bulk actions, Insights (fit tiles, funnel,
sources, shareable funnel-flow SVG), campaigns, tags, CSV import, and
Add/Edit/Detail slide-overs. Each application links a live Reactive
Resume.
AI "Application Copilot" (applications.ai.*): job-posting autofill,
resume↔job match score (fit ring), resume tailoring, and cover-letter /
follow-up drafting — via the user's configured provider.
Board cards + table rows get context menus (edit / move / archive /
delete). Charts are CSS/SVG (no new chart dep); adds a UI Checkbox.
Also includes local TanStack devtools setup and toolchain bumps.
Claude-Session: https://claude.ai/code/session_01TEeRHnEayw2MFCShFRyL5f
2026-07-05 13:42:14 +02:00
Amruth Pillai
e15edafbff
fix(server): restore @uiw/color-convert runtime dependency
...
The utils color fallback restore re-added the @uiw/color-convert import
to packages/utils but not to apps/server, whose bundle keeps the package
external. Production server startup failed with ERR_MODULE_NOT_FOUND,
breaking the E2E workflow on main. Re-add the dependency.
Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa
2026-07-04 22:40:36 +02:00
Amruth Pillai
a5935dee0f
refactor(utils): replace MONTH_NAMES array, drop @uiw/color-convert, use z.enum for localeSchema
...
Finding 1: Replace hand-rolled MONTH_NAMES[12] array with Intl.DateTimeFormat("en-US", {month:"long"}).
Finding 2: Drop @uiw/color-convert fallback — parseColorString already rejects the same inputs, return "#000000 " instead. Remove dep from utils and server package.json.
Finding 3: Replace 56 z.literal calls in z.union with z.enum([...]); identical parse behavior and inferred type.
Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa
2026-07-04 20:53:51 +02:00
Amruth Pillai
f2ec6a499f
refactor(server): replace hand-rolled withTimeout, merge web handlers, clean checks
...
- health.ts: swap hand-rolled withTimeout for es-toolkit's (fn-taking API); remove
redundant inner try/catches from checkDatabase/checkStorage since runCheck catches
all errors (findings 13, health cleanup)
- web.ts: merge handleWebApp/handleWebAppHead into one function; method is the only
difference — isHead determines body presence (finding 14)
- app.ts: collapse two separate GET/HEAD wildcard routes into app.on(["GET","HEAD"])
- Update web.test.ts and app.test.ts to drop handleWebAppHead references
Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa
2026-07-04 20:39:14 +02:00
Amruth Pillai
19470c8cd2
refactor(api,server): storage — sync S3 client, dead upload types, shared inferContentType
...
- S3StorageService: replace async createClient/getClient/clientPromise chain with a
synchronous constructor field; new S3Client() is synchronous (finding 7)
- uploadFile: delete speculative screenshot/pdf upload types (never called); hardcode
picture key and simplify to 3 lines (finding 6)
- Export inferContentType from @reactive-resume/api/features/storage (finding 8)
- uploads.ts: import inferContentType from storage instead of local duplicate; inline
buildResponseHeaders into handleUpload (findings 11, 12)
Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa
2026-07-04 20:33:34 +02:00
Amruth Pillai
d87c6758ab
chore: update dependencies
2026-07-04 19:06:31 +02:00
Amruth Pillai
a4999c04af
refactor: remove dead code, unused exports and redundant dependencies
...
- drop dotenv (Node 24 process.loadEnvFile) and dompurify (only used by dead code)
- delete unused ui components/hooks (card, progress, checkbox, use-confirm, use-prompt)
- delete dead sanitizeHtml/sanitizeCss, url-security helpers, patch-resume tool,
schema/page, createResumePatches, patch-proposal preview builder, fonts fallback helpers
- inline single-caller wrappers (flags service, auth getSession, pdf renderer passthrough)
- deduplicate template color helpers into shared/color-helpers
- unexport 50+ internal-only symbols, remove dead export-map entries
- replace hand-rolled unique()/useIsMobile with Set spread and usehooks-ts
2026-07-03 20:04:36 +02:00
Amruth Pillai
d3735ebe27
chore: update dependencies
2026-06-29 09:09:00 +02:00
Amruth Pillai
37faf592b7
chore: update dependencies
2026-06-17 10:40:23 +02:00
Amruth Pillai
042d076efa
chore: update dependencies
2026-06-05 23:35:23 +02:00
Amruth Pillai
8e72311bc6
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-06-01 10:31:53 +02:00
Amruth Pillai
a8c70d784c
fix: typecheck
2026-06-01 10:31:25 +02:00
Amruth Pillai
0df7f21130
feat: implement download_resume_pdf mcp tool
2026-06-01 10:26:28 +02:00
Lihan YANG
d09ad2cdc0
Urgent fix server app version dev ( #3117 )
...
* fix(server): avoid app version global in MCP dev
* fix(server): use runtime-safe app version metadata
2026-05-29 00:13:45 +02:00
Amruth Pillai
c6a654191c
feat: improvements to custom styles
2026-05-27 22:16:14 +02:00
Amruth Pillai
8461aa65d5
chore: remove react-doctor from package scripts and update task dependencies in turbo.json
2026-05-27 11:09:33 +02:00
Amruth Pillai
b04eef1479
feat: implement style rules
2026-05-27 10:57:33 +02:00
Amruth Pillai
8da780c868
feat: update links for improved accessibility
2026-05-26 13:09:30 +02:00
Amruth Pillai
7eea6675c0
chore: update dependencies
2026-05-26 10:09:58 +02:00
Amruth Pillai
6ec4da7914
chore: update dependencies
2026-05-25 15:44:40 +02:00
Amruth Pillai
39e88dd365
chore: lint using react-doctor, update translations, dynamic imports
2026-05-21 09:56:26 +02:00
Amruth Pillai
3596102c63
chore: update dependencies
2026-05-20 23:12:39 +02:00
Amruth Pillai
62f8270b3e
Squashed commit of the following:
...
commit b2b0470a1d9267d042ec0ac66523c6635bf5b199
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 13:13:38 2026 +0200
chore: update .gitignore to include .vite-hooks and modify pnpm-lock.yaml for dependencies
commit d28fadb5cd8706c874e616102878b4a394ec84c1
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 13:08:04 2026 +0200
fix: remove timestamp conflict guard
commit c6998d9dbab19d09d3c8054feef1d2e4117555eb
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 12:11:51 2026 +0200
chore(release): v5.1.5
commit f33d168711804880e1f12e88d24290aae16cc258
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 11:58:35 2026 +0200
revert: compose.yml
commit d961e6535811a10c335525fb33a08d03e737278d
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 11:58:08 2026 +0200
refactor(agent): replace 'revert' terminology with 'restore' for clarity, resolves #3086
commit 17f351171be218e33f01c469d95e4164d4c8dc57
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 11:10:41 2026 +0200
refactor(pdf): simplify sidebar section filtering and update summary feature logic
commit d55179b9d76879e3204de185e8b53fadd0a107ed
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 09:53:37 2026 +0200
chore: update pnpm-lock.yaml and turbo.json
commit 7cade6980e1a04352536bd44ef773f338c4ef599
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 09:38:30 2026 +0200
fix(polyfill): add tested polyfill for Map Upsert methods
commit 26d175bb9c53d93225d1e907678445252c13d660
Merge: 1cf33dc6c 5b1297fa2
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 09:23:29 2026 +0200
Merge remote-tracking branch 'origin/main' into feat/explore-hono-orpc-migration
# Conflicts:
# packages/api/src/services/agent-url.ts
# packages/runtime-externals/package.json
commit 1cf33dc6c9d81735730ad656e16dab6501c6d6a1
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Tue May 19 09:22:12 2026 +0200
chore: preserve branch changes before main sync
commit b380a4b00fdbcdd81ff4f8ef72b330fd027ccda5
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Mon May 18 07:50:28 2026 +0200
chore: lot of fixes for monorepo migration
commit 8fcf0ec64e1c29572ebaff494338368bfcf75760
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 13:57:17 2026 +0200
chore: update knip version and refine web app routing with new SEO endpoints
commit 234e68086ff15610a93877354c98e2c020364533
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 12:10:06 2026 +0200
refactor(auth): update OAuth routes to include API prefix and remove unused schema endpoint
commit 91c84b9a8496b0ce21d71cae9f8b2a027638c9ac
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 11:54:29 2026 +0200
chore: update dependencies and enhance PWA metadata in web app
commit 150117d4a5a9dd6cd92c64891aad8cae90f6a7af
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 11:12:35 2026 +0200
docs: revise manifest-only pwa testing scope
commit 6b939a55661aec9dd8122b184e4b60a5c7325fb5
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 11:11:33 2026 +0200
docs: add manifest-only pwa design
commit 1422e1fc96c400948b273210a1067251087d15d4
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 11:05:04 2026 +0200
chore(dev): simplify server proxy config
commit bc2ff5a9f6fda41e6c40333c8f163aa23a6c5e48
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 11:04:50 2026 +0200
docs: add unsafe oauth redirect plan
commit 445359ebe9b96c1515bf1c4c3f73ba8a8448ec12
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 11:04:34 2026 +0200
feat(auth): add unsafe oauth redirect flag
commit 73fffdd24598e56b2793f7657919bc794835892e
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 10:55:02 2026 +0200
docs: design unsafe oauth redirect flag
commit c0066aa19c15fc8a4c8e5179ed49889c117519f4
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 10:22:04 2026 +0200
chore: update translation source paths
commit 9033da082418d252aafd6c2eed72f71f014be3d9
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 10:09:25 2026 +0200
refactor(arch): react spa + hono migration
commit 6f27936c11bda895977dc63ee550c3346d4ce24b
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Fri May 15 01:10:47 2026 +0200
docs: add docker nightly tagging design
commit ecc1fd9a88a0ee1dca2f1977dfc17f74527fe1da
Author: Amruth Pillai <im.amruth@gmail.com >
Date: Thu May 14 20:05:44 2026 +0200
feat: migrate to hono spa server
2026-05-19 13:14:21 +02:00
Amruth Pillai
cad390fa13
initial commit of v5
2026-01-19 23:31:54 +01:00
y8a5y
d7409832ab
fix(Resume Controller): address CI lint issue
2025-12-22 10:26:36 +01:00
y8a5y
2e11e64881
fix(Resume Controller): address CodeRabbit nitpick nb1
2025-12-21 22:42:48 +01:00
y8a5y
62c09ea142
feature(Resume Controller): add route to get Resume without incrementing view count
2025-12-21 14:35:24 +01:00
y8a5y
589bd2c162
refacto(Resume Controller): reflecting previous change in controller
2025-12-21 14:34:57 +01:00
y8a5y
4c7ed8ea0d
refacto(Resume Service): move view count increment outside of findOne
2025-12-21 14:30:02 +01:00
Ofsen
51fcf13d37
chore(puppeteer): using puppeteer-core instead of puppeteer
2025-11-03 20:24:57 +01:00
Amruth Pillai
8803101dcd
fix for long waiting times
2025-10-09 00:10:25 +02:00
Amruth Pillai
d9b56cfb5b
- fixes #2401
2025-10-08 21:49:07 +02:00
Amruth Pillai
ed5cb7f17b
bump version to v4.4.8
2025-10-01 11:11:59 +02:00
Amruth Pillai
c7f8daaff3
Merge pull request #2375 from Avinash99b/main
...
fix(printer.service.ts): fix pdf rendering, issue #2374 solved
2025-10-01 11:01:31 +02:00
Amruth Pillai
6d37769e38
Update dependencies and refactor icon imports across the codebase
2025-10-01 10:38:50 +02:00
Amruth Pillai
c525f8d2cc
fix security issue, with notes being visible in public api response
2025-10-01 10:07:04 +02:00
Avinash Bathula
d8e0ced54c
fix(printer-service): ensure profile image fully loads before PDF render
2025-09-02 08:25:41 +05:30
Avinash Bathula
8e9b409bae
fix(printer.service.ts): fix pdf rendering, issue #2374 solved
2025-09-02 07:45:20 +05:30
Amruth Pillai
4e91a2e2ef
fix build error for ci workflow
2025-07-03 15:40:09 +02:00
Amruth Pillai
7054623678
chore(dependencies): update TypeScript ESLint and Vitest to latest versions
...
- Bump @typescript-eslint packages to 8.23.0
- Update Vitest and related packages to 2.1.9
- Minor version upgrades for ts-api-utils and other related dependencies
2025-02-03 19:51:39 +01:00
Amruth Pillai
9406d78653
- include more local fonts, such as Times New Roman and Arial ( fixes #2170 )
...
- remove embedding fonts to PDF as it wasn't doing anything
2025-01-25 00:47:39 +01:00
Amruth Pillai
4c90cc1838
fix security vulnerability with update password API route
2025-01-24 21:13:24 +01:00
Amruth Pillai
63db927924
- fixes #2153 , attempt to fix 401 unauthorized error when implementing OIDC
2025-01-15 16:32:43 +01:00
Amruth Pillai
a32def2086
fixes #2151 , apply secure cookie session only if using SSL (https)
2025-01-14 09:45:57 +01:00
Amruth Pillai
227870ac78
fix issues suggested by coderabbit
2025-01-13 16:22:29 +01:00
Amruth Pillai
33cb3dbd6a
ensure secure cookies are used in express-session
2025-01-13 16:04:27 +01:00
Amruth Pillai
eb7813ac6f
Implement OpenID Connect Authentication Strategy (works with Keycloak, Authentik etc.)
2025-01-13 15:56:29 +01:00
Amruth Pillai
0f8f2fe560
cleanup internal package resolution
2025-01-13 11:53:42 +01:00