fix: skills 表增加 summary 列,修复渐进式技能加载数据丢失
Skill 接口包含 summary 字段且 extractSkillsFromToolRecords() 会生成摘要, 但 SQLite schema 和 saveSkill() 遗漏了该列,导致保存时 summary 丢失。 - CREATE TABLE 增加 summary TEXT DEFAULT '' - 兼容迁移:ALTER TABLE 补充 summary 列 - saveSkill() INSERT 语句增加 summary 参数 - SkillRow 接口增加 summary 字段
This commit is contained in:
@@ -210,6 +210,7 @@ export async function initDatabase(): Promise<SQL.Database> {
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
summary TEXT DEFAULT '',
|
||||
trigger_keywords TEXT,
|
||||
tool_chain TEXT NOT NULL,
|
||||
success_count INTEGER DEFAULT 0,
|
||||
@@ -225,6 +226,9 @@ export async function initDatabase(): Promise<SQL.Database> {
|
||||
// 兼容迁移:为已有 messages 表补充 prompt_eval_count 列(新库已有,旧库需要 ALTER)
|
||||
try { db.run('ALTER TABLE messages ADD COLUMN prompt_eval_count INTEGER'); } catch { /* 列已存在,忽略 */ }
|
||||
|
||||
// 兼容迁移:为已有 skills 表补充 summary 列
|
||||
try { db.run("ALTER TABLE skills ADD COLUMN summary TEXT DEFAULT ''"); } catch { /* 列已存在,忽略 */ }
|
||||
|
||||
// 尝试创建 FTS5 全文搜索(可选,sql.js 默认 WASM 可能不包含 FTS5)
|
||||
try {
|
||||
db.run(`
|
||||
@@ -312,6 +316,7 @@ export interface SkillRow {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
summary: string;
|
||||
trigger_keywords: string | null;
|
||||
tool_chain: string;
|
||||
success_count: number;
|
||||
@@ -522,9 +527,9 @@ export function getTracesBySession(sessionId: string): TraceRow[] {
|
||||
// ─── Skills CRUD (v4.2) ───
|
||||
|
||||
export function saveSkill(skill: SkillRow): string {
|
||||
runExec(getDb(), `INSERT OR REPLACE INTO skills (id, name, description, trigger_keywords, tool_chain, success_count, fail_count, avg_duration_ms, created_at, updated_at, last_used_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
[skill.id, skill.name, skill.description, skill.trigger_keywords, skill.tool_chain,
|
||||
runExec(getDb(), `INSERT OR REPLACE INTO skills (id, name, description, summary, trigger_keywords, tool_chain, success_count, fail_count, avg_duration_ms, created_at, updated_at, last_used_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
[skill.id, skill.name, skill.description, skill.summary || '', skill.trigger_keywords, skill.tool_chain,
|
||||
skill.success_count, skill.fail_count, skill.avg_duration_ms,
|
||||
skill.created_at, skill.updated_at, skill.last_used_at]
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user