diff --git a/Dockerfile b/Dockerfile index 6d30d6ad3..60ab9cc3c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,7 +29,7 @@ RUN npm ci \ # Runtime stage FROM docker.io/library/node:20-slim -ARG SANDBOX_NAME="qwen-code-sandbox" +ARG SANDBOX_NAME="proto-sandbox" ARG CLI_VERSION_ARG ENV SANDBOX="$SANDBOX_NAME" ENV CLI_VERSION=$CLI_VERSION_ARG @@ -70,4 +70,4 @@ RUN npm install -g /tmp/*.tgz \ && rm -rf /tmp/*.tgz # Default entrypoint when none specified -CMD ["qwen"] +CMD ["proto"] diff --git a/SECURITY.md b/SECURITY.md index d4ae9df9e..09669d536 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,8 +2,19 @@ ## Reporting a Vulnerability -If you believe you have discovered a security vulnerability, please report it to us through the following portal: [Report Security Issue](https://yundun.console.aliyun.com/?p=xznew#/taskmanagement/tasks/detail/151) +Please report security vulnerabilities **privately** — do not open a public issue. -> **Note:** This channel is strictly for reporting security-related issues. Non-security vulnerabilities or general bug reports will not be addressed here. +Use GitHub's private vulnerability reporting for this repository: +[**Report a vulnerability**](https://github.com/protoLabsAI/protoCLI/security/advisories/new) +(the "Report a vulnerability" button under the repository's **Security** tab). -We sincerely appreciate your responsible disclosure and your contribution to helping us keep our project secure. +We aim to acknowledge new reports within a few business days and will keep you +updated as we investigate and prepare a fix. Please give us a reasonable window +to remediate before any public disclosure. + +> This channel is strictly for security-related issues. For non-security bugs or +> general problems, please open a regular +> [GitHub issue](https://github.com/protoLabsAI/protoCLI/issues) instead. + +We sincerely appreciate your responsible disclosure and your contribution to +keeping proto and its users secure. diff --git a/docs/architecture/divergence-from-upstream.md b/docs/architecture/divergence-from-upstream.md index 338fdf4d7..617e3680a 100644 --- a/docs/architecture/divergence-from-upstream.md +++ b/docs/architecture/divergence-from-upstream.md @@ -52,8 +52,10 @@ load-bearing because the binary name, NPM scope, and config dirs all track it. user-installed extensions that record their origin. - `DEFAULT_QWEN_MODEL` constant and the `QWEN_DIR` storage constant — same reasoning. Internal identifier, not user-visible. -- `sandboxImageUri: ghcr.io/qwenlm/qwen-code:0.26.5` (`package.json:23`) — - we do not yet ship our own sandbox image. + +The sandbox no longer points at the upstream Qwen image: it now ships as our own +image (`ghcr.io/protolabsai/protocli`, `package.json:23`), published per release +by `.github/workflows/build-and-publish-image.yml`. **Honest take:** if you read `packages/core` source, you will still see `Qwen` in dozens of places. The user-visible surface is consistently `proto`. diff --git a/docs/guides/use-sandbox.md b/docs/guides/use-sandbox.md index 0a0c8d6aa..9c30c775a 100644 --- a/docs/guides/use-sandbox.md +++ b/docs/guides/use-sandbox.md @@ -70,7 +70,7 @@ export SANDBOX_FLAGS="--security-opt label=disable" **Extend the default image** — create `.proto/sandbox.Dockerfile`: ```dockerfile -FROM ghcr.io/proto-labs/proto:latest +FROM ghcr.io/protolabsai/protocli:latest RUN apt-get update && apt-get install -y openjdk-17-jre && \ apt-get clean && rm -rf /var/lib/apt/lists/* diff --git a/package.json b/package.json index f267fb870..e620d44c1 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "url": "https://github.com/protoLabsAI/protoCLI/issues" }, "config": { - "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.71.2" + "sandboxImageUri": "ghcr.io/protolabsai/protocli:0.71.2" }, "scripts": { "start": "cross-env node scripts/start.js", diff --git a/packages/cli/package.json b/packages/cli/package.json index d200fbc5f..7ca22a7a9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,7 +37,7 @@ "dist" ], "config": { - "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.71.2" + "sandboxImageUri": "ghcr.io/protolabsai/protocli:0.71.2" }, "dependencies": { "@agentclientprotocol/sdk": "^0.28.0", diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 6cc3d547c..256e8297d 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -203,7 +203,7 @@ export async function parseArguments(): Promise { const yargsInstance = yargs(rawArgv) .locale('en') - .scriptName('qwen') + .scriptName('proto') .usage( 'Usage: proto [options] [command]\n\nproto - Launch an interactive CLI, use -p/--prompt for non-interactive mode', ) diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index 5a8ccc28c..8767076e5 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -1840,7 +1840,7 @@ const SETTINGS_SCHEMA = { requiresRestart: true, default: false, description: - 'Enable in-session cron/loop tools (experimental). When enabled, the model can create recurring prompts using cron_create, cron_list, and cron_delete tools. Can also be enabled via QWEN_CODE_ENABLE_CRON=1 environment variable.', + 'Enable in-session cron/loop tools (experimental). When enabled, the model can create recurring prompts using cron_create, cron_list, and cron_delete tools. Can also be enabled via the PROTO_ENABLE_CRON=1 environment variable (QWEN_CODE_ENABLE_CRON=1 is also accepted).', showInDialog: true, }, }, diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 21456a869..c128f381b 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -1876,8 +1876,15 @@ export class Config { } isCronEnabled(): boolean { - // Cron is experimental and opt-in: enabled via settings or env var - if (process.env['QWEN_CODE_ENABLE_CRON'] === '1') return true; + // Cron is experimental and opt-in: enabled via settings or env var. + // PROTO_ENABLE_CRON is the documented name; QWEN_CODE_ENABLE_CRON is kept + // as a back-compat alias inherited from the fork. + if ( + process.env['PROTO_ENABLE_CRON'] === '1' || + process.env['QWEN_CODE_ENABLE_CRON'] === '1' + ) { + return true; + } return this.cronEnabled; }