mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-20 01:46:19 +00:00
- Add tracking for tasks that change parents during sync operations - Clean up old parent's subTaskIds when tasks are moved to different parents or root level - Group cleanup operations by parent to prevent overwriting updates - Add comprehensive test suite for subtask cleanup scenarios This fixes the issue where tasks moved from being subtasks to root-level tasks would still be referenced in their old parent's subTaskIds array, causing task duplication in the UI. Resolves the replication error where subtasks appeared both as root tasks and as children of their original parent. |
||
|---|---|---|
| .. | ||
| docs | ||
| scripts | ||
| src | ||
| .eslintrc.json | ||
| .gitignore | ||
| .prettierrc.json | ||
| jest.config.cjs | ||
| jest.config.js.bak | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Sync-MD Plugin v2.0.0
A SuperProductivity plugin that enables bidirectional synchronization between markdown files and project tasks.
Features
- Bidirectional Sync: Keep markdown files and SuperProductivity tasks in sync
- Batch API Integration: Efficient bulk operations for better performance
- Smart Debouncing: 10-second delays prevent conflicts during active editing
- Real-time Monitoring: File system watching with automatic sync triggers
- Task Hierarchy: Preserves parent-child relationships in markdown
- Modern Architecture: Built with Solid.js UI and modular TypeScript
Quick Start
# Install dependencies
npm install
# Development mode with hot reload
npm run dev:watch
# Build for production
npm run build
# Package as plugin
npm run package
Architecture
Core Components
src/fileWatcherBatch.ts- Main sync engine with batch API supportsrc/background.ts- Plugin lifecycle and message handlingsrc/App.tsx- Solid.js UI for configurationsrc/utils/- Reusable utilities (parser, debouncer, file ops)
Build System
build-proper.js- Main build scriptbuild-plugin.js- Package as distributable ZIPwatch-and-build.js- Development with auto-rebuild
Configuration
{
projectId: "project-uuid",
filePath: "/path/to/tasks.md",
syncDirection: "fileToProject" | "projectToFile" | "bidirectional"
}
Markdown Format
- [ ] Parent task
- [x] <!-- sp:task-id --> Completed subtask
- [ ] Pending subtask
Tasks are linked using HTML comments containing unique IDs.
Testing
# Run all tests
npm test
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage
Documentation
For detailed documentation, see:
Cleanup
To remove old/unnecessary files after updating:
chmod +x cleanup.sh
./cleanup.sh