Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions integration/clean-room/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ npm run install:local
hash -r
command -v opshaven >/dev/null
command -v opshaven-mcp >/dev/null
opshaven --version | grep -Eq '^OpsHaven 1\.0\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.0\.0$'
opshaven --version | grep -Eq '^OpsHaven 1\.1\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.1\.0$'

stage "start disposable Ubuntu host"
ssh-keygen -q -t ed25519 -N '' -f "$WORK/admin_id"
Expand Down Expand Up @@ -176,8 +176,8 @@ node -e 'const d=require(process.argv[1]); const b=require(process.argv[2]); if(
stage "rebuild linked commands"
npm run build
hash -r
opshaven --version | grep -Eq '^OpsHaven 1\.0\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.0\.0$'
opshaven --version | grep -Eq '^OpsHaven 1\.1\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.1\.0$'

ELAPSED="$(( $(date +%s) - STARTED_AT ))"
printf 'clean-room workflow: installed CLI, init, app registration, setup, doctor, boundary, exact plan/apply, no-change, partial-state diagnosis, evidence-preserving repair, and rebuild passed in %ss\n' "$ELAPSED"
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "opshaven",
"version": "1.0.0",
"version": "1.1.0",
"private": true,
"description": "A fail-closed MCP server for safe VPS inspection and controlled operations over restricted SSH.",
"type": "module",
Expand All @@ -10,7 +10,9 @@
"opshaven-dispatcher": "dist/src/remote/dispatcher.js",
"opshaven-readonly-dispatcher": "dist-readonly/src/remote/read-only-dispatcher.js"
},
"engines": { "node": ">=22.0.0" },
"engines": {
"node": ">=22.0.0"
},
"scripts": {
"clean": "rm -rf dist dist-readonly",
"format:check": "node scripts/format-check.mjs",
Expand Down Expand Up @@ -40,6 +42,8 @@
"security": "node scripts/security-scan.mjs",
"certify": "scripts/certify-release.sh"
},
"devDependencies": { "typescript": "7.0.2" },
"devDependencies": {
"typescript": "7.0.2"
},
"license": "MIT"
}
8 changes: 4 additions & 4 deletions scripts/check-installed-cli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ npm run install:local
hash -r
assert_installed_command opshaven "$repository_root/dist/src/cli-entry.js"
assert_installed_command opshaven-mcp "$repository_root/dist/src/mcp-entry.js"
opshaven --version | grep -Eq '^OpsHaven 1\.0\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.0\.0$'
opshaven --version | grep -Eq '^OpsHaven 1\.1\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.1\.0$'

npm run build
hash -r
assert_installed_command opshaven "$repository_root/dist/src/cli-entry.js"
assert_installed_command opshaven-mcp "$repository_root/dist/src/mcp-entry.js"
opshaven --version | grep -Eq '^OpsHaven 1\.0\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.0\.0$'
opshaven --version | grep -Eq '^OpsHaven 1\.1\.0$'
opshaven-mcp --version | grep -Eq '^OpsHaven MCP 1\.1\.0$'

printf 'installed CLI: link, executable mode, version, and rebuild lifecycle verified\n'
2 changes: 1 addition & 1 deletion scripts/package-inspect.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const expectedBins = {
const failures = [];
const noFollow = fsConstants.O_NOFOLLOW ?? 0;
if (pkg.name !== "opshaven") failures.push("package name must be opshaven");
if (pkg.version !== "1.0.0") failures.push("package version must be 1.0.0");
if (pkg.version !== "1.1.0") failures.push("package version must be 1.1.0");
if (pkg.license !== "MIT") failures.push("package license must be MIT");
if (pkg.type !== "module") failures.push("package type must be module");
if (pkg.engines?.node !== ">=22.0.0") failures.push("Node engine must remain >=22.0.0");
Expand Down
2 changes: 1 addition & 1 deletion src/cli-entry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ function usageError(message: string): Error { return new Error(message); }
async function main(): Promise<void> {
const requested = process.argv[2] ?? "help";
if (HELP_COMMANDS.has(requested)) { process.stdout.write(help()); return; }
if (VERSION_COMMANDS.has(requested)) { process.stdout.write(`OpsHaven ${process.env.npm_package_version ?? "1.0.0"}\n`); return; }
if (VERSION_COMMANDS.has(requested)) { process.stdout.write(`OpsHaven ${process.env.npm_package_version ?? "1.1.0"}\n`); return; }
if (!KNOWN_COMMANDS.has(requested)) throw usageError(`Unknown command "${requested}".`);
if (requested === "boundary" && process.argv[3] !== "verify") throw usageError("Unknown boundary command.");

Expand Down
2 changes: 1 addition & 1 deletion src/mcp-entry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

const requested = process.argv[2];
if (requested === "--version" || requested === "-V" || requested === "version") {
process.stdout.write(`OpsHaven MCP ${process.env.npm_package_version ?? "1.0.0"}\n`);
process.stdout.write(`OpsHaven MCP ${process.env.npm_package_version ?? "1.1.0"}\n`);
} else {
await import("./index.js");
}
Loading