Skip to content

Add chaldean-lectionary extension#26568

Draft
patrosrock wants to merge 2 commits intoraycast:mainfrom
patrosrock:ext/chaldean-lectionary
Draft

Add chaldean-lectionary extension#26568
patrosrock wants to merge 2 commits intoraycast:mainfrom
patrosrock:ext/chaldean-lectionary

Conversation

@patrosrock
Copy link
Copy Markdown

@patrosrock patrosrock commented Mar 23, 2026

Description

I'm a Chaldean Catholic Priest and I wanted an easy way to pull up the readings for Sundays and Daily Masses so I can prepare my homilies better and send these readings to friends and parishioners to read and reflect! It was a fun process and RayCast has been amazing! I hope this helps you in keeping up with the daily readings of our Church.

Screencast

Checklist

@raycastbot raycastbot added the new extension Label for PRs with new extensions label Mar 23, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, 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.

@patrosrock patrosrock marked this pull request as ready for review March 23, 2026 05:35
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 23, 2026

Greptile Summary

This PR adds a new Chaldean Lectionary extension that displays daily scripture readings for the Chaldean Catholic Church, pulling hardcoded 2026 lectionary data and optionally overlaying a Google Calendar title for liturgical feast overrides. Scripture text is fetched live by scraping USCCB pages.

Issues found:

  • Missing CHANGELOG.md — A CHANGELOG.md file with an ## [Initial Release] - {PR_MERGE_DATE} entry is required for all new extensions.
  • Missing metadata/ folder — Both commands are "mode": "view", so Raycast-styled screenshots are required in a metadata/ folder before publishing to the store.
  • package.json / package-lock.json version mismatchpackage.json declares @raycast/utils: ^1.15.0 while the lock file was generated against ^2.2.3. These are incompatible major versions; package.json should be updated to match the lock file.
  • Manually defined Preferences interface in today.tsx — Should be removed; the type is auto-generated in raycast-env.d.ts.
  • Unused duplicate file weeklyreadings.ts — This file is an apparent copy of weekdayReadings2026.ts and is never imported anywhere; it should be deleted.

Confidence Score: 2/5

  • Not ready to merge — missing required CHANGELOG.md, missing metadata screenshots, and a significant package.json/lock file version mismatch for @raycast/utils.
  • Three blocking issues must be resolved before merging: (1) no CHANGELOG.md, (2) no metadata/ folder with screenshots for the two view-type commands, and (3) @raycast/utils declared as ^1.15.0 in package.json while the lock file resolves ^2.2.3 — a breaking major version gap that would cause install inconsistencies.
  • package.json (version mismatch), src/today.tsx (manual Preferences interface), src/data/weeklyreadings.ts (unused duplicate — should be deleted)

Important Files Changed

Filename Overview
extensions/chaldean-lectionary/package.json Version ranges for @raycast/api (^1.70.0) and @raycast/utils (^1.15.0) are significantly behind what package-lock.json uses (^1.104.10 and ^2.2.3 respectively); the utils major version mismatch (1.x vs 2.x) is a blocking concern.
extensions/chaldean-lectionary/src/today.tsx Core "Today's Readings" command — works correctly; minor issue with manually-defined Preferences interface that should be removed in favour of the auto-generated type.
extensions/chaldean-lectionary/src/lookup.tsx Lookup command looks correct; implements search across all lectionary dates with sections per day.
extensions/chaldean-lectionary/src/utils/fetchScripture.ts HTML scraping of USCCB pages with custom parsing; logic is functional but brittle by nature. No significant bugs found.
extensions/chaldean-lectionary/src/data/weeklyreadings.ts Appears to be an exact duplicate of weekdayReadings2026.ts that is never imported; should be removed.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: extensions/chaldean-lectionary/src/today.tsx
Line: 7-10

Comment:
**Manual Preferences interface should be removed**

Manually defining a `Preferences` interface for `getPreferenceValues()` is discouraged. These types are auto-generated in `raycast-env.d.ts` when the extension runs, so manual definitions can drift out of sync with the actual `package.json` preferences config and cause type mismatches.

```suggestion
const prefs = getPreferenceValues<Preferences>();
```

Remove lines 7–10 entirely and rely on the auto-generated `Preferences` type instead:

```ts
// Remove this block:
// interface Preferences {
//   calendarId: string;
//   googleApiKey: string;
// }

const prefs = getPreferenceValues<Preferences>();
```

**Rule Used:** What: Don't manually define `Preferences` for `get... ([source](https://app.greptile.com/review/custom-context?memory=d93fc9fb-a45d-4479-a6a4-b1b4af98ebc8))

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: extensions/chaldean-lectionary/package.json
Line: 40-43

Comment:
**Dependency versions out of sync with package-lock.json**

`package.json` declares `"@raycast/utils": "^1.15.0"` (and `"@raycast/api": "^1.70.0"`), but the `package-lock.json` was generated with `"@raycast/utils": "^2.2.3"` and `"@raycast/api": "^1.104.10"`. This is a major version mismatch for `@raycast/utils` (1.x vs 2.x), which includes breaking API changes.

If someone removes the lock file and runs `npm install`, they'll get `@raycast/utils` 1.x, which is incompatible with the lock file's resolved dependencies and potentially with the code. The `package.json` version ranges should be updated to match what the lock file actually uses:

```suggestion
  "dependencies": {
    "@raycast/api": "^1.104.10",
    "@raycast/utils": "^2.2.3"
  },
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: extensions/chaldean-lectionary/src/data/weeklyreadings.ts
Line: 1-7

Comment:
**Unused duplicate file**

`weeklyreadings.ts` appears to be an exact duplicate of `weekdayReadings2026.ts` — both export the same `WeekdayReadings` interface and `weekdayReadings2026` constant. Neither `today.tsx` nor `lookup.tsx` imports from this file; they both import from `weekdayReadings2026.ts`. This file should be removed to avoid confusion and dead code.

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "Initial commit" | Re-trigger Greptile

Comment on lines +7 to +10
interface Preferences {
calendarId: string;
googleApiKey: string;
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Manual Preferences interface should be removed

Manually defining a Preferences interface for getPreferenceValues() is discouraged. These types are auto-generated in raycast-env.d.ts when the extension runs, so manual definitions can drift out of sync with the actual package.json preferences config and cause type mismatches.

Suggested change
interface Preferences {
calendarId: string;
googleApiKey: string;
}
const prefs = getPreferenceValues<Preferences>();

Remove lines 7–10 entirely and rely on the auto-generated Preferences type instead:

// Remove this block:
// interface Preferences {
//   calendarId: string;
//   googleApiKey: string;
// }

const prefs = getPreferenceValues<Preferences>();

Rule Used: What: Don't manually define Preferences for `get... (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/chaldean-lectionary/src/today.tsx
Line: 7-10

Comment:
**Manual Preferences interface should be removed**

Manually defining a `Preferences` interface for `getPreferenceValues()` is discouraged. These types are auto-generated in `raycast-env.d.ts` when the extension runs, so manual definitions can drift out of sync with the actual `package.json` preferences config and cause type mismatches.

```suggestion
const prefs = getPreferenceValues<Preferences>();
```

Remove lines 7–10 entirely and rely on the auto-generated `Preferences` type instead:

```ts
// Remove this block:
// interface Preferences {
//   calendarId: string;
//   googleApiKey: string;
// }

const prefs = getPreferenceValues<Preferences>();
```

**Rule Used:** What: Don't manually define `Preferences` for `get... ([source](https://app.greptile.com/review/custom-context?memory=d93fc9fb-a45d-4479-a6a4-b1b4af98ebc8))

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +40 to +43
"@raycast/api": "^1.70.0",
"@raycast/utils": "^1.15.0"
},
"devDependencies": {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Dependency versions out of sync with package-lock.json

package.json declares "@raycast/utils": "^1.15.0" (and "@raycast/api": "^1.70.0"), but the package-lock.json was generated with "@raycast/utils": "^2.2.3" and "@raycast/api": "^1.104.10". This is a major version mismatch for @raycast/utils (1.x vs 2.x), which includes breaking API changes.

If someone removes the lock file and runs npm install, they'll get @raycast/utils 1.x, which is incompatible with the lock file's resolved dependencies and potentially with the code. The package.json version ranges should be updated to match what the lock file actually uses:

Suggested change
"@raycast/api": "^1.70.0",
"@raycast/utils": "^1.15.0"
},
"devDependencies": {
"dependencies": {
"@raycast/api": "^1.104.10",
"@raycast/utils": "^2.2.3"
},
Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/chaldean-lectionary/package.json
Line: 40-43

Comment:
**Dependency versions out of sync with package-lock.json**

`package.json` declares `"@raycast/utils": "^1.15.0"` (and `"@raycast/api": "^1.70.0"`), but the `package-lock.json` was generated with `"@raycast/utils": "^2.2.3"` and `"@raycast/api": "^1.104.10"`. This is a major version mismatch for `@raycast/utils` (1.x vs 2.x), which includes breaking API changes.

If someone removes the lock file and runs `npm install`, they'll get `@raycast/utils` 1.x, which is incompatible with the lock file's resolved dependencies and potentially with the code. The `package.json` version ranges should be updated to match what the lock file actually uses:

```suggestion
  "dependencies": {
    "@raycast/api": "^1.104.10",
    "@raycast/utils": "^2.2.3"
  },
```

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +1 to +7
export interface WeekdayReadings {
title: string;
epistle: string;
gospel: string;
}

export const weekdayReadings2026: Record<string, WeekdayReadings> = {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Unused duplicate file

weeklyreadings.ts appears to be an exact duplicate of weekdayReadings2026.ts — both export the same WeekdayReadings interface and weekdayReadings2026 constant. Neither today.tsx nor lookup.tsx imports from this file; they both import from weekdayReadings2026.ts. This file should be removed to avoid confusion and dead code.

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/chaldean-lectionary/src/data/weeklyreadings.ts
Line: 1-7

Comment:
**Unused duplicate file**

`weeklyreadings.ts` appears to be an exact duplicate of `weekdayReadings2026.ts` — both export the same `WeekdayReadings` interface and `weekdayReadings2026` constant. Neither `today.tsx` nor `lookup.tsx` imports from this file; they both import from `weekdayReadings2026.ts`. This file should be removed to avoid confusion and dead code.

How can I resolve this? If you propose a fix, please make it concise.

@raycastbot
Copy link
Copy Markdown
Collaborator

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

@raycastbot raycastbot added the status: stalled Stalled due inactivity label Apr 6, 2026
@0xdhrv 0xdhrv self-assigned this Apr 10, 2026
@raycastbot raycastbot removed the status: stalled Stalled due inactivity label Apr 10, 2026
- Moved ReadingDetail and getReadingItems to a separate component for better organization
- Improved error handling in scripture fetching
- Updated today and lookup components to utilize the new structure
- Added .gitignore, .prettierrc, and eslint configuration for better development experience
- Created README and CHANGELOG for documentation
Copy link
Copy Markdown
Contributor

@0xdhrv 0xdhrv left a comment

Choose a reason for hiding this comment

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

Hey @patrosrock 👋

Thanks for your contribution 🔥

Could you add at least one screenshot of the extension and add them to a folder called metadata - you need to use our tool to get the right padding on the images

Also, please take a look, I have added some improvements to the 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 😊

@0xdhrv 0xdhrv marked this pull request as draft April 10, 2026 11:44
@raycastbot
Copy link
Copy Markdown
Collaborator

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

@raycastbot raycastbot added the status: stalled Stalled due inactivity label Apr 24, 2026
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 platform: macOS status: stalled Stalled due inactivity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants