Skip to content

Conversation

@devin-ai-integration
Copy link
Contributor

feat: consolidate export, frontmatter, folder plugins into unified fs-sync plugin

Summary

This PR consolidates three overlapping Tauri plugins (export, frontmatter, folder) into a single unified plugins/fs-sync plugin, creating a single source of truth for filesystem operations.

Changes:

  • Created crates/tiptap: Pure Rust crate for tiptap-to-markdown transformation (moved from plugins/export/src/md/)
  • Created plugins/fs-sync consolidating all filesystem operations:
    • Batch write commands: write_json_batch, write_markdown_batch, write_frontmatter_batch
    • Orphan cleanup: cleanup_orphan_files, cleanup_orphan_dirs
    • Folder hierarchy: list_folders, create_folder, rename_folder, delete_folder, move_session
    • deserialize command for parsing markdown with frontmatter
  • Deleted old plugins: plugins/export/, plugins/frontmatter/, plugins/folder/
  • Updated all TypeScript imports from old plugins to @hypr/plugin-fs-sync
  • Updated test mocks to use new plugin

Review & Testing Checklist for Human

This is a large refactoring (101 files changed) that consolidates plugin functionality. Desktop tests pass (236 tests), but end-to-end verification is recommended.

  • Verify session persistence works: Create a new session, add notes, close and reopen the app - data should persist correctly
  • Verify folder operations: Create folder, rename folder, delete folder, move session between folders
  • Verify markdown export: Check that enhanced notes export to markdown files correctly in the sessions directory
  • Verify human/organization persistence: Add contacts and organizations, verify they save and load correctly
  • Search for stale imports: Run grep -r "plugin-export\|plugin-frontmatter\|plugin-folder" apps/ packages/ to ensure no old imports remain

Notes

  • The Playwright tests for apps/web failed due to missing browser installation in the dev environment (unrelated to this PR)
  • Command names changed: exportJsonBatchwriteJsonBatch, serializeBatchwriteFrontmatterBatch
  • Extension trait renamed: FolderPluginExtFsSyncPluginExt

Link to Devin run: https://app.devin.ai/sessions/c6042d796620401d8058742013cd39fa
Requested by: yujonglee ([email protected]) / @yujonglee

…-sync plugin

- Create crates/tiptap for pure markdown transformation logic
- Create plugins/fs-sync consolidating all filesystem operations:
  - Batch write commands (write_json_batch, write_markdown_batch, write_frontmatter_batch)
  - Orphan cleanup commands (cleanup_orphan_files, cleanup_orphan_dirs)
  - Folder hierarchy commands (list_folders, create_folder, rename_folder, delete_folder, move_session)
  - Deserialize command for parsing markdown with frontmatter
- Delete old plugins (export, frontmatter, folder)
- Update all TypeScript imports to use @hypr/plugin-fs-sync
- Update test files to mock new plugin

Co-Authored-By: yujonglee <[email protected]>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for hyprnote failed.

Name Link
🔨 Latest commit f5358ad
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/695b1c5aada25800087f92ed

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for hyprnote-storybook failed.

Name Link
🔨 Latest commit f5358ad
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/695b1c5ab7324a00084f746a

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for howto-fix-macos-audio-selection failed.

Name Link
🔨 Latest commit f5358ad
🔍 Latest deploy log https://app.netlify.com/projects/howto-fix-macos-audio-selection/deploys/695b1c5a0b6bdb0008415056

@yujonglee yujonglee merged commit 42b06f1 into main Jan 5, 2026
10 of 25 checks passed
@yujonglee yujonglee deleted the devin/1767576800-unified-fs-sync-plugin branch January 5, 2026 02:09
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.

2 participants