super-productivity/packages
Johannes Millan 9ee15b9f08 fix(sync): iteratively cleanup storage until quota satisfied
When storage quota is exceeded, the server now iteratively deletes
old restore points and operations until enough space is freed,
keeping at least one restore point as minimum valid sync state.

Changes:
- Add freeStorageForUpload() method that loops until quota satisfied
- Update deleteOldestRestorePointAndOps() to clear stale snapshot cache
- Update /ops and /snapshot routes to use iterative cleanup
- Add comprehensive tests for new cleanup behavior

The error response now includes cleanupStats showing what was freed
even when cleanup ultimately fails due to minimum data requirements.
2025-12-25 10:18:35 +01:00
..
plugin-api refactor(task): remove deprecated reminderId field 2025-12-12 20:47:40 +01:00
plugin-dev test(e2e): try to fix e2e tests 2025-12-10 21:26:48 +01:00
shared-schema docs(sync): improve OperationLike interface documentation 2025-12-12 20:48:12 +01:00
super-sync-server fix(sync): iteratively cleanup storage until quota satisfied 2025-12-25 10:18:35 +01:00
vite-plugin feat(automationPlugin): improve button styles and add copyTo option for plugin output 2025-12-02 13:30:37 +01:00
build-packages.js feat(plugins): enhance plugin packaging and improve file handling logic 2025-11-26 17:45:25 +01:00
README.md feat: cleanup and update plugins 2 2025-06-29 06:36:02 +02:00

Super Productivity Packages

This directory contains plugin packages and the plugin API for Super Productivity.

Structure

  • plugin-api/ - TypeScript definitions for the plugin API
  • plugin-dev/ - Plugin development examples and tools
    • api-test-plugin/ - Basic API test plugin
    • procrastination-buster/ - Example SolidJS-based plugin
    • yesterday-tasks-plugin/ - Simple plugin showing yesterday's tasks
    • boilerplate-solid-js/ - Template for creating new SolidJS plugins (not built)
    • sync-md/ - Markdown sync plugin (not built)

Building Packages

All packages are built automatically when running the main build process:

npm run build:packages

This command:

  1. Builds the plugin-api TypeScript definitions
  2. Builds plugins that require compilation (e.g., procrastination-buster)
  3. Copies plugin files to src/assets/ for inclusion in the app

Development

To work on a specific plugin:

cd plugin-dev/[plugin-name]
npm install
npm run dev

Adding a New Plugin

  1. Create a new directory in plugin-dev/
  2. Add the plugin configuration to /packages/build-packages.js
  3. Run npm run build:packages to test the build

Notes

  • The boilerplate-solid-js and sync-md plugins are development templates and are not included in production builds
  • Plugin files are automatically copied to src/assets/ during the build process
  • The build script handles dependency installation automatically