feat: 升级至 v0.3.15 — MiMo 多模态 + 工作空间数据库继承 + 引导窗口上下文配置 + TS 错误修复
- feat(mimo): 适配器支持图片输入,将 images 转为 OpenAI 兼容 content parts 数组 - feat(workspace): 切换工作空间时支持继承数据库 agent.db(SQLite backup API 原子导出,自动 checkpoint WAL) - feat(onboarding): 引导弹窗 LLM 配置加上下文长度字段(DeepSeek/Agnes=1000000、MiMo=131072、Ollama=null) - fix(types): 修复 16 个 TypeScript 编译错误(setConfigLoaded 接口声明、10 个 IPC 返回类型加 error 字段、MUI TextField readOnly slot 迁移) - chore(workspace): 移除死代码 traces 目录(trace 数据实际存储于数据库 sessions.metadata 字段,traces 目录从未被任何代码读写) - docs(mimo): API 文档补充多模态输入章节和 curl/Python 代码示例 - chore: 版本号 0.3.14 → 0.3.15
This commit is contained in:
@@ -116,6 +116,8 @@ function WorkspaceSettings() {
|
||||
const [checkResult, setCheckResult] = useState<MetonaWorkspaceCheckResult | null>(null);
|
||||
const [checking, setChecking] = useState(false);
|
||||
const [inheritSoul, setInheritSoul] = useState(true);
|
||||
// 数据库继承:默认勾选(历史会话/消息/记忆/Trace 丢失不可逆,默认带过去更安全)
|
||||
const [inheritDatabase, setInheritDatabase] = useState(true);
|
||||
const [applying, setApplying] = useState(false);
|
||||
const [showRestartDialog, setShowRestartDialog] = useState(false);
|
||||
|
||||
@@ -145,9 +147,12 @@ function WorkspaceSettings() {
|
||||
if (!pendingPath || !checkResult?.valid) return;
|
||||
setApplying(true);
|
||||
try {
|
||||
// 如果勾选了继承文件,从旧工作空间复制到新工作空间(v0.3.14: 仅 SOUL.md)
|
||||
// 如果勾选了继承文件,从旧工作空间复制到新工作空间
|
||||
// - SOUL.md: Agent 身份定义
|
||||
// - .metona/agent.db: 数据库(会话/消息/记忆/Trace),后端白名单校验
|
||||
const filesToInherit: string[] = [];
|
||||
if (inheritSoul) filesToInherit.push('SOUL.md');
|
||||
if (inheritDatabase) filesToInherit.push('.metona/agent.db');
|
||||
|
||||
if (filesToInherit.length > 0 && currentPath) {
|
||||
try {
|
||||
@@ -260,6 +265,18 @@ function WorkspaceSettings() {
|
||||
control={<Checkbox size="small" checked={inheritSoul} onChange={(e) => setInheritSoul(e.target.checked)} />}
|
||||
label={<Typography variant="caption">SOUL.md(身份与角色定义)</Typography>}
|
||||
/>
|
||||
{/* 数据库继承:仅在新工作空间(空目录)时显示,避免覆盖已有工作空间的数据 */}
|
||||
{checkResult.isNewWorkspace && (
|
||||
<>
|
||||
<FormControlLabel
|
||||
control={<Checkbox size="small" checked={inheritDatabase} onChange={(e) => setInheritDatabase(e.target.checked)} />}
|
||||
label={<Typography variant="caption">数据库 agent.db(会话/消息/记忆/Trace 历史记录)</Typography>}
|
||||
/>
|
||||
<Typography variant="caption" sx={{ color: 'text.disabled', fontSize: 10, pl: 3 }}>
|
||||
勾选后将复制当前工作空间的全部历史数据到新工作空间(通过 SQLite backup API 原子性导出)
|
||||
</Typography>
|
||||
</>
|
||||
)}
|
||||
<Typography variant="caption" sx={{ color: 'text.disabled', fontSize: 10, pl: 3 }}>
|
||||
MEMORY.md 不继承(记忆与工作空间项目上下文绑定)
|
||||
</Typography>
|
||||
@@ -1288,8 +1305,7 @@ function LogsSettings() {
|
||||
fullWidth
|
||||
value={logFilePath}
|
||||
placeholder={logPathLoading ? '正在获取路径...' : '路径不可用'}
|
||||
readOnly
|
||||
slotProps={{ input: { sx: { fontSize: 11, fontFamily: 'monospace' } } }}
|
||||
slotProps={{ input: { readOnly: true, sx: { fontSize: 11, fontFamily: 'monospace' } } }}
|
||||
/>
|
||||
<Stack direction="row" spacing={1} sx={{ mt: 1 }}>
|
||||
<Button
|
||||
|
||||
Reference in New Issue
Block a user