Commit Graph

269 Commits

Author SHA1 Message Date
Lix
51bb32930c feat: add third-party model support (#592)
- Support ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN for custom API endpoints
- Add documentation for third-party/open-source model usage

Co-authored-by: wenglixin <wenglixin@menusifu.cn>
2026-03-01 23:45:40 +02:00
gavrielc
80cdd23c84 chore: remove old /update skill, replaced by /update-nanoclaw
The new /update-nanoclaw skill (PR #217) replaces the old update
mechanism. Delete the old skill, update module, CLI scripts, and tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 23:23:31 +02:00
Akshan Krithick
3475e89406 skill: add /update-nanoclaw for syncing customized installs with upstream (#217)
Merge-first workflow that previews upstream changes, lets user choose
full merge / cherry-pick / rebase / abort, resolves only conflicted
files, and validates with build + test.
2026-03-01 23:19:07 +02:00
Jay. (neocode24)
d48ef911f2 fix: add CJK font support for Chromium screenshots
Add fonts-noto-cjk to the container image so that Chromium renders
CJK (Chinese, Japanese, Korean) text correctly in screenshots and
PDF exports. Without this, CJK characters appear as empty rectangles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:16:30 +09:00
gavrielc
8f91d3be57 docs: move examples section below Why in repo-tokens README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 17:20:29 +02:00
gavrielc
6d8f8335bc docs: add NanoClaw as example in repo-tokens README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 17:19:22 +02:00
Gabi Simons
a6a117896c chore: add husky and format:fix script (#535)
* chore: add husky and format:fix script

* docs: initialize empty CHANGELOG.md

Placeholder — release notes will be populated at merge time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:14:18 +02:00
github-actions[bot]
da61a7ea7b docs: update token count to 38.4k tokens · 19% of context window 2026-02-25 21:13:56 +00:00
github-actions[bot]
24001a2de9 chore: bump version to 1.1.3 2026-02-25 21:13:50 +00:00
Gabi Simons
11c201088b refactor: CI optimization, logging improvements, and codebase formatting (#456)
* fix(db): remove unique constraint on folder to support multi-channel agents

* ci: implement automated skill drift detection and self-healing PRs

* fix: align registration logic with Gavriel's feedback and fix build/test issues from Daniel Mi

* style: conform to prettier standards for CI validation

* test: fix branch naming inconsistency in CI (master vs main)

* fix(ci): robust module resolution by removing file extensions in scripts

* refactor(ci): simplify skill validation by removing redundant combination tests

* style: conform skills-engine to prettier, unify logging in index.ts and cleanup unused imports

* refactor: extract multi-channel DB changes to separate branch

Move channel column, folder suffix logic, and related migrations
to feat/multi-channel-db-v2 for independent review. This PR now
contains only CI/CD optimizations, Prettier formatting, and
logging improvements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 23:13:36 +02:00
gavrielc
bd2e236f73 docs: add AmaxGuan to CONTRIBUTORS.md
Co-Authored-By: Lingfeng Guan <6004247+AmaxGuan@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:51:31 +02:00
gavrielc
9232c11312 docs: add rgarcia to CONTRIBUTORS.md
Co-Authored-By: Rafael <raf@kernel.sh>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:50:41 +02:00
gavrielc
7d95ddf0b8 docs: add pottertech to CONTRIBUTORS.md
Co-Authored-By: Skip Potter <skip.potter.va@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:49:42 +02:00
gavrielc
3e578eb0a7 docs: add tydev-new to CONTRIBUTORS.md
Co-Authored-By: tydev-new <198171537+tydev-new@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:49:16 +02:00
gavrielc
40882ab32a docs: add CONTRIBUTORS.md with Alakazam03
Co-Authored-By: vaibhav aggarwal <vaibhav.045@iiitb.org>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:47:21 +02:00
gavrielc
ee1dab8f81 chore: add gabi-simons as codeowner for core paths
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:31:01 +02:00
gavrielc
e0cf045518 chore: remove .claude/settings.local.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:23:39 +02:00
Darrell O'Donnell
ee7f720617 /add-slack (#366)
* feat: add Slack channel skill (/add-slack)

Slack Bot integration via @slack/bolt with Socket Mode. Can replace
WhatsApp entirely (SLACK_ONLY=true) or run alongside it.

- SlackChannel implementing Channel interface (46 unit tests)
- Socket Mode connection (no public URL needed)
- @mention translation (Slack <@UBOTID> → TRIGGER_PATTERN)
- Message splitting at 4000-char Slack API limit
- Thread flattening (threaded replies delivered as channel messages)
- User name resolution with caching
- Outgoing message queue with flush-on-reconnect
- Channel metadata sync with pagination
- Proper Bolt types (GenericMessageEvent | BotMessageEvent)
- Multi-channel orchestrator changes (conditional channel creation)
- Setup guide (SLACK_SETUP.md) and known limitations documented

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* local settings

* adjusted when installing

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:34:34 +02:00
gavrielc
bc05d5fbea fix(add-telegram): update test assertions for 5-arg onChatMetadata signature
The telegram.ts implementation was updated to pass channel and isGroup
to onChatMetadata but the test file still asserted the old 3-arg form.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:30:54 +02:00
Gabi Simons
ae2f339fcf chore(skills): rebase core skills (telegram, discord, voice) to latest main and fix db schema gaps 2026-02-25 00:26:01 +02:00
gavrielc
3dd48f311a fix(add-gmail): restore YAML frontmatter to SKILL.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:24:08 +02:00
gavrielc
8e164f608c fix(add-gmail): graceful startup when credentials missing + poll backoff
- connect() warns and returns instead of throwing when ~/.gmail-mcp/
  credentials are missing, preventing app crash
- index.ts wraps gmail.connect() in try/catch as a safety net
- Poll loop uses exponential backoff on consecutive errors (caps at 30m)
  instead of hammering the Gmail API every 60s on auth failures
- Switch from setInterval to setTimeout chain for proper backoff timing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:23:11 +02:00
gavrielc
695ff08f4c Merge pull request #477 from Fritzzzz1/add-gmail-refactor
Add gmail skill refactor
2026-02-25 00:18:50 +02:00
Fritzzzz
df0e5fc26b remove unused 2026-02-24 23:52:53 +02:00
Fritzzzz
6dd90829e1 refactor: remove GMAIL_CHANNEL_ENABLED env flag from add-gmail skill
Channel vs tool-only is now a code-level decision at skill apply time.
If the user chose channel mode, GmailChannel is wired unconditionally.
If tool-only, no channel code is added. No runtime flag needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:46:24 +02:00
Will Monk
18c0432db4 Fix QR data handling in WhatsApp auth (#467)
Running WhatsApp setup fails because the string interpolation of `qrData` does not inject quotes.
2026-02-24 23:32:54 +02:00
Kyle Johnson
52984491b6 chore: add .nvmrc specifying Node 22 (#473)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:10:37 +02:00
Fritzzzz
41e2424856 refactor: restructure add-gmail skill for new skill architecture
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 22:36:32 +02:00
Fritzzzz
1c31726c63 add npm cache to gitignore 2026-02-24 22:36:32 +02:00
Gabi Simons
29a5dafe01 refactor: remove deterministic caching system from skills engine (#453) 2026-02-24 15:49:29 +02:00
github-actions[bot]
1448a14a94 docs: update token count to 38.2k tokens · 19% of context window 2026-02-24 05:04:48 +00:00
github-actions[bot]
796906baa2 chore: bump version to 1.1.2 2026-02-24 05:04:43 +00:00
Gavriel Cohen
7631a5c686 fix: add error handling and tests for WA Web version fetch
The fetchLatestWaWebVersion call added in #443 could crash the
connection flow if the HTTP fetch fails. Wrap with .catch() to log
and fall back to the default Baileys version.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:04:33 +02:00
github-actions[bot]
f4277b295a docs: update token count to 38.1k tokens · 19% of context window 2026-02-24 04:57:00 +00:00
github-actions[bot]
3a876c10f6 chore: bump version to 1.1.1 2026-02-24 04:56:55 +00:00
Lorenzo Fränkel
ec176a05e1 fix: use fetchLatestWaWebVersion to prevent 405 connection failures (#443)
Baileys' default WhatsApp version can fall behind when WhatsApp updates
their protocol, causing 405 "Method Not Allowed" errors on the websocket
handshake. This prevents both new authentication and reconnection.

Now fetches the latest version on each connection so it stays current.

Applied to both the runtime connection (whatsapp.ts) and the setup auth
flow (whatsapp-auth.ts).
2026-02-24 06:56:43 +02:00
gavrielc
9f802bc5d4 docs: rewrite README for broader audience and updated feature set
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:37:25 +02:00
Guy Vago
1ff1fd6bc7 feat: add official Qodo skills and codebase intelligence (#428) 2026-02-23 23:34:24 +02:00
gavrielc
226b520131 chore: bump version to 1.1.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 02:05:42 +02:00
gavrielc
f59ca7cd6d docs: make /update skill discoverable, add auto version bumping
Add /update to skills tables in CLAUDE.md and REQUIREMENTS.md. Add
"Updating" section to README. Remove /add-telegram and /add-discord
from RFS (already exist). Add CI workflow to bump patch version on
source/container changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 02:04:55 +02:00
gavrielc
1216b5b99c feat: add /update skill for pulling upstream changes (#372)
Interactive skill that guides Claude through fetching upstream NanoClaw,
previewing changes, merging with customizations, running migrations, and
verifying the result. Includes:

- SKILL.md with 9-step update flow
- fetch-upstream.sh: detects remote, fetches, extracts tracked paths
- run-migrations.ts: discovers and runs version-ordered migrations
- post-update.ts: clears backup after conflict resolution
- update-core.ts: adds --json and --preview-only flags
- BASE_INCLUDES moved to constants.ts as single source of truth
- 16 new tests covering fetch, migrations, and CLI flags

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 01:03:13 +02:00
github-actions[bot]
628d434799 docs: update token count to 38.0k tokens · 19% of context window 2026-02-22 22:12:05 +00:00
Chujiang
9fb1790e12 fix: improve type safety and add error logging (#378)
- Replace 'as any' with proper type definition for error status code access
- Add error logging to sendPresenceUpdate() catch block
- Add debug logging when .env file is not found

These changes improve type safety and visibility into potential failures
without changing any core functionality.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: gavrielc <gabicohen22@yahoo.com>
2026-02-23 00:11:52 +02:00
Lawyered
856f98023c Fix critical skills path-remap root escape (including symlink traversal) (#367)
* Block skills path-remap escapes outside project root

* Harden path remap against symlink-based root escape

* test: isolate update tests from real git index
2026-02-23 00:10:45 +02:00
Tom Sella
264f855566 Replace 'ask the user' with AskUserQuestion tool in skills (#389)
- Updated add-voice-transcription to use AskUserQuestion for API key prompt
- Updated add-gmail to use AskUserQuestion for mode selection and channel config
- Updated add-discord to use AskUserQuestion for mode and token prompts
- Updated add-parallel to use AskUserQuestion for API key and permission prompts
- Updated add-telegram to use AskUserQuestion for mode and token prompts
- Updated setup to use AskUserQuestion for Node.js, Docker, and container runtime prompts

The AskUserQuestion tool provides a structured way to collect user input during
skill execution, making the interaction pattern consistent across all skills.
2026-02-23 00:08:14 +02:00
Daniel M
e59856fbec Fix: filter empty messages from polling queries (#383)
* fix: filter empty messages from polling queries

WhatsApp history sync writes empty protocol artifacts (delivery receipts,
status updates) to the database. On fresh installs, the main channel
(no trigger required) picks these up and spawns a container agent
unnecessarily, causing a message loop on first startup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: update test to match empty-content filtering in queries

The getMessagesSince query now filters out empty messages, so the test
should expect 0 results instead of 1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 00:06:08 +02:00
github-actions[bot]
f5b2068852 docs: update token count to 37.9k tokens · 19% of context window 2026-02-22 22:04:36 +00:00
gavrielc
5958175ba1 fix: use 'Assistant' as fallback name instead of 'AssistantNameMissing'
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 00:04:16 +02:00
gavrielc
495b7df5fc merge: resolve conflict with origin/main
Keep ASSISTANT_NAME import, drop removed GROUPS_DIR import.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 00:03:20 +02:00
github-actions[bot]
1046a79682 docs: update token count to 37.8k tokens · 19% of context window 2026-02-22 21:23:47 +00:00