Commit graph

368 commits

Author SHA1 Message Date
HeroBlackInk
6c4f62de6c feat: add detection for tasks in files but not in cache 2026-02-16 05:04:17 +08:00
HeroBlackInk
02a460428c feat: add comprehensive checkDatabase function with issue detection 2026-02-16 04:59:09 +08:00
HeroBlackInk
79600b2122 fix: improve rebuildCache with checkbox status and conflict handling
- Detect checkbox status ([x]/[ ]) when scanning tasks
- Compare completion status between Obsidian and Todoist
- Track and remove invalid task IDs (not found in Todoist)
- Update fileMetadata after conflict resolution
- Add logging for tasks removed during rebuild
2026-02-16 04:43:12 +08:00
HeroBlackInk
ebb9709a09 fix: resolve module initialization and date handling bugs
- Refactor initializePlugin() to avoid duplicate module initialization
- Fix AddTask date conversion bug (use dueDate instead of dueDatetime)
- Remove unused WorkspaceLeaf import from main.ts
- Remove unused variables (view, editor) in keyup/click handlers
- Clean up commented code in modal.ts
2026-02-16 04:31:23 +08:00
HeroBlackInk
7f4fe92113 feat: add automatic file backup before modifications
- Add BackupOperation class for file backup management
- Backup files to .todoist-backups/ folder before any modification
- Keep max 5 backups per file with automatic cleanup
- Backup triggered in:
  - fileOperation.ts: task complete/uncomplete, tag/link add, content/date/note sync
  - obsidianToTodoist.ts: new task creation
  - cacheOperation.ts: conflict resolution
- Unified backup location with Todoist data backups
2026-02-16 04:13:34 +08:00
HeroBlackInk
0bcd803657 feat: add conflict detection and resolution for rebuild cache
- Add ConflictResolutionModal component for interactive conflict solving
- Detect content inconsistencies between Obsidian and Todoist during rebuild
- Show both versions in modal for user to choose:
  - Keep Obsidian: update Todoist with Obsidian content
  - Keep Todoist: update Obsidian file with Todoist content
  - Skip: do nothing
- Add extractTaskContent helper to parse task text from markdown
- Add resolveConflicts method to apply user choices
2026-02-16 04:00:49 +08:00
HeroBlackInk
3138c0fffb fix: resolve critical bugs and improve backup handling
- Fix checkbox regex to support string IDs (\d+ -> \w+) in main.ts
- Fix taskParser regex to support string IDs
- Remove unused imports (Notice from logOperation, Plugin from settings)
- Move backup files to .todoist-backups/ folder to avoid polluting vault
- Add backup folder creation if not exists
2026-02-16 03:51:24 +08:00
HeroBlackInk
74f328ccd9 refactor: split syncModule into bidirectional sync modules
- Split syncModule.ts (891 lines) into three files:
  - obsidianToTodoist.ts (445 lines): Obsidian → Todoist sync
  - todoistToObsidian.ts (163 lines): Todoist → Obsidian sync
  - syncModule.ts (76 lines): delegation facade class
- Improves code organization and maintainability
- Follows single responsibility principle
- Maintains backward compatibility with main.ts
2026-02-16 03:43:10 +08:00
HeroBlackInk
21d220028a feat: implement comprehensive operation logging system
- Add LogOperation class with 30+ log action types
- Log Obsidian file operations (modify, rename, task complete/uncomplete)
- Log Cache operations (task add/update/delete/complete/reopen)
- Log Todoist API operations (task create/update/delete)
- Log sync operations (start/complete/error)
- Log backup creation and cache rebuild events
- Add log settings to plugin UI (enable toggle, view/clear buttons)
- Update settings interface with LogAction type
2026-02-16 03:32:39 +08:00
HeroBlackInk
62ace6303e feat: implement cache rebuild functionality
- Add rebuildCache() method in cacheOperation.ts
  - Clear existing cache
  - Fetch projects from Todoist
  - Scan vault for #todoist tagged tasks
  - Match task IDs with Todoist API
  - Rebuild fileMetadata
- Add 'Rebuild Cache' button in settings page
- Update AGENTS.md
2026-02-16 02:56:49 +08:00
HeroBlackInk
a5294b2121 feat: migrate Sync API from v9 to v1
- Update todoistSyncAPI.ts to use new API endpoints (/api/v1/*)
- Change activity endpoints from POST to GET with query parameters
- Handle new pagination format { results: [], next_cursor: null }
- Fix null check for extra_data.client in getNonObsidian* methods
- Add test-sync-api.js and test-sync-api-full.js
- Update CHANGELOG.md with migration details
2026-02-16 02:34:24 +08:00
HeroBlackInk
30ade894f9 feat: migrate REST API from v9 to v1 and add test scripts
- Upgrade @doist/todoist-api-typescript from v2.1.2 to v6.5.0
- Update todoistRestAPI.ts to handle new pagination format (result.results)
- Update esbuild.config.mjs to handle Node.js built-in modules
- Add tests directory with API test scripts
- Add AGENTS.md for agentic coding guidelines
- Update CHANGELOG.md with migration details
2026-02-16 02:19:44 +08:00
HeroBlackInk
4976caab80 Merge pull request #91 from deafmute1/issue90-desktop-uri
Add App URIs for links
2024-10-03 02:24:30 +08:00
Violet
e8feea4505 Add option to use todoist URI as links 2024-07-06 23:05:49 +10:00
Violet
620cc6415a pack-lock details auto updated by npm from sample plugin 2024-07-06 22:56:14 +10:00
Violet
b184d5a401 Add js build files to gitignore 2024-07-06 21:59:19 +10:00
HeroBlackInk
90071bba15 Merge pull request #43 from amildahl/amildahl-patch-1
Suggested README changes
2023-07-12 08:59:34 +08:00
Andrew Mildahl
685590a5a5 Updated contributing section of README.md
Removed broken link to non-existing file
2023-07-11 16:42:06 -05:00
Andrew Mildahl
4df9a3a8b3 Updated instructions and description in README.md 2023-07-11 16:33:55 -05:00
Andrew Mildahl
46e76e043c Create CHANGELOG.md 2023-07-11 16:11:18 -05:00
Andrew Mildahl
787cbc3421 Move Changelog 2023-07-11 16:00:37 -05:00
HeroBlackInk
c3c38705e1 release 1.0.43 2023-06-22 17:18:17 +08:00
HeroBlackInk
e302615600 release 1.0.42 2023-06-11 23:02:17 +08:00
HeroBlackInk
143fd9e369 delete empty file metadata 2023-06-11 22:24:29 +08:00
HeroBlackInk
9ab9f4e521 Added debug mode. 2023-06-11 21:43:49 +08:00
HeroBlackInk
918136e91b Before setting the default project, check if the current file exists. 2023-06-11 21:25:52 +08:00
HeroBlackInk
e765b8cbae release 1.0.41 2023-06-11 09:37:42 +08:00
HeroBlackInk
470a70e9c0 release 1.0.40 2023-06-10 00:24:33 +08:00
HeroBlackInk
ba9a34c732 release 1.0.39 2023-06-09 19:05:40 +08:00
HeroBlackInk
7e0020b49b revise readme 2023-06-09 18:27:41 +08:00
HeroBlackInk
bc381589e8 revise readme 2023-06-09 18:20:25 +08:00
HeroBlackInk
0ee536e97e Check deleted tasks. 2023-06-09 18:08:22 +08:00
HeroBlackInk
2854476ca8 Deleted unnecessary object inheritance. 2023-06-09 14:20:25 +08:00
HeroBlackInk
a1aac510b6 Check if the number of tasks in the project exceeds the limit. 2023-06-09 12:55:43 +08:00
HeroBlackInk
f8e627318e tasks date format supported. 2023-06-09 11:14:56 +08:00
HeroBlackInk
051adb4e57 You can check database in the settings. 2023-06-08 12:51:40 +08:00
HeroBlackInk
4fb8bd6079 After renaming the file, update the Obsidian URL in Todoist. 2023-06-08 11:48:58 +08:00
HeroBlackInk
307efa1855 Automatically add Todoist tags to last line. 2023-06-07 19:29:38 +08:00
HeroBlackInk
ed7cb72436 To avoid conflicts, Do not scan active files 2023-06-06 08:33:35 +08:00
HeroBlackInk
b3d426b842 Revoke 1.0.37 2023-06-05 16:57:12 +08:00
HeroBlackInk
808635fce4 Updated the readme document. 2023-06-05 16:34:54 +08:00
HeroBlackInk
2ecf7867a9 Updated the readme document. 2023-06-05 16:00:47 +08:00
HeroBlackInk
7d2e406e19 Updated the readme document. 2023-06-05 15:46:55 +08:00
HeroBlackInk
a38c401774 Updated the readme document. 2023-06-05 15:42:59 +08:00
HeroBlackInk
5a76316cf3 Updated the readme document. 2023-06-05 15:41:50 +08:00
HeroBlackInk
bda683784e Full vault sync is supported. 2023-06-05 15:01:01 +08:00
HeroBlackInk
9fb98bbdd9 The setting page has added a 'scan vault' button. 2023-06-05 12:58:44 +08:00
HeroBlackInk
2667c7ce92 The scheduled synchronization function has added error handling. 2023-06-05 12:00:09 +08:00
HeroBlackInk
03a8bec7fa Fixed some bugs. 2023-06-04 22:47:50 +08:00
HeroBlackInk
80e1d837f3 The time zone has been added to the task note. 2023-06-04 21:50:58 +08:00