Skip to content

Fix beta user reported issues#9

Merged
gibbenergy merged 23 commits intomainfrom
fix/beta-issues
Jan 30, 2026
Merged

Fix beta user reported issues#9
gibbenergy merged 23 commits intomainfrom
fix/beta-issues

Conversation

@gibbenergy
Copy link
Copy Markdown
Owner

@gibbenergy gibbenergy commented Jan 29, 2026

Summary

Fixing issues reported by beta users during testing.

Issues to fix:

  • Issue 1: Add comprehensive CI test execution (198 tests)
  • Issue 2: Add reorder (up/down) buttons to all resume sections
  • Issue 3: Fix test artifacts polluting production database
  • Issue 4: Fix PersonalInfo form losing changes when switching tabs
  • Issue 5: Fixed missing separators between citizenship, phone, and email in PDF output when Current Address or Location fields are empty. Template now correctly checks all preceding fields.
  • Issue 6: Added custom profile names feature
  • Issue 7: Fix application tracker submission and add validation tests

Changes

  1. CI Test Execution - Added pytest and vitest to GitHub Actions workflows

  2. Test Infrastructure - 198 automated tests visible in tests/ folder

  3. Reorder Functionality - Added up/down buttons to Education, Experience, Skills, Projects, Certifications, and Others sections

  4. Test Cleanup - Added fixtures to automatically clean up test profiles, preventing ghost profiles from appearing in production

  5. PersonalInfo Auto-sync - Fixed bug where form changes were lost when switching tabs; all fields now auto-sync to store on change

  6. PDF Contact Line Separators

  7. Customer Profile features - Added activeProfileName state and setActiveProfileName action, Dialog component with:
    ( Profile name input (pre-filled with full name), warning when profile name already exists, Cancel/Save buttons)

  8. Fix application tracker submission and add validation tests

    Backend fixes:

    • Fixed import paths in application_workflows.py
    • Added URL validation to handle objects/None values gracefully
    • Added better error messages for duplicate job URLs
    • Added logging to application creation endpoint

    Frontend fixes:

    • Added extractString helper to safely extract values from AI responses
    • Store now re-throws errors so they're displayed in toast notifications

- Add pytest configuration and test suite for backend (68 tests)
  - API startup and configuration tests
  - Resume operations tests
  - AI provider tests
  - Application tracking tests
  - Profile management tests

- Add vitest configuration and test suite for frontend (65 tests)
  - Diagnostic tests for module imports and environment
  - Resume store state management tests
  - API client structure tests
  - App component rendering tests

- Add test dependencies to requirements.txt and package.json
- Fix .gitignore lib/ pattern to not ignore frontend/src/lib
- Add scripts/ and docs/ folders to .gitignore (dev only)
- Remove test files from tracked locations (backend/tests/, frontend/src/test/)
- Tests now consolidated under scripts/tests/ which is gitignored
- Fixes frontend CI build failure caused by TypeScript errors in test files
- Test files are development-only and should not be in the public repo
- Add tests/ folder with 133 automated tests (68 backend + 65 frontend)
- Backend: pytest tests for API, resume ops, AI providers, applications, profiles
- Frontend: vitest tests for components, stores, API client
- Test code visible in repo for interview portfolio
- Test reports still gitignored (output artifacts)
Issue #1: CI was not running automated tests

- Add vitest execution to frontend-ci.yml (65 frontend tests)
- Add pytest execution to code-quality.yml (68 backend tests)
- CI now validates all 133 tests pass before merge
- Move vitest.config.ts to frontend/ (can access node_modules)
- Add test-setup.ts to frontend/
- Add explicit aliases for test dependencies
- All 65 frontend tests now pass
- Add up/down move functionality to all form components (Education,
  Experience, Skills, Projects, Certifications, Others)
- Add move methods to resumeStore for all section types
- Add profile_cleanup fixture to prevent test artifacts from polluting
  production database
- Add 17 new frontend tests for reorder functionality
- Update frontend-ci.yml test count to 82
- Fix bug where form changes were lost when switching tabs
- Add auto-sync to update store on every form field change
- Add 12 new component tests for PersonalInfoForm (94 total frontend)
- Fix template conditional logic for phone/email separators
- Separators now correctly check for location and citizenship fields
- Add 11 unit tests for template contact line separator logic
- Add SaveProfileDialog component for entering custom profile names
- Add activeProfileName state to Zustand store
- Update PersonalInfoForm to show dialog on save with pre-filled name
- Update useProfileSave hook to use activeProfileName for other tabs
- Set activeProfileName when loading saved profiles
- Add 11 tests for SaveProfileDialog component
- Add 7 tests for activeProfileName store functionality
- Update frontend test count from 94 to 112
- Add console.error filter for known Radix UI act() warnings
- Update PersonalInfoForm tests to use act() for unmount operations
- Smart detection: if values are >= 1000, assume already full amounts
- Prevents "$150,000k" from being parsed as 150 million
- Handles both "150k-190k" (small numbers with k) and "150000-190000" correctly
Tests now use a dedicated test database in the temp directory instead
of the production database. This prevents test data (Google, Meta, etc.)
from polluting the user's real application tracking data.

- Add session-scoped fixture to create/cleanup test database
- Override FastAPI dependencies to inject test database
- Test DB location: %TEMP%/resume_helper_tests/test_applications.db
Backend fixes:
- Fix import paths in application_workflows.py
- Improve validation to handle objects/None values gracefully
- Add better error messages for duplicate job URLs
- Add logging to application creation endpoint

Frontend fixes:
- Add extractString helper to safely extract values from AI responses
- Re-throw errors in applicationStore so they're displayed in toasts

Tests:
- Add 7 new validation edge case tests (Test07_ValidationEdgeCases)
- Add duplicate URL detection tests (Test08_DuplicateDetection)
- Update test count from 68 to 86 in CI workflow
- Version 3.0 -> 3.1 in UI, package.json, pyproject.toml
- Fix salary parsing (LLM-agnostic, supports 'base' property)
- Fix /api/applications/settings 404 (route ordering)
- Fix UV hardlink error (--link-mode copy for cloud folders)
- Add Playwright auto-install to start script
- Add CHANGELOG.md with full version history
- Rewrite README.md for SEO and star appeal
- Add CHANGELOG.html and README.html to .gitignore
When Node.js is auto-installed via winget on first run, the new PATH
is not available in the current terminal session. The script now shows
a clear message explaining this and instructs the user to restart the
script, then exits gracefully instead of crashing.
@gibbenergy gibbenergy merged commit af9be8b into main Jan 30, 2026
2 checks passed
@gibbenergy gibbenergy deleted the fix/beta-issues branch January 31, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant