- ✦ Added PlayStationWaves component — XMB-inspired filled sine-wave canvas background with configurable props, time-of-day hue shift and non-deterministic start position
- ✦ Added WaveLines component — XMB-style glowing stroke wave lines canvas background with symmetric line layout and offscreen glow compositing
- ✦ Added GitHub Actions Telegram notification — deploy.yml notifies a Telegram bot on deploy success or failure via PIPLINE_BOT_SECRET and CHAT_ID secrets; gracefully skips if secrets are not configured
- ✎ Changed Telegram notification now covers build failures — notify_telegram uses needs: [build, deploy] with if: always() so a failed build job also triggers a notification
- ✎ Changed Telegram notification message extended with branch name and short commit SHA
- ✎ Changed CI: Playwright Chromium now cached by package-lock.json hash — saves ~2 min per deploy on cache hit
- ✦ Added LICENSE — MIT license added to repository
- ✦ Added ARCHITECTURE.md — root-level architecture overview: stack, data pipeline, routing, theming, background components, CI/CD, trade-offs
- ✦ Added CHANGELOG.md — root-level changelog in Keep a Changelog format covering full version history
- ✔ Fixed WaveLines glow compositing bug — destination-in mask was applied to full canvas each iteration, destroying background alpha at edges; fixed via per-line offscreen canvas
- ✔ Fixed Sticky header now works unconditionally — body height: 100% constrained scroll to html element; changed to min-height: 100%
- ✔ Fixed Role dropdown — replaced CSS :hover toggle with JS click-toggle and click-outside to close; menu no longer closes on accidental cursor exit; added smooth opacity/transform transition
Changelog
Version history of CV Hub
- ✔ Fixed Mobile pages performance — removed unnecessary CSS rules
- ✔ Fixed Language switcher on showcase pages now correctly switches between project translations
- ✦ Added Share button for case study pages (shareable: true in YAML, added to example_cs)
- ✎ Changed ProjectCard translation props — simplified from object-based to direct strings
- ✔ Fixed Language switcher on Showcase list now correctly switches language instead of redirecting to home
- ✔ Fixed Language switcher on Case Study pages now correctly switches language of the current project
- ✔ Fixed Back button and Showcase nav link now preserve current language across navigation
- ✔ Fixed Project card links now respect BASE_URL — no more hardcoded /cv_hub/ prefix required in YAML
- ✔ Fixed ProjectPage mobile layout — horizontal padding now correctly applied on small screens
- ✔ Fixed Showcase slug setup for other languages was incorrect for projects with flags archived and featured
- ✦ Added Case Study pages — dedicated per-project pages with flexible content structure
- ✦ Added Block-based content system (image, text, divider, links) for project storytelling
- ✦ Added Projects can now include full narratives — architecture, decisions, and outcomes
- ✦ Added Showcase extended with deep-dive pages (Notion-like but static and controlled)
- ✦ Added Per-project routing for case studies
- ✎ Changed Showcase transformed from preview-only to entry point for detailed project pages
- ✎ Changed Showcase style fixes
- ✎ Changed Error page 404 works correctly now, fallbacks to main page with default language
- ✎ Changed Dropdown styles moved from /changelog to global.css
- ✎ Changed Fixed linking in footer menu in Lyaout
- ✦ Added Multi-profile system — N profiles × N languages from one YAML source
- ✦ Added merge.mjs — YAML merge pipeline with base + spec delta model
- ✦ Added profiles.yml — profile registry (optional, graceful fallback)
- ✦ Added languages.yml — language config, dynamic language switcher
- ✦ Added i18n system — translations.yaml + makeT() helper with fallback chain
- ✦ Added Profile dropdown in header (Role ▾)
- ✦ Added [...slug].astro — dynamic routing for all profile × language combos
- ✦ Added Per-profile PDF/DOCX/TXT generation for all profiles and languages
- ✎ Changed generate-resume.js and resume-export-pdf.mjs now iterate public/cv/ dynamically
- ✎ Changed Download links now point to profile-specific files (resume_en_devops.pdf)
- ✖ Removed ru.astro and showcase/ru.astro — replaced by [...slug].astro
- ✎ Changed siteUrl resolved dynamically from GITHUB_REPOSITORY — forks work without config
- ✎ Changed Dropdown styles moved to global.css
- ✦ Added README, ENGINEERING.md and INFO.md fully updated to reflect new architecture
- ✦ Added URL-based theme switching (?theme=peachy)
- ✦ Added OG tags and Twitter Card meta
- ✦ Added Animated background
- ✦ Added Lighthouse badges in README (100/100/96/100)
- ✦ Added Changelog page with version history
- ✎ Changed Style and structure updates
- ✎ Changed Documentation updated
- ✦ Added Projects pin & archive options
- ✎ Changed DOM tree and CSS structure refactor
- ✔ Fixed Mobile layout fixes
- ✔ Fixed Index page fix
- ✦ Added Automated PDF generation via Playwright
- ✦ Added New theme presets
- ✦ Added Theme previews in docs
- ✦ Added Initial release — YAML-driven CV site
- ✦ Added Two languages (EN/RU)
- ✦ Added Export to PDF, DOCX, TXT
- ✦ Added GitHub Actions CI/CD deploy