From dfe44f05faab5bf7a45722de0faa5414dcbbf49a Mon Sep 17 00:00:00 2001 From: Lasim <7317318+Lasim@users.noreply.github.com> Date: Fri, 17 Oct 2025 22:20:24 +0000 Subject: [PATCH 1/2] chore(backend): release v0.37.0 --- package-lock.json | 2 +- services/backend/CHANGELOG.md | 61 ++++++++++++++++++++++++++ services/backend/package.json | 2 +- services/backend/src/config/version.ts | 4 +- 4 files changed, 65 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2eb861ee8..a25dc6a1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22732,7 +22732,7 @@ }, "services/backend": { "name": "@deploystack/backend", - "version": "0.36.0", + "version": "0.37.0", "dependencies": { "@fastify/cookie": "^11.0.2", "@fastify/cors": "^11.1.0", diff --git a/services/backend/CHANGELOG.md b/services/backend/CHANGELOG.md index 02250a88c..8252f8799 100644 --- a/services/backend/CHANGELOG.md +++ b/services/backend/CHANGELOG.md @@ -1,5 +1,66 @@ # Changelog +## 0.37.0 (2025-10-17) + +* feat(all): Enhanced Job Queue Management - Search & Filtering ([6517f1e](https://github.com/deploystackio/deploystack/commit/6517f1e)) +* feat(all): implement idle process management for MCP servers ([e142784](https://github.com/deploystackio/deploystack/commit/e142784)) +* feat(all): MCP Client Activity Tracking ([01a130e](https://github.com/deploystackio/deploystack/commit/01a130e)) +* feat(backend): add endpoints for retrieving unique languages and runtimes ([f270dc0](https://github.com/deploystackio/deploystack/commit/f270dc0)) +* feat(backend): Add MCP client activity metrics cleanup job and worker ([7e1789b](https://github.com/deploystackio/deploystack/commit/7e1789b)) +* feat(backend): add MCP client activity metrics endpoint and service ([c02f022](https://github.com/deploystackio/deploystack/commit/c02f022)) +* feat(backend): add tags filtering to MCP servers API and implement endpoint to retrieve unique tags ([45f7088](https://github.com/deploystackio/deploystack/commit/45f7088)) +* feat(backend): enhance bucket filling with default metric fields ([7009ab2](https://github.com/deploystackio/deploystack/commit/7009ab2)) +* feat(backend): enhance MCP client activity endpoint for team awareness ([7ab668c](https://github.com/deploystackio/deploystack/commit/7ab668c)) +* feat(backend): implement cron job system for scheduled tasks ([722811a](https://github.com/deploystackio/deploystack/commit/722811a)) +* feat(backend): implement satellite event handling and processing ([dcfc9aa](https://github.com/deploystackio/deploystack/commit/dcfc9aa)) +* feat(frontend): add API methods to fetch unique runtimes and languages ([2a7f432](https://github.com/deploystackio/deploystack/commit/2a7f432)) +* feat(frontend): add chart components with echarts integration ([dc55c62](https://github.com/deploystackio/deploystack/commit/dc55c62)) +* feat(frontend): add field components with props and templates ([9ea64be](https://github.com/deploystackio/deploystack/commit/9ea64be)) +* feat(frontend): add hover card for Python MCP server installation warning ([df0d271](https://github.com/deploystackio/deploystack/commit/df0d271)) +* feat(frontend): add McpClientConnectionsCard component ([7f95f3e](https://github.com/deploystackio/deploystack/commit/7f95f3e)) +* feat(frontend): add runtime and tags display to MCP server card ([3b22e37](https://github.com/deploystackio/deploystack/commit/3b22e37)) +* feat(frontend): add search and filter functionality to server catalog ([13da4a1](https://github.com/deploystackio/deploystack/commit/13da4a1)) +* feat(frontend): add skeleton loading state for MCP server selection ([2653bb4](https://github.com/deploystackio/deploystack/commit/2653bb4)) +* feat(frontend): add white variant to card component styles ([755d175](https://github.com/deploystackio/deploystack/commit/755d175)) +* feat(frontend): enhance MCP server card with GitHub avatar display ([7479c5e](https://github.com/deploystackio/deploystack/commit/7479c5e)) +* feat(frontend): enhance MCP server installation views and add stats component ([6635348](https://github.com/deploystackio/deploystack/commit/6635348)) +* feat(frontend): implement ButtonGroup component with variants ([23a0418](https://github.com/deploystackio/deploystack/commit/23a0418)) +* feat(frontend): implement client activity tracking and polling ([e73e4e2](https://github.com/deploystackio/deploystack/commit/e73e4e2)) +* feat(frontend): implement item components with variants and slots ([3125aa4](https://github.com/deploystackio/deploystack/commit/3125aa4)) +* feat(frontend): implement McpInstallationsEmptyState component ([044c3e1](https://github.com/deploystackio/deploystack/commit/044c3e1)) +* feat(frontend): integrate team selection for client activity fetching ([bdb2280](https://github.com/deploystackio/deploystack/commit/bdb2280)) +* feat(metrics): add MCP client activity metrics endpoint and service ([9b82d78](https://github.com/deploystackio/deploystack/commit/9b82d78)) +* feat(satellite): add logger support to event handler functions ([4934a4f](https://github.com/deploystackio/deploystack/commit/4934a4f)) +* feat(satellite): implement job management system with heartbeat job ([ef0d19b](https://github.com/deploystackio/deploystack/commit/ef0d19b)) +* chore(all): bump @commitlint/cli from 19.8.1 to 20.1.0 ([9eb3189](https://github.com/deploystackio/deploystack/commit/9eb3189)) +* chore(all): bump @octokit/request from 10.0.3 to 10.0.5 ([d93fabf](https://github.com/deploystackio/deploystack/commit/d93fabf)) +* chore(all): bump @tailwindcss/postcss from 4.1.13 to 4.1.14 ([fd43779](https://github.com/deploystackio/deploystack/commit/fd43779)) +* chore(all): bump drizzle-kit from 0.31.4 to 0.31.5 ([18f93d4](https://github.com/deploystackio/deploystack/commit/18f93d4)) +* chore(all): bump drizzle-orm from 0.44.5 to 0.44.6 ([0b92ebf](https://github.com/deploystackio/deploystack/commit/0b92ebf)) +* chore(all): bump jest from 30.1.3 to 30.2.0 ([7c70f0a](https://github.com/deploystackio/deploystack/commit/7c70f0a)) +* chore(all): bump jiti from 2.6.0 to 2.6.1 ([9051c83](https://github.com/deploystackio/deploystack/commit/9051c83)) +* chore(all): bump pino from 9.11.0 to 10.0.0 ([7845a12](https://github.com/deploystackio/deploystack/commit/7845a12)) +* chore(all): bump tailwindcss from 4.1.13 to 4.1.14 ([e6e06c3](https://github.com/deploystackio/deploystack/commit/e6e06c3)) +* chore(all): bump vue-sonner from 2.0.8 to 2.0.9 ([ad873f0](https://github.com/deploystackio/deploystack/commit/ad873f0)) +* chore(all): bump vue-tsc from 3.0.8 to 3.1.1 ([8f93277](https://github.com/deploystackio/deploystack/commit/8f93277)) +* chore(all): bump zod-openapi from 5.4.1 to 5.4.2 ([35a5b7f](https://github.com/deploystackio/deploystack/commit/35a5b7f)) +* chore(backend): bump @commitlint/cli in /services/backend ([f303c24](https://github.com/deploystackio/deploystack/commit/f303c24)) +* chore(backend): update welcome email template for new users ([756e607](https://github.com/deploystackio/deploystack/commit/756e607)) +* chore(frontend): bump @types/marked in /services/frontend ([5f4ddd3](https://github.com/deploystackio/deploystack/commit/5f4ddd3)) +* chore(frontend): release v0.31.0 ([7e6b608](https://github.com/deploystackio/deploystack/commit/7e6b608)) +* chore(frontend): release v0.31.0 ([6c626f8](https://github.com/deploystackio/deploystack/commit/6c626f8)) +* chore(frontend): remove unused @types/marked dependency from package.json ([44f88ad](https://github.com/deploystackio/deploystack/commit/44f88ad)) +* chore(satellite): release v0.4.1 ([5ebb468](https://github.com/deploystackio/deploystack/commit/5ebb468)) +* chore(satellite): release v0.4.1 ([6594669](https://github.com/deploystackio/deploystack/commit/6594669)) +* chore(satellite): remove unnecessary log statements from server startup ([a1ff115](https://github.com/deploystackio/deploystack/commit/a1ff115)) +* refactor: clean up code structure and remove redundant sections ([4025c22](https://github.com/deploystackio/deploystack/commit/4025c22)) +* refactor(all): update MCP event schemas for consistency and clarity ([2258555](https://github.com/deploystackio/deploystack/commit/2258555)) +* refactor(frontend): simplify McpInstallationsCard component structure ([3fdb93d](https://github.com/deploystackio/deploystack/commit/3fdb93d)) +* refactor(satellite): improve client name detection logic in headers ([7c48a4a](https://github.com/deploystackio/deploystack/commit/7c48a4a)) +* docs(all): update README to clarify adoption friction and data ([c0e3a79](https://github.com/deploystackio/deploystack/commit/c0e3a79)) +* docs(all): update README to clarify VS Code settings for DeployStack ([05d5a35](https://github.com/deploystackio/deploystack/commit/05d5a35)) +* style(frontend): changed style for several views ([f856c52](https://github.com/deploystackio/deploystack/commit/f856c52)) + ## 0.36.0 (2025-10-06) * chore(backend): release v0.36.0 ([6bdfbcf](https://github.com/deploystackio/deploystack/commit/6bdfbcf)) diff --git a/services/backend/package.json b/services/backend/package.json index eae16789c..4fe3a5919 100644 --- a/services/backend/package.json +++ b/services/backend/package.json @@ -1,6 +1,6 @@ { "name": "@deploystack/backend", - "version": "0.36.0", + "version": "0.37.0", "scripts": { "dev": "nodemon", "build": "tsc && webpack --mode=production", diff --git a/services/backend/src/config/version.ts b/services/backend/src/config/version.ts index 6ccd074e2..23a5223f8 100644 --- a/services/backend/src/config/version.ts +++ b/services/backend/src/config/version.ts @@ -9,8 +9,8 @@ export interface VersionInfo { // This will be replaced by the build script let versionData: VersionInfo = { - version: '0.36.0', - buildTime: '2025-10-06T19:35:12.942Z', + version: '0.37.0', + buildTime: '2025-10-17T22:20:23.126Z', source: 'release' }; From 552dca29e7a317057998244cf5bcba00e5056180 Mon Sep 17 00:00:00 2001 From: Lasim Date: Sat, 18 Oct 2025 08:36:39 +0200 Subject: [PATCH 2/2] docs(satellite): update README with idle process management details --- services/satellite/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/satellite/README.md b/services/satellite/README.md index 95319a19a..2fd6c833d 100644 --- a/services/satellite/README.md +++ b/services/satellite/README.md @@ -122,23 +122,27 @@ MCP_PROCESS_IDLE_TIMEOUT_SECONDS=180 # Idle timeout in seconds before terminatin These limits control resource allocation for MCP server processes running in nsjail isolation: **NSJAIL_MEMORY_LIMIT_MB** (Default: 50) + - Memory limit per MCP server process in megabytes - Prevents memory exhaustion attacks - Recommended range: 50-500 MB depending on MCP server requirements - Example: Set to 100 for memory-intensive MCP servers **NSJAIL_CPU_TIME_LIMIT_SECONDS** (Default: 60) + - CPU time limit per MCP server process in seconds - Protects against CPU-bound infinite loops - Recommended range: 30-300 seconds - Note: This is CPU time, not wall-clock time **NSJAIL_MAX_PROCESSES** (Default: 50) + - Maximum number of child processes per MCP server - Prevents fork bombs and process exhaustion - Recommended range: 10-100 depending on MCP server needs **Development Mode:** + - These limits are **not enforced** in development mode (direct spawn without isolation) - Allows easier debugging on macOS, Windows, and Linux - Full isolation only active in production Linux deployments @@ -150,30 +154,35 @@ These limits control resource allocation for MCP server processes running in nsj Automatically terminates idle stdio MCP server processes to save resources. Dormant processes are transparently respawned when API calls arrive. **How It Works:** + - Background job checks all stdio processes every 30 seconds - Processes idle longer than threshold are gracefully terminated - Process configurations stored in memory for automatic respawning - When API call arrives for dormant process, it respawns automatically (1-3s latency) **Benefits:** + - **Memory Savings**: ~50-100MB per dormant process - **CPU Savings**: Zero overhead for idle processes - **Transparent**: MCP clients unaware of sleep/wake cycle - **Team Isolation**: Maintained (separate processes per team) **Configuration Options:** + - `180` (default): 3 minutes idle timeout - `60`: 1 minute idle timeout (aggressive, for high-density deployments) - `600`: 10 minutes idle timeout (conservative, for frequently-used servers) - `0`: Disable idle timeout (processes never sleep) **Edge Cases Handled:** + - Only terminates processes with `status=running` - Skips processes with active requests in flight - Prevents concurrent respawn attempts - Dormant processes excluded from heartbeat reports **Monitoring:** + ```bash # Check idle process activity grep "idle_process_check_completed" logs/satellite.log @@ -186,6 +195,7 @@ grep "dormant_process_respawned" logs/satellite.log ``` **When to Adjust:** + - **High-density deployments**: Lower timeout (60-120s) to maximize resource savings - **Frequently-used servers**: Higher timeout (300-600s) to avoid unnecessary respawns - **Development/testing**: Disable (0) to avoid respawn delays during debugging