mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-01-23 02:36:05 +00:00
Implement coordinated timeout strategy across all layers: **Client-side (90s total):** - HTTP requests: 75s timeout with AbortController - Sync wait timeout: 90s (exceeds all server timeouts) - Restore service: Retry logic for network errors (2s, 4s backoff) - Better error messages for timeout scenarios **Server-side:** - Caddy proxy: 85s timeout (exceeds Fastify) - Fastify server: 80s request timeout (exceeds DB timeout) - Database operations: 60s (unchanged) **Rationale:** Each timeout layer exceeds the one below it, allowing inner operations to complete and report errors properly. The 90s client timeout ensures large operations (snapshot generation, imports) can complete without premature abortion. **Monitoring:** - Log slow requests >30s for visibility - Detailed error logging with duration tracking - Android WebView timeout support via CapacitorHttp |
||
|---|---|---|
| .. | ||
| plugin-api | ||
| plugin-dev | ||
| shared-schema | ||
| super-sync-server | ||
| vite-plugin | ||
| build-packages.js | ||
| README.md | ||
Super Productivity Packages
This directory contains plugin packages and the plugin API for Super Productivity.
Structure
plugin-api/- TypeScript definitions for the plugin APIplugin-dev/- Plugin development examples and toolsapi-test-plugin/- Basic API test pluginprocrastination-buster/- Example SolidJS-based pluginyesterday-tasks-plugin/- Simple plugin showing yesterday's tasksboilerplate-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:
- Builds the plugin-api TypeScript definitions
- Builds plugins that require compilation (e.g., procrastination-buster)
- 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
- Create a new directory in
plugin-dev/ - Add the plugin configuration to
/packages/build-packages.js - Run
npm run build:packagesto test the build
Notes
- The
boilerplate-solid-jsandsync-mdplugins 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