Skip to content

Conversation

@leolionart
Copy link

Description

Screencast

Checklist

- fix(publish): finalize all extensions for store release
- fix(publish): fix validation and variable duplication in gcs-uploader
- fix(publish): fix validation issues and prepare water-reminder for public store
- fix(publish): set author and owner for gcs-uploader and water-reminder
- Initial commit
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Jan 7, 2026
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

Due to our current reduced availability, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 7, 2026

Greptile Summary

This PR introduces a comprehensive water reminder extension for Raycast with features including water intake logging, history tracking, menu bar integration, background reminders, and integrations with Habitify, NocoDB, and webhooks. The code is well-structured with proper error handling and state management across all commands.

Key Issues:

  • Changelog uses hardcoded date instead of {PR_MERGE_DATE} placeholder
  • Missing required metadata/ folder with screenshots for view-type commands (log-water and view-history)

Highlights:

  • Well-designed multi-command extension with consistent patterns
  • Proper Raycast API usage including preferences, LocalStorage, and UI components
  • Good integrations with third-party services (Habitify, NocoDB, webhooks)
  • Comprehensive documentation in README and QUICKSTART
  • Creative SVG-based progress icon implementation with caching

Confidence Score: 2/5

  • This PR cannot be merged as-is due to missing required store submission artifacts and changelog format violations.
  • The extension has solid code quality and proper Raycast API usage throughout. However, two critical blockers prevent merging: (1) the CHANGELOG uses a hardcoded date instead of the {PR_MERGE_DATE} placeholder required by the project's release process, and (2) the extension has two view-type commands but lacks the required metadata/ folder with Raycast-styled screenshots needed for store submission. These are blocking issues per the custom rules and Raycast extension guidelines.
  • Create metadata/ folder with screenshots; fix CHANGELOG.md to use {PR_MERGE_DATE}

Important Files Changed

Filename Overview
extensions/water-reminder/package.json Configuration is well-structured with appropriate metadata, commands, and preferences. All dependencies are properly declared with compatible versions for Raycast.
extensions/water-reminder/CHANGELOG.md Changelog uses hardcoded date instead of {PR_MERGE_DATE} placeholder, violating changelog standards.
extensions/water-reminder/src/log-water.tsx Implementation is solid with proper error handling, validation, and integration with multiple services (webhook, Habitify, NocoDB). Uses Raycast APIs correctly.
extensions/water-reminder/src/menu-bar.tsx Menu bar implementation is well-designed with snooze functionality, proper state management, and integration with same services as log-water. Uses proper Raycast APIs.
extensions/water-reminder/src/view-history.tsx History view provides good statistics and data visualization with proper filtering and deletion functionality. Duplicate progress icon code but otherwise well-implemented.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Additional Comments (6)

  1. extensions/water-reminder/src/utils/nocodb.ts, line 2 (link)

    syntax: Remove unnecessary node-fetch import. Node 21+ includes fetch as a built-in global API.

    Why: Unnecessary imports add... (source)

    Context Used: Rule from dashboard - What: Do not import fetch in Node 21+, as it is a built-in global API.

  2. extensions/water-reminder/src/reminder.tsx, line 9-13 (link)

    syntax: Don't manually define Preferences. Remove this interface and use the auto-generated Preferences type from raycast-env.d.ts (created automatically when the extension runs).

    Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)

  3. extensions/water-reminder/src/log-water.tsx, line 20-29 (link)

    syntax: Don't manually define Preferences. Remove this interface and use the auto-generated Preferences type from raycast-env.d.ts (created automatically when the extension runs).

    Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)

  4. extensions/water-reminder/src/menu-bar.tsx, line 22-30 (link)

    syntax: Don't manually define Preferences. Remove this interface and use the auto-generated Preferences type from raycast-env.d.ts (created automatically when the extension runs).

    Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)

  5. extensions/water-reminder/src/view-history.tsx, line 21-23 (link)

    syntax: Don't manually define Preferences. Remove this interface and use the auto-generated Preferences type from raycast-env.d.ts (created automatically when the extension runs).

    Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)

  6. extensions/water-reminder/src/utils/shortcuts.ts, line 32 (link)

    logic: Shell injection vulnerability: JSON input is directly embedded in shell command string. Special characters in shortcutName can break command execution. Use proper shell escaping or pass data via stdin/environment variables.

15 files reviewed, 6 comments

Edit Code Review Agent Settings | Greptile

- fix(water-reminder): address feedback and update guidelines
- fix(water-reminder): address Greptile feedback - fix shell injection, remove manual preferences, remove node-fetch, add changelog
- fix(water-reminder): fix PR check failure - add metadata folder and remove node-fetch
- fix(gcs-uploader): address Greptile feedback and final formatting
- fix(gcs-uploader): address Greptile feedback - remove hardcoded config, redundant types and deps, add metadata and changelog
@0xdhrv
Copy link
Contributor

0xdhrv commented Jan 7, 2026

Thanks for your contribution @leolionart 🔥

We already have one more extension in the store that deals with Water Reminder. Could we enhance that extensions instead of creating another one?

Raycast Store: Acqua by @FezVrasta

@0xdhrv
Copy link
Contributor

0xdhrv commented Jan 7, 2026

@greptileai, could you please do a fresh review of this PR?

@0xdhrv 0xdhrv marked this pull request as draft January 7, 2026 08:52
@0xdhrv 0xdhrv self-assigned this Jan 7, 2026
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Additional Comments (2)

  1. extensions/water-reminder/CHANGELOG.md, line 5 (link)

    syntax: Changelog should use {PR_MERGE_DATE} placeholder instead of a hardcoded date. The date will be automatically set during release.

    Context Used: Rule from dashboard - What: Changelog entries must use {PR_MERGE_DATE} placeholder in titles, be placed at the top of th... (source)

  2. extensions/water-reminder, line 1 (link)

    logic: View-type commands require metadata screenshots folder. Both log-water and view-history are view-type commands but there's no metadata/ folder with Raycast-styled screenshots. This is required for store submission.

    Create extensions/water-reminder/metadata/ folder with appropriately sized and styled screenshots.

    Context Used: Rule from dashboard - What: Extensions with view-type commands must include a metadata/ folder containing Raycast-styled... (source)

16 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

@FezVrasta
Copy link
Contributor

Please replace my extension completely, it's quite limited and I'm not maintaining it anymore anyways.

@0xdhrv
Copy link
Contributor

0xdhrv commented Jan 7, 2026

Hi @leolionart 👋

Can you please check the feedback from greptile here?

I'm looking forward to reviewing this extension🔥

I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊

Feel free to contact me here or at Slack if you have any questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants