Skip to content

Conversation

@ildyria
Copy link
Member

@ildyria ildyria commented Dec 27, 2025

Summary by CodeRabbit

  • Chores

    • Updated PHP minimum requirement from 8.3+ to 8.4+
    • Updated Node.js requirement from 18+ to 20+
    • Updated backend framework versions and compatibility thresholds
  • Documentation

    • Updated all prerequisite guides, architecture documentation, and deployment instructions to reflect new version requirements

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

@ildyria ildyria requested a review from a team as a code owner December 27, 2025 01:01
@coderabbitai
Copy link

coderabbitai bot commented Dec 27, 2025

Warning

Rate limit exceeded

@ildyria has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 24 minutes and 32 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 65cf511 and dd11ad3.

📒 Files selected for processing (1)
  • .ai/embeds/README.md
📝 Walkthrough

Walkthrough

Version requirements updated across the codebase: PHP minimum raised from 8.3 to 8.4, PHP latest from 8.4 to 8.5, Laravel upgraded from 11.x to 12–13.x, and Node.js requirement from 18+ to 20+. All updates are version constants, configurations, and documentation changes with no functional logic modifications.

Changes

Cohort / File(s) Summary
Source Code Version Constants & Config
app/Actions/Diagnostics/Pipes/Checks/PHPVersionCheck.php, app/Actions/InstallUpdate/DefaultConfig.php
Updated PHP version thresholds: PHP_ERROR 8.2→8.3, PHP_WARNING 8.3→8.4, PHP_LATEST 8.4→8.5; minimum supported version raised to 8.4.0
Documentation — Overview & Architecture
docs/specs/0-overview/README.md, docs/specs/4-architecture/backend-architecture.md, docs/specs/5-operations/session-quick-reference.md
PHP requirement updated 8.3+→8.4+; Node.js updated 18+→20+; Laravel framework version references aligned
Root Documentation & Setup
README.md, docs/Contribute.md
PHP version badges and requirement text updated: 8.3→8.4 (and 8.4→8.5 for latest); Build from Source and development environment prerequisites revised
Embedded AI Documentation
.ai/embeds/IMPLEMENTATION.md, .ai/embeds/README.md
Laravel upgraded 11.x→12.x (IMPLEMENTATION) and 11.x→13.x (README); PHP updated 8.3+→8.4+ across both files

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Hoppy hops through versions bright,
From 8.3 to 8.4's delight!
Laravel springs to newer heights,
Node dances with improved might,
Our code bounds forward—all feels right! ✨

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.

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

@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

Caution

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

⚠️ Outside diff range comments (1)
.ai/embeds/README.md (1)

72-89: Add Node.js 20+ to Frontend Widget technology stack.

The global requirements document (docs/specs/0-overview/README.md) specifies "Node.js 20+ (for frontend build)", and the Frontend Widget section references Vite 7.x and npm commands, both of which require Node.js. Include Node.js 20+ in the Frontend Widget subsection of the Technology Stack to maintain consistency with the established requirements.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1f8c509 and 65cf511.

📒 Files selected for processing (9)
  • .ai/embeds/IMPLEMENTATION.md
  • .ai/embeds/README.md
  • README.md
  • app/Actions/Diagnostics/Pipes/Checks/PHPVersionCheck.php
  • app/Actions/InstallUpdate/DefaultConfig.php
  • docs/Contribute.md
  • docs/specs/0-overview/README.md
  • docs/specs/4-architecture/backend-architecture.md
  • docs/specs/5-operations/session-quick-reference.md
🧰 Additional context used
📓 Path-based instructions (2)
**/*.md

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.md: Use Markdown format for documentation
At the bottom of documentation files, add an hr line followed by "Last updated: [date of the update]"

Files:

  • docs/specs/4-architecture/backend-architecture.md
  • docs/Contribute.md
  • docs/specs/0-overview/README.md
  • docs/specs/5-operations/session-quick-reference.md
  • README.md
**/*.php

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.php: Any new PHP file should contain the license header and have a single blank line after the opening PHP tag
Variable names should be in snake_case in PHP
Apply the PSR-4 coding standard in PHP
Use in_array() with true as the third parameter in PHP
Only use booleans in if statements, not integers or strings
Use strict comparison (===) instead of loose comparison (==)
Avoid code duplication in both if and else statements
Do not use empty() in PHP
Use the moneyphp/money library for handling monetary values in PHP
Never use floats or doubles to represent monetary values; use integers representing the smallest currency unit (e.g., cents for USD)

**/*.php: Write or extend executable specifications (unit, behaviour, or scenario tests) ahead of implementation, confirm they fail, and then drive code to green before refactoring. List the expected success, validation, and failure branches and add thin failing tests for each path.
For PHP code, adhere to conventions: license headers in new files, strict comparison (===), no empty(), in_array() with third parameter true, snake_case variables, PSR-4 standard, test base classes (AbstractTestCase for Unit, BaseApiWithDataTest for Feature_v2).
Always run phpunit tests. If a test remains red, disable it with a TODO, note the reason, and capture the follow-up in the relevant plan.
Spotless now uses Palantir Java Format 2.78.0 with a 120-character wrap; configure IDE formatters to match before pushing code changes.
Keep each increment's control flow flat by delegating validation/normalisation into tiny pure helpers that return simple enums or result records, then compose them instead of introducing inline branching that inflates the branch count per change.
When introducing new helpers/utilities or editing files prone to style violations (records, DTOs, generated adapters), run the narrowest applicable lint target (for example phpstan) before the full pipeline. Note the command in the related plan/task.
For PHP changes, ru...

Files:

  • app/Actions/InstallUpdate/DefaultConfig.php
  • app/Actions/Diagnostics/Pipes/Checks/PHPVersionCheck.php
🧠 Learnings (20)
📓 Common learnings
Learnt from: ildyria
Repo: LycheeOrg/Lychee PR: 3641
File: lang/no/settings.php:9-9
Timestamp: 2025-08-22T06:11:18.329Z
Learning: For lang/* translation files in the Lychee project: only review PHP-related issues (syntax, structure, etc.), not translation content, grammar, or language-related nitpicks. The maintainer ildyria has explicitly requested this approach.
📚 Learning: 2025-09-03T14:22:58.633Z
Learnt from: ildyria
Repo: LycheeOrg/Lychee PR: 3673
File: docs/add-oauth-provider.md:36-49
Timestamp: 2025-09-03T14:22:58.633Z
Learning: Lychee uses Laravel 12 but deliberately maintains the old infrastructure model without migrating to newer Laravel 11+ patterns. They continue using EventServiceProvider for event registration rather than the newer Event::listen approach in AppServiceProvider, so documentation should reflect the traditional EventServiceProvider pattern.

Applied to files:

  • docs/specs/4-architecture/backend-architecture.md
  • .ai/embeds/IMPLEMENTATION.md
📚 Learning: 2025-08-20T20:33:32.844Z
Learnt from: ildyria
Repo: LycheeOrg/Lychee PR: 3637
File: lang/cz/renamer.php:3-94
Timestamp: 2025-08-20T20:33:32.844Z
Learning: In Lychee, internationalization is done by the admin, not by the visitor, and the system uses custom locale directory naming (e.g., lang/cz/) that may not follow Laravel's standard ISO 639-1 conventions like lang/cs/. This is intentional and works within their custom internationalization system.

Applied to files:

  • docs/specs/4-architecture/backend-architecture.md
📚 Learning: 2025-08-12T11:31:09.853Z
Learnt from: ildyria
Repo: LycheeOrg/Lychee PR: 3605
File: docs/Lifecycle-of-a-request-photo-upload.md:144-151
Timestamp: 2025-08-12T11:31:09.853Z
Learning: In Lychee, the BaseApiRequest class has been modified to change Laravel's default execution order - processValidatedValues() runs BEFORE authorize(), not after. This means that in Lychee request classes, $this->album and other processed properties are available during authorization checks, unlike standard Laravel behavior.

Applied to files:

  • docs/specs/4-architecture/backend-architecture.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to **/*.php : For PHP changes, run make phpstan to verify PHPStan level 6 minimum; fix all errors before committing.

Applied to files:

  • docs/Contribute.md
  • app/Actions/Diagnostics/Pipes/Checks/PHPVersionCheck.php
📚 Learning: 2025-12-22T14:11:17.217Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-22T14:11:17.217Z
Learning: Applies to **/*.vue : Use TypeScript in composition API for Vue3 and use PrimeVue for UI components

Applied to files:

  • docs/specs/0-overview/README.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to **/*.{vue,ts,js} : For Vue3/TypeScript frontend code, follow coding conventions defined in docs/specs/3-reference/coding-conventions.md for style, naming, and testing practices.

Applied to files:

  • docs/specs/0-overview/README.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to **/*.php : For PHP code, adhere to conventions: license headers in new files, strict comparison (===), no empty(), in_array() with third parameter true, snake_case variables, PSR-4 standard, test base classes (AbstractTestCase for Unit, BaseApiWithDataTest for Feature_v2).

Applied to files:

  • app/Actions/Diagnostics/Pipes/Checks/PHPVersionCheck.php
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/*.md : For every task, refresh the relevant feature plan and note open questions; only move forward once the plan reflects the desired change. Update specs before code.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/tasks.md : Before committing, confirm every completed task in tasks.md is marked [x] and the roadmap status reflects current progress (validate task checklist).

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/5-decisions/**/*.md : Before planning or implementation, skim ADRs under docs/specs/5-decisions whose related-features/specs entries reference the active feature ID so high-impact clarifications and architectural decisions are treated as required context.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Begin every fresh interaction by summarising roadmap status, feature plan progress, and open questions for the user. Request clarification on outstanding questions before planning or implementation; log any new questions immediately.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/tasks.md : Maintain a per-feature tasks checklist that mirrors the plan, orders tests before code, and keeps planned increments ≤90 minutes by preferring finer-grained entries and documenting sub-steps when something nears the limit.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/{spec,plan,tasks}.md : Start every feature by updating or creating its specification at docs/specs/4-architecture/features/<NNN>-<feature-name>/spec.md, followed by plan and tasks documents after clarifications are resolved.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/_current-session.md : Maintain docs/specs/_current-session.md as the single live snapshot across active chats; always review/update it before closing a session.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Before hand-off, review your own changes, rerun checks, and ensure documentation/test coverage matches the behaviour (RCI self-review).

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/{spec,plan,tasks}.md : Generate or refresh the feature plan only after the specification is current and high-/medium-impact clarifications are resolved and recorded in the spec (plus ADRs where required).

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/*.md : Track upcoming additions for contract tests, mutation analysis, and security/red-team prompt suites in the plans until automated jobs exist (quality gates).

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/roadmap.md : Update the roadmap regularly to reflect feature status and progress as work is made.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
📚 Learning: 2025-12-22T14:12:18.082Z
Learnt from: CR
Repo: LycheeOrg/Lychee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T14:12:18.082Z
Learning: Applies to docs/specs/4-architecture/features/**/*.md : Update feature specs, feature plans, and tasks documents as progress is made and sync context to disk.

Applied to files:

  • docs/specs/5-operations/session-quick-reference.md
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (19)
  • GitHub Check: 2️⃣ PHP dist / 8.4 - sqlite
  • GitHub Check: 2️⃣ PHP dist / 8.4 - postgresql
  • GitHub Check: 2️⃣ PHP dist / 8.5 - postgresql
  • GitHub Check: 2️⃣ PHP dist / 8.5 - mariadb
  • GitHub Check: 2️⃣ PHP dist / 8.4 - mariadb
  • GitHub Check: 3️⃣ Dockerfile Lint
  • GitHub Check: 1️⃣ PHP tests / 8.5 - sqlite -- Webshop
  • GitHub Check: 1️⃣ PHP tests / 8.5 - mariadb -- Webshop
  • GitHub Check: 1️⃣ PHP tests / 8.5 - postgresql -- ImageProcessing
  • GitHub Check: 1️⃣ PHP tests / 8.5 - postgresql -- Unit
  • GitHub Check: 1️⃣ PHP tests / 8.5 - sqlite -- Unit
  • GitHub Check: 1️⃣ PHP tests / 8.5 - postgresql -- Feature_v2
  • GitHub Check: 1️⃣ PHP tests / 8.5 - sqlite -- ImageProcessing
  • GitHub Check: 1️⃣ PHP tests / 8.5 - sqlite -- Feature_v2
  • GitHub Check: 1️⃣ PHP tests / 8.5 - postgresql -- Webshop
  • GitHub Check: 1️⃣ PHP tests / 8.4 - mariadb -- Install
  • GitHub Check: 1️⃣ PHP tests / 8.5 - mariadb -- ImageProcessing
  • GitHub Check: 1️⃣ PHP tests / 8.5 - mariadb -- Feature_v2
  • GitHub Check: 1️⃣ PHP tests / 8.5 - mariadb -- Unit
🔇 Additional comments (9)
docs/Contribute.md (1)

27-27: LGTM! PHP version requirement updated consistently.

The prerequisite update from PHP 8.3 to 8.4 aligns with the broader version bump across the repository.

docs/specs/4-architecture/backend-architecture.md (1)

9-9: LGTM! Architecture documentation updated consistently.

Both mentions of the PHP version requirement have been updated from 8.3+ to 8.4+ in the Overview and Technology Stack sections.

Also applies to: 13-13

docs/specs/5-operations/session-quick-reference.md (1)

7-7: LGTM! Operational documentation updated consistently.

Environment prerequisites updated from PHP 8.3+ to 8.4+ in both the Session Kickoff Checklist and Handoff Prompt Template.

Also applies to: 30-30

docs/specs/0-overview/README.md (1)

76-76: LGTM! Technical requirements updated consistently.

The updates reflect the new minimum versions:

  • PHP 8.4+ (from 8.3+)
  • Node.js 20+ (from 18+)

Both are reasonable requirements as Node.js 20 is an LTS version and PHP 8.4 was released in November 2024.

Also applies to: 86-87

README.md (1)

4-4: LGTM! README updated consistently with new PHP requirements.

All PHP version mentions have been updated:

  • Badge displays PHP 8.4 & 8.5
  • Build from Source instructions require PHP 8.4 or later
  • Badge definition reflects the new versions

Also applies to: 59-59, 137-137

app/Actions/InstallUpdate/DefaultConfig.php (1)

28-28: LGTM! Core minimum PHP version updated correctly.

The minimum PHP version has been updated from 8.3.0 to 8.4.0, which is consistent with all documentation updates across the repository.

.ai/embeds/IMPLEMENTATION.md (1)

70-71: No action needed. The Laravel and PHP versions are consistent across the project.

Verification confirms composer.json specifies Laravel 12.x (^12.0), and both .ai/embeds/IMPLEMENTATION.md (line 70) and .ai/embeds/README.md (line 75) consistently document Laravel 12.x with PHP 8.4+. There is no inconsistency with Laravel 13.x mentioned anywhere in the codebase.

Likely an incorrect or invalid review comment.

app/Actions/Diagnostics/Pipes/Checks/PHPVersionCheck.php (1)

21-23: No issues found. PHP 8.5 was released as stable (GA) on November 20, 2025, with the latest patch 8.5.1 released December 18, 2025. Active support runs through 2027-12-31 and security support through 2029-12-31. Setting PHP_LATEST to 8.5 is appropriate and production-ready.

.ai/embeds/README.md (1)

75-75: ✅ Version update aligns with PR objectives.

The Laravel and PHP version updates correctly reflect the PR's intent to drop PHP 8.3 support and upgrade to Laravel 13.x.

@codecov
Copy link

codecov bot commented Dec 27, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.29%. Comparing base (1f8c509) to head (dd11ad3).
⚠️ Report is 1 commits behind head on master.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ildyria ildyria merged commit 15d66ca into master Dec 27, 2025
39 checks passed
@ildyria ildyria deleted the docs branch December 27, 2025 01:59
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