Skip to content

Inline apple calendar crate#2204

Merged
yujonglee merged 2 commits intomainfrom
inline-apple-calendar-crate
Dec 11, 2025
Merged

Inline apple calendar crate#2204
yujonglee merged 2 commits intomainfrom
inline-apple-calendar-crate

Conversation

@yujonglee
Copy link
Contributor

No description provided.

@netlify
Copy link

netlify bot commented Dec 11, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit 85d529b
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/693a132e6ed509000892acf3
😎 Deploy Preview https://deploy-preview-2204--hyprnote-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Dec 11, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit 85d529b
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/693a132ea28eb00008dc40e1
😎 Deploy Preview https://deploy-preview-2204--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@yujonglee yujonglee merged commit cab3762 into main Dec 11, 2025
12 of 15 checks passed
@yujonglee yujonglee deleted the inline-apple-calendar-crate branch December 11, 2025 00:41
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 11, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR refactors the Apple Calendar integration by removing the hypr-calendar-apple workspace crate and migrating its implementation into a new Tauri plugin under plugins/apple-calendar. The plugin uses direct Objective-C bindings (objc2) instead of the wrapper crate, with corresponding dependency updates and removal of conversion implementations in crates/db-user.

Changes

Cohort / File(s) Summary
Workspace Dependency Removal
Cargo.toml
Removed hypr-calendar-apple from workspace dependencies
Desktop Tauri Plugin Integration
apps/desktop/src-tauri/Cargo.toml, apps/desktop/src-tauri/src/lib.rs
Added tauri-plugin-apple-calendar dependency and initialized plugin in Tauri plugin chain
Crate Removal
crates/calendar-apple/Cargo.toml
Removed entire Cargo.toml manifest for the calendar-apple crate
DB-User Migration
crates/db-user/Cargo.toml, crates/db-user/src/calendars_types.rs, crates/db-user/src/humans_types.rs
Removed hypr-calendar-apple dependency and eliminated bidirectional conversion implementations for Platform and Participant types
Apple Calendar Plugin Implementation
plugins/apple-calendar/Cargo.toml
Replaced hypr-calendar-apple with direct Objective-C bindings: objc2, objc2-event-kit, objc2-contacts, objc2-foundation; added anyhow; updated serde and chrono feature flags
Apple Calendar Plugin Core
plugins/apple-calendar/src/apple.rs, plugins/apple-calendar/src/types.rs, plugins/apple-calendar/src/ext.rs, plugins/apple-calendar/src/lib.rs
Introduced new type definitions (Platform, Calendar, Event, Participant, EventFilter); converted async trait methods to synchronous Handle methods; replaced async CalendarSource trait with direct implementations using native Objective-C bindings

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Verify the new apple.rs implementation correctly replaces removed functionality from hypr-calendar-apple
  • Confirm type conversions in types.rs match expected Apple Calendar semantics
  • Check that all usages of removed hypr-calendar-apple conversions in crates/db-user are accounted for and no dependent code breaks
  • Validate Objective-C binding feature selections in objc2-event-kit and objc2-contacts are complete for calendar/contact operations
  • Review migration from async trait-based to synchronous method-based API on Handle
  • Ensure plugin initialization in desktop app follows Tauri conventions and doesn't introduce initialization ordering issues

Possibly related PRs

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch inline-apple-calendar-crate

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fd06dd2 and 85d529b.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (12)
  • Cargo.toml (0 hunks)
  • apps/desktop/src-tauri/Cargo.toml (1 hunks)
  • apps/desktop/src-tauri/src/lib.rs (1 hunks)
  • crates/calendar-apple/Cargo.toml (0 hunks)
  • crates/db-user/Cargo.toml (0 hunks)
  • crates/db-user/src/calendars_types.rs (0 hunks)
  • crates/db-user/src/humans_types.rs (0 hunks)
  • plugins/apple-calendar/Cargo.toml (1 hunks)
  • plugins/apple-calendar/src/apple.rs (7 hunks)
  • plugins/apple-calendar/src/ext.rs (4 hunks)
  • plugins/apple-calendar/src/lib.rs (1 hunks)
  • plugins/apple-calendar/src/types.rs (1 hunks)

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.

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.

1 participant

Comments