sheeek
304857cf43
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 12:09:11 +01:00
sheeek
0851682080
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 12:09:11 +01:00
Peter Steinberger
1011640a13
refactor: drop autoReply, add topic requireMention
...
Co-authored-by: kitze <kristijan.mkd@gmail.com >
2026-01-07 12:07:15 +01:00
Peter Steinberger
25edac96cf
docs: add note about tricky code comments
2026-01-07 12:04:55 +01:00
Peter Steinberger
85e536f3ff
fix(macos): validate remote ports
2026-01-07 11:00:21 +00:00
Nima Karimi
a5b29623b8
fix(macos): honor discovered gateway ports
2026-01-07 10:51:06 +00:00
Peter Steinberger
eef90b47a3
chore: satisfy lint
2026-01-07 11:49:01 +01:00
Peter Steinberger
c74f89c871
docs: update changelog for PR #286
2026-01-07 11:47:24 +01:00
Peter Steinberger
87e08fc7d5
docs: document channel/topic overrides
2026-01-07 11:44:37 +01:00
Peter Steinberger
43c6bb7595
feat: add channel/topic overrides for skills + auto-reply
2026-01-07 11:44:37 +01:00
Peter Steinberger
61f720b945
feat: add skill filter + group system prompt plumbing
2026-01-07 11:44:37 +01:00
Peter Steinberger
9bf6684366
feat: add provider usage tracking
2026-01-07 11:42:46 +01:00
Josh Palmer
4e14123edd
Merge pull request #378 from timkrase/system-prompt-weekday
...
Agents: add weekday to user time (codex assisted)
2026-01-07 11:27:07 +01:00
Peter Steinberger
a700f9896d
feat: telegram draft streaming
2026-01-07 11:08:32 +01:00
Peter Steinberger
e8420bd047
fix: refine bootstrap injections
2026-01-07 10:04:23 +00:00
Tobias Bischoff
412990a139
Reduce prompt token overhead with leaner context injections
2026-01-07 10:04:23 +00:00
Tim Krase
e58e13708d
Agents: add weekday to user time
2026-01-07 11:02:39 +01:00
Peter Steinberger
7a917602c5
feat(auth): sync OAuth from Claude/Codex CLIs
...
Add source profiles anthropic:claude-cli and openai-codex:codex-cli; surface them in onboarding/configure.
Co-authored-by: pepicrft <pepicrft@users.noreply.github.com >
2026-01-07 10:47:57 +01:00
Peter Steinberger
0914517ee3
feat(sandbox): add workspace access mode
2026-01-07 09:33:38 +00:00
Peter Steinberger
94d3a9742b
fix: clean agents lint warnings
2026-01-07 10:13:03 +01:00
Peter Steinberger
7973fd4caf
feat: add agents command
2026-01-07 10:03:53 +01:00
Shadow
9df8af855b
chore: bump carbon version
...
Closes #349
Closes #354
2026-01-07 02:58:40 -06:00
Peter Steinberger
a50ffa69b0
fix(discord): handle multi-attachment inbound media
2026-01-07 09:01:57 +01:00
Peter Steinberger
7d2dde6ea6
docs: thank contributor for #369
2026-01-07 07:57:19 +00:00
Peter Steinberger
e5dbe1db9d
fix: ensure output for non-streaming models ( #369 )
...
Co-authored-by: mneves75 <mneves75@users.noreply.github.com >
2026-01-07 07:47:18 +00:00
Peter Steinberger
34cac1beb0
fix: land PR #350
2026-01-07 07:19:48 +00:00
Peter Steinberger
1b81805d63
fix: align heartbeat session store with default agent
2026-01-07 07:14:24 +00:00
Peter Steinberger
7176b114da
fix(auth): harden legacy auth.json cleanup
2026-01-07 06:51:17 +00:00
Peter Steinberger
0707b1e487
Merge PR #368 : delete legacy auth.json after migration
2026-01-07 06:47:46 +00:00
Peter Steinberger
2937c4861f
fix(auth): doctor-migrate anthropic oauth profiles
2026-01-07 06:31:02 +00:00
Randy Torres
ff79db0a99
fix(auth): use anthropic oauth email profile
...
Use Anthropic OAuth profile email as the profile identifier when available. This fixes cases where Anthropic returns an email-based profile id rather than an explicit id field.
2026-01-07 06:31:02 +00:00
Peter Steinberger
8b1263ce11
fix: split status activation line
2026-01-07 07:26:52 +01:00
Peter Steinberger
dc941b7e57
fix: refresh status output
2026-01-07 07:22:06 +01:00
Matthew Dicembrino
4f10279ac3
fix: delete legacy auth.json after migration to prevent stale token overwrites ( #363 )
2026-01-07 01:15:38 -05:00
Peter Steinberger
86fde78442
chore: sync swift protocol models
2026-01-07 06:14:15 +00:00
Peter Steinberger
50dec39d13
fix: honor sandboxed built-in tools
2026-01-07 06:12:56 +00:00
Peter Steinberger
03928106c7
fix: order reasoning before reply text
2026-01-07 07:05:07 +01:00
Peter Steinberger
75c66acfd8
feat: update subagent announce + archive
2026-01-07 06:53:01 +01:00
Peter Steinberger
1673a221f8
feat: add /reasoning reasoning visibility
2026-01-07 06:17:31 +01:00
Peter Steinberger
cb2a72f8a9
test(routing): add route-reply coverage
2026-01-07 05:07:53 +00:00
Peter Steinberger
3668388912
fix(routing): harden originating reply routing
2026-01-07 05:02:34 +00:00
Josh Lehman
2a2e327cae
style: fix biome formatting
2026-01-07 04:51:33 +00:00
Josh Lehman
5414da9fd4
fix(routing): handle cross-provider messages in collect mode
...
When queued messages come from different providers (Slack + Telegram),
process them individually instead of collecting into a single prompt.
This ensures each reply routes back to its originating provider.
- Add hasCrossProviderItems() to detect multi-provider queues
- Skip collect mode when cross-provider detected
- Preserve originatingChannel/originatingTo when collecting same-provider
2026-01-07 04:51:33 +00:00
Josh Lehman
2d67ec5bfa
fix(routing): only route to originating channel when cross-provider
...
When OriginatingChannel matches Surface (same provider), use normal
dispatcher. Only route via routeReply() when they differ, ensuring
cross-provider messages (e.g., Telegram queued while Slack active)
get routed back to their origin.
2026-01-07 04:51:33 +00:00
Josh Lehman
9d50ebad7d
feat(routing): route replies to originating channel
...
Implement reply routing based on OriginatingChannel/OriginatingTo fields.
This ensures replies go back to the provider where the message originated
instead of using the session's lastChannel.
Changes:
- Add OriginatingChannel/OriginatingTo fields to MsgContext (templating.ts)
- Add originatingChannel/originatingTo fields to FollowupRun (queue.ts)
- Create route-reply.ts with provider-agnostic router
- Update all providers (Telegram, Slack, Discord, Signal, iMessage)
to pass originating channel info
- Update reply.ts to pass originating channel to followupRun
- Update followup-runner.ts to use route-reply for originating channels
This addresses the issue where messages from one provider (e.g., Slack)
would receive replies on a different provider (e.g., Telegram) because
the queue used the last active dispatcher instead of the originating one.
2026-01-07 04:51:33 +00:00
Peter Steinberger
514fcfe77e
fix: harden sub-agent model overrides
2026-01-07 04:48:37 +00:00
Peter Steinberger
12d57da53a
fix: normalize provider aliases in auth order
2026-01-07 05:43:32 +01:00
mneves75
8187baab18
test: format models list alias coverage
2026-01-07 05:31:01 +01:00
mneves75
3550dc294d
fix: normalize z.ai provider ids in auth profiles
2026-01-07 05:31:01 +01:00
mneves75
13c1ce1f05
Docs: update Z.AI configuration
2026-01-07 05:30:46 +01:00