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.