Skip to content

Commit b73873f

Browse files
author
linyuan.yang
committed
release note
1 parent c98bce8 commit b73873f

3 files changed

Lines changed: 13 additions & 6 deletions

File tree

packages/sbot/ReleaseNote.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ This release includes the following main changes:
33
### Added
44

55
1. Added `sbot update`, which updates sbot to the latest version and stops the running service first when needed.
6-
2. Added more built-in chat commands, including `/status`, `/workpath`, `/agent`, `/autoapprove`, `/tokens`, `/version`, and `/history`.
6+
2. Added more built-in chat commands, including `/status`, `/workpath`, `/agent`, `/saver`, `/note`, `/wiki`, `/memory`, `/agenda`, `/autoapprove`, `/tokens`, `/version`, and `/history`.
77
3. Added richer Agenda trigger controls: fire a trigger manually, delete a trigger, choose the delivery session per trigger, and mark routines as per-fire check-ins.
88
4. Added DingTalk file sending, plus session recovery from saved metadata so proactive messages can still be delivered after a restart.
99
5. Added ReAct sub-task tracking with task listing, resumable task state, optional parent-context injection, and nested-depth protection.

packages/sbot/ReleaseNote.zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
### 新增
44

55
1. 新增 `sbot update` 命令,可更新到最新版本;如果服务正在运行,会先停止服务再升级。
6-
2. 聊天内新增更多内置命令,包括 `/status``/workpath``/agent``/autoapprove``/tokens``/version``/history`
6+
2. 聊天内新增更多内置命令,包括 `/status``/workpath``/agent``/saver``/note``/wiki``/memory``/agenda``/autoapprove``/tokens``/version``/history`
77
3. Agenda 触发器新增更完整的管理能力:手动触发、删除触发器、为单个触发器选择投递会话,以及逐次打卡模式。
88
4. 钉钉渠道新增文件发送,并支持从已保存的会话信息恢复投递目标,重启后也能继续主动发送。
99
5. ReAct 多 Agent 新增子任务追踪:可查看任务列表、续接任务状态、按需注入主对话上下文,并限制过深嵌套。

packages/sbot/src/Session/BuiltInCommands.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ function mdEnabled(value: boolean): string {
5656
return value ? '启用' : '停用';
5757
}
5858

59+
function mdModelName(id: string | null | undefined): string {
60+
if (!id) return '(未配置)';
61+
const model = config.settings.models?.[id];
62+
if (!model) return `${mdCode(id)}(模型配置不存在)`;
63+
return mdText(model.name || model.model || id);
64+
}
65+
5966
function mdConfiguredRef(id: string, name?: string): string {
6067
return name ? mdNamedRef(id, name) : `${mdCode(id)}(配置不存在)`;
6168
}
@@ -656,7 +663,7 @@ export class MemoryCommand implements ICommand {
656663
.sort(([a], [b]) => a.localeCompare(b));
657664
if (profiles.length === 0) return mdTitle('没有可用的 Memory Profile');
658665
return `${mdTitle('可用 Memory Profile')}\n` + profiles
659-
.map(([id, p]) => `- ${mdNamedRef(id, p.name)} · ${mdEnabled(p.enabled)} · writer ${mdCode(p.writerModel)}`)
666+
.map(([id, p]) => `- ${mdNamedRef(id, p.name)} · ${mdEnabled(p.enabled)} · writer ${mdModelName(p.writerModel)}`)
660667
.join('\n');
661668
}
662669

@@ -666,7 +673,7 @@ export class MemoryCommand implements ICommand {
666673
const p = resolved.memory ? config.getMemoryProfile(resolved.memory) : undefined;
667674
const channel = config.getChannel(eff.session.channelId);
668675
const current = resolved.memory
669-
? `${mdNamedRef(resolved.memory, p?.name)}${p ? ` · ${mdEnabled(p.enabled)}` : '(配置不存在)'}`
676+
? `${mdNamedRef(resolved.memory, p?.name)}${p ? ` · ${mdEnabled(p.enabled)} · writer ${mdModelName(p.writerModel)}` : '(配置不存在)'}`
670677
: cur;
671678
return [
672679
mdTitle('当前 Memory Profile'),
@@ -718,7 +725,7 @@ export class AgendaCommand implements ICommand {
718725
if (profiles.length === 0) return mdTitle('没有可用的 Agenda Profile');
719726
return `${mdTitle('可用 Agenda Profile')}\n` + profiles
720727
.map(([id, p]) => {
721-
const sync = p.syncModel ? `sync ${mdCode(p.syncModel)}` : 'sync 未配置';
728+
const sync = p.syncModel ? `sync ${mdModelName(p.syncModel)}` : 'sync 未配置';
722729
return `- ${mdNamedRef(id, p.name)} · ${mdEnabled(p.enabled)} · ${sync}`;
723730
})
724731
.join('\n');
@@ -730,7 +737,7 @@ export class AgendaCommand implements ICommand {
730737
const p = resolved.agenda ? config.getAgendaProfile(resolved.agenda) : undefined;
731738
const channel = config.getChannel(eff.session.channelId);
732739
const current = resolved.agenda
733-
? `${mdNamedRef(resolved.agenda, p?.name)}${p ? ` · ${mdEnabled(p.enabled)}` : '(配置不存在)'}`
740+
? `${mdNamedRef(resolved.agenda, p?.name)}${p ? ` · ${mdEnabled(p.enabled)} · ${p.syncModel ? `sync ${mdModelName(p.syncModel)}` : 'sync 未配置'}` : '(配置不存在)'}`
734741
: cur;
735742
return [
736743
mdTitle('当前 Agenda Profile'),

0 commit comments

Comments
 (0)