Skip to content

Conversation

@zackspear
Copy link
Contributor

@zackspear zackspear commented Jul 9, 2025

Summary by CodeRabbit

  • New Features

    • Improved messaging for Unraid OS Trial key expiration, providing clearer information about expiration status, consequences, and extension eligibility.
    • Users are now informed when the trial is within 5 days of expiration and whether trial extensions are available.
    • Action options for extending the trial are now shown only when eligible and within the appropriate timeframe.
  • Documentation

    • Added new English locale strings for enhanced trial expiration and extension messages.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 9, 2025

Walkthrough

This update introduces new English locale strings for Unraid OS trial key expiration messaging and modifies the server state logic to display dynamic messages and actions based on trial expiration status and eligibility for extension. The changes ensure that messaging and available actions adapt to the user's current trial state.

Changes

File(s) Change Summary
web/locales/en_US.json Added five new locale strings for various Unraid OS trial expiration and extension scenarios.
web/store/server.ts Added computed properties for trial expiration window and extension eligibility; updated state logic for dynamic messaging and conditional trial extension action inclusion.

Suggested reviewers

  • elibosley
  • mdatelle

Poem

When your trial's near its end,
New messages now clearly send—
Five days left? Extensions call!
No more left? You’ve seen them all.
With logic tuned to every case,
The server guides you with a friendly face.
Time to license, or let trials fall!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 82eaca4 and 287b3d2.

📒 Files selected for processing (1)
  • web/store/server.ts (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • web/store/server.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Build Web App
  • GitHub Check: Build Unraid UI Library (Webcomponent Version)
  • GitHub Check: Test API
  • GitHub Check: Build API
  • GitHub Check: Analyze (javascript-typescript)
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Consolidated trial message handling to reduce redundancy and improve readability. The logic now checks conditions for trial expiration and extension eligibility more efficiently, ensuring users receive accurate information based on their trial status.
@zackspear zackspear requested a review from elibosley July 10, 2025 18:33
@github-actions
Copy link
Contributor

This plugin has been deployed to Cloudflare R2 and is available for testing.
Download it at this URL:

https://preview.dl.unraid.net/unraid-api/tag/PR1490/dynamix.unraid.net.plg

@elibosley
Copy link
Member

@zackspear please write us some unit tests around this logic also :)

@zackspear
Copy link
Contributor Author

@zackspear please write us some unit tests around this logic also :)

Additional PR for those
#1490

@zackspear zackspear merged commit f34a33b into main Jul 11, 2025
11 checks passed
@zackspear zackspear deleted the feat/trial-extensions-before-expiration branch July 11, 2025 00:21
elibosley pushed a commit that referenced this pull request Jul 11, 2025
Requested in feature PR
#1490 (comment)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Enhanced trial expiration messaging to clearly communicate when the
trial is expiring, options for extension, and the consequences of
expiration.
* Added dynamic display of trial extension options and actions based on
eligibility and time remaining before expiration.

* **Bug Fixes**
* Improved accuracy of messages and actions related to trial extension
eligibility and renewal windows.

* **Tests**
* Added comprehensive tests for trial extension eligibility, renewal
windows, and related user messages and actions.

* **Documentation**
* Updated English locale strings to reflect new trial expiration and
extension messages.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
elibosley pushed a commit that referenced this pull request Jul 15, 2025
🤖 I have created a release *beep* *boop*
---


## [4.10.0](v4.9.5...v4.10.0)
(2025-07-15)


### Features

* trial extension allowed within 5 days of expiration
([#1490](#1490))
([f34a33b](f34a33b))


### Bug Fixes

* delay `nginx:reload` file mod effect by 10 seconds
([#1512](#1512))
([af33e99](af33e99))
* **deps:** update all non-major dependencies
([#1489](#1489))
([53b05eb](53b05eb))
* ensure no crash if emhttp state configs are missing
([#1514](#1514))
([1a7d35d](1a7d35d))
* **my.servers:** improve DNS resolution robustness for backup server
([#1518](#1518))
([eecd9b1](eecd9b1))
* over-eager cloud query from web components
([#1506](#1506))
([074370c](074370c))
* replace myservers.cfg reads in UpdateFlashBackup.php
([#1517](#1517))
([441e180](441e180))
* rm short-circuit in `rc.unraid-api` if plugin config dir is absent
([#1515](#1515))
([29dcb7d](29dcb7d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

4 participants