-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Feat env vars to system lib #9515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThe update spans many configuration, workflow, documentation, and source files. Environment variables were added, workflow jobs and Docker configurations were revised, and documentation was updated with a new version. New collection and console settings were introduced, error handling and function runtime templates were improved, and email template as well as translation punctuation was standardized. Platform constants were removed, region names corrected, role permissions adjusted, API specification methods reweighted, and a few source‐code items in the Calculator were renamed or extended. Changes
Sequence Diagram(s)sequenceDiagram
participant PR as Pull Request Event
participant Repo as Repository
participant JobA as check_database_changes Job
participant JobB as e2e_shared_mode_test Job
PR->>Repo: Trigger pull request event
Repo->>JobA: Start check_database_changes
JobA->>Repo: Checkout repository and fetch base branch
JobA->>Repo: Execute git diff on composer.lock
Repo-->>JobA: Return diff results (changed/unchanged)
JobA-->>JobB: Set output variable "database_changed"
JobB->>Repo: Execute tests if database has changed
Poem
Tip ⚡🧪 Multi-step agentic review comment chat (experimental)
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Security Scan Results for PRDocker Image Scan Results
Source Code Scan Results🎉 No vulnerabilities found! |
commit: |
✨ Benchmark results
⚡ Benchmark Comparison
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caution
Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 4
🧹 Nitpick comments (78)
README.md (1)
102-102
: Check for environment parity when upgrading.The same environment variables, volumes, and ports should remain valid upon moving to
appwrite/appwrite:1.6.2
. Double-check local usage and CI/CD references.app/config/collections/projects.php (4)
73-269
: Validate'attributes'
collection configuration.The
'attributes'
collection designs a robust schema for storing metadata about database attributes. Largesize
fields (e.g., 16384 or 2048) could impact performance and storage, so confirm that these are necessary. Consider indexing frequently queried fields if needed for performance.If attribute usage grows large, consider a separate sub-collection or archiving strategy to reduce row size.
1188-1336
: Check'builds'
collection capacity limits.Fields like
logs
can store up to 1,000,000 characters, which might be large in practice. If logs are frequently large, consider storing them in a specialized logging system (e.g., object storage) to avoid ballooning database usage.
1337-1606
: Assess'executions'
collection for data growth.Execution logs and errors can also grow significantly (up to 1,000,000 characters each). For high-volume usage, this could become unwieldy. Evaluate whether partial log storage (or rotating them out) is more suitable.
1726-1873
: Inspect'migrations'
collection for workflow readiness.Storing migration data with fields like
destination
andcredentials
helps track state. The'filters' => ['json','encrypt']
usage is prudent for security. Keep an eye on large fields like65536
and131070
for performance. Also confirm that partial or staged migrations handle data consistently when dealing with large resource sets.app/config/console.php (1)
44-45
: Check whitelist arrays for null or empty entries.When
'authWhitelistEmails'
or'authWhitelistIPs'
environment variables are empty,\explode(',', System::getEnv(...))
might produce arrays with a single empty string. Confirm usage in authentication checks to avoid logic pitfalls.CONTRIBUTING.md (1)
616-628
: New section on preview domains for cloud workspaces.This new documentation section helps users work with preview domains in cloud workspace environments like Gitpod or GitHub Codespaces.
There are a couple of minor typos in the new section:
-This default value works great when running Appwrite locally, but it can be impossible to use preview domains with Cloud woekspaces such as Gitpod or GitHub Codespaces. +This default value works great when running Appwrite locally, but it can be impossible to use preview domains with Cloud workspaces such as Gitpod or GitHub Codespaces.-To use preview domains on Cloud workspaces, you can visit hostname provided by them, and supply function's preview domain as URL parameter: +To use preview domains on Cloud workspaces, you can visit the hostname provided by them, and supply function's preview domain as URL parameter:🧰 Tools
🪛 LanguageTool
[grammar] ~618-~618: It appears that the past participle should be used here.
Context: ...o execute the function. This domain has format[SOMETHING].functions.localhost
unles...(HAVE_PART_AGREEMENT)
[uncategorized] ~618-~618: You might be missing the article “the” here.
Context: ...functions.localhostunless you changed
_APP_DOMAIN_FUNCTIONS` environment varia...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
app/config/collections/platform.php (1)
963-964
: Address the pendingTODO
for JSON filtering.A
json
filter may be helpful to ensure that incoming data is valid JSON. If the attribute is meant to store JSON-encoded data, adding thejson
filter can strengthen data integrity.app/config/function-templates.php (4)
14-14
: Upgrade Dart version to 3.5
Upgrading to Dart 3.5 helps keep these templates in sync with the latest language enhancements. Please validate that any older code remains compatible.
24-27
: Introduce Deno runtime
Adding Deno provides more flexibility for users who prefer a secure and modern runtime. Ensure comprehensive testing coverage is added for each listed Deno version.
129-130
: Large placeholder for UPSTASH_TOKEN
The placeholder is quite extensive; verify this does not unintentionally leak real credentials. Generally, placeholders should be example-like rather than containing real-like tokens.
1570-1571
: New scopes array for 'Chat with Perplexity AI'
Initializingscopes
as an empty array is appropriate. In the future, consider whether any permission scopes are relevant.app/cli.php (4)
46-46
: Resource usage in cache adapters
Ensuring each adapter is retrieved viagetResource()
is good. Confirm that reclaimed connections are handled properly if any errors occur.
56-99
: Renamed console DB resource to dbForPlatform
Renaming todbForPlatform
clarifies its purpose as a general platform store. The retry/ready logic is solid, but ensure that 5 attempts with 3-second sleeps suffice for all environment latencies.
105-166
: Refactor getProjectDB
This factory function now acceptsDatabase $dbForPlatform
as a fallback for console. Switching to shared tables if the host is in_APP_DATABASE_SHARED_TABLES
provides flexibility. Confirm the tenant and shared-table toggles are thoroughly tested for multi-tenant scenarios.
210-220
: Register queueForStatsResources
Similar approach for resource stats. Ensure we have updated documentation for new stats event usage.app/config/collections/common.php (2)
116-118
: Fix minor spelling in E.164 format comment.Within the comment describing phone number length, "15 digitts" should be "15 digits". This typographical error might cause confusion for future maintainers.
126-135
: Consider avoiding'signed' => true
for booleans.Your boolean attributes (e.g.
status
,reset
,mfa
,verified
,expired
) are marked with'signed' => true
. While this shouldn't cause functional issues, it’s slightly unconventional to allow a sign bit on fields meant to store onlytrue
/false
. For clarity and consistency, you might switch to'signed' => false
for these boolean fields.- 'signed' => true, // for booleans + 'signed' => false, // for booleansAlso applies to: 248-256, 258-266, 576-584, 2308-2317
app/config/locale/templates/email-mfa-challenge.tpl (1)
6-6
: Review Thanks Message Formatting
The{{thanks}}
placeholder is now displayed without an appended comma. Verify that this formatting meets the intended design, as consistent punctuation (or its removal) across all emails is crucial for uniformity.app/config/locale/translations/vi.json (1)
247-247
: Signature Capitalization Consistency
The OTP session signature appears as"emails.otpSession.signature": "nhóm {{project}}"
, which is in lowercase. For consistency with other signature entries (e.g.,"Nhóm {{project}}"
in verification emails), consider capitalizing"Nhóm"
.app/config/locale/translations/th.json (1)
242-242
: Adjusted OTP session greeting punctuation (Thai)
The OTP session greeting has been updated from a comma-terminated string to"สวัสดี"
, removing the trailing comma. Confirm that this change adheres to your style guidelines for Thai email templates and is consistent with the overall tone.app/config/locale/translations/bh.json (1)
7-28
: Standardized punctuation in Bh translation email templates
Multiple email template keys (such asemails.verification.hello
,emails.verification.thanks
,emails.magicSession.hello
,emails.magicSession.thanks
,emails.recovery.hello
,emails.recovery.thanks
,emails.invitation.hello
, andemails.invitation.thanks
) now end with a comma. This modification standardizes the punctuation across these messages. Please double-check that the added commas conform with language-specific stylistic guidelines in Bhojpuri and that the intended tone is preserved.app/config/locale/translations/hi.json (1)
7-28
: Consistent punctuation applied in Hindi email templates
The changes introduce trailing commas in several email template fields (for example,"नमस्ते {{user}},", "धन्यवाद,"
in verification, magic session, recovery, and invitation emails), ensuring a consistent format across the messages. Please review these modifications against your style and localization guidelines for Hindi to ensure they are appropriate.app/config/locale/translations/el.json (1)
7-28
: Punctuation consistency update in Greek email templates
The Greek translations have been modified to include trailing commas in key greeting and thank-you phrases (for example,"Γεια σου {{user}},", "Ευχαριστούμε,"
). This update improves consistency across messages. Ensure that these changes match the intended tone and that they remain consistent with other language templates in your project.app/config/locale/translations/pt-pt.json (1)
13-16
: Magic Session Email Formatting.
The "emails.magicSession.hello" key now reads as "Olá ," with an extra space before the comma. It is recommended to remove the extra space so it becomes "Olá," for consistency.Proposed change:
-"emails.magicSession.hello": "Olá ," +"emails.magicSession.hello": "Olá,"app/config/locale/translations/it.json (4)
7-10
: Consistent punctuation in verification emails.The addition of a trailing comma in both
"emails.verification.hello"
and"emails.verification.thanks"
improves consistency and clarity in these email templates.
13-16
: Standardized punctuation in magic session emails.Updating
"emails.magicSession.hello"
and"emails.magicSession.thanks"
to include trailing commas aligns these messages with other templates for a coherent tone.
19-22
: Improved punctuation in recovery emails.Appending commas to
"emails.recovery.hello"
and"emails.recovery.thanks"
creates a friendlier and more consistent greeting, matching the style used in other email communications.
25-28
: Consistent punctuation in invitation emails.By adding commas to
"emails.invitation.hello"
and"emails.invitation.thanks"
, the email invitation templates now maintain uniform punctuation across the board.app/config/locale/translations/fr.json (5)
7-10
: Unified punctuation in verification emails.The updated values for
"emails.verification.hello"
and"emails.verification.thanks"
(now ending with a comma) promote consistency and a more formal tone in these communication templates.
13-16
: Standard punctuation for magic session emails.The modifications to
"emails.magicSession.hello"
and"emails.magicSession.thanks"
by appending commas help establish a uniform style throughout the email templates.
19-22
: Consistent punctuation in recovery emails.Adding trailing commas to
"emails.recovery.hello"
and"emails.recovery.thanks"
ensures that the recovery emails adhere to the same stylistic guidelines as the other email notifications.
25-28
: Harmonized punctuation in invitation emails.The addition of commas to
"emails.invitation.hello"
and"emails.invitation.thanks"
standardizes these messages, contributing to the overall consistency of the email templates.
248-249
: File formatting: End-of-file newline.Ensuring that the file ends with a newline is a good practice for POSIX compatibility.
app/config/locale/translations/hr.json (1)
7-10
: [Punctuation Consistency – Verification Email]
The greeting ("Pozdrav {{user}},") and thanks message ("Hvala,") now include a trailing comma which improves the consistency of email formatting.app/config/locale/translations/eo.json (1)
6-9
: [Enhanced Verification Template – Esperanto]
The greeting has been changed to "Saluton {{user}}," and the thanks message to "Dankegon.,". Please double-check whether the combined period and comma ("Dankegon.,") is intentional or if you meant to simply use a comma.app/config/locale/translations/ko.json (1)
7-10
: [Korean Verification Email – Punctuation Check]
The greeting is now "안녕하세요 {{user}}님、" and the thanks message "감사합니다、" use the Japanese comma “、”. Please verify that this punctuation style is acceptable for the Korean locale and aligns with your brand guidelines.app/config/locale/translations/mr.json (1)
12-16
: Magic Session Email Formatting and Spacing
The modification to add a trailing comma in"नमस्कार ,"
and"धन्यवाद,"
brings the magic session emails in line with the overall style.
Note: There is an extra space before the comma in"नमस्कार ,"
—consider removing it if it is unintentional..env (1)
42-42
: Storage S3 Endpoint Configuration
The_APP_STORAGE_S3_ENDPOINT=
variable is introduced with an empty value. Please verify if an empty default is intended or if a fallback/default endpoint should be provided by the system library.app/config/locale/translations/zh-tw.json (1)
242-246
: Review OTP Session Email Punctuation
The"emails.otpSession.hello"
and"emails.otpSession.thanks"
fields now contain the combination,、
which appears redundant. Please review and confirm whether a single punctuation mark (either the fullwidth comma or enumeration comma) is preferred.app/config/locale/translations/sl.json (1)
7-10
: Punctuation Standardization in Slovene Translations
The email template keys—including"emails.verification.hello"
,"emails.verification.thanks"
,"emails.magicSession.hello"
,"emails.magicSession.thanks"
,"emails.recovery.hello"
,"emails.recovery.thanks"
,"emails.invitation.hello"
, and"emails.invitation.thanks"
—have been updated to contain a comma (",") instead of an empty string. Please confirm that this punctuation change is in line with your overall localization strategy for the Slovene locale.Also applies to: 13-16, 19-22, 25-28
app/config/locale/translations/be.json (5)
7-10
: Punctuation Update in Verification Emails
The greeting and thanks messages now include a trailing comma (e.g."Прывітанне {{user}},"
and"Дзякуем,"
), which improves consistency in the verification email template.
13-16
: Punctuation Update in Magic Session Emails
The changes add commas (e.g."Прывітанне,"
and"Дзякуем,"
) to the magic session email texts, ensuring uniform punctuation across templates.
19-22
: Punctuation Update in Recovery Emails
Appending a comma to both the greeting ("Прывітанне, {{user}},"
) and the thanks message ("Дзякуем,"
) helps maintain consistency in recovery communications.
25-28
: Punctuation Update in Invitation Emails
The invitation email now uses commas in the greeting ("Прывітанне,"
) and thanks ("Дзякуем,"
) messages, aligning with the overall punctuation standards.
248-251
: Punctuation Update in Certificate Emails
Adding commas to the certificate email’s greeting ("Прывітанне,"
) and thanks ("Дзякуй,"
) messages ensures a standardized and polished appearance throughout the email templates.app/config/locale/translations/la.json (5)
4-4
: Potential Typo in Text Direction
The"settings.direction"
value on line 4 is set to"ltr*"
; the asterisk appears extraneous. Please verify if the intent was to use"ltr"
instead.
7-10
: Punctuation Update in Verification Emails
Commas have been added to the verification greeting ("Salve ibi {{user}},"
) and thanks ("Gratias,"
) messages for consistency.
13-16
: Punctuation Update in Magic Session Emails
The magic session greeting ("Salve ibi,"
) and thanks ("Gratias,"
) messages are now punctuated with trailing commas, aligning with the updated style.
19-22
: Punctuation Update in Recovery Emails
Both the greeting ("Salve ibi {{user}},"
) and the thanks ("Gratias,"
) messages in the recovery section now include a comma for improved readability.
25-28
: Punctuation Update in Invitation Emails
The greeting ("Salve ibi,"
) and thanks ("Gratias,"
) messages have been updated with trailing commas, ensuring consistent punctuation across the invitation emails.app/config/locale/translations/ru.json (5)
7-10
: Punctuation Update in Verification Emails
The greeting ("Здравствуйте, {{user}},"
) and thanks ("Спасибо,"
) messages now include a trailing comma, which standardizes the format for verification emails.
12-16
: Punctuation Update in Magic Session Emails
The magic session email now features a comma in the greeting ("Здравствуйте,"
) and in the thanks message ("Спасибо,"
), helping maintain a uniform style.
19-22
: Punctuation Update in Recovery Emails
Appending commas to the recovery greeting ("Здравствуйте, {{user}},"
) and thanks ("Спасибо,"
) messages improves the textual consistency within the recovery emails.
25-29
: Punctuation Update in Invitation Emails
The invitation emails now use a consistent punctuation style by adding a trailing comma in both the greeting ("Здравствуйте,"
) and the thanks ("Спасибо,"
) messages.
242-247
: Punctuation Update in OTP Session Emails
The OTP session email’s thanks message now features a trailing comma ("Спасибо,"
), ensuring that the punctuation style remains consistent across all email templates.app/config/locale/translations/pt-br.json (4)
7-10
: Punctuation Update in Verification Emails
The greeting ("Olá {{user}},"
) and thanks ("Muito obrigado,"
) messages now end with a comma, which enhances the consistency and clarity of the verification email text.
13-16
: Punctuation Update in Magic Session Emails
The addition of a trailing comma in the magic session greeting ("Olá,"
) and thanks ("Muito obrigado,"
) messages helps maintain a uniform punctuation standard.
19-22
: Punctuation Update in Recovery Emails
Both the greeting ("Olá {{user}},"
) and the thanks ("Muito obrigado,"
) messages in the recovery email have been updated to include a trailing comma for consistency.
25-28
: Punctuation Update in Invitation Emails
The invitation email now features a trailing comma in the greeting ("Olá,"
) and thanks ("Muito obrigado,"
) messages, ensuring a polished and consistent style.app/config/locale/translations/es.json (5)
7-10
: Punctuation Anomaly in Verification Emails
The greeting ("Hola, {{name}}.,"
) and thanks ("Gracias.,"
) messages include an extraneous period before the comma. Consider removing the period so that the messages read as"Hola, {{name}},"
and"Gracias,"
for consistency with other locales.
13-16
: Punctuation Review in Magic Session Emails
The greeting"Hola,"
appears correct; however, verify that the thanks message follows the same format as other template sections to ensure overall consistency.
19-22
: Punctuation Anomaly in Recovery Emails
The recovery greeting ("Hola, {{name}}.,"
) includes an extra period before the comma. Removing the period will align this entry with the standard f 8000 ormat used in other translations.
25-28
: Punctuation Anomaly in Invitation Emails
The thanks message ("Gracias.,"
) again shows an extra period preceding the comma. Revising it to"Gracias,"
would provide a cleaner, more consistent presentation.
242-247
: Punctuation Anomaly in OTP Session Emails
Similar to the other sections, the OTP session thanks message ("Gracias.,"
) contains an unnecessary period before the comma. It is recommended to remove the period for consistency.app/config/locale/translations/id.json (1)
248-248
: File Formatting Check:
The closing brace on line 248 is marked as changed (indicated by the tilde). This may reflect an adjustment to ensure the file ends with a proper newline or adheres to formatting standards. Please confirm that this change is intentional and complies with repository guidelines.app/config/locale/translations/sd.json (1)
13-13
: Update Magic Session Greeting Punctuation
The magic session greeting has been updated to include a comma. Please verify that the extra space before the comma ("هي ,") is intentional per locale standards..github/workflows/tests.yml (1)
243-243
: Remove Trailing Spaces
Static analysis has identified trailing spaces at line 243. Please remove any extraneous whitespace to adhere to YAML lint standards.🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 243-243: trailing spaces
(trailing-spaces)
app/config/locale/translations/sq.json (2)
7-10
: Consistent Email Punctuation for Albanian Translations
The updates replace empty strings with a comma for the greeting and thanks messages in the verification, magic session, recovery, and invitation emails. This appears to be a deliberate decision to standardize punctuation across the templates. Please confirm that the single comma output aligns with the intended formatting for Albanian.Also applies to: 13-16, 19-22, 25-28
248-249
: Trailing Marker Check
There is a change marker on line 248. Kindly verify whether this trailing line marker was intended (e.g. an adjustment in whitespace or a trailing comma) or if it could be a formatting artifact.app/config/locale/translations/az.json (1)
7-10
: Consistent Punctuation in Azerbaijani Email Templates
The modifications add commas to the values for email greetings and thanks in the Azerbaijani translations. This ensures a uniform style across verification, magic session, recovery, and invitation emails. Please verify that adding a trailing comma meets cultural and contextual expectations for Azerbaijani users.Also applies to: 13-16, 19-22, 25-28
app/config/locale/translations/lv.json (1)
7-10
: Uniform Comma Usage for Latvian Email Templates
The changes update the greeting and thanks messages by appending a comma. This consistent punctuation should improve the readability of the email templates. It is recommended to double-check that this formatting complies with the localized stylistic guidelines for Latvian.Also applies to: 13-16, 19-22, 25-28
app/config/locale/translations/gu.json (1)
7-10
: Standardized Email Template Punctuation in Gujarati Translations
The modifications here insert commas at the end of the greeting and thanks strings for verification, magic session, recovery, and invitation emails. This update promotes consistency within the email templates. Please ensure that this punctuation is culturally appropriate for the Gujarati locale.Also applies to: 13-16, 19-22, 25-28
app/config/locale/translations/te.json (1)
7-10
: Consistent Comma Usage in Telugu Email Templates
The changes add commas to the greetings and thank-you messages in the Telugu translations, mirroring the pattern in other locales. This update should enhance the clarity and consistency of the email templates. Please confirm that these updates are in line with the intended design and localization standards for Telugu.Also applies to: 13-16, 19-22, 25-28
app/config/locale/translations/ja.json (4)
7-7
: Punctuation Update for Verification Emails (Japanese)
The verification email greeting ("emails.verification.hello") now ends with a Japanese comma (、), and the thanks message ("emails.verification.thanks") has been updated to "ご利用いただきありがとうございます。、".Note: The thanks message now contains both a period and a comma (“。、”), which might be unusual in Japanese punctuation. Please verify this is intentional and consistent with your style guidelines.
Also applies to: 10-10
13-13
: Punctuation Update for Magic Session Emails (Japanese)
The magic session greeting ("emails.magicSession.hello") ends with a comma, and the thanks message ("emails.magicSession.thanks") similarly uses "ご利用いただきありがとうございます。、".Again, please confirm that the combination of punctuation (period + comma) is desired.
Also applies to: 16-16
19-19
: Punctuation Update for Recovery Emails (Japanese)
Both the greeting ("emails.recovery.hello") and thanks ("emails.recovery.thanks") for the recovery emails now include a comma. As with other entries, verify that the new punctuation, especially the sequence “。、”, conforms to your localization standards.Also applies to: 22-22
242-242
: Punctuation Update for OTP Session Emails (Japanese)
The OTP session greeting ("emails.otpSession.hello") and thanks ("emails.otpSession.thanks") now include the new punctuation (Note the greeting is "こんにちは。、"). Please confirm that this punctuation, particularly the mix of symbols, is as intended.Also applies to: 246-246
🛑 Comments failed to post (4)
app/config/collections/projects.php (1)
800-1187:
⚠️ Potential issueScrutinize
'deployments'
collection for security.This collection references repository information, commit details, and provider branches. Storing repository credentials or (IDs) in plain text might be a security risk. Consider an encryption filter for sensitive tokens or credentials.
Use secure storage for any tokens or secrets and ensure strict access controls on these records.
app/config/collections/platform.php (1)
224-234: 🛠️ Refactor suggestion
Follow up on size constraints.
The comment "TODO make sure size fits" indicates a potential mismatch or unknown. Ensure that the maximum field length is appropriate to handle typical usage while avoiding unbounded expansion that could cause performance or storage issues.
Dockerfile (1)
88-91: 🛠️ Refactor suggestion
Renamed worker scripts.
The newly added worker scripts for stats usage and resources appear consistent with the naming scheme. Ensure all references to these scripts in the codebase or CI configurations are updated accordingly.
app/config/locale/translations/ur.json (1)
29-29:
⚠️ Potential issueInvitation Signature Template Issue (UR)
The invitation signature appears to be missing a closing curly brace for the project placeholder. It is currently"ٹیم۔ {{project}"
but should be corrected to"ٹیم۔ {{project}}"
for consistency with other locales.
What does this PR do?
Use system lib to get env vars
Test Plan
Existing tests
Related PRs and Issues
N/A
Checklist
Summary by CodeRabbit
New Features
Bug Fixes
Enhancements