Commit graph

31 commits

Author SHA1 Message Date
Onur Neşvat
959004ee18
feat(electron): add Local REST API for desktop automation (#6981)
* feat(electron): add Local REST API for desktop automation

Add a local HTTP server (port 3876) that allows external scripts and
tools to interact with a running Super Productivity desktop app.

Features:
- Task CRUD operations (create, read, update, delete)
- Task control (start, stop, set current)
- Task archive/restore operations
- Query filters for tasks (by title, project, tag, done status)
- Read-only project and tag listing

The API is disabled by default and can be enabled in Settings > Misc.
Only accepts connections from localhost (127.0.0.1) for security.

* fix: resolve lint errors for local REST API

* fix: use lazy injection for LocalRestApiHandlerService

Fixes StartupService tests by using Injector.get() instead of direct
injection, preventing LocalRestApiHandlerService from being instantiated
when StartupService tests don't have NgRx providers.

* fix: resolve markdown lint errors in API docs

* fix: add security warning to Local REST API hint
2026-03-28 13:35:04 +01:00
Pue-Tsuâ
9a9e31f36a
Adding Ctrl-V pasting function from clipboard. (#5998)
* docs(clipboard): Added the plan to guide AI implementation.

* feat(clipboard): Changed requirement to reflect the fact that some functions can't be done in browsers.

* feat(clipboard): Added Ctrl-v pasting functionality from clipboard.

- Storing image in IndexedDB in browser, and storing image in userdata path in Electron.
- Added image resizing in markdown.

* docs(clipboard): Removed requirement file since it's implemented.

* feat(clipboard): Added clipboard images management in settings.

* feat(tests): Enhance focus mode and inline markdown tests with mock store and actions

* feat(clipboard): Add electron-only annotation to findImageFile function

* feat(clipboard): Prevent memory leaks by revoking cached blob URLs on image deletion

* feat(clipboard): Improve paste handling by tracking current placeholder and cleaning up old progress

* Merge branch 'master' into feat/clipboard-files

* feat(marked-options): Refactor renderer methods and add hooks for image sizing syntax

* feat(clipboard): Added feature that pasted image will be added to task attachment.

* revert: Revert the change of lock file from last merge.

* revert: Removed unwanted changes.

* refactor(clipboard): Cleaned up code that seems not necessary.

* feat(clipboard): Handle storage quota exceeded error and update messages

* feat(clipboard): Implement validated IPC handlers for clipboard image operations

* feat(clipboard): Add error handling for clipboard image URL resolution

* feat(clipboard): Refactor file operations to use async fs promises

* feat(clipboard): Integrate ClipboardPasteHandlerService for improved paste handling

* feat(clipboard): Rename resolveUrl to resolveIndexedDbUrl for clarity and update references

* feat(clipboard): Add defaultPath option to showOpenDialog for improved user experience

* feat(clipboard): Implement getDefaultClipboardImagesPath utility for consistent image path retrieval

* feat(clipboard): Refactor MIME type handling to use centralized mapping for improved maintainability

* feat(clipboard): Add computed property to toggle markdown parsing based on formatting settings

* revert: Removed unwanted changes.

* revert: Removed unwanted chagnes.

* revert: Removed unwanted chagnes.

* fix(clipboard-images-cfg): remove debug log from selectImagePath method

* refactor(paste-handler): update currentPlaceholder to use getter/setter methods

* fix(docs): correct formatting and improve clarity in multiple wiki pages

* fix: update dialog handling in initLocalFileSyncAdapter for type safety

* revert: Revert space change.

* fix(inline-markdown): ensure model is set to an empty string instead of undefined

* fix(tests): update clipboard images section locator to use collapsible title
2026-02-04 15:46:51 +01:00
Johannes Millan
f704eebc7e feat(ipc): improve error handling and streamline IPC initialization 2025-11-27 15:06:26 +01:00
Johannes Millan
653ae62dbf feat(ipc): implement IPC handlers for app control, data, exec, global shortcuts, system, and Jira 2025-11-27 13:44:18 +01:00
Johannes Millan
6350a7249f fix: app not closing on MacOS
Closes #5327
2025-10-23 15:12:12 +02:00
Johannes Millan
c58e269678 feat(share): remove electron share again 2025-10-22 16:05:29 +02:00
Johannes Millan
459b189e26 feat(share): add native share 2025-10-22 15:54:06 +02:00
Johannes Millan
9574dd4f19 feat(share): outline multi platform share functionality 2025-10-22 15:35:24 +02:00
theUGG0
0a64079de7 feat: implement progressBarMode none for electron 2025-08-15 00:54:15 +03:00
Johannes Millan
62c2649320 fix: file saving not working on Ubuntu snap #4901 2025-08-04 21:27:25 +02:00
Johannes Millan
fb7f925e92 fix: error when using global add task shortcut
Closes #4859
2025-07-28 20:36:49 +02:00
Johannes Millan
d4d81bf511 feat(plugin-api): create foundational plugin API package
- Add @super-productivity/plugin-api package with TypeScript definitions
- Define core plugin interfaces, types, and manifest structure
- Add plugin hooks system for event-driven architecture
- Create plugin API type definitions and constants
- Add documentation and development guidelines
2025-06-27 18:13:19 +02:00
Johannes Millan
05ea97ea41 fix(electron): backup path 2025-05-06 21:50:01 +02:00
loviuz
849d6fbe5c fix: linting 2025-05-01 13:04:23 +02:00
vr-jack
57a4e2839a Fix 995 webedits define BACKUP_DIR_WINSTORE and return it for getBackupPath
* Update ipc-handler.ts handle backup path for window store

* Update backup.ts define windows store version of BACKUP_DIR constant
2025-04-28 22:38:13 +02:00
Johannes Millan
e3eb0742ec feat: improve emoji support and add info #3558 2025-01-03 17:44:21 +01:00
Johannes Millan
67b54307c6 feat(issueProvider): remove jira pat and wonkyCookie modes #2528 2024-12-21 11:09:40 +01:00
Johannes Millan
e76c300b7b fix(electron): missing browser window when showing dialog message box 2024-08-09 21:30:02 +02:00
Johannes Millan
1e05cf2c61 feat(electron): avoid weird shortcuts being able to crash the app 2024-01-26 14:36:19 +01:00
Johannes Millan
cf1c38bf3b refactor: use same backup path everywhere #2910 2023-12-29 14:10:22 +01:00
Johannes Millan
f4c8aa988f feat: cleaner startup for electron #2942 #1678 2023-12-29 12:57:33 +01:00
Johannes Millan
c6d76c6a17 feat: allow for usage of system dark mode 2023-12-20 13:07:50 +01:00
Johannes Millan
87ad3d59b5 feat(electronSecurity): add security layer for exec commands 2023-12-17 15:05:15 +01:00
Johannes Millan
a32281e07f feat(electronSecurity): make mac os dark moode stuff work 2023-12-17 13:48:09 +01:00
Johannes Millan
f946607194 feat(electronSecurity): make open path and open external work 2023-12-17 13:41:05 +01:00
Johannes Millan
a0a2f44807 refactor(electronSecurity): make typing work in preload for ipc events 2023-12-16 12:53:07 +01:00
Johannes Millan
eaeb833e96 feat(electronSecurity): make apple theme switch work again 2023-12-16 12:20:17 +01:00
Johannes Millan
145de2fba6 feat(electronSecurity): make dev tools and reload work again 2023-12-15 18:35:10 +01:00
Johannes Millan
f9d74f5762 feat(electronSecurity): make app relaunch work 2023-12-15 17:28:06 +01:00
Johannes Millan
849c232d42 feat(electronSecurity): make app.getPath work 2023-12-15 17:23:17 +01:00
Johannes Millan
86bf61e7a5 refactor(electronSecurity): move ipc handlers to their own file 2023-12-15 17:23:05 +01:00