Commit graph

227 commits

Author SHA1 Message Date
Clawdie
170480cbc8 Introduce Warden runtime naming 2026-03-08 09:43:33 +01:00
Clawdie
9370f6623d Add Bastille and jail networking docs 2026-03-08 09:18:35 +01:00
Clawdie
e5ae8ae4f9 Fix jail config migration and chat listing 2026-03-08 00:16:10 +01:00
Clawdie
a80ec0664c Replace WhatsApp setup with Telegram auth 2026-03-07 23:08:14 +01:00
Clawdie
0a5adbe650 Remove Claude runtime path 2026-03-07 23:00:52 +01:00
Clawdie
0b9c4fc6c8 Rename runtime tree to jail 2026-03-07 22:53:36 +01:00
Clawdie
64e8584fd1 Drop legacy container config aliases 2026-03-07 22:38:47 +01:00
Clawdie
e9ac0dc620 Rename jail runtime config types 2026-03-07 22:31:28 +01:00
Clawdie
6bd516f9ac Standardize memory files on AGENTS.md 2026-03-07 22:25:03 +01:00
Clawdie
4e394d6194 Fix build imports and setup branding 2026-03-07 22:03:41 +01:00
Clawdie
6c41517381 Rename jail worker runtime types 2026-03-07 21:57:27 +01:00
Clawdie
a5c53fdd92 Remove non-FreeBSD runtime paths 2026-03-07 21:55:25 +01:00
Clawdie
d7e57e2374 Switch default runtime to pi 2026-03-07 21:15:16 +01:00
Clawdie
4fccff3f4e refactor: replace WhatsApp with Telegram, rename container→jail, migrate skills to .agent/
- Replace WhatsApp channel (@whiskeysockets/baileys) with Telegram (grammy)
  - Add src/channels/telegram.ts, remove src/channels/whatsapp.ts + whatsapp-auth.ts
  - TELEGRAM_BOT_TOKEN required; fatal exit if not set
  - Remove @whiskeysockets/baileys, qrcode, qrcode-terminal packages
  - Update routing tests to use tg: JID format

- Rename container→jail throughout src/
  - container-runner.ts → jail-runner.ts (jexec-based spawn)
  - container-runtime.ts → jail-ops.ts (stopJail, ensureJailRunning, cleanupStaleJails)
  - Add jail-config.ts, jail-runtime.ts for FreeBSD jail provisioning
  - Rename config exports: CONTAINER_TIMEOUT→JAIL_TIMEOUT, MAX_CONCURRENT_CONTAINERS→MAX_CONCURRENT_JAILS
  - Update group-queue.ts: isTaskContainer→isTaskJail, activeContainers→activeJails

- Migrate skills from .claude/skills/ to .agent/skills/
  - Add tmux-screenshot skill (ANSI color PNG renderer, wide-char fix, 24-bit truecolor)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 18:36:27 +01:00
Clawdie
d9148cd180 refactor: replace container paradigm with FreeBSD jails, rename all container refs
- Rename container-runtime.ts → jail-ops.ts, container-runner.ts → jail-runner.ts
- Rename all types: ContainerInput→JailInput, ContainerOutput→JailOutput, VolumeMount→JailMount
- Rename all functions: runContainerAgent→runJailAgent, stopContainer→stopJail,
  ensureContainerRuntimeRunning→ensureJailRunning, cleanupOrphans→cleanupStaleJails
- Rename config constants: CONTAINER_TIMEOUT→JAIL_TIMEOUT,
  CONTAINER_MAX_OUTPUT_SIZE→JAIL_MAX_OUTPUT_SIZE, MAX_CONCURRENT_CONTAINERS→MAX_CONCURRENT_JAILS
- Remove Docker/Apple Container runtime detection, CONTAINER_IMAGE, CONTAINER_RUNTIME_BIN
- Add jail-ops.ts: pure FreeBSD jail runtime (nullfs mounts, jexec, jls cleanup)
- Add jail-runner.ts: agent runner using jexec instead of docker run
- Add FreeBSD jail implementation docs and JAIL-CLEANUP-MODEL
- Add AGENT.md, AGENTS.md, groups/*/AGENT.md for Clawdie context
- Add mount-allowlist.example.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 16:30:12 +01:00
github-actions[bot]
db0a3005f6 docs: update token count to 38.4k tokens · 19% of context window 2026-02-25 21:13:56 +00:00
github-actions[bot]
d897ad4973 chore: bump version to 1.1.3 2026-02-25 21:13:50 +00:00
Gabi Simons
d12c3c4da3 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
b81ab663d1 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
ae233687c9 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
7c8341b863 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
168219819b 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
999f0bbe6c 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
4b28e88ce9 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
2aebfe3208 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
beb95f2516 /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
832ca6df88 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
9bd7161bee 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
a281f7a108 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
5503e35248 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
13201a233e Merge pull request #477 from Fritzzzz1/add-gmail-refactor
Add gmail skill refactor
2026-02-25 00:18:50 +02:00
Fritzzzz
d6cb0126f9 remove unused 2026-02-24 23:52:53 +02:00
Fritzzzz
7a82404e50 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
7744bf331f 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
0ea8e777c5 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
8533d8835b 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
a7fa4301c8 add npm cache to gitignore 2026-02-24 22:36:32 +02:00
Gabi Simons
c57d2afcc0 refactor: remove deterministic caching system from skills engine (#453) 2026-02-24 15:49:29 +02:00
github-actions[bot]
cd3fa3ee05 docs: update token count to 38.2k tokens · 19% of context window 2026-02-24 05:04:48 +00:00
github-actions[bot]
78f3fe7fbd chore: bump version to 1.1.2 2026-02-24 05:04:43 +00:00
Gavriel Cohen
9322e38efa 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]
021d77787b docs: update token count to 38.1k tokens · 19% of context window 2026-02-24 04:57:00 +00:00
github-actions[bot]
3325de4c44 chore: bump version to 1.1.1 2026-02-24 04:56:55 +00:00
Lorenzo Fränkel
0d7d939d7f 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
83dcb6bdba 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
6e594ac823 feat: add official Qodo skills and codebase intelligence (#428) 2026-02-23 23:34:24 +02:00
gavrielc
9d9db52131 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
d84243b370 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
5295e2e6fc 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]
57ab5a9d42 docs: update token count to 38.0k tokens · 19% of context window 2026-02-22 22:12:05 +00:00