Open
Conversation
These workflows use APP_ID/APP_PRIVATE_KEY secrets that only exist on the upstream repo. Without a fork guard they fail on every push for every fork. merge-forward-skills already has the correct guard. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The diagnostics section used a markdown link that Claude never resolved, so the prompt was silently skipped. Replace with a numbered step (setup) and mandatory final step (update-nanoclaw) that instructs Claude to use the Read tool on the full file path. Update opt-out instructions to match the renamed section headings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/setup overwrote ~/.config/nanoclaw/mount-allowlist.json unconditionally, clobbering any user customizations made after initial setup. Now checks for the file first and skips with a 'skipped' status if it exists. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The skip message mentioned --force but parseArgs didn't handle it, making it a false promise. Now --force is parsed and passed through, allowing users to regenerate the mount allowlist when needed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
claw was running containers with no volume mounts, so the agent always saw an empty /workspace/group. Add build_mounts() to replicate the same bind-mounts that container-runner.ts sets up (group folder, .claude sessions, IPC dir, agent-runner source, and project root for main). Also includes upstream fix from qwibitai#1368: graceful terminate() before kill() on output sentinel, and early return after a successful structured response so exit code stays 0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- README.md: add docs.nanoclaw.dev link, point architecture and security references to documentation site - CHANGELOG.md: add all releases from v1.1.0 through v1.2.21 (was only v1.2.0), link to full changelog on docs site - docs/REQUIREMENTS.md: update multi-channel references (NanoClaw now supports WhatsApp, Telegram, Discord, Slack, Gmail), update RFS to reflect existing skills, fix deployment info (macOS + Linux) - docs/SECURITY.md: generalize WhatsApp-specific language to channel-neutral - docs/DEBUG_CHECKLIST.md: use Docker commands (default runtime) instead of Apple Container syntax, generalize WhatsApp references - docs/README.md: new file pointing to docs.nanoclaw.dev as the authoritative source, with mapping table from local files to docs site pages Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When registering a new group, create CLAUDE.md in the group folder from the appropriate template (groups/main/ for main groups, groups/global/ for others). Without this, the container agent runs with no CLAUDE.md since its CWD is /workspace/group (the group folder). Also update the name-replacement glob to cover all groups/*/CLAUDE.md files rather than only two hardcoded paths, so newly created files and any future group folders are updated correctly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds 5 tests verifying the template copy and glob-based name update logic introduced in the parent commit: - copies global template for non-main groups - copies main template for main groups - does not overwrite existing CLAUDE.md - updates name across all groups/*/CLAUDE.md files - handles missing template gracefully (no crash) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replaces single-channel tests with multi-channel scenarios: - each channel can have its own main with admin context - non-main groups across channels get global template - custom name propagates to all channels and groups - user-modified CLAUDE.md preserved on re-registration - missing templates handled gracefully Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When a non-main group is re-registered with --is-main, the existing CLAUDE.md (copied from global template) lacked admin context. Now register.ts detects this promotion case and replaces it with the main template. Files that already contain "## Admin Context" are preserved. Adds tests for: - promoting non-main to main upgrades the template - cross-channel promotion (e.g. Telegram non-main → main) - promotion with custom assistant name - re-registration preserves user-modified main CLAUDE.md - re-registration preserves user-modified non-main CLAUDE.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The promotion logic (overwriting CLAUDE.md when a group becomes main) is unsafe. Real-world setups use is_main for groups that intentionally lack admin context — e.g. a family chat (whatsapp_casa) with 144 lines of custom persona, PARA workspace, task management, and family context. Overwriting based on missing "## Admin Context" would destroy user work. register.ts now follows a simple rule: create template for new folders, never touch existing files. Tests updated to verify preservation across re-registration and main promotion scenarios. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add SKILL.md for the native credential proxy feature skill. Delete src/credential-proxy.ts and src/credential-proxy.test.ts which became dead code after PR qwibitai#1237 (OneCLI integration). These files live on the skill/native-credential-proxy branch. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Gives Claude context on how credentials/API keys/OAuth tokens are managed via the OneCLI gateway, so it doesn't suggest storing secrets in .env or passing them to containers. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Closes qwibitai#1361 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nclaw Skill/migrate from openclaw
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Skill/migrate nanoclaw
The documented path /workspace/project/groups/global/CLAUDE.md doesn't match the actual mount point /workspace/global. This caused agents to look for global memory at a nonexistent path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Main group had no mount for the global memory directory (/workspace/global), so it could only reach it through the read-only project root. This meant the main agent couldn't write to global memory despite groups/main/CLAUDE.md instructing it to do so. Add a writable mount at /workspace/global for the isMain branch, matching the read-only mount that non-main groups already have. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Container skill teaches the agent to maintain a structured, interlinked wiki from ingested sources. Feature skill bootstraps the setup — directory structure, group CLAUDE.md, optional scheduled lint. Based on Karpathy's LLM Wiki pattern. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove pre-written container skill. Instead, include llm-wiki.md (Karpathy's gist) as the reference material and have the setup skill guide the user through collaboratively building their own wiki schema, container skill, and directory structure based on the pattern. Add NanoClaw-specific notes: image vision, PDF reader, voice transcription, curl for full document fetch, file attachment handling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove hardcoded file path checks. Step 4 now discusses source types with the user and helps install needed skills dynamically. Fix "use use" typo and change curl example to file download. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add /add-karpathy-llm-wiki skill
Compact earlier to preserve more context fidelity before the window fills. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. Lint schedule now uses NanoClaw scheduled_tasks table instead of Claude Code cron — runs in the group's agent container 2. CLAUDE.md must enforce one-at-a-time file ingestion — never batch 3. Expanded CLAUDE.md guidance: explain system, index files, point to container skill, enforce ingest discipline Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update SKILL.md to use ONECLI_URL variable
Fix global memory for main agent: correct path and add writable mount
Supply chain protection — npm will not install package versions published less than 7 days ago. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…dential-mode fix(gmail): add OneCLI credential mode detection
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upstream NanoClaw Update — 2026-04-15
Merges 532 new commits from
upstream/main(qwibitai/nanoclaw) into this fork with no conflicts.Build & Tests
npm ci✅npm run build✅ (TypeScript compiled clean)npm test✅ — 246 tests passed across 18 test filesBackup branch
backup/pre-update-20260415-HHMMwas created before the merge.Notable upstream changes (newest first)
934f063update deps32a487bMerge pull request fix(gmail): add OneCLI credential mode detection qwibitai/nanoclaw#1660 from johnnyfish/fix/gmail-onecli-credential-mode751a9edfix(gmail): add OneCLI credential mode detection22d7856reduce setup frictionca9333dimprove diagnostics6c289c3chore: add .npmrc with 7-day minimum release ageb8cf308chore: bump version to 1.2.525702760Merge pull request Fix global memory for main agent: correct path and add writable mount qwibitai/nanoclaw#1644 from sargunv/fix/global-memory-path653390dchore: bump version to 1.2.513381509Merge pull request Update SKILL.md to use ONECLI_URL variable qwibitai/nanoclaw#1658 from guyb1/patch-119ce90cfix0918f78fix4fd7586update init-onecli5adc949Update SKILL.md to use ONECLI_URL variable1d5c38dfix: three issues in karpathy wiki skill75c2e18chore: bump version to 1.2.50f77f9cefeat: set auto-compact threshold to 165k tokens27f9f0cMerge pull request feat: add /add-karpathy-llm-wiki skill qwibitai/nanoclaw#1649 from qwibitai/skill/wiki33b5627chore: rename skill to add-karpathy-llm-wikif69979ffix: simplify source handling step and fix typo in wiki skill54bf454refactor: rework wiki skill to use Karpathy's original text as reference36943fbfeat: add /add-wiki skill for persistent LLM Wiki knowledge bases1488c5bfix: add writable global memory mount for main agent22ab96cfix: correct global memory path in container CLAUDE.md391b729Merge pull request Skill/migrate nanoclaw qwibitai/nanoclaw#1634 from qwibitai/skill/migrate-nanoclaw3703c9dfeat: suggest /migrate-nanoclaw when user is far behind upstreamc5cb97bMerge pull request Skill/migrate from openclaw qwibitai/nanoclaw#1633 from qwibitai/skill/migrate-from-openclaw761d3a1feat: add migrated_from_openclaw field to setup diagnosticsb752e5cchore: bump version to 1.2.49a74be06Merge pull request feat: auto-prune stale session artifacts qwibitai/nanoclaw#1632 from qwibitai/feat/session-cleanup-prd4a6b4afix: portable stat and subshell variable mutation in cleanup script67020f9feat: auto-prune stale session artifacts on startup + daily8a02170chore: bump version to 1.2.48db3440ffeat: upgrade agent SDK to 0.2.92 with 1M context and 200k auto-compactb2a5a58feat: add /migrate-from-openclaw skill for guided OpenClaw migration426ae02feat: add diagnostics telemetry to migrate-nanoclaw skill7ef1c4ffix: apply lessons from real-world migration test runf60bb3cfeat: add /migrate-nanoclaw skill for intent-based upgrades8f28cdechore: bump version to 1.2.47032ba77feat: mount store rw for main agent and add requiresTrigger to register_group5841141Merge pull request docs: breaking change entries for Apple Container and pino removal qwibitai/nanoclaw#1610 from qwibitai/fix/changelog-breaking-changesbf11109docs: update breaking changes and Apple Container skill security6f93b20fix: relax breaking change detection to match [BREAKING] anywhere in line6e0653fchore: bump version to 1.2.46ee599b9feat: add reply/quoted message context support22f5d55Add Contributor Covenant Code of Conduct4c7bc80chore: bump version to 1.2.4587e8914style: run prettier on container/agent-runner/src/7b0d79achore: bump version to 1.2.44468c617style: run prettier and eslint on src/New skills added
/add-emacs— Emacs channel integration/add-karpathy-llm-wiki— persistent wiki knowledge bases (renamed from add-wiki)/add-macos-statusbar— macOS menu bar status indicator/channel-formatting— per-channel Markdown-to-native formatting/init-onecli— OneCLI Agent Vault installer/migrate-from-openclaw— guided OpenClaw → NanoClaw migration/migrate-nanoclaw— intent-based upgrade skill/use-native-credential-proxy— built-in credential proxy (no OneCLI needed)Key source changes
src/credential-proxy.tsremoved (replaced by native proxy skill)src/session-cleanup.tsadded (auto-prune stale session artifacts)setup/timezone.tsaddedcontainer/agent-runnerupdated to SDK 0.2.92 (1M context, 200k auto-compact)groups/global/CLAUDE.mdadded (new global memory file)