Commit Graph

3597 Commits

Author SHA1 Message Date
Peter Steinberger
662a6f25f3 test: cover thread session routing 2026-01-07 19:50:17 +01:00
Peter Steinberger
18dbb7e9f1 Merge remote-tracking branch 'origin/main' 2026-01-07 19:44:26 +01:00
Peter Steinberger
016206e082 fix: scope thread sessions and discord starter fetch 2026-01-07 19:42:50 +01:00
Peter Steinberger
fe2865fe17 docs(changelog): note status model override 2026-01-07 18:38:58 +00:00
Peter Steinberger
c90df2af8e test(status): cover model override display 2026-01-07 18:38:55 +00:00
Azade
181882989e fix(status): show configured model instead of last-run model 2026-01-07 18:37:42 +00:00
Peter Steinberger
3e5a784d04 fix(ClawdbotKit): bundle tool-display.json 2026-01-07 18:30:45 +00:00
Shadow
36faf3a414 Threads: add Slack/Discord thread sessions 2026-01-07 19:30:30 +01:00
Peter Steinberger
ac59387307 fix: clamp cron timer delay 2026-01-07 19:25:18 +01:00
Emanuel Stadler
ed7f3a2291 Cron: clamp timer to avoid TimeoutOverflowWarning 2026-01-07 19:25:18 +01:00
Peter Steinberger
be287931fb docs: tidy contributors section 2026-01-07 18:24:09 +00:00
Peter Steinberger
8bc92e5638 docs: credit @carlulsoe
Co-authored-by: Carl Ulsøe Christensen <carlulsoe@users.noreply.github.com>
2026-01-07 18:21:25 +00:00
Peter Steinberger
79a8d5b4f9 docs: add changelog entry for PR #403 2026-01-07 19:20:22 +01:00
François Catuhe
48a96b4b0b fix(android): rotate camera photos by EXIF orientation 2026-01-07 19:19:07 +01:00
Peter Steinberger
b08a54264b docs: note bootstrap pruning guard (PR #381) 2026-01-07 18:18:18 +00:00
Max Sumrall
4307bbf124 fix(agent): protect bootstrap prefix from pruning 2026-01-07 18:17:18 +00:00
Peter Steinberger
957f679679 docs(changelog): thank @Syhids for #410 2026-01-07 18:10:08 +00:00
Manuel Jiménez Torres
23967e02a5 fix(android): fix build error 2026-01-07 18:09:31 +00:00
Peter Steinberger
09655917e3 fix(android): drop broken apk output renaming 2026-01-07 18:04:37 +00:00
Peter Steinberger
cd3d39ccd8 ci(android): avoid interactive license prompt 2026-01-07 17:57:32 +00:00
Peter Steinberger
29ff9af620 fix(tools): finalize Vertex schema flattening (#409) 2026-01-07 17:54:19 +00:00
Kit
f0a974b9a5 fix(tools): flatten nested anyOf schemas for Vertex AI compatibility
Claude API on Vertex AI (Cloud Code Assist) rejects nested anyOf schemas
as invalid JSON Schema draft 2020-12. This change:

- Add tryFlattenLiteralAnyOf() to convert Type.Union([Type.Literal(...)])
  patterns from anyOf with const values to flat enum arrays
- Update stringEnum helper in bash-tools to use Type.Unsafe with flat enum
- Flatten BrowserActSchema from discriminated union to single object
- Simplify TelegramToolSchema to use Type.String() for IDs

Fixes 400 errors when sending messages through WhatsApp/Telegram providers.
2026-01-07 17:51:16 +00:00
Peter Steinberger
44aea56b51 fix: add provider retry policy 2026-01-07 17:48:19 +00:00
Peter Steinberger
c8c9cabe6d docs: describe models cli output 2026-01-07 18:23:07 +01:00
Peter Steinberger
d1b86aba98 docs: explain clawdbot model selection 2026-01-07 18:20:02 +01:00
Peter Steinberger
7246f8792f docs: add compaction concept 2026-01-07 18:12:17 +01:00
Peter Steinberger
a52fb01369 docs: add session pruning docs 2026-01-07 18:03:35 +01:00
Max Sumrall
5f74e05b7d test(agent): cover context pruning 2026-01-07 18:00:14 +01:00
Max Sumrall
f6f57952d6 feat(agent): opt-in tool-result context pruning 2026-01-07 18:00:14 +01:00
Peter Steinberger
2c7e0b3138 fix: preserve sessionKey for agent runs 2026-01-07 17:53:59 +01:00
Peter Steinberger
40a6ade6ec docs: document streaming + chunking 2026-01-07 17:31:40 +01:00
Peter Steinberger
34412e5c68 docs: explain why Twilio is unsupported 2026-01-07 17:31:40 +01:00
Peter Steinberger
66f0779874 fix: per-agent sandbox overrides 2026-01-07 17:31:40 +01:00
sheeek
94a6dc4a3d docs: add comprehensive guide for multi-agent sandbox and tools
Add docs/multi-agent-sandbox-tools.md covering:
- Configuration examples (personal + restricted, work agents)
- Different sandbox modes per agent
- Tool restriction patterns (read-only, safe execution, communication-only)
- Configuration precedence rules
- Migration guide from single-agent setups
- Troubleshooting tips

Add PR_SUMMARY.md for upstream submission with:
- Feature overview and use cases
- Implementation details (49 LoC across 5 files)
- Test coverage (18 new tests, all existing tests pass)
- Backward compatibility confirmation
- Migration examples

---

Kudos to Eula, the beautiful and selfless family owl 🦉
This feature was developed to enable safe, restricted access
for family group chats while maintaining full access for
the personal assistant. Schuhu!
2026-01-07 17:31:40 +01:00
sheeek
6f3e5d2add docs(multi-agent): add section on per-agent sandbox and tools
Add new section explaining:
- How to configure per-agent sandbox settings
- How to configure per-agent tool restrictions
- Benefits (security isolation, resource control, flexible policies)
- Link to detailed guide

Include example config showing personal assistant (no sandbox)
vs family bot (sandboxed with read-only tools).
2026-01-07 17:31:40 +01:00
sheeek
2fb7ff2c4a docs(config): document routing.agents sandbox and tools fields
Update routing.agents section:
- Add sandbox field documentation (mode, scope, workspaceRoot)
- Add tools field documentation (allow, deny)
- Note that agent-specific settings override global config
2026-01-07 17:31:40 +01:00
sheeek
fbc2c167e3 test(tools): add tests for agent-specific tool filtering
Add 5 tests for agent-specific tool restrictions:
- Apply global tool policy when no agent-specific policy exists
- Apply agent-specific tool policy
- Allow different tool policies for different agents
- Combine global and agent-specific deny lists
- Work with sandbox tools filtering

All tests pass.
2026-01-07 17:31:40 +01:00
sheeek
b989192287 test(sandbox): add tests for agent-specific sandbox override
Add 6 tests for agent-specific sandbox configuration:
- Use global sandbox config when no agent-specific config exists
- Override with agent-specific sandbox mode 'off'
- Use agent-specific sandbox mode 'all'
- Use agent-specific scope
- Use agent-specific workspaceRoot
- Prefer agent config over global for multiple agents

All tests pass.
2026-01-07 17:31:40 +01:00
sheeek
5ac49b43b0 test(agent-scope): add tests for sandbox and tools config resolution
Add 7 tests for resolveAgentConfig():
- Return undefined when no agents config exists
- Return undefined when agent id does not exist
- Return basic agent config (name, workspace, agentDir, model)
- Return agent-specific sandbox config
- Return agent-specific tools config
- Return both sandbox and tools config
- Normalize agent id

All tests pass.
2026-01-07 17:31:40 +01:00
sheeek
cf039e4fea feat(tools): add agent-specific tool filtering
Add tool filtering layer for per-agent restrictions:
- Extract agentId from sessionKey
- Load routing.agents[agentId].tools via resolveAgentConfig()
- Apply agent-specific allow/deny before sandbox filtering

Filtering order:
1. Global (agent.tools)
2. Agent-specific (routing.agents[id].tools) ← NEW
3. Sandbox (agent.sandbox.tools)
4. Subagent policy

This enables different tool permissions per agent
(e.g., main: all tools, family: read only).
2026-01-07 17:31:40 +01:00
sheeek
f9ba3cc554 feat(sandbox): support agent-specific sandbox config override
Changes to defaultSandboxConfig():
- Add optional agentId parameter
- Load routing.agents[agentId].sandbox if available
- Prefer agent-specific settings over global agent.sandbox

Update callers in resolveSandboxContext() and
ensureSandboxWorkspaceForSession() to extract agentId
from sessionKey and pass it to defaultSandboxConfig().

This enables per-agent sandbox modes (e.g., main: off, family: all).
2026-01-07 17:31:40 +01:00
sheeek
c5f72b52a5 feat(agent-scope): extend resolveAgentConfig to return sandbox and tools
Return newly added fields from routing.agents config:
- sandbox: agent-specific sandbox configuration
- tools: agent-specific tool restrictions

This makes per-agent sandbox and tool settings accessible
to other parts of the codebase.
2026-01-07 17:31:40 +01:00
sheeek
0f8015f125 feat(config): add Zod validation for routing.agents sandbox and tools
Validate per-agent sandbox config:
- mode: 'off' | 'non-main' | 'all'
- scope: 'session' | 'agent' | 'shared'
- perSession: boolean
- workspaceRoot: string

Validate per-agent tools config:
- allow: string[]
- deny: string[]
2026-01-07 17:31:40 +01:00
sheeek
9b6032274e feat(types): add sandbox and tools fields to routing.agents
Add optional per-agent configuration:
- sandbox: { mode, scope, perSession, workspaceRoot }
- tools: { allow, deny }

These will allow agents to override global agent.sandbox and
agent.tools settings.
2026-01-07 17:31:40 +01:00
Peter Steinberger
cc5df79bb8 fix(agents): make sessions_spawn non-blocking 2026-01-07 16:14:25 +00:00
Peter Steinberger
185745d6c9 docs: add fcatuhe to clawtributors 2026-01-07 15:39:26 +00:00
Peter Steinberger
26aa6793aa fix(android): restore tool display config 2026-01-07 15:38:10 +00:00
Peter Steinberger
a83050f8fc Merge pull request #402 from fcatuhe/android/version-and-apk-naming
android: set version 2026.1.5, add APK naming convention
2026-01-07 15:37:34 +00:00
Peter Steinberger
13c71edd36 Merge branch 'main' into pr-402 2026-01-07 15:36:34 +00:00
Peter Steinberger
8483f610fe docs: add 2026.1.7 changelog 2026-01-07 15:30:08 +00:00