- Fix AnnotationSystem component types (string IDs, user objects, liked/likes properties)
- Add formatNumber and formatRating utilities for author components
- Update FilterSidebar to use correct tag ID types (string vs number)
- Fix EnhancedReadingView translation and work ID type mismatches
- Resolve Playwright dependency issues in testing setup
- Update Jest configuration for ES module compatibility
- Fix import paths and type conflicts across components
All unit tests now pass and major TypeScript compilation errors resolved.
- Fix tag-manager component to work with string IDs from schema
- Update author-stats component to use schema-based AuthorWithStats type
- Add missing utility functions (formatNumber, formatRating) to author utils
- Fix WorkCard test to use correct schema types with string IDs
- Resolve type mismatches in component props and form handling
- Update interface definitions to match schema requirements
Linting: ✅ 90%+ resolved, remaining minor issues
Testing: ⚠️ ES module configuration needs refinement
- Configure Jest to work with ES modules (type: module in package.json)
- Update Babel config with modules: false for proper ES module handling
- Convert jest.setup.js to use ES module import syntax
- Add experimental VM modules support for Jest execution
Note: Testing infrastructure is in place but may need additional configuration
for full compatibility with the project's ES module setup.
- Add Jest testing framework with React Testing Library
- Configure Playwright for E2E testing
- Add TypeScript strict mode configuration
- Implement unit tests for common components (LanguageTag, WorkCard)
- Add Babel configuration for testing compatibility
- Update Vite config for better production builds
- Add comprehensive type definitions for testing libraries
- Configure test scripts and coverage reporting
- Enhance package.json with testing and quality scripts
Implemented by Jules AI agent for production readiness and code quality enhancement.
* feat: Add GitHub Actions workflows for frontend CI/CD
- Add lint.yml: TypeScript and ESLint checks
- Add build.yml: Vite application build pipeline
- Add docker-build.yml: Multi-arch container image builds
- Add deploy.yml: Production deployment to Docker Swarm
- Add dependabot.yml: Automated dependency updates
Follows Single Responsibility Principle with focused workflows.
Includes security best practices, caching, and deployment automation.
* fix: Add missing Dockerfile and lint script for CI/CD workflows
- Add Dockerfile for multi-stage Node.js build with production optimizations
- Add lint script to package.json that runs TypeScript type checking
- Enable health check endpoint in Docker container
- Configure proper user permissions and security practices
Fixes docker-build workflow failures and enables complete CI/CD pipeline.
* fix: Enable Corepack for Yarn 4.x compatibility in Docker build
- Enable Corepack in Dockerfile to support packageManager field
- Fix lint script to use TypeScript checking instead of invalid yarn check
- Remove manual yarn installation from Dockerfile since Corepack handles it
* fix: Enable Corepack in CI workflows to resolve Yarn version conflicts
* chore: Update to latest GitHub Actions versions
- Update actions/checkout to v6
- Update actions/setup-node to v6
- Update actions/upload-artifact to v5
- Update Node.js to version 22 (Active LTS)
- Update Docker base images to node:22-alpine
* Fix Corepack/Yarn caching issue in CI workflows
- Remove cache: yarn from setup-node action to prevent yarn usage before corepack enable
- Enable corepack immediately after Node.js setup
- Add manual yarn caching using actions/cache@v4 with proper cache directory path
- This resolves the packageManager field conflict in CI
* Fix BlogEdit.tsx import and component issues
- Fix import path from @/api/blog-api to @/lib/api/blog-api
- Replace TagManager component with simple tag input since BlogEdit uses plain state
- Remove unused handleTagsChange function
- This resolves the build error where blog-api file was not found
* Fix Yarn 4.x deprecated commands in Dockerfile
- Replace --frozen-lockfile with --immutable in builder stage
- Replace --frozen-lockfile --production with --immutable + autoclean in production stage
- This resolves the Yarn 4.9.0 deprecation warnings and build failures
* fix: optimize Dockerfile to use Yarn PnP instead of node-modules
- Use Yarn Plug'n'Play (PnP) for faster installs and smaller image size
- Keep .yarnrc.yml configuration instead of overriding it
- Copy PnP files (.pnp.cjs, .pnp.loader.mjs, .yarn cache) to production stage
- Use yarn workspaces focus --production for production dependencies
- Corepack manages Yarn version while PnP handles dependency resolution
* fix: correct CI/CD workflow issues
- Fix lint.yml to use 'yarn check' instead of 'yarn lint' (ESLint not configured)
- Fix Dockerfile to use 'yarn install --production' for single package repo
- Update workflow name to reflect actual functionality
- Enhanced annotation system with improved inline editing
- Updated author components with new card and header designs
- Improved reading view with enhanced line numbering and controls
- Added new blog management features and tag management
- Updated UI components with improved accessibility and styling
- Enhanced search functionality with better filtering
- Added new dashboard features and activity feeds
- Improved translation selector and work comparison tools
- Updated GraphQL integration and API hooks
- Enhanced responsive design and mobile experience