Amruth Pillai
71aadbd73d
docs: update AGENTS.md with detailed codebase structure, environment setup, and common commands
2026-05-11 09:42:58 +02:00
Amruth Pillai
0713cf20d4
fix: filter invalid/empty section items and experience roles
2026-05-11 09:27:14 +02:00
Amruth Pillai
334ea48bc7
fix: enhance rich text handling in PDF generation
...
- Bump @tanstack/react-form version to 1.32.0 in package.json.
- Refactor rich-input component to simplify highlight configuration.
- Improve rich text HTML normalization to handle <mark> elements and apply styles correctly in PDF output.
- Update global CSS for WYSIWYG to adjust paragraph and list margins.
2026-05-11 09:04:42 +02:00
Amruth Pillai and Cursor Agent
69c23211a0
Fix award title and date layout ( #3029 )
...
* Fix award title date layout
Co-authored-by: Amruth Pillai <im.amruth@gmail.com >
* Keep award date inline across templates
Co-authored-by: Amruth Pillai <im.amruth@gmail.com >
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
2026-05-11 05:54:51 +02:00
Amruth Pillai
143aaa741b
fix(lapras): adjust lapras border color to fixed gray
2026-05-11 01:11:17 +02:00
Amruth Pillai
e4cc6a8e57
docs: add react-pdf-html prose spacing design
2026-05-11 01:00:46 +02:00
Amruth Pillai
92a0e3ddb8
feat: implement resume preview loading enhancements and add tests for preview components
2026-05-11 00:59:16 +02:00
Amruth Pillai
4ebe9e5a67
fix: enhance resume schema validation and improve slugify function for CJK input
2026-05-11 00:27:47 +02:00
Amruth Pillai
0abee1048c
fix(docs): update healthcheck test script on docs, resolves #3027
2026-05-11 00:09:07 +02:00
Amruth Pillai
83a407bc10
fix: add special hyphenation callback for Chinese script in PDF font registration
2026-05-10 23:54:37 +02:00
Amruth Pillai
02973a1eb1
fix: correct path for app source files in globals.css
2026-05-10 23:35:46 +02:00
Amruth Pillai
2e04e71f4a
fix: update build process to ensure clean output for web app
2026-05-10 23:27:06 +02:00
Amruth Pillai
978cbaf1f3
fix: run knip --fix to add unlisted dependencies
2026-05-10 22:12:35 +02:00
Amruth Pillai
3cd228bd84
chore: update postcss to version 8.5.14 and sort font weights in typography components
2026-05-10 22:09:37 +02:00
Amruth Pillai
64ac3ff328
fix: revert to default hyphenation method
2026-05-10 21:50:27 +02:00
Amruth Pillai
846b7856a7
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-05-10 20:46:31 +02:00
Amruth Pillai
7a60a42a04
chore: migrate from jsdom to happy-dom for testing environment
2026-05-10 20:46:28 +02:00
Amruth Pillai
b321e01658
Merge branch 'main' into feat/increase-test-coverage
...
# Conflicts:
# packages/ui/src/components/input-group.test.tsx
2026-05-10 20:05:00 +02:00
Amruth Pillai
6a01207b6b
test: add unit and component tests across the monorepo
...
Adds ~1000 tests to bring the previously-untested packages and apps
under coverage:
- packages/utils — string, color, date, file, level, locale, sanitize,
field, html, network-icons, rate-limit, url, url-security, monorepo,
resume/patch, resume/docx/link-utils, style helpers (~97% on the
testable utility files)
- packages/ui — 28 component test files plus the use-controlled-state,
use-mobile, use-confirm, use-prompt hooks (95% statements)
- packages/pdf — shared template helpers (filtering, columns, picture,
metrics, section-links, page-size, rich-text-html, section-title)
- packages/schema — resumeDataSchema, page, templates, default
- packages/fonts — expanded coverage on font helpers
- packages/ai — resume sanitize and extraction template
- packages/api — resume-access-policy
- apps/web — error-message, locale, theme, pwa, dialogs/store, and
the resume/move-item / section-actions / make-section-item helpers
Adds jsdom polyfills (ResizeObserver, IntersectionObserver,
scrollIntoView, matchMedia) and an explicit React Testing Library
cleanup hook to vitest.setup.ts so portal- and overlay-based components
work without per-test setup.
2026-05-10 20:00:07 +02:00
Amruth Pillai
2f6a8904e4
fix: enforce hasPassword to be a boolean
2026-05-10 19:56:50 +02:00
Amruth Pillai
56c9eb2ff4
fix(contact-list): resolves an issue where website label was uneditable
2026-05-10 19:30:09 +02:00
Amruth Pillai
33103536ae
fix: fallback for cjk fonts when italic font style not available
2026-05-10 17:35:32 +02:00
Amruth Pillai and Cursor Agent
a93e7bd190
docs: add AGENTS.md with Cursor Cloud development instructions ( #3024 )
...
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
2026-05-10 13:34:19 +02:00
Amruth Pillai
be9285aa33
chore(release): v5.1.2
2026-05-10 13:27:06 +02:00
Amruth Pillai
6787175a8a
feat(ai): implement an AI chat window for agentic resume building ( #3022 )
2026-05-10 13:23:32 +02:00
Amruth Pillai
42e83cc676
fix: improper rendering of text blocks in PDFs
2026-05-10 13:22:21 +02:00
Amruth Pillai and Claude
bdfb854602
fix: resolve storage healthcheck path via LOCAL_STORAGE_PATH env var ( #3004 )
...
* fix: resolve local data directory to /app/data in production Docker
In the official Docker image, cwd is /app/apps/web (set via WORKDIR), but
the data volume is mounted at /app/data. Without pnpm-workspace.yaml present
in the runtime image, findWorkspaceRoot() returns null, so getLocalDataDirectory()
fell back to <cwd>/data = /app/apps/web/data, which the node user has no
permission to create. This caused the storage healthcheck to fail with
EACCES.
Add a production fallback: when cwd ends in apps/web, resolve the data
directory to two levels up (matching /app/data in the official image).
Re-resolves #2990 .
https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf
* fix: replace apps/web heuristic with LOCAL_STORAGE_PATH env var
The previous fix special-cased a cwd ending in apps/web to land on /app/data,
but the heuristic could false-positive on any path with that suffix and was
fragile to Dockerfile changes. pnpm-workspace.yaml is never copied into the
runtime image, so the workspace-root walk was also dead code in production.
Replace the heuristic with an explicit LOCAL_STORAGE_PATH env var:
- Set LOCAL_STORAGE_PATH=/app/data in the Dockerfile (single source of truth).
- Add LOCAL_STORAGE_PATH to the env schema; storage and statistics services
pass it through to getLocalDataDirectory.
- getLocalDataDirectory now uses the override when set, else workspace root
(dev), else cwd/data.
- New Nitro plugin validates the resolved local data directory at startup
and refuses to boot with a clear error if it isn't writable, surfacing
permission issues immediately instead of at first upload/healthcheck.
- Document the new variable in .env.example and the Docker self-hosting docs.
https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf
* fix: address review feedback on storage path handling
- apps/web/plugins/2.storage.ts: use the default-import style for
node:fs/promises (matches the rest of the repo, sidesteps any
named-export concerns for fs.constants).
- packages/env/src/server.ts: reject relative LOCAL_STORAGE_PATH values
via a zod refinement. Relative paths would be resolved against cwd,
which differs between dev and Docker — exactly the same surprise the
original bug had. Failing fast at config validation time gives a
clear error before the server boots.
https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf
* fix: update data volume configuration in Docker Compose and enhance Nitro plugin
* fix: remove "Can I customize the templates?" FAQ entry from multiple language files
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-05-08 16:05:47 +02:00
Amruth Pillai and Claude
e42af3cd04
Remove "Can I customize the templates?" FAQ from homepage ( #3000 )
...
https://claude.ai/code/session_013T4jd8fPiWR5jMw2yxwgez
Co-authored-by: Claude <noreply@anthropic.com >
2026-05-08 13:06:27 +02:00
Amruth Pillai
f3375adecb
chore(release): v5.1.1
2026-05-08 13:05:55 +02:00
Amruth Pillai
d9e3289f69
chore: remove unused dependencies and update locale references in resume components
2026-05-08 13:01:18 +02:00
Amruth Pillai
296f7951ec
fix: make nested lists work in PDF renderer, resolves #2993
2026-05-08 12:29:16 +02:00
Amruth Pillai
e4a574ccd0
chore: remove tests
2026-05-08 11:58:25 +02:00
Amruth Pillai
26ca5c29c3
fix: auto-load .env, resolves #2987
2026-05-08 11:57:59 +02:00
Amruth Pillai
2cd774dab7
feat: implement free-form resume page formats, resolves #2991
2026-05-08 11:28:18 +02:00
Amruth Pillai
9cbb30d3ba
fix: resolves #2990 , revert the local storage path to /app/data
2026-05-08 11:10:24 +02:00
Amruth Pillai
ed42f181ca
fix: update dialog component styles for improved responsiveness and overflow handling
2026-05-08 10:39:34 +02:00
Amruth Pillai
21cadd76fe
fix: update sample resume picture URL to point to a valid image
2026-05-08 02:37:01 +02:00
Amruth Pillai
4c771307e0
fix: fallback to "IBM Plex Serif" when unknown font encountered
2026-05-08 00:51:07 +02:00
Amruth Pillai
6d54ffa88b
fix: font registration to support italic styles in PDF generation
2026-05-08 00:29:10 +02:00
Amruth Pillai
5042ad9d1f
feat: add PDF download endpoint and export createLocalizedResumeDocument function
2026-05-08 00:05:55 +02:00
Amruth Pillai
3b82aa90f3
fix: resolves #2793 , accept looseObject from resumeDataSchema
2026-05-07 22:50:45 +02:00
Amruth Pillai
524a7a6f4e
fix: resolves #2949 , remove route preloading
2026-05-07 22:46:32 +02:00
Amruth Pillai
36a16f6483
fix( #2983 ): fixes #2983 , experience role progression causes re-renders
2026-05-07 22:30:47 +02:00
Amruth Pillai
e320f3a920
chore: remove @tanstack/zod-adapter
2026-05-07 22:22:58 +02:00
Amruth Pillai
d5891ff035
fix( #2978 ): implement inlineLink functionality
2026-05-07 21:47:00 +02:00
Amruth Pillai
891ce60270
fix( #2984 ): add prose styles to rich-input editor
2026-05-07 21:43:07 +02:00
Amruth Pillai
1b0bb067b6
fix( #2976 ): update header name line height across multiple templates
2026-05-07 21:34:01 +02:00
Amruth Pillai
ced765e229
fix( #2978 ): show underline on all links
2026-05-07 21:29:10 +02:00
Amruth Pillai
023cb4a594
fix( #2981 ): runtime error when enabling 2fa
2026-05-07 21:23:53 +02:00
Amruth Pillai
faba604813
ci: do not run lingui:extract on autofix
2026-05-07 16:51:59 +02:00
Amruth Pillai
4ac16df3d6
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-05-07 16:49:48 +02:00
Amruth Pillai
4ae3e1a230
fix: update resume ID type from uuid to text and use generateId for ID generation
2026-05-07 16:49:44 +02:00
Amruth Pillai
92a3916e76
fix: convert postgres uuid to text columns, to capture old cuid resume IDs
2026-05-07 16:48:25 +02:00
Amruth Pillai
cf957692fc
chore: update phosphor-icons-react-pdf to version 0.1.3 in package.json and pnpm-lock.yaml
2026-05-07 16:31:26 +02:00
Amruth Pillai
64492ce2f1
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-05-07 15:19:19 +02:00
Amruth Pillai
4165c10a71
fix: readme banner image url
2026-05-07 15:19:13 +02:00
Amruth Pillai
13787db34a
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-05-07 15:16:34 +02:00
Amruth Pillai
6e447d1bcc
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-05-07 15:14:21 +02:00
Amruth Pillai
148d564fe8
fix: readme banner image url
2026-05-07 15:14:20 +02:00
Amruth Pillai
50ba37a27f
v5.1.0 ( #2970 )
...
* chore(release): v5.1.0
* feat: implement resume thumbnails
* fix: remove unused mcp tools
* docs: fix formatting of docs
2026-05-07 15:12:33 +02:00
Amruth Pillai
4e58ea6c8a
chore: remove .devcontainer
2026-04-30 02:07:58 +02:00
Amruth Pillai
fd892b0e14
fix: make the dash plugin optional
...
- fixes #2947
2026-04-29 23:30:07 +02:00
Amruth Pillai
dc4830d41b
chore: remove getSubsequentPageTopMarginStyle
2026-04-29 21:42:20 +02:00
Amruth Pillai
480e9a2612
fix: switch back to csp-report-only
2026-04-29 21:40:57 +02:00
Amruth Pillai
4cf5cdd181
fix: remove timeout to check data-wf-loaded
2026-04-29 21:38:40 +02:00
Amruth Pillai
b9894c687c
fix: handle /assets/ requests before it reaches orpc
2026-04-29 20:40:28 +02:00
Amruth Pillai
e035088269
fix: add-to-cache-list-conflicting-entries
2026-04-29 20:15:15 +02:00
Amruth Pillai
1fbe89bc01
update ipAddressHeaders
2026-04-29 19:55:31 +02:00
Amruth Pillai
4b071f2db7
update ipAddressHeaders
2026-04-29 19:54:21 +02:00
Amruth Pillai
80ca3a8875
update Dockerfile
2026-04-29 19:34:41 +02:00
Amruth Pillai
e95be536fa
remove CSP reporting
2026-04-29 19:19:36 +02:00
Amruth Pillai
d6287dbd65
better rate limiting, verbose logging for username/slug path
2026-04-29 18:44:07 +02:00
Amruth Pillai
47abce351b
sync translations with crowdin
2026-04-27 15:22:13 +02:00
Amruth Pillai
8f6c65b7fd
chore(release): 🚀 v5.0.20
2026-04-27 15:21:07 +02:00
Amruth Pillai
5d8126d4b0
feat: combine settings pages into a single integrations page
2026-04-27 12:56:15 +02:00
Amruth Pillai
b87f200767
feat: Add better email templates for password reset and email verification.
2026-04-27 10:45:44 +02:00
Amruth Pillai
73ec8b2ffb
chore: release version 5.0.20 with new Meowth resume template and updated translations
2026-04-27 08:52:18 +02:00
Amruth Pillai
e1bccbcc93
chore: update dependencies, cleanup exports (knip)
2026-04-27 08:48:35 +02:00
Amruth Pillai
623ca5c675
allow loopback to localhost on mcp, only for local MCP clients
2026-04-26 10:59:10 +02:00
Amruth Pillai and Claude
76e00ae019
Revert "fix(resume): prevent orphaned section headings at page break ( #2851 )" ( #2920 )
...
This reverts commit 775f625f6e .
Co-authored-by: Claude <noreply@anthropic.com >
2026-04-26 01:23:22 +02:00
Amruth Pillai
ff0ef12ecc
Merge branch 'main' of github.com:amruthpillai/reactive-resume
2026-04-26 01:08:00 +02:00
Amruth Pillai
1bcb2e2af6
update changelog
2026-04-26 01:07:58 +02:00
Amruth Pillai
bbc38d2f09
implement logic from #2853 , thanks to @trigger-xyz
2026-04-26 00:57:50 +02:00
Amruth Pillai
e05ae42fbb
Remove "Reactive Resume" translations from multiple language files to streamline localization efforts.
2026-04-26 00:33:45 +02:00
Amruth Pillai
9b3916d43e
chore: ⬆️ update dependencies
2026-04-25 23:34:19 +02:00
Amruth Pillai
d0af9f4b4f
test(security): cover url validation and form edge cases
...
Add and update tests for new security utilities and tightened UI behavior to prevent regressions in validation and error handling paths.
Made-with: Cursor
2026-04-25 15:31:19 +02:00
Amruth Pillai
08e9c80037
refactor(ui): improve error handling and input safety in app flows
...
Normalize frontend error rendering and tighten input/path handling across auth, builder, dashboard, and shared components for more resilient UX behavior.
Made-with: Cursor
2026-04-25 15:31:13 +02:00
Amruth Pillai
a42dbcd452
feat(security): harden auth, oauth, and printer endpoints
...
Add stricter URL and redirect validation, endpoint rate limiting, safer defaults for printer and compose config, and CSP protections across server and API surfaces.
Made-with: Cursor
2026-04-25 15:31:06 +02:00
Amruth Pillai
d3102565e4
chore(i18n): sync translation catalogs
...
Update locale catalogs to include the latest extracted strings used by the recent auth and security UX updates.
Made-with: Cursor
2026-04-25 15:30:51 +02:00
Amruth Pillai
c0387298c5
docs(self-hosting): refresh docker and setup guidance
...
Clarify self-hosting, migration, and quickstart instructions to reflect the new secure defaults and deployment flow.
Made-with: Cursor
2026-04-25 15:30:47 +02:00
Amruth Pillai
9e1e593dc4
add SECURITY.md
2026-04-25 11:29:27 +02:00
Amruth Pillai
849aad6497
allow for running dev environment inside docker
2026-04-25 11:26:02 +02:00
Amruth Pillai
847d69b621
pin vite-plus versions to 0.1.19
2026-04-25 10:53:19 +02:00
Amruth Pillai
c6e8df0a00
- Pinned some packages to specific versions to avoid potential security vulnerabilities through transitive dependencies. (through running pnpm audit)
...
- Updated dependencies and lockfile.
- Synced translation catalogs from Crowdin.
2026-04-22 15:15:10 +02:00
Amruth Pillai
7df9b1e4b5
autocomplete passkey, if exists
2026-04-14 15:04:19 +02:00
Amruth Pillai
82cb6e7590
update translations for passkeys
2026-04-14 14:40:07 +02:00
Amruth Pillai
b0b0d27c1f
try again
2026-04-14 12:15:01 +02:00
Amruth Pillai
b12d1184bc
switch to crowdin github action
2026-04-14 11:53:20 +02:00
Amruth Pillai
d6e0d9ac61
switch to crowdin github action
2026-04-14 11:50:07 +02:00
Amruth Pillai
c19b9746c8
📦 v5.0.18 - https://docs.rxresu.me/changelog (Passkeys Support)
2026-04-14 10:51:04 +02:00