github nanocoai/nanoclaw v2.0.63

4 hours ago

First properly published release. Starting with v2.0.63, the goal is to publish a GitHub Release for every package.json version bump that lands on main — releases are cut manually by a maintainer, so there can be lag. Until now only the bumps landed and tags were sporadic, which made it hard for packagers and users to pin to a known version. See RELEASING.md for the policy.

Rollup release covering v2.0.55 through v2.0.63 — everything merged since the v2.0.54 tag.

Changes

  • [BREAKING] Service names are now per-install. On v2 installs the launchd label and systemd unit are slugged to your project root: com.nanoclaw.<sha1(projectRoot)[:8]> and nanoclaw-<slug>.service. The old com.nanoclaw / nanoclaw.service names no longer match a real service — update any copy-pasted restart or status commands. Find your install's names with source setup/lib/install-slug.sh && launchd_label (macOS) or systemd_unit (Linux). The ncl transport-error help text and 26 skill files now use the canonical helper-driven pattern; see setup/lib/install-slug.sh.
  • Compaction destination reminder placement fixed. The reminder injected after SDK auto-compaction now appears at the end of the compaction summary so it isn't stripped during truncation. Replaces the placement shipped in v2.0.54.
  • Stronger message-wrapping enforcement. The poll loop nudges the agent when its output lacks <message> wrapping, and CLAUDE.md core instructions now require wrapping even for single-destination agents. The welcome flow no longer double-greets.
  • OneCLI credentials after MCP install. MCP servers added through add_mcp_server now inherit OneCLI gateway routing — fixes the case where the agent kept asking for API keys after installing a new server.
  • CLI scope hardening. scopeField now fails closed when scope is missing, and sessions get is guarded against cross-group oracle access from group-scoped agents.
  • gmail/gcal skills aligned with v2. /add-gmail-tool and /add-gcal-tool now reflect the v2 container-config model — DB-backed mounts, no dead TOOL_ALLOWLIST edits, no container.json writes that get clobbered on next spawn. Manual sqlite3/JSON1 invocations corrected.
  • Repo-rename cleanup. Remaining qwibitai/nanoclaw references swept to nanocoai/nanoclaw across code and docs; CI workflow guards updated so they no longer no-op after the rename.
  • Slack scope checklist now includes files:read and files:write for skills that read or post attachments.
  • The internal-tag description in destination instructions no longer mentions scratchpads (which confused agents into routing them incorrectly).
  • Container startup is now graceful when the on_wake column is missing on older sessions DBs.

New Contributors

First NanoClaw PRs from @dvirarad and @intentionaleva landed in this release — welcome both:

Want to be in the next one? Anyone can open a PR — pick up a good first issue or propose your own change directly. Discord is there if you want a hand getting started.

Contributors

Thanks to everyone who landed work in this release:

Full Changelog: v2.0.54...v2.0.63

Don't miss a new nanoclaw release

NewReleases is sending notifications on new releases.