diff --git a/client/src/pages/__tests__/__snapshots__/screens.snapshot.test.tsx.snap b/client/src/pages/__tests__/__snapshots__/screens.snapshot.test.tsx.snap index d69f9f03..e242e399 100644 --- a/client/src/pages/__tests__/__snapshots__/screens.snapshot.test.tsx.snap +++ b/client/src/pages/__tests__/__snapshots__/screens.snapshot.test.tsx.snap @@ -7239,7 +7239,7 @@ exports[`screen snapshots > Settings — about 1`] = ` - UI build v2.8.9 (rebuild client to match) + UI build v2.8.10 (rebuild client to match)
diff --git a/openapi.yaml b/openapi.yaml index a040a083..5077b430 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -3,7 +3,7 @@ openapi: 3.0.3 info: title: Agent Dashboard for Claude Code API - version: 2.8.9 + version: 2.8.10 description: HTTP API for real-time Claude Code session monitoring, agent lifecycle tracking, analytics, pricing, hooks ingestion, and workflow intelligence. contact: name: Nguyễn Ngọc Trí Vĩ diff --git a/package-lock.json b/package-lock.json index 043cff9b..bacd86f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "agenthub", - "version": "2.8.9", + "version": "2.8.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agenthub", - "version": "2.8.9", + "version": "2.8.10", "hasInstallScript": true, "license": "UNLICENSED", "dependencies": { @@ -14,6 +14,7 @@ "adm-zip": "^0.6.1", "cors": "^2.8.5", "express": "^4.21.2", + "js-yaml": "^4.1.0", "multer": "^2.0.0", "swagger-ui-express": "^5.0.1", "systray2": "^2.1.4", @@ -27,7 +28,6 @@ }, "devDependencies": { "concurrently": "^9.1.2", - "js-yaml": "^4.1.0", "prettier": "^3.8.1" }, "engines": { @@ -215,7 +215,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0" }, "node_modules/array-flatten": { @@ -1099,7 +1098,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", - "dev": true, "funding": [ { "type": "github", diff --git a/package.json b/package.json index e0efb296..b679d355 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agenthub", - "version": "2.8.9", + "version": "2.8.10", "bin": { "agenthub": "bin/agenthub.js" }, @@ -75,6 +75,7 @@ "adm-zip": "^0.6.1", "cors": "^2.8.5", "express": "^4.21.2", + "js-yaml": "^4.1.0", "multer": "^2.0.0", "swagger-ui-express": "^5.0.1", "systray2": "^2.1.4", @@ -88,7 +89,6 @@ }, "devDependencies": { "concurrently": "^9.1.2", - "js-yaml": "^4.1.0", "prettier": "^3.8.1" }, "engines": { diff --git a/server/__tests__/runtime-deps.test.js b/server/__tests__/runtime-deps.test.js new file mode 100644 index 00000000..2b2c2024 --- /dev/null +++ b/server/__tests__/runtime-deps.test.js @@ -0,0 +1,68 @@ +/** + * @file runtime-deps.test.js + * @description Every package the server code requires is a runtime dependency. + * A plugin install runs `npm install --omit=dev`, so a package listed only in + * devDependencies — or one that arrived only as some other package's + * dependency — is missing there. v2.8.9 crashed at start on every plugin + * install: `js-yaml` (server/lib/lane-detect.js) was a devDependency that + * `redoc` used to pull in, and dropping `redoc` took it away. Machines with + * Debian's global /usr/share/nodejs never saw it, so this checks the manifest + * instead of trusting a local `require` to fail. + * @author Nguyễn Ngọc Trí Vĩ