CV Hub

Changelog

Version history of CV Hub

1.5.4 2026-06-12
  • ✦ Added Click-to-zoom lightbox for case-study images — clicking any Deep Dive image opens it fullscreen; close via backdrop click, close button or Escape
  • ✦ Added SEO: sitemap.xml (via @astrojs/sitemap, covers all profile × language routes) and robots.txt pointing to it
  • ✦ Added merge.mjs validates the profile slug === spec invariant and fails fast with a clear message, preventing silent desync between a profile's URL and its CV/download files
  • ✎ Changed Tags de-emphasized — removed borders and muted text on Platforms/Stack/Tags pills so the identical-looking groups stop competing for attention and section hierarchy reads clearer
  • ✎ Changed CI: Telegram notification now passes secrets and context through an env block instead of inline ${{ }} interpolation in the shell script
  • ✎ Changed CI: GitHub Actions runner upgraded to Node 24
  • ✎ Changed CI: PDF export now drives the runner's preinstalled Google Chrome (channel: chrome) instead of downloading Playwright's chromium — removes the cdn.playwright.dev download that was stalling and hanging deploys; the Playwright browser-cache step was dropped. Local builds still use Playwright's bundled chromium
  • ✎ Changed Responsive breakpoints consolidated from seven ad-hoc values to two — 768px (desktop/mobile base: header, fonts, paddings, animated background) and 960px (multi-column CV and showcase grids); mobile container side padding tightened
  • ✔ Fixed AnimatedBackground performance — reduced orb blur (80px → 60px), slowed drift cycles to 16–22s and removed scale() from keyframes so the blurred layer is cached instead of re-rasterized every frame; cuts desktop scroll/idle jank
  • ✔ Fixed Showcase LCP — first card with an actual image cover now loads eager with fetchpriority=high; remaining covers stay lazy
  • ✔ Fixed i18n: showcase card labels (Platforms/Stack/Tags/Featured) on non-default-language lists no longer fall back to English literals — a stray [lang] index on an already-resolved string was dropping the real translations; now correctly localized and ready for additional languages
  • ✔ Fixed Role dropdown accessibility — added aria-haspopup, aria-controls and aria-expanded synced with open state; removed a stray always-true active class on the trigger
  • ✔ Fixed Removed hover-lift from passive cards (Experience and others) — the global .card:hover translate/shadow was a false affordance on non-clickable cards; hover now stays only on interactive showcase project cards
  • ✔ Fixed Build robustness: home page now guards a missing merged CV artifact with a fallback instead of crashing the build (matches the dynamic profile route)
  • ✔ Fixed Mobile header — the Role dropdown button rendered larger than the nav links (16px vs 14px, wider padding) because a later .dropdown__trigger { font: inherit } overrode the mobile rule; the mobile rule's specificity was raised so the button now matches the links
  • ✖ Removed Dead code in the dynamic showcase route — unused featured/regular/archived split, leftover CSS classes and a stray ... token in the card markup
1.5.3 2026-04-26
  • ✦ 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
  • ✔ Fixed Scroll jank — body background-attachment: fixed replaced with a fixed pseudo-element layer; gradients no longer repaint on every scroll frame
  • ✔ Fixed Removed mix-blend-mode: overlay from the scanline noise layer — eliminated a fullscreen compositing pass per frame with no visible difference at 0.06 opacity
1.5.2 2026-04-05
  • ✔ 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
1.5.1 2026-04-02
  • ✔ 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
1.5.0 2026-03-31
  • ✦ 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
1.4.1 2026-03-29
  • ✎ 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
1.4.0 2026-03-12
  • ✦ 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
1.3.1 2026-03-11
  • ✎ 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
1.3.0 2026-03-06
  • ✦ 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
1.2.0 2026-03-05
  • ✎ 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
1.1.0 2026-03-04
  • ✦ Added Automated PDF generation via Playwright
  • ✦ Added New theme presets
  • ✦ Added Theme previews in docs
1.0.0 2026-03-03
  • ✦ Added Initial release — YAML-driven CV site
  • ✦ Added Two languages (EN/RU)
  • ✦ Added Export to PDF, DOCX, TXT
  • ✦ Added GitHub Actions CI/CD deploy