Release notes

A product-style changelog for the site.

A concise record of the design work, bug fixes, security updates, and assistant improvements shipped across the current site.

v3.9.0 · May 2026

Editorial masthead navigation

The site navigation moved from a floating glass capsule to an in-flow editorial masthead, matching the publication identity of the writing archive.

  • Replaced the floating top bar with a full-width wordmark, tagline, and section index — in document flow, not sticky.
  • Mobile menu now opens via a "Menu" word affordance with an icon glyph for redundancy, instead of an icon-only hamburger.
  • Refreshed the Selected work shortlist on the home page with current public projects on GitHub.
  • Aligned active-page highlighting, focus rings, and reduced-motion behavior with the rest of the site.

v3.8.0 · May 2026

Blog as a real publication

The blog moved from publish-only to a full content system with drafts, scheduling, slug URLs, RSS, and OpenGraph cards.

  • Articles now have stable slug URLs (/post/my-slug) while older /post.php?id=N URLs continue to work.
  • Drafts and scheduled posts are author-only previews and stay out of public listings, RSS, and sitemap.
  • Each article ships with OpenGraph, Twitter Card, and JSON-LD metadata so links preview cleanly across LinkedIn, X, WeChat, and Slack.
  • Introduced /rss.xml and an updated sitemap that include only published, non-deleted articles.
  • The author-side editor gained cover images, excerpts, autosave, editable slugs with conflict resolution, soft-delete + restore, and bilingual toast feedback.

v3.7.0 · April 2026

Identity and language defaults

This release makes the site feel more consistent from the first visit.

  • Set English as the first-load default while still remembering a saved language preference after a manual switch.
  • Updated the public brand name across the site, metadata, assistant UI, and database-backed profile content.
  • Aligned initials, footer identity, and structured metadata so the public profile reads the same everywhere.

v3.6.0 · April 2026

Mobile layout and fit improvements

This update focused on small-screen stability and cleaner first impressions.

  • Fixed hero text wrapping, button overflow, and clipped content on narrow mobile viewports.
  • Resolved conflicts between the mobile menu, sticky navigation, and the assistant launcher.
  • Adjusted Chinese and mixed-language line breaking so headings and body copy render more predictably on phones.

v3.5.0 · April 2026

Assistant reliability and sign-in updates

The on-site assistant is now easier to use and less fragile under real traffic.

  • Added Google Sign-In with account creation and account linking using name, email, and Google identity data.
  • Fixed assistant response parsing issues that could surface raw JSON errors in the interface.
  • Improved prompt behavior so greetings, identity questions, and model-difference questions sound more natural and less repetitive.

v3.4.0 · April 2026

Resilience and service fallback

Public pages now stay readable even when a backend dependency is unavailable.

  • Added a dedicated status page for service checks instead of surfacing operational detail on the homepage.
  • Introduced graceful fallback behavior for database-dependent pages, contact features, and assistant storage.
  • Changed visitor tracking for the assistant from IP-based limits to browser-level visitor tokens to reduce false blocking.

v3.3.0 · April 2026

Security hardening and secret handling

This release tightened production safety without changing the public experience.

  • Removed legacy backdoor login logic and closed older production test endpoints.
  • Moved API credentials to environment-based configuration and stopped rendering or storing sensitive keys in unsafe places.
  • Strengthened CSRF handling, logout flow protection, and admin-side safeguards around inline editing and settings updates.

v3.2.0 · April 2026

Design simplification and copy cleanup

The site was refined to feel more like a personal website and less like a generated product shell.

  • Reduced visual weight across dark mode, homepage sections, and shared surfaces with a calmer, more minimal design language.
  • Rewrote public-facing copy across the homepage, resume, writing pages, footer, and assistant UI for a more direct editorial tone.
  • Improved Chinese rendering, typography fallback, and multilingual spacing to avoid broken or awkward text presentation.

v3.1.0 · April 2026

Production cleanup and platform fixes

A broad maintenance pass improved consistency across public and admin experiences.

  • Unified shared navigation, auth states, inline editing controls, and footer behavior across templates.
  • Fixed broken asset loading, protocol mismatches, and stale runtime behavior after deployment.
  • Added release smoke checks and operational cleanup to make updates safer to ship.

v3.0.0 · April 2026

Full redesign and product cleanup

A full visual and structural refresh introduced the current direction of the site.

  • Rebuilt the public experience with a cleaner editorial layout, clearer hierarchy, and more focused section design.
  • Refreshed resume, writing, contact, and assistant entry points while keeping the existing backend capabilities.
  • Established the current design-system foundation for light and dark modes, actions, cards, and content sections.

v2.0.0 · PHP migration

Dynamic PHP and MySQL version

The site moved from static pages to a dynamic content model.

  • Migrated the portfolio to reusable PHP templates and database-backed content.
  • Added authentication, admin tools, blog publishing, and resume management.
  • Introduced shared configuration, settings helpers, and a more practical content workflow.

v1.0.0 · February 2025

Initial portfolio launch

The first public version established the core structure of the site.

  • Launched portfolio, writing, and resume sections.
  • Added bilingual support and theme toggling.
  • Defined the initial information architecture for personal presentation and contact.