Skip to content

Conversation

@ildyria
Copy link
Member

@ildyria ildyria commented Dec 30, 2025

Summary by CodeRabbit

  • New Features

    • Announced Version 7.0.0: FrankenPHP + Octane runtime, webshop (Pro), star ratings, AVIF support, timeline/smart-album improvements, worker mode and major performance gains.
  • Documentation

    • Comprehensive v6→v7 upgrade guide (architecture, volume/service changes, worker setup, migration checklist, scaling, troubleshooting), release blog post, and FAQ noting .env requires container restart.
  • Style

    • Updated announcement banner, navigation, roadmap, homepage teaser link, and cleaned changelog wording.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 30, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Adds Lychee v7 release materials (release notes and blog post), a rewritten v6→v7 Docker upgrade guide (FrankenPHP / Laravel Octane) with volume/service/worker details, navigation and announcement updates pointing to v7, homepage teaser link change, roadmap release metadata updates, and a FAQ note about .env restarts.

Changes

Cohort / File(s) Summary
Release docs & blog post
docs/releases.md, src/content/post/2025-12-31-version-7.mdx
New Version 7 entry in releases and a new blog post announcing v7.0.0 covering architecture (FrankenPHP + Octane), performance, features, security notes, and upgrade context.
Upgrade guide & site generator
docs/upgrade.md, gen.py
Replaces upgrade docs with a comprehensive v6→v7 migration guide (volume mount changes, service/worker architecture, env restart note, checklist, troubleshooting); updates pages_title['upgrade'] to "Upgrade Lychee".
Navigation & announcement widget
src/navigation.js, src/components/widgets/Announcement.astro
Added blog nav link "Version 7 released!"; updated tag reference v6→v7; announcement banner href and text updated to reference v7.0.0.
Homepage teaser
src/pages/index.astro
Wraps the teaser image in an anchor linking to the v7 post (changes click/navigation target).
Roadmap & release timeline
src/pages/roadmap.astro
Replaced placeholder with concrete v7.0.0 milestone, updated latest version display to 7.0.0, adjusted total releases and timeline entries; simplified releases.map callback.
FAQ & troubleshooting
docs/faq_troubleshooting.md
Added FAQ entry noting that v7 (FrankenPHP) requires container restart for .env changes to take effect.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through lines and munched a byte,
v7 now hums with FrankenPHP light.
Octane sprints and workers sing,
uploads nestle, ratings ring.
Little paws applaud the flight! ✨

Pre-merge checks

✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 666f0f2 and fcb0fb7.

📒 Files selected for processing (2)
  • docs/upgrade.md
  • src/pages/roadmap.astro

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d0b6807 and 39e95f9.

⛔ Files ignored due to path filters (1)
  • public/blog/Lychee7.jpg is excluded by !**/*.jpg
📒 Files selected for processing (7)
  • docs/releases.md
  • docs/upgrade.md
  • gen.py
  • src/components/widgets/Announcement.astro
  • src/content/post/2025-12-31-version-7.mdx
  • src/navigation.js
  • src/pages/roadmap.astro
🧰 Additional context used
🪛 LanguageTool
src/content/post/2025-12-31-version-7.mdx

[grammar] ~26-~26: Ensure spelling is correct
Context: ... boot time drops from 40-60ms to just 4-6ms per request, with 3-4x better throughpu...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/upgrade.md

[grammar] ~258-~258: Ensure spelling is correct
Context: ...ing requirements Check that the server satisfifes the [requirements](installation.html#we...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🔇 Additional comments (6)
gen.py (1)

51-51: LGTM! Title update reflects expanded upgrade documentation.

The change from 'Upgrade from v3' to 'Upgrade Lychee' is appropriate since the upgrade documentation now covers multiple version migrations (v3→v4 and v6→v7).

src/components/widgets/Announcement.astro (1)

13-14: LGTM! Announcement banner updated for v7.0.0 release.

The banner correctly references the v7.0.0 GitHub release tag and displays the updated version message.

docs/releases.md (1)

31-41: LGTM! Version 7 section added correctly.

The new Version 7 section follows the established format and clearly documents the major release. The scheduled release date (Dec 31, 2025) and feature highlights are appropriate.

src/content/post/2025-12-31-version-7.mdx (1)

1-66: Excellent release announcement! Well-written and comprehensive.

The blog post effectively communicates the major changes in v7, including:

  • Architectural shift to FrankenPHP with Laravel Octane
  • Performance improvements with specific metrics
  • New features (Star Rating System and Webshop)
  • Clear references to upgrade documentation

The future publish date (Dec 31, 2025) is appropriate for a scheduled release.

src/navigation.js (1)

12-15: LGTM! Navigation updated consistently for v7 release.

The changes appropriately:

  • Add a navigation link to the new v7 release blog post
  • Update the "Current developments" tag reference from v6 to v7

Also applies to: 26-26

docs/upgrade.md (1)

1-252: Outstanding v6→v7 upgrade documentation!

This is comprehensive, well-structured documentation covering all critical aspects of the v6→v7 migration:

Strengths:

  • Clear explanation of breaking architectural changes (FrankenPHP with Laravel Octane)
  • Detailed volume mount migration guide with before/after examples
  • Well-documented worker service configuration with scaling options
  • Step-by-step migration process
  • Comprehensive troubleshooting section addressing common issues
  • Critical configuration requirements clearly highlighted (QUEUE_CONNECTION, LYCHEE_MODE)

The documentation provides users with everything they need for a successful migration.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/pages/index.astro (1)

259-310: Add keyboard accessibility and ARIA attributes.

The teaser overlay lacks keyboard support and semantic markup for assistive technologies:

  • No Escape key handler for keyboard users to dismiss the overlay
  • Missing ARIA role and labels for screen readers
  • No focus management (focus should be trapped or moved to the overlay)

While the auto-dismiss after ~6 seconds prevents a permanent keyboard trap, this still creates a degraded experience for keyboard and screen reader users.

🔎 Recommended accessibility improvements

Add Escape key handling and ARIA attributes:

  document.addEventListener('DOMContentLoaded', () => {
    const teaser = document.createElement('div');
    teaser.id = 'teaser';
+   teaser.setAttribute('role', 'dialog');
+   teaser.setAttribute('aria-modal', 'true');
+   teaser.setAttribute('aria-label', 'Lychee Version 7 Release Announcement');
    teaser.style.position = 'fixed';
    // ... existing styles ...

    const a = document.createElement('a');
    a.href = '/2025-12-31-version-7';

    const img = document.createElement('img');
    img.src = '/Lychee-v7-teasing.png';
-   img.alt = 'Teaser Image';
+   img.alt = 'Lychee Version 7 Release - Click to learn more';
    img.style.maxWidth = '90%';
    // ... existing styles ...

    a.appendChild(img);
    teaser.appendChild(a);
    document.body.appendChild(teaser);

+   // Focus the anchor for keyboard navigation
+   a.focus();

    // Start the zoom animation
    setTimeout(() => {
      img.style.opacity = '1';
      img.style.transform = 'scale(1.5)';
    }, 0);

    // Fade out the teaser after the zoom animation
    setTimeout(() => {
      teaser.style.opacity = '0';
      img.style.opacity = '0';
      setTimeout(() => {
        teaser.remove();
      }, 3000);
    }, 3000);

    teaser.addEventListener('click', () => {
      teaser.remove();
    });

+   // Allow Escape key to dismiss
+   const handleKeyDown = (e) => {
+     if (e.key === 'Escape') {
+       teaser.remove();
+       document.removeEventListener('keydown', handleKeyDown);
+     }
+   };
+   document.addEventListener('keydown', handleKeyDown);
  });
🧹 Nitpick comments (1)
src/pages/index.astro (1)

259-310: Consider showing the teaser only once per session.

The teaser displays on every page load, which may become repetitive for returning visitors. Consider using sessionStorage or localStorage to show it only once.

🔎 Example implementation
  document.addEventListener('DOMContentLoaded', () => {
+   // Show teaser only once per session
+   if (sessionStorage.getItem('v7TeaserShown')) {
+     return;
+   }
+   sessionStorage.setItem('v7TeaserShown', 'true');
+
    const teaser = document.createElement('div');
    // ... rest of the code ...
  });

Alternatively, use localStorage instead of sessionStorage to persist across browser sessions.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 39e95f9 and 9a5bcce.

📒 Files selected for processing (1)
  • src/pages/index.astro

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/upgrade.md (1)

261-261: Fix typo in requirements check section.

The word "satisfifes" should be "satisfies".

🔎 Proposed fix
-Check that the server satisfifes the [requirements](installation.html#web-server-configuration). In particular pay attention the PHP extensions.
+Check that the server satisfies the [requirements](installation.html#web-server-configuration). In particular pay attention the PHP extensions.
🧹 Nitpick comments (2)
docs/faq_troubleshooting.md (1)

7-10: Consider simplifying the wording (optional).

The FAQ entry is clear and helpful. For slightly more concise phrasing, consider these alternatives:

  • "the changes are not recognized" instead of "not taken into account"
  • "to recognize changes" or "to apply changes" instead of "to take into account changes"
🔎 Optional simplification
-### When I update my .env with Lychee v7, the changes are not taken into account, what can I do?
+### When I update my .env with Lychee v7, the changes are not applied, what can I do?
 
-Lychee v7 with FrankenPHP requires a container restart to take into account changes made to the `.env` file.
+Lychee v7 with FrankenPHP requires a container restart to apply changes made to the `.env` file.
src/content/post/2025-12-31-version-7.mdx (1)

64-64: Consider adding a specific documentation link (optional).

While the call to action mentions "our documentation," consider adding the specific upgrade documentation URL for user convenience:

🔎 Optional enhancement
-**Ready to upgrade?** Visit our documentation to learn how to update to Version 7 and start experiencing these improvements today.
+**Ready to upgrade?** Visit our [upgrade documentation](https://lycheeorg.github.io/docs/upgrade.html) to learn how to update to Version 7 and start experiencing these improvements today.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9a5bcce and b816319.

📒 Files selected for processing (3)
  • docs/faq_troubleshooting.md
  • docs/upgrade.md
  • src/content/post/2025-12-31-version-7.mdx
🧰 Additional context used
🪛 LanguageTool
docs/upgrade.md

[grammar] ~261-~261: Ensure spelling is correct
Context: ...ing requirements Check that the server satisfifes the [requirements](installation.html#we...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/faq_troubleshooting.md

[style] ~7-~7: ‘taken into account’ might be wordy. Consider a shorter alternative.
Context: ...env with Lychee v7, the changes are not taken into account, what can I do? Lychee v7 with Franken...

(EN_WORDINESS_PREMIUM_TAKEN_INTO_ACCOUNT)


[style] ~9-~9: ‘take into account’ might be wordy. Consider a shorter alternative.
Context: ...nkenPHP requires a container restart to take into account changes made to the .env file. ### W...

(EN_WORDINESS_PREMIUM_TAKE_INTO_ACCOUNT)

src/content/post/2025-12-31-version-7.mdx

[grammar] ~26-~26: Ensure spelling is correct
Context: ... boot time drops from 40-60ms to just 4-6ms per request, with 3-4x better throughpu...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🔇 Additional comments (9)
src/content/post/2025-12-31-version-7.mdx (3)

16-23: LGTM!

The introduction provides excellent context for the Version 7 release, highlighting the year's achievements and setting the stage for the major announcement.


35-54: LGTM!

The features section clearly describes the new capabilities, appropriately calls out the Pro-only nature of the Webshop, and acknowledges community supporters.


26-26: Claim verified as accurate.

The statement about FrankenPHP gaining official support from the PHP Foundation in May 2025 is correct. The PHP Foundation announced this support on May 15, 2025, with FrankenPHP's source moving into the php GitHub organization.

docs/upgrade.md (6)

1-18: LGTM!

Excellent introduction that clearly warns users about breaking changes and provides a concise overview of major architectural shifts. The prominent note about configuration updates is critical for users upgrading from v6.


19-44: LGTM!

The before/after volume structure comparison is clear and helpful. The read-only mount for .env is a good security practice, and the optional custom asset mounts provide flexibility.


45-134: LGTM!

The service architecture examples are comprehensive and production-ready. The repeated emphasis on critical configuration requirements (QUEUE_CONNECTION and LYCHEE_MODE) will help prevent common setup errors.


135-171: LGTM!

The worker scaling documentation provides clear guidance on both replica-based and manual scaling approaches, giving users flexibility based on their orchestration setup.


173-231: LGTM!

The migration steps are well-structured, starting with critical backup procedures and providing concrete commands for each step. The verification section ensures users can confirm successful migration.


232-255: LGTM!

The troubleshooting section addresses common post-migration issues with actionable solutions and provides clear paths to community support.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/content/post/2025-12-31-version-7.mdx (1)

57-57: Consider clarifying the Pro access model.

The sentence "It is now available at the $10/month tier or with any one-time support contribution" follows "we've granted Lychee Pro access to all our existing supporters." This might be slightly unclear about whether existing supporters automatically receive Pro access or if they need to meet the tier requirements.

Consider rephrasing to clarify whether:

  • Existing supporters automatically have Pro access (as a goodwill gesture)
  • New users need the $10/month tier or one-time contribution
  • Existing supporters need to upgrade to these tiers
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b816319 and e66418d.

📒 Files selected for processing (3)
  • docs/releases.md
  • src/content/post/2025-12-31-version-7.mdx
  • src/pages/roadmap.astro
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/releases.md
  • src/pages/roadmap.astro
🧰 Additional context used
🪛 LanguageTool
src/content/post/2025-12-31-version-7.mdx

[grammar] ~26-~26: Ensure spelling is correct
Context: ... boot time drops from 40-60ms to just 4-6ms per request, with 3-4x better throughpu...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🔇 Additional comments (4)
src/content/post/2025-12-31-version-7.mdx (4)

1-23: LGTM! Excellent introduction and metadata.

The front matter is properly structured with comprehensive metadata, and the introduction effectively sets the context for the Version 7 release with appropriate contributor recognition and year-in-review highlights.


24-36: LGTM! Clear architectural changes and upgrade guidance.

The section effectively communicates the major architectural shift to FrankenPHP, performance improvements, and critical upgrade requirements. The warnings about PHP 8.4 and .env behavior changes are properly emphasized. The reference to upgrade documentation (line 30) is excellent practice.

Note: The static analysis hint about "4-6ms" on line 26 is a false positive—the hyphenated range notation is correct.


67-78: LGTM! Strong closing and call to action.

The closing section effectively summarizes the release's significance and maintains the positive, community-focused tone. The call to action appropriately references the documentation (with a specific link already provided at line 30).


59-59: No action needed. The URL keygen.lycheeorg.dev is live and accessible.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/upgrade.md (1)

16-17: Minor: Improve phrasing for clarity.

"Do note that this change also has consequences" reads awkwardly. Prefer the more direct "Note that this change also has consequences" for better English flow.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e66418d and 666f0f2.

📒 Files selected for processing (1)
  • docs/upgrade.md
🔇 Additional comments (1)
docs/upgrade.md (1)

3-258: Strong documentation for v6→v7 migration.

The new Docker upgrade guide is comprehensive and well-structured. The critical breaking-changes notice is prominent, volume mount comparisons are clear, and the multi-service examples (basic and advanced) with worker scaling guidance provide practical value. The troubleshooting section addresses common pain points effectively. The .env read-only mounting and emphasis on QUEUE_CONNECTION consistency across services are particularly helpful for avoiding configuration mistakes.

@ildyria ildyria merged commit 20897be into master Dec 31, 2025
1 of 2 checks passed
@ildyria ildyria deleted the version-7.0.0 branch December 31, 2025 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants