Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
- Sandbox: add `agent.sandbox.workspaceAccess` (`none`/`ro`/`rw`) to control agent workspace visibility inside the container; `ro` hard-disables `write`/`edit`.
|
||||
- Routing: allow per-agent sandbox overrides (including `workspaceAccess` and `sandbox.tools`) plus per-agent tool policies in multi-agent configs. Thanks @pasogott for PR #380.
|
||||
- Cron: clamp timer delay to avoid TimeoutOverflowWarning. Thanks @emanuelst for PR #412.
|
||||
- ClawdbotKit: fix SwiftPM resource bundling path for `tool-display.json`. Thanks @fcatuhe for PR #398.
|
||||
- Tools: add Telegram/WhatsApp reaction tools (with per-provider gating). Thanks @zats for PR #353.
|
||||
- Tools: flatten literal-union schemas for Claude on Vertex AI. Thanks @carlulsoe for PR #409.
|
||||
- Tools: unify reaction removal semantics across Discord/Slack/Telegram/WhatsApp and allow WhatsApp reaction routing across accounts.
|
||||
@@ -88,6 +89,7 @@
|
||||
- Typing indicators: fix a race that could keep the typing indicator stuck after quick replies. Thanks @thewilloftheshadow for PR #270.
|
||||
- Google: merge consecutive messages to satisfy strict role alternation for Google provider models. Thanks @Asleep123 for PR #266.
|
||||
- Postinstall: handle targetDir symlinks in the install script. Thanks @obviyus for PR #272.
|
||||
- Status: show configured model in `/status` (override-aware). Thanks @azade-c for PR #396.
|
||||
- WhatsApp/Telegram: add groupPolicy handling for group messages and normalize allowFrom matching (tg/telegram prefixes). Thanks @mneves75.
|
||||
- Auto-reply: add configurable ack reactions for inbound messages (default 👀 or `identity.emoji`) with scope controls. Thanks @obviyus for PR #178.
|
||||
- Polls: unify WhatsApp + Discord poll sends via the gateway + CLI (`clawdbot poll`). (#123) — thanks @dbhurley
|
||||
|
||||
@@ -45,6 +45,29 @@ describe("buildStatusMessage", () => {
|
||||
expect(text).toContain("Queue: collect");
|
||||
});
|
||||
|
||||
it("prefers model overrides over last-run model", () => {
|
||||
const text = buildStatusMessage({
|
||||
agent: {
|
||||
model: "anthropic/claude-opus-4-5",
|
||||
contextTokens: 32_000,
|
||||
},
|
||||
sessionEntry: {
|
||||
sessionId: "override-1",
|
||||
updatedAt: 0,
|
||||
providerOverride: "openai",
|
||||
modelOverride: "gpt-4.1-mini",
|
||||
modelProvider: "anthropic",
|
||||
model: "claude-haiku-4-5",
|
||||
contextTokens: 32_000,
|
||||
},
|
||||
sessionKey: "agent:main:main",
|
||||
sessionScope: "per-sender",
|
||||
queue: { mode: "collect", depth: 0 },
|
||||
});
|
||||
|
||||
expect(text).toContain("🧠 Model: openai/gpt-4.1-mini");
|
||||
});
|
||||
|
||||
it("handles missing agent config gracefully", () => {
|
||||
const text = buildStatusMessage({
|
||||
agent: {},
|
||||
|
||||
@@ -250,8 +250,8 @@ export function buildStatusMessage(args: StatusArgs): string {
|
||||
defaultModel: DEFAULT_MODEL,
|
||||
});
|
||||
const provider =
|
||||
entry?.modelProvider ?? resolved.provider ?? DEFAULT_PROVIDER;
|
||||
let model = entry?.model ?? resolved.model ?? DEFAULT_MODEL;
|
||||
entry?.providerOverride ?? resolved.provider ?? DEFAULT_PROVIDER;
|
||||
let model = entry?.modelOverride ?? resolved.model ?? DEFAULT_MODEL;
|
||||
let contextTokens =
|
||||
entry?.contextTokens ??
|
||||
args.agent?.contextTokens ??
|
||||
|
||||
Reference in New Issue
Block a user