From 8b5b5818e01e2a4a85faf9f643c2c97bb18958c9 Mon Sep 17 00:00:00 2001 From: johnnyfish Date: Wed, 15 Apr 2026 00:20:28 +0300 Subject: [PATCH 1/5] fix: forward ONECLI_API_KEY to OneCLI SDK for authenticated container config Co-Authored-By: Claude Opus 4.6 (1M context) --- src/config.ts | 3 +++ src/container-runner.ts | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 1d15b8d..a84cb61 100644 --- a/src/config.ts +++ b/src/config.ts @@ -9,6 +9,7 @@ const envConfig = readEnvFile([ 'ASSISTANT_NAME', 'ASSISTANT_HAS_OWN_NUMBER', 'ONECLI_URL', + 'ONECLI_API_KEY', 'TZ', ]); @@ -52,6 +53,8 @@ export const CONTAINER_MAX_OUTPUT_SIZE = parseInt( 10, ); // 10MB default export const ONECLI_URL = process.env.ONECLI_URL || envConfig.ONECLI_URL; +export const ONECLI_API_KEY = + process.env.ONECLI_API_KEY || envConfig.ONECLI_API_KEY; export const MAX_MESSAGES_PER_PROMPT = Math.max( 1, parseInt(process.env.MAX_MESSAGES_PER_PROMPT || '10', 10) || 10, diff --git a/src/container-runner.ts b/src/container-runner.ts index dafa143..1e1e3db 100644 --- a/src/container-runner.ts +++ b/src/container-runner.ts @@ -13,6 +13,7 @@ import { DATA_DIR, GROUPS_DIR, IDLE_TIMEOUT, + ONECLI_API_KEY, ONECLI_URL, TIMEZONE, } from './config.js'; @@ -28,7 +29,7 @@ import { OneCLI } from '@onecli-sh/sdk'; import { validateAdditionalMounts } from './mount-security.js'; import { RegisteredGroup } from './types.js'; -const onecli = new OneCLI({ url: ONECLI_URL }); +const onecli = new OneCLI({ url: ONECLI_URL, apiKey: ONECLI_API_KEY }); // Sentinel markers for robust output parsing (must match agent-runner) const OUTPUT_START_MARKER = '---NANOCLAW_OUTPUT_START---'; From 38163bc5c4981b59a3e3bac6589578f41f237845 Mon Sep 17 00:00:00 2001 From: johnnyfish Date: Wed, 15 Apr 2026 00:23:07 +0300 Subject: [PATCH 2/5] fix: add ONECLI_API_KEY to config mock in container-runner tests Co-Authored-By: Claude Opus 4.6 (1M context) --- src/container-runner.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/container-runner.test.ts b/src/container-runner.test.ts index 36fca0a..4f3314f 100644 --- a/src/container-runner.test.ts +++ b/src/container-runner.test.ts @@ -14,6 +14,7 @@ vi.mock('./config.js', () => ({ DATA_DIR: '/tmp/nanoclaw-test-data', GROUPS_DIR: '/tmp/nanoclaw-test-groups', IDLE_TIMEOUT: 1800000, // 30min + ONECLI_API_KEY: '', ONECLI_URL: 'http://localhost:10254', TIMEZONE: 'America/Los_Angeles', })); From da9a73b50abb3d6a9cdd9fd8e44adbacae9b0a7b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 15 Apr 2026 11:48:46 +0000 Subject: [PATCH 3/5] chore: bump version to 1.2.53 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ebd7b83..cb16bdf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nanoclaw", - "version": "1.2.52", + "version": "1.2.53", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nanoclaw", - "version": "1.2.52", + "version": "1.2.53", "dependencies": { "@onecli-sh/sdk": "^0.2.0", "better-sqlite3": "11.10.0", diff --git a/package.json b/package.json index be913a9..ce85188 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nanoclaw", - "version": "1.2.52", + "version": "1.2.53", "description": "Personal Claude assistant. Lightweight, secure, customizable.", "type": "module", "main": "dist/index.js", From eba94b721ab8c7476e97d6600ca7ee4c0e53249c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 15 Apr 2026 11:48:49 +0000 Subject: [PATCH 4/5] =?UTF-8?q?docs:=20update=20token=20count=20to=2043.8k?= =?UTF-8?q?=20tokens=20=C2=B7=2022%=20of=20context=20window?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repo-tokens/badge.svg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/repo-tokens/badge.svg b/repo-tokens/badge.svg index 52e70b4..81b608a 100644 --- a/repo-tokens/badge.svg +++ b/repo-tokens/badge.svg @@ -1,5 +1,5 @@ - - 43.7k tokens, 22% of context window + + 43.8k tokens, 22% of context window @@ -15,8 +15,8 @@ tokens - - 43.7k + + 43.8k From caf23208f0ef9d37f4dbc45f789168e31cb2f96e Mon Sep 17 00:00:00 2001 From: gavrielc Date: Sat, 18 Apr 2026 12:03:26 +0300 Subject: [PATCH 5/5] docs: add v2 preview announcement to README Adds a callout for the Chat SDK + approval dialogs preview with a collapsible containing the fork/checkout instructions. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 874a8d7..55fa16e 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,22 @@ --- +> **🔥 New Version Preview: Chat SDK + Approval Dialogs** +> +> A new version of NanoClaw is available for preview, featuring Vercel Chat SDK integration (15 messaging platforms from one codebase) and one-tap approval dialogs for sensitive agent actions. [Read the announcement →](https://venturebeat.com/orchestration/should-my-enterprise-ai-agent-do-that-nanoclaw-and-vercel-launch-easier-agentic-policy-setting-and-approval-dialogs-across-15-messaging-apps) +> +>
+> Try the preview +> +> ```bash +> gh repo fork qwibitai/nanoclaw --clone && cd nanoclaw +> git checkout v2 +> claude +> ``` +> Then run `/setup`. Feedback welcome on [Discord](https://discord.gg/VDdww8qS42). Expect breaking changes before merge to main. +> +>
+ ## Why I Built NanoClaw [OpenClaw](https://github.com/openclaw/openclaw) is an impressive project, but I wouldn't have been able to sleep if I had given complex software I didn't understand full access to my life. OpenClaw has nearly half a million lines of code, 53 config files, and 70+ dependencies. Its security is at the application level (allowlists, pairing codes) rather than true OS-level isolation. Everything runs in one Node process with shared memory.