- Added a ref to track if the user has selected a prompt.
- Updated prompt selection logic to prevent overriding the default prompt if the user has already made a selection.
- Ensured the dropdown button is explicitly set as a button type for better accessibility.
- Created a custom dropdown component for selecting prompt options.
- Implemented prompt configuration endpoints in the backend.
- Added new prompt templates for resume improvement with different tailoring intensities.
- Updated frontend settings and tailor pages to utilize the new prompt configuration.
- Enhanced internationalization support for prompt options in multiple languages.
Previously, clicking "Test Connection" after selecting OpenRouter and entering
an API key would fail with "Provider: openai | Model: gpt-4o-mini | API key not
configured" because the test endpoint only read from saved config, not the form.
Changes:
- Backend: /llm-test endpoint now accepts optional request body with config values
- Frontend: testLlmConnection() sends current form values to backend
- Frontend: Settings page passes provider, model, api_key, api_base to test
- Backend: Fix OpenRouter model prefix - always prepend "openrouter/" for proper
LiteLLM format (e.g., "anthropic/claude-3.5-sonnet" → "openrouter/anthropic/claude-3.5-sonnet")
Closes RES-199
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Implement endpoint to delete all API keys with confirmation.
- Add endpoint to reset the database with confirmation.
- Introduce ResetDatabaseRequest schema for request validation.
- Update frontend API calls to include confirmation tokens.
- Implemented clear_all_api_keys function to remove all API keys from the config.
- Added reset_database function to truncate all tables and clear uploads.
- Created API endpoints for clearing API keys and resetting the database.
- Enhanced settings page with options to clear API keys and reset the database, including confirmation dialogs.
- Updated translations for new features in multiple languages.
- Updated README to include a table for resume templates with previews and descriptions.
- Added new PDF and image files for modern and classic templates.
- Removed outdated two-column template from assets.
- Updated the internal update flag reset logic to use setTimeout for proper timing through the render cycle.
- This change prevents potential issues with state updates during rendering.
- Replaced 'dompurify' and 'jsdom' with 'isomorphic-dompurify' for better compatibility in both browser and Node.js environments.
- Removed server-side rendering logic that utilized JSDOM, simplifying the sanitizeHtml and stripHtml functions.
- Updated package dependencies in package.json and package-lock.json to reflect the changes.
- Updated accent color selection to include 'modern-two-column' template.
- Refactored CSS variables for accent colors to improve consistency.
- Improved rendering logic in rich text editor for safer link insertion.
- Enhanced HTML sanitization for server-side rendering compatibility.
- Added robust server-side fallback for HTML stripping.
- Introduced a new 'modern-two-column' template option for resumes.
- Enhanced PDF generation to accept an accent color parameter.
- Updated existing templates to support the new layout and styling.
- Added styles for the modern two-column layout, including responsive design elements.
- Improved type definitions and template settings to include the new template.
- Added `getSectionMeta` import for retrieving all sections.
- Updated visibility check to use all sections instead of sorted sections for accurate display.
- Introduced a new "modern" resume template with customizable accent colors.
- Updated type definitions to include the new template and accent color options.
- Implemented date formatting utility for consistent date range display.
- Enhanced existing resume components to support the new template.
- Adjusted CSS styles for better layout and readability across templates.
- Added documentation for adding new resume templates to guide future development.
- Updated the resume layout to improve readability with adjusted column widths.
- Introduced new styles for date formatting and link pills for better visual appeal.
- Ensured consistent spacing and alignment across resume components.
- Added @tiptap/extension-link, @tiptap/extension-underline, @tiptap/react, and @tiptap/starter-kit for enhanced text editing capabilities.
- Included @types/dompurify for TypeScript support.
- Updated dompurify to the latest version for improved security and performance.
- Introduced JD Match feature documentation detailing how tailored resumes match job descriptions.
- Added Resume Template Settings documentation outlining template types and formatting controls.
- Created LLM Integration Guide for multi-provider AI support, JSON handling, and prompt guidelines.
- Compiled Agent Documentation Index for modular documentation on AI agents working with Resume Matcher.
- Developed Maintainer Guide for the resume editor, covering architecture, types, and PDF handling.
- Established a Code Review & Technical Debt TODO document to track critical issues and improvements.
- Removed video section from README for cleaner presentation.
- Added .idea/ to .gitignore to prevent IDE files from being tracked.
- Adjusted CORS_ORIGINS formatting in .env.example and .env.sample for consistency.
- Enhanced prompt templates in templates.py for better resume processing.
- Updated banner message in start.sh for improved clarity.
- Adjusted border styles for resume headers to improve aesthetics.
- Added versioning functionality to display the current app version dynamically.
- Introduced a new version configuration file for better version management.
- Updated error message for missing job context to clarify the issue.
- Enhanced job description loading logic to prevent state updates on unmounted components.
- Adjusted keyword matching logic to ensure consistency in character sets.
- Introduced HighlightedResumeView to display resumes with matching keywords highlighted.
- Added JDComparisonView for side-by-side comparison of job descriptions and resumes.
- Implemented JDDisplay for read-only job description display.
- Enhanced keyword extraction and matching utilities for better JD-resume analysis.
- Updated ResumeBuilder to fetch job descriptions and integrate JD match analysis.
- Improved UI for previewing enhancements in the enrichment step.
- Added documentation for Docker and Ollama setup.
- Ensure original onClick handlers are preserved in DialogTrigger and DialogClose components.
- Add aria-labelledby attribute to ToggleSwitch for better accessibility.
- Utilize React.useId for unique label IDs in ToggleSwitch.
- Introduced ConfirmDialog component with customizable options for confirmation actions.
- Added Dialog component along with supporting components (DialogTrigger, DialogClose, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription) for a cohesive dialog experience.
- Implemented escape key handling and body scroll prevention when dialogs are open.
feat: create UI components for input, toggle switch, and retro tabs
- Developed Input component with a minimalist design and focus styles.
- Created ToggleSwitch component for binary state toggling with clear labeling.
- Implemented RetroTabs component for tabbed navigation with a brutalist aesthetic.
chore: update README with new features and improve documentation
- Updated README to reflect new features and enhancements in the Resume Matcher application.
- Changed header image for better branding.
chore: update package-lock.json for peer dependencies
- Added peer dependencies to various packages in package-lock.json to ensure compatibility.
feat: add header image asset for improved UI