release: v2.0.1 - Advanced Knowledge Mix & Architectural Intelligence

This commit is contained in:
g1nation
2026-05-13 22:05:39 +09:00
parent c32b17377b
commit e85e11aac6
23 changed files with 1758 additions and 78 deletions
+20 -2
View File
@@ -66,13 +66,21 @@ export async function handleAgentMessage(provider: SidebarChatProvider, data: an
if (!view) return true;
try {
const entry = getOrCreateAgentEntry(data.agentPath || '');
const knowledgeMapHasEntry = entry.knowledgeFolders.length > 0 || (entry.skillFolders?.length ?? 0) > 0;
const hasWeightOverride = typeof entry.secondBrainWeight === 'number';
const knowledgeMapHasEntry = entry.knowledgeFolders.length > 0
|| (entry.skillFolders?.length ?? 0) > 0
|| !!(entry.model && entry.model.trim())
|| hasWeightOverride;
view.webview.postMessage({
type: 'agentMapData',
value: {
name: entry.name,
knowledgeFolders: entry.knowledgeFolders,
skillFolders: entry.skillFolders || [],
// Per-agent model override — empty string means "use current default model".
model: entry.model || '',
// null = no override (fall back to global slider); number = pinned 0100.
secondBrainWeight: hasWeightOverride ? entry.secondBrainWeight : null,
exists: knowledgeMapHasEntry,
},
});
@@ -80,7 +88,7 @@ export async function handleAgentMessage(provider: SidebarChatProvider, data: an
logError('agent-map: load failed.', { error: e?.message ?? String(e) });
view.webview.postMessage({
type: 'agentMapData',
value: { name: '', knowledgeFolders: [], skillFolders: [], exists: false },
value: { name: '', knowledgeFolders: [], skillFolders: [], model: '', secondBrainWeight: null, exists: false },
});
}
return true;
@@ -96,10 +104,20 @@ export async function handleAgentMessage(provider: SidebarChatProvider, data: an
const skillFolders = Array.isArray(data.skillFolders)
? data.skillFolders.filter((f: unknown) => typeof f === 'string')
: [];
// Treat blank / "Use current model" as no override — drop the field entirely
// so the JSON stays clean and the resolver falls back to the global default.
const modelOverride = typeof data.model === 'string' ? data.model.trim() : '';
// null / undefined / non-finite = "Use global setting" → drop the field.
let weightOverride: number | undefined;
if (typeof data.secondBrainWeight === 'number' && Number.isFinite(data.secondBrainWeight)) {
weightOverride = Math.max(0, Math.min(100, Math.round(data.secondBrainWeight)));
}
const result = upsertAgentEntry({
name,
knowledgeFolders,
skillFolders,
model: modelOverride || undefined,
secondBrainWeight: weightOverride,
});
view.webview.postMessage({
type: 'agentMapSaved',